Streaming h.264基本流解析到nalu的方法
想知道是否有人了解h.264字节码流: ffmpeg命令行是: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
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最好将文本作为文本而不是图像发布。非常感谢。您真的解释了很多。