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

ffx*_*sam 1 mp3 ffmpeg http-live-streaming

我一直在浏览网络和 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'
Run Code Online (Sandbox Code Playgroud)

但是所有的mp3文件我播放的时候都是乱码。

Gya*_*yan 5

这里有两个问题。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 在格式探测方面的问题。