如何以编程方式生成碎片化的mp4文件

How to generate fragmented mp4 files programmatically

本文关键字:mp4 文件 碎片 编程 方式生      更新时间:2023-10-16

我有一个media.h264直播服务器,希望将.h264帧复用到碎片化的mp4文件中。我想知道有没有图书馆可以支持这一点?

据我所知,ffmpeg.exe和Bento4可以支持这一点,但我想在我的代码中使用一个库来实现这一功能,而不是执行另一个进程。

为了说明我的观点,我想生成分段的mp4文件,这可以通过执行下面的ffmpeg.exe来实现,

ffmpeg -i xx.h264 
        -vcodec copy -an -f mp4 -reset_timestamps 0 
        -movflags empty_moov+default_base_moof+frag_keyframe -loglevel quiet 
        xxx.mp4"

我想在我的代码中复用mp4文件,而不是创建另一个进程来做这件事。

谢谢。

更多详细信息:

AVDictionary* opts = NULL;
av_dict_set(&opts, "movflags", "frag_keyframe+empty_moov", 0);

然后:

//init muxer, write output file header
avformat_write_header(formatContext, &opts);

其中formatContext是使用以下函数打开输出文件时获得的AVFormatContext的指针:avformat_alloc_output_context2avio_open