.mp4视频文件中avcC框中的值是否仅受FFmpeg版本的影响?

时间:2015-11-05 16:55:45

标签: ffmpeg smartphone libavcodec

我正在研究视频文件的来源识别,特别是关于来自智能手机的视频文件。

我知道.mp4视频文件中avcC框中的值具有编码选项(h.264),解码器在处理编码流时必须知道这些选项。

我猜大多数智能手机都使用定制的FFmpeg来编码原始流。我想知道avcC框中的值是否仅受FFmpeg版本的影响(如果不使用自定义版本)。

我没有深入研究这个但是认为FFmpeg中的libavcodec.so在进行编码时会填充avcC框中的值(这是对的吗?)。

所以我想问的是,两个不同的智能手机是否使用相同的libavcodec.so(即使在其他.so文件,用于录制的.apk文件等不同的情况下)和两个视频文件从每个智能手机拍摄具有相同分辨率的分辨率,avcC框中的值是否相同? 我认为这个问题可能等于" avcC框中的值受其他FFmpeg库或整个Android框架中的其他层的影响"?

++还有一个问题!是否有任何情况下,来自同一智能手机的两个具有相同分辨率的视频在avcC框中具有不同的值? (我建议编码选项的区别源于低电池模式,其他应用程序的执行条件等,如果有任何核心开发人员为此定制FFmpeg。)

如果有人让我知道答案,那将是一个很大的帮助〜!

1 个答案:

答案 0 :(得分:0)

avcC框包含AVC流的带外额外数据。这样存储的方式不仅仅是分辨率,例如配置文件,级别,熵编码模式,颜色空间信息等。这是一个标准,ffmpeg只是实现了该标准。例如,iPhone生成完全有效的mp4文件,不使用libav * / ffmpeg。请仔细查看此处的avcC框Possible Locations for Sequence/Picture Parameter Set(s) for H.264 Stream