【发布时间】:2011-11-03 14:56:09
【问题描述】:
好的,就是这样,我实际上想从 mov 文件中解析帧。获取编码的 h264 帧。我已经通过使用 ffmpeg 设法做到了,但是当我尝试使用ffmpeg -i test* test.mov 再次制作电影时,我得到了test00: Invalid data found when processing input,所以帧的结构有些不正确。据我了解,框架应具有以下外观:
00 00 00 01 XX 数据 -------------
其中 XX 表示它是 I-、P- 还是 B- 帧。或更具体地说,type(XX) = 0x0F && XX 表示它是 I(type(XX) = 5?),P(type(XX) = 7?) 还是 B(type(XX) = 8?) 帧。我不确定这些数字,我一直在寻找它,但没有找到好的来源。所以这是第一个问题,不同帧的 NALU 应该是多少?
无论如何,当我在 mov 文件上使用 av_read_frame 时,我得到的帧看起来像这样:
4B = 大小,1B = XX,然后是数据。 (至少这是我认为我得到的)
当我在十六进制编辑器中查看它们时,我存储框架的文件总是 size 长(当然,否则也是如此)。并且 XX 在第一帧中始终为 65(即 type(XX) = 5),然后在几帧中为 61(即 type(XX) = 1),然后在一帧中返回为 65,依此类推。
我猜这些帧是这样的:I P P P P P P I P P P P P P P I P P P P P P P .... 但是,我对不同帧类型的类型编号的假设是错误的,这很有可能。 (关于阅读这方面的任何建议?除了 ISO/IEC 14496-10,我真的不明白)。
我尝试删除大小并在 XX 字节和数据之前附加 00 00 00 01 但没有成功。关于如何将帧修改为有效的 H264 编码帧的任何提示?
【问题讨论】:
标签: parsing encoding ffmpeg h.264 decoding