Streaming h.264基本流解析到nalu的方法

Streaming h.264基本流解析到nalu的方法,streaming,h.264,Streaming,H.264,想知道是否有人了解h.264字节码流: ffmpeg命令行是: fmpeg\" -s 320x240 -f avfoundation -r 30.00 -i \"0:none\" -c:v libx264 -preset ultrafast -tune zerolatency -x264opts crf=20:vbv-maxrate=3000:vbv-bufsize=100:intra-refresh=1:slice-max-size=1500:keyint=30

想知道是否有人了解h.264字节码流:

ffmpeg命令行是:

 fmpeg\" -s 320x240 -f avfoundation -r 30.00 -i \"0:none\" -c:v libx264 -preset ultrafast -tune zerolatency -x264opts crf=20:vbv-maxrate=3000:vbv-bufsize=100:intra-refresh=1:slice-max-size=1500:keyint=30:ref=1 -b:v 1000 -an -f mpegts -threads 8 -profile:v baseline -level 3.0 -pix_fmt yuv420p udp://127.0.0.1:5564"  
理论上,h.264中的基本流应该是这样的:(

因此,关键是从H.264流生成单个NALU。所以我们应该得到如下的比特流:()。

我们需要像这样获得真正的NALU类型:
0x1F
&NALU类型。所以
0x27
等于
0x67

通常,我们应该只使用这些NALU类型(在操作
0x1F
和NALU类型之后):

1:非IDR图片的切片。(P帧)

5:IDR图片的切片。(I帧)

6:补充增强信息。(SEI)

7:序列参数设置。(SPS参数)

8:图片参数设置。(PPS参数)“

9:访问单元分隔符

但我从udp中得到的是第一个udp数据包:
(来源:)

在这个UDP数据报中,有些东西没有意义,在
0x00000001
开始代码头之后,NALU类型是
0xff
,第二个是
0xf0
,它们在h.264中都没有定义

因此,我很难找到h.264流不工作的原因


在同一UDP数据包(或流媒体的同一会话)中,起始代码头是否总是四个字节
0x0000 0001
或三个字节
0x000001


此外,3字节和4字节的起始代码可以混合在同一个ES中。原因在我的回答中有所说明。

你错过了我想的图像,谢谢,但我是这里的新人,所以我不能添加图像,对吧?尝试在可以的地方裁剪你的图像,否则它们太大(高度)了。此外,其他图像的链接也丢失了(至少放上链接文本)。最后,这些字节可以粘贴为文本(而不是图像),然后我们甚至可以作为实际字节进行测试…非常感谢您的提示。VC.ONE最好将文本作为文本而不是图像发布。非常感谢。您真的解释了很多。