【问题标题】:How to generate fragmented mp4 files programmatically如何以编程方式生成碎片化的 mp4 文件
【发布时间】:2016-03-29 12:10:30
【问题描述】:

我有一个媒体 .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 文件,而不是创建另一个进程来执行此操作。

谢谢。

【问题讨论】:

  • 你能解释一下为什么生成另一个进程是个坏主意吗?
  • 来自 ffmpeg 项目的 libavformat。
  • 您是否成功以编程方式生成碎片化的 MP4?可以举个例子吗?

标签: c++ video ffmpeg mp4 bento


【解决方案1】:

更详细:

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 是使用 avformat_alloc_output_context2avio_open 函数打开输出文件时获得的 AVFormatContext 的指针。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-01
    • 1970-01-01
    • 2014-05-23
    • 1970-01-01
    • 2012-01-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多