是否有任何视频编解码器支持嵌入时间码?

发布于 2024-12-14 05:51:39 字数 67 浏览 0 评论 0原文

我想知道是否有任何视频标准支持在捕获/录制时嵌入时间码。

我需要录制和播放多个视频流,同时保持它们同步。

I was wondering if any of the video standards support embedding a timecode when capturing/recording.

I have a requirement to record and playback multiple video streams, whilst keeping them in sync.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

水波映月 2024-12-21 05:51:39

大多数广播视频编解码器允许使用 SMPTE 时间码或帧位置标记帧。

  • MPEG 用户数据可以携带时间码。 MPEG-2 TS 数据包具有时间码。
  • DV 帧使用时间码进行编码。
  • H.264 在定时信息方面非常灵活。帧用帧位置进行编码。如果设置了timing_info_present_flag,则SPS NAL单元中可能存在附加定时数据。

但也有一些值得注意的例外。某些帧内视频格式(例如 JPEG-2000 或 DNxHD)不携带时间码信息。

额外的时间码信息通常由容器格式(QuickTime、MPEG TS、MXF 等)携带。

Most broadcast video codecs allow tagging frames with a SMPTE timecode or a frame position.

  • MPEG User Data may carry timecodes. MPEG-2 TS packets have a timecode.
  • DV frames are encoded with a timecode.
  • H.264 is very flexible with regards to timing information. Frames are encoded with a frame position. There may be additional timing data in the SPS NAL Unit if timing_info_present_flag is set.

There are notable exceptions. Some intra-frame video formats such as JPEG-2000 or DNxHD do not carry timecode information.

Extra timecode information is usually carried by the container format (QuickTime, MPEG TS, MXF, etc..).

佼人 2024-12-21 05:51:39

为此,您实际上并不需要在视频中嵌入时间码,视频标头有足够的字段来帮助您解决这个问题。

每个帧都带有“时间戳”:

start time + sum of all previous frame durations

假设您有一个相对起点(可以存储在每个轨道的视频标题中),您可以跟踪每个帧应显示的时间。

持续时间位于 stts 原子 中,您可以将相对起点放入媒体标头原子(注意创建/修改时间区域)

You don't really need an embedded timecode in the video for this, the video header has enough fields to help you figure this out.

Each frame is "timestamped" by this:

start time + sum of all previous frame durations

Given you have a relative starting point (which can be stored in the video header per track) you can keep track of when each frame should be displayed.

Durations are in the stts atom and you can put the relative starting point in the media header atom (notice the creation/modification time areas)

拥醉 2024-12-21 05:51:39

时间码与编解码器本身并不完全相关。在这种情况下,“编解码器”是一种视频编码方法,时间码附加在其之上,并且通常与编码的视频帧一起写入文件中。几乎所有格式都保留帧时间,某些格式具有固定帧速率,某些格式具有更大的灵活性。

在播放方面,框架的问题是强制执行时间戳,并按时呈现帧,特别是同步多个流。

Timecode is not related to exactly codec itself. "Codec" is a method of encoding, of video in this case, and timecode is attached on top of it and is typically written along with encoded video frames into file. Almost all formats keep frame time, some formats have fixed frame rate, some allow more flexibility.

On the playback it is the matter of framework to enforce timestamps, and present frames on time, multiple stream in sync in particular.

面犯桃花 2024-12-21 05:51:39

如果视频大小不重要:DV 在每一帧中都有时间码。
我认为 MPEG 1/2 的数据流中也可以有时间码(SMPTE 时间码)。
h264 可以将可变数据作为 NAL-SEI-UserData-Block 嵌入其数据流中。像 Axis 和 Basler 这样的 IPCam 将相机时间和触发数据嵌入到此类数据块中。

If video size doesn't matter: DV has the timecode in every frame.
I think MPEG 1/2 can also have a timecode (SMPTE timecode) in it's data stream.
h264 can embed variable data in it's datastream as NAL-SEI-UserData-Block. IPCam's like Axis and Basler embed the cameratime and triggerdata in such DataBlocks.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文