使用FFMPEG解析NAL单元

6

我是刚接触MPEG-4并正在小心翼翼地学习。我以FFMPEG作为参考。

  1. 我了解到所有的MPEG-4都被编码成NAL单元,并且关于FFMPEG的av_read_frame()函数返回一个NAL单元,这是对的吗?帧是一个NAL单元吗?(虽然它可以是多个NAL的组合)

  2. 我还看到h264_parser.c实现了一个名为h264_parse的函数,该函数调用parse_nal_units()。如果我需要获取NAL单元,我应该如何从我的主函数中使用parse_nal_units呢?

  3. av_parse_Parse2()函数是做什么的?它是否返回解码后的NAL单元?

  4. 或者,FFMPEG有一个-vbsf h264_mp4toannexb开关来转储原始的NAL单元,有人能帮我理解如何从我的主函数中使用相同的功能吗?

请帮帮我... -ash5

1个回答

4
对于问题1:以下文章中有链接,可以帮助你理解NALs是什么。 在H264中,NAL单元指的是什么? NALs被分为几种类型,根据类型不同可以包含解码参数(SPS、PPS)、增强信息(SEI)和视频样本(片头和数据)。来自广播传输流的一个常见序列可能是SPS、PPS、SEI、slice_header()、slice_data()、SEI、slice_header()、slice_data()。
您可能不需要理解ISO 14496-10第7.3节“表格形式的语法”对于您的应用程序来说。

谢谢Bob,我已经看过那个SO链接了。你有用过FFMPEG或其他库来解码单独的NAL单元并将它们合并成一帧图像吗? - 2ndlife
我没有。我的大部分视频操作都是在容器级别进行的。 - Mutant Bob

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接