在gstreamer rtp h264 depayloader中,将检查输入流是字节流还是打包流。 谁能告诉我这两种格式有什么区别? 同样,对于字节流,codec_data不会写入大写。知道为什么会这样吗?
H264(NAL)字节流 主要用于直接发送到单台PC上的解码器,而不通过网络传输。它具有简单的格式规则: 每帧均以相同的3字节起始码
0x000001
开头 字节流必须以“序列参数集”帧开始,然后是“图像参数集”帧,然后可以跟随其他帧(I,P,B) 其中的所有帧都是整帧-如果IDR帧的大小为10MB,则从其“ 0”开始代码到下一帧的“ 0”开始代码将为10MB。 H264打包流 它仅用于在有限的MTU网络上通过TCP传输。每个网络都有可以通过TCP一次发送的MTU(最大传输单元)。通常大约是1500个字节。因此,如果要通过TCP发送10 MB IDR帧,则必须将其拆开,以便各部分适合MTU。以这种方式采用的H264流称为打包流。 为了解码此流,您必须在接收端重建整个帧,然后通常需要从中生成H264 NAL字节流,以便可以将其发送到解码器… 打包规则可在此处找到:http://www.rfc-editor.org/rfc/rfc3984.txt