来源:Time & Timing at VidTrans 21 主讲人:来自 Nevion 的首席技术官 Andy Rayner 内容整理:张一炜 自从电视广播诞生以来,人们就一直不懈地关注着广播链的时间问题。时间及其同步在过去的模拟电视广播,以及如今的实时直播系统中都是十分重要的存在。本次演讲介绍了计时技术的发展及其在视频广播系统中的应用,并对复杂系统中如何进行时间同步的问题进行了探讨。
目录
- 电视广播中的时间
- 如今的实时直播系统
- 复杂系统中的时间处理和传输
在时间感知的媒体处理链中,在视频内容的获取、处理、生产和消费等过程中,时间与同步是非常重要的。如下图所示,按照视频生产和传输的工作流程来说,其中的各个步骤都需要对时间信息进行记录或者处理。
时间感知的媒体处理链
1电视广播中的时间
在过去的模拟电视广播中,使用光栅扫描的方式播放视频。如果同步出现错误将会导致画面出现扭曲等问题。而视频传输中同步的关键在于,对视频中的关键部分,比如模拟电视中的 SDI 信号,都为其携带上时间信息,并在接受端按照相对时间将其恢复。早期模拟电视中水平和垂直上空白部分的就携带了这部分的时间信息。在 ST2110 中,视频广播的同步则是通过将绝对时间写入到 RTP 时间戳中。这样视频中每一帧的图像和音频都被一个缩小分辨率版本的时间信息所标记。
在视频内容的获取上,不同类型的传感器在处理时间戳上有不同的方式,,有些是采用捕获图像的绝对时间,而有的则是按照传感器扫描顺序的相对时间。因此在 ST2110 中,规定在处理视频中的一帧时,会冻结当前的时间戳,不同的数据包都依赖于一个固定的时间。
在音频的计时方面,则是按照音频的采样率,如 48kHz 或是 96kHz,来为音频数据打上时间戳。
ST2110 中定义的时间模型仍然继承自模拟电视时间的处理方式,采用类似光栅扫描的方式来打包数据和定时。
2如今的实时直播系统
目前的传统的实时直播系统中希望端到端延时小于 100ms。延时的主要部分来自网络传输以及编码器端为了达到较好的实时编码效果,采用的 look ahead 方式的预测编码。而对于消费者来说,即使收到的视频内容延时达到 20 秒,也不会非常在意。事实上,在大部分采用 OTT 分发方式的视频内容中,延时是比较大的。
实时直播系统中的延时
下图展示了一个实时直播系统的视频内容生产工作流程,包括了视频内容的获取以及中间的处理过程。图中标识出了需要进行时间信息处理的部分。
视频生产流程中的时间跟踪
Origination time 中包括捕获图像和音频的时间,以及数模转换的时间等。并且,根据 ST2110,这一步的会将绝对时间作为时间戳,写入 RTP 中。Processing time 则对应的中间视频内容的生产者,主要的工作是把源端捕获的不同的元素按照相对时间拼在一起,比如视频或是音频内容的混合工作。最后的 Use time 部分中,则是需要根据相对时间将不同部分的元素按顺序恢复,因此也不用手动处理由于不同的传输路径积累的延时。
在整个视频生产的工作流程中间,可以抽象出不同的处理函数(process functions)。无论处理过程怎样,这些函数都需要一个外部的时间源来得到一个真实的时间分布,并对输入和输出的媒体元素的时间戳信息进行处理。这也是使得无论经过多少个处理过程,都能在接受端根据时间信息正确恢复出来。
3复杂系统中的时间处理和传输
对于更加复杂的实时直播场景来说,如分布式云计算场景或是包括多个视频源的系统中,时间同步也更为复杂。
在包括多个视频源的直播场景来说,接受端可能会对需要播放的内容进行选择。因此可以先发送低分辨率的代理内容和音频到接收端。接收端选择好内容后,需要给发送端反馈,发送端再对内容进行混合、编辑后进行正式发送。在这一过程中需要考虑一个循环的延时,并且发送端也需要保留 origination time 以使得系统正常工作。
在云计算场景中,视频生产传输的整个流程一般不在一个时间域中,因此需要进行额外的同步操作。一般是在视频处理的过程中,对于输入和输出的媒体元素额外进行一次同步操作。另外,在云计算场景中,云内部的时间同步与云与外界的时间同步也是一个比较复杂的问题,其中的很多部分的延时都还存在着优化的空间。对于时间同步方面,事实上云计算下,以计算机处理为主,需要更加注重计算友好性。因此 PTP(Precision Time Protocol)不是必要的,完全可以使用 NTP(Network Time Protocol)来进行同步。
附上演讲视频: