我通过使用Cairo渲染帧来创建AVI file。 AVI生成代码为part of an OCaml library。但是,ffmpeg和vlc都只产生第一帧。如果我剪切avi标头并使用ffplay和正确的编解码器选项,我可以很好地观看电影。
是什么导致ffmpeg认为这个文件只有一个框架?
文件的标题如下所示:
0000000 4952 4646 d0e0 0278 5641 2049 494c 5453
0000010 00c0 0000 6468 6c72 7661 6869 0038 0000
0000020 a2c2 0000 0000 0000 0000 0000 0100 0000
0000030 003c 0000 0000 0000 0001 0000 0000 0000
0000040 01e0 0000 01e0 0000 0000 0000 0000 0000
0000050 0000 0000 0000 0000 494c 5453 0074 0000
0000060 7473 6c72 7473 6872 0038 0000 6976 7364
0000070 4752 2042 0000 0000 0000 0000 0000 0000
0000080 000a 0000 00f0 0000 0000 0000 003c 0000
0000090 2000 00fd 0000 0000 0001 0000 0000 0000
00000a0 01e0 01e0 7473 6672 0028 0000 0028 0000
00000b0 01e0 0000 01e0 0000 0001 0018 0000 0000
00000c0 8c00 000a 0000 0000 0000 0000 0000 0000
00000d0 0000 0000 494c 5453 d00c 0278 6f6d 6976
00000e0 3030 6364 d000 0278 0000 0000 0000 0000
00000f0 0000 0000 0000 0000 0000 0000 0000 0000
答案 0 :(得分:2)
我找到了答案。我读过的文档中没有提到的是流本身需要编码为CHUNKS列表。 所以每一帧都应该是一个CHUNK。这当然在原则上是不必要的,但似乎是一个非常普遍的惯例。