我正在使用c++中的ffmpeg将一些h264视频编码到mp4容器中。但是结果视频将moov原子(或元数据?)放在视频文件的末尾,这对于Internet流传输是不利的。
那么如何将moov原子的位置设置在前面呢?
最佳答案
您需要使用ffmpeg的faststart标志将moov原子放置在MP4文件的开头,Here是该标志的说明。以编程方式,您需要在输出上下文中设置该标志,这是示例代码及其对我的工作,
AVFormatContext *outFormatCtx;
// Write MOOV atom at the begining of the MP4 file
MOVMuxContext *mov = NULL;
mov = (MOVMuxContext *)outFormatCtx->priv_data;
mov->flags |= FF_MOV_FLAG_FASTSTART;