gstreamer rtsp h264 depayloader中字节流和分组流之间的区别是什么

Ste*_*lsh 9 c gstreamer h.264

在gstreamer rtp h264 depayloader中,检查输入流是字节流还是打包流.

谁能告诉我这两种格式有什么区别?

此外,对于字节流,codec_data不会写入大写字母.知道为什么会这样吗?

Cip*_*ipi 16

H264(NAL)字节流

主要用于在一台PC上直接发送到解码器,而不是通过网络传输.它有简单的格式规则:

  • 每帧以相同的3字节起始码开始 0x000001
  • 字节流必须以序列参数集帧开始,然后是图片参数集帧,然后其他帧(I,P,B)可以跟随
  • 其中的所有帧都是整帧 - 如果IDR帧大小为10MB,则从0x000001起始码到下一帧的0x000001起始码大小为10MB.

H264 Packetized Stream

它仅用于在有限的MTU网络上通过TCP传输.每个网络都有MTU(最大传输单元),可以通过TCP一次发送.通常它大约是1500字节.因此,如果要通过TCP发送10 MB IDR帧,则必须将其拆分,以使部件适合MTU.以这种方式采用的H264流称为分组流.

为了解码这个流,你必须在接收端重建整个帧,然后你通常想要从它做出H264 NAL Byte Stream,所以你可以将它发送到解码器......

打包规则可以在这里找到:http://www.rfc-editor.org/rfc/rfc3984.txt

  • Cipi,我想你的意思是IP/UDP/RTP而不是TCP,不是吗? (2认同)