在avformat_alloc_output_context2中使用什么format_name?

时间:2013-01-05 22:58:15

标签: c ffmpeg encode x264

任何人都可以从this FFMPEG教程示例中生成可读的H264文件吗?我唯一改变的是第350行的输出格式:

avformat_alloc_output_context2(&oc, NULL, "h264", filename);

使用FFMPEG 1.0.1 + libx64 v129运行它会生成6MB .3gp文件,大多数播放器(包括VLC)都无法读取该文件。当我加载它时,我可以看到它包含所有帧,我可以解码并成功查看它们,但由于某些原因,大多数玩家将无法打开它。

有人有更多的成功吗?

1 个答案:

答案 0 :(得分:3)

输出格式应该引用容器,而不是使用的编解码器。你在做什么相当于编码(在命令行上)到扩展名为“.h264”的文件名。这将生成原始 H.264文件(无容器)。许多玩家应该能够处理这个,但可能无法探测它,他们会依靠扩展来弄清楚它是什么。如果您有一个以.3gp扩展名保存的原始文件,则会失败。尝试将格式设置为“.3gp”或更好,同时保留格式为NULL并让ffmpeg从文件名中猜测:)