2011-06-03 80 views
1

我只有h.264编码的视频流,我想制作mp4文件。我可以通过libavformat mux h264流m4(aac)没有libx264?

/*找到的mp4 */

m_pOutputFormat = av_guess_format( “MP4”,NULL,NULL)输出格式;

if(!m_pOutputFormat)return FALSE; //找不到合适的输出格式(mp4)。

关于这段代码,我得到MPEG视频编解码器不是h264,我认为这是因为我建立ffmpeg没有libx264。 (我不想用libx264构建ffmpeg许可证)

m_pOutputFormat-> video_codec = CODEC_ID_H264;

当我将其video_codec更改为CODEC_ID_H264时,它可以正常工作(kmplayer)。但它不适用于iPod,QuickTime。

此代码可能错误,因为它无法更改codec_tag值(此变量具有const属性)。


1.我怎样才能获得其他结果为av_guess_format( “MP4”,NULL,NULL)没有重新编译libav + libx264?

2.我怎样才能让MP4文件是否正确?

回答

0

我觉得你不需要libx264正确与H264流工作,因为libx264是编码器,我已经使用libav不libx264编译H264包工作。它适用于从文件读取数据包并将其写入另一个文件。

至于调用av_guess_format您可以为H264(视频/ H264例如或任何其他)提供适当的MIME类型或干脆放弃功能的另一短类型名称。这必须是正确的:av_guess_format(“h264”,NULL,NULL)。 (目标-C):http://libav-users.943685.n4.nabble.com/Libavcodec-encoding-with-libx264-td3250373.html