fab*_*gua 2 video mpeg ffmpeg frame ffprobe
我正在尝试获取有关视频 (mp4) 帧中所有宏块的信息。特别是我正在使用ffmpeg命令:
ffmpeg -debug mb_type -i input.mp4 out.mp4 2> macroblocks.txt
Run Code Online (Sandbox Code Playgroud)
它似乎工作正常,但是......我不明白如何解析输出!
看到很多无趣的文字后,开始了一组以
“新框架,类型:[框架类型]”
所以我假设这些是指包含每个宏块类型的每个帧的块..但是里面的符号是什么意思?
新框架,类型:B [h264 @ 000001c0241c1cc0] d < X- < I > > > X ddddd < < d < d > < dd > d < ddd < > < d < > X < dd > d X d < > d X d > > d d+ d
从理论上我知道有内部或预测的宏块,但我不明白如何从“新帧”块中解析这些信息。
也经常有这样的句子
nal_unit_type:1(非 IDR 图片的编码切片),nal_ref_idc:2
或者
cur_dts 无效(如果它在每个流开始时发生一次,则无害)
我真的不明白......我也找不到文档......任何人都可以帮助我吗?
最好的文档似乎是源代码,目前从libavcodec/mpegutils.c 的第 196 行开始。我不会在这里复制所有内容,只要足以理解上面给出的示例行即可。
每个宏块由 3 个字符描述:
类型和运动矢量方向
IS_DIRECT && IS_SKIP!USES_LIST(0)- 对未来的引用(列表 1,B 切片)USES_LIST(0) && USES_LIST(1)- 参考过去和未来(列表 1 和 2,B 切片)!USES_LIST(1)- 参考过去(列表 0、P 或 B 切片)分割
IS_8X8IS_16X8IS_8X16IS_INTRA || IS_16X16交错
IS_INTERLACED在这方面同样有趣的是ffmpeg 本身内置的宏块类型可视化。
对于 NAL 单元类型,请参见此处的表 7-1。
| 归档时间: |
|
| 查看次数: |
2068 次 |
| 最近记录: |