【问题标题】:How to create streamable audio file with ffmpeg?如何使用 ffmpeg 创建流式音频文件?
【发布时间】:2013-04-14 10:34:09
【问题描述】:

我正在尝试使用 FFMpeg 编写可流式传输(分段?)的 mp4 文件。但是-f mp4格式的FFMpeg bahavior的默认不是这个。

AAC-LC MP4 test file 为例,将其保存为aac_lc_in.m4a 并运行ffmpeg 命令:

ffmpeg -y -i aac_lc_in.m4a -strict -2 -codec copy -f mp4 aac_lc_out.m4a 

结果是一个不可流式传输的文件(将其放在服务器上并尝试在浏览器中加载它。它只有在完全下载后才会启动)。可以在下载完成之前启动的原始文件不会发生这种情况。

我也尝试过使用mp4 格式参数:

-movflags frag_keyframe+empty_moov
-movflags faststart+frag_keyframe
-movflags faststart+frag_keyframe+empty_moov
-movflags faststart+rtphint+frag_keyframe
-movflags rtphint+frag_keyframe
-movflags rtphint+frag_keyframe -rtpflags latm

但没有任何帮助。即使输出文件看起来与原始文件非常相似(文件格式框、示例表格框等),生成的文件也不是可流式传输的。

【问题讨论】:

    标签: stream ffmpeg audio-streaming mp4


    【解决方案1】:

    我找到了解决方案。仅将参数 -movflags faststart 用于 mp4 格式。完整的命令是:

    ffmpeg -i aac_lc_in.m4a -strict -2 -codec copy -f mp4 -movflags faststart aac_lc_out.m4a
    

    现在aac_lc_out.m4a文件在你点击播放后立即被浏览器播放。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-05-30
      • 2021-02-04
      • 1970-01-01
      • 2019-05-23
      • 2013-01-07
      • 1970-01-01
      • 2020-05-17
      相关资源
      最近更新 更多