如何使用ffmpeg将音频文件拆分为与HLS兼容的块? (mp3格式)

时间:2019-01-25 17:06:12

标签: ffmpeg mp3 hls

我一直在遍及整个Web和StackOverflow,但是无法正常工作。我有一个音频文件,我想将其拆分为mp3文件并生成相应的m3u8文件。

我已经尝试过了,这是最接近的:

ffmpeg -i sometrack.wav -c:a libmp3lame -b:a 256k -map 0:0 -f segment -segment_time 10 -segment_list outputlist.m3u8 -segment_format mpegts 'output%03d.mp3'

但是当我播放它们时,所有的mp3文件都是乱码。

1 个答案:

答案 0 :(得分:2)

这里有两个问题。 FFmpeg通常会查看输出文件的扩展名以确定输出容器。但是,当对段混合器强制输出格式为-segment_format或对大多数其他格式强制输出格式为-f format时,ffmpeg会注意这一点,而不再关注扩展名。在这种情况下,segment_format设置为mpegts,因此输出文件将是这样。为了确保有效的mp3文件,请将segment_format设置为mp3。

第二个问题是,由于扩展名是mp3,我的猜测是hls.js无法正确确定段的格式,或者它假定格式错误,并尝试以这种方式解析它们。无论哪种方式,浏览器控制台中都应该有一些消息可以达到这种效果。有关hls.js在格式探测方面遇到的问题,请参见https://github.com/video-dev/hls.js/pull/1190