我正在尝试将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
我想我想要的是:
(来源)
但是我似乎无法从那里得到这个ffmpeg
。
我发现了一些其他的选择在这里像
$ 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
但是玩这些并没有改变输出。
如何创建特定果汁的片段,例如每个片段约5秒?
音频流没有关键帧,这是MP4混合器默认用来划分片段边界的关键帧。您将必须设置片段持续时间。
ffmpeg -i input.mp3 -c:a aac -b:a 256k -f mp4 -movflags +empty_moov+separate_moof -frag_duration 10M output.mp4
faststart
适用于常规,无碎片的输出frag_keyframe
告诉ffmpeg从视频关键帧开始片段,但是您没有视频流。-strict experimental
自2016年以来,原生AAC编码器就不再需要。frag_duration
期望以微秒为单位的值。10M
= 1000万= 10秒。本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句