【问题标题】:Create fragmented MP4 from MP3从 MP3 创建碎片化的 MP4
【发布时间】:2021-02-07 13:22:02
【问题描述】:

我正在尝试将 MP3 文件转换为片段的 MP4,如下所示:

ffmpeg -i input.mp3 -strict experimental -acodec aac -b:a 256k -f mp4 \
       -movflags faststart+frag_keyframe+empty_moov+separate_moof output.mp4 

但是,使用Bento4 我可以看到只有一个 巨型mdat 对象,而不是一系列对象:

[ftyp] size=8+24
  major_brand = isom
  minor_version = 200
  compatible_brand = isom
  compatible_brand = iso2
  compatible_brand = iso6
  compatible_brand = mp41
[moov] size=8+701
  ...
[moof] size=8+62364
  ...
[mdat] size=8+5794679
[mfra] size=8+59
  [tfra] size=12+31, version=1
    track_ID = 1
    length_size_of_traf_num = 0
    length_size_of_trun_num = 0
    length_size_of_sample_num = 0
  [mfro] size=12+4
    mfra_size = 67

我想我想要的是这样的:

(source)

但我似乎无法从 ffmpeg 获得此信息。

我发现了一些其他选项here 喜欢

$ ffmpeg -h muxer=ismv
...
-frag_duration     <int>   E.... Maximum fragment duration
-min_frag_duration <int>   E.... Minimum fragment duration
-frag_size         <int>   E.... Maximum fragment size

但是玩弄这些并没有改变输出。

如何创建特定 sice 的片段,例如每次约 5 秒?

【问题讨论】:

    标签: ffmpeg mp3 mp4 fmp4


    【解决方案1】:

    音频流没有关键帧,这是 MP4 复用器默认依赖的来划分片段边界。您必须设置片段持续时间。

    ffmpeg -i input.mp3 -c:a aac -b:a 256k -f mp4 -movflags +empty_moov+separate_moof -frag_duration 10M output.mp4

    注意:

    1. faststart 适用于常规的非分段输出
    2. frag_keyframe 告诉 ffmpeg 在 video 关键帧处开始片段,但您没有视频流。
    3. 自 2016 年以来,原生 AAC 编码器不再需要 -strict experimental
    4. frag_duration 需要一个以微秒为单位的值。 10M = 1000 万 = 10 秒。

    【讨论】:

    • 不幸的是,这个结果在 Chrome 下无法播放。我设法使用faststart+frag_every_frame+empty_moov+separate_moof 获得了一些可玩的东西,但在这里我无法控制frag_duration。在这种情况下,该论点似乎被忽略了。
    • 适用于 Chrome 86 和 FF 82。分享完整日志。
    • 您是否在分段模式下使用 MSE SourceBuffer?
    • 我只是在这些浏览器中加载本地文件。
    • 是的,就是这样。如果你这样做,即使是 MP3 也可以在 Firefox 上运行。但是,如果您使用它,他们称之为媒体源扩展(MSE)就不会了。我需要它来部分加载音频文件,而不是在播放之前下载整个文件。每个浏览器都有自己的 crp 来解决问题。对不起,它不再有趣了..
    猜你喜欢
    • 2014-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-28
    • 2012-01-26
    • 1970-01-01
    • 2020-12-31
    相关资源
    最近更新 更多