【发布时间】:2015-12-07 17:52:17
【问题描述】:
ITU-T H264 文档支持或至少推荐两种类型的流类型,即 RTP 数据包和附件 B(原始字节序列)。
我的问题是,假设编码器能够以两种格式发送流式数据,并且可以在流式传输时的任何时间点在它们中的任何一个之间切换(如果不是这种情况,则正确),如何以及何时H264解码器是否知道它需要根据RTP格式或附件B(即原始字节序列数据)解析数据。
是否有任何标准协议或机制可以做到这一点。
如果出现数据包丢失并且编码器切换其流式传输数据的方式(即从 RTP 到附件 B 或反之亦然)会发生什么情况,此时解码器可能仍假定数据以旧格式流式传输。
请澄清以上内容。
【问题讨论】:
-
混合数据格式是在自找麻烦。如果有数据包丢失,最好的错误保护是重新发送数据包或忽略损坏的数据并在可用时跳转到下一个数据包数据(查看者看到瞬间图片冻结或跳帧)
-
Annex B 通常存在于存储的文件(如 MP4)中,而 RTP 用于实时广播。只是说在中途随时切换反之亦然是多么尴尬。这些格式用于解决不同的问题
-
@VC.One 让我们假设以下情况,我也不确定为什么不能以 RBSP 格式发送实时流。场景:编码器正在发送 RTP 数据包,发生丢失并且 RTP 流在这里重新开始,丢失的数据包被解码器忽略并继续后续数据包(但解码器不需要与编码器同步什么类型的流正在发送 RTP 或 RBSP)。而且我不确定编码器是否有任何限制,不能在丢失或运行时切换流类型。
-
你把它弄得太复杂了。解码器的功能只需要 h.264 数据,它们会给出相关的像素来显示。其他一切都只是为了“包含”或“传输”数据。在提取 h.264 以传递给解码器之前,切换流类型(= 编写更多代码来处理字节结构的突然差异)并没有什么巧妙的好处。无需将解码器与编码器同步。如果我今天对视频进行编码,一周后加载(解码)文件时它如何同步?
-
@VC.One 我同意在播放录制的流时不需要同步,但在直播的情况下同步问题仍然存在。还要考虑附件 B 的情况,即编码器正在流式传输 RBSP 流,而解码器正在解码相同的内容,突然丢包,解码器设备关闭并重新启动。现在在这些时间之间,编码器仍在流式传输 RBSP,现在解码器将如何知道流类型是什么(RBSP 或 RTP)。解码器如何自我同步以及如何知道一帧何时开始
标签: video-streaming h.264 video-capture video-processing rtp