mp4中nalu的头部是分隔符 还是用手机测量长度的app

ffmpeg读取mp4中的H264数据并不能直接得到NALU,文件中也没有储存0x的分隔符下面这张图为packet.data中的数据


从图中可以发现,packet中的数据起始处没有分隔符(0x), 也不是0x65、0x67、0x68、0x41等字节所以可以肯定這不是标准的nalu。

其实前4个字0x000032ce表示的是nalu的用手机测量长度的app,从第5个字节开始才是nalu的数据所以直接将前4个字节替换为0x即可得到标准的nalu数據。

//用于保存数据用手机测量长度的app的字节数是在分析原extradata计算出来的 }一般情况下,extradata中包含一个sps、一个pps 的nalu, 从上面的代码中容易看出extradata的数据格式分析后的sps及pps依然储存在extradata域中,并添加了起始符从代码中还可以看出,上面的函数会将sps、pps及packet中的数据都copy到poutbuf指示的内存中,如果不需要copy到指定内存直接给buf参数传入空值即可。

ffmpeg读取mp4中的H264数据并不能直接得到NALU,文件中也没有储存0x的分隔符下面这张图为packet.data中的数据


从图中可以发现,packet中的数据起始处没有分隔符(0x), 也不是0x65、0x67、0x68、0x41等字节所以可以肯定這不是标准的nalu。

其实前4个字0x000032ce表示的是nalu的用手机测量长度的app,从第5个字节开始才是nalu的数据所以直接将前4个字节替换为0x即可得到标准的nalu数據。

//用于保存数据用手机测量长度的app的字节数是在分析原extradata计算出来的 }一般情况下,extradata中包含一个sps、一个pps 的nalu, 从上面的代码中容易看出extradata的数据格式分析后的sps及pps依然储存在extradata域中,并添加了起始符从代码中还可以看出,上面的函数会将sps、pps及packet中的数据都copy到poutbuf指示的内存中,如果不需要copy到指定内存直接给buf参数传入空值即可。

我要回帖

更多关于 用手机测量长度的app 的文章

 

随机推荐