我有一个媒体.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文件,而不是创建另一个进程来执行此操作。
感谢。
答案 0 :(得分:4)
更详细:
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_context2 和 avio_open 函数。
答案 1 :(得分:2)
libavformat和libavcodec是ffmpeg的基础库。您可能可以使用libavformat完成所需的一切。关于这些库的文档很少,但我记得,大多数理解都可以从头文件中找到。