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

How to use ffmpeg to split an audio file into HLS-compatible chunks? (mp3 format)

我一直在网上和 Whosebug 上寻找,但无法正常工作。我有一个音频文件,我想拆分成 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都是乱码

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

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