视频编解码顺序与播放顺序需要保持一致。这是因为视频编解码器将视频信号分解成一帧一帧的图像,而播放器则是将这些图像重新组合成视频信号并通过显示器呈现给用户。如果两者的顺序不一致,则会导致画面播放出现问题。
为了保证视频编解码顺序与播放顺序的一致性,通常会采用同步信号来进行控制。同步信号可以是时间同步信号或帧同步信号。时间同步信号是在整个视频传输过程中使用的,它能够使得在不同的地方传送的相同的时间戳;而帧同步信号则是在特定的时间内使用,它能够使得在不同的地方传送相同帧数。
采用时间同步信号来进行控制时,通常会通过PTS(PresentationTimeStamp)来标识当前帧应该呈现的时间。PTS是相对于整个视频流开始时间的偏移量(单位是微妙)。当PTS大于当前时间时表明当前帧尚未到呈现时间;当PTS小于当前时间时表明当前帧已经过期。
采用帧同步信号来进行控制时,通常会通过DTS(DecodingTimeStamp)来标识当前帧应该呈现的时间。DTS也是相对于整个视频流开始时间的偏移量(单位是微妙)。当DTS大于当前时间时表明当前帧尚未到呈现时间;当DTS小于当前时间时播放器将不再呈现该帧并抛弃该帧。
如何选择PTS或DTS来作为标识当前帧应该呈现的时间依赖于具体情况而定。如果要对所有平台都具有公平性、准确性、公正性、实用性、易用性、易学习性、易使用性、易上手性、易理解性、易实施性,则应该选择PTS。如果要对所有平台都具有简单性、快捷性、方便性、实用性、易用性、易学习性、易使用性、易上手性、易理解性、易实施性,则应该选择DTS。