我们希望减少从 wav 到 aac 的分段/编码的执行时间,使用 ffmpeg 分段并利用我们机器的所有内核生成 m3u8 播放列表,以进行 HTTP 实时流式传输。
在一个实验中,我让 ffmpeg 使用 libfdk_aac 直接将一个 wav 文件分段为 aac,但是它需要很长时间才能完成。
在第二个实验中,我让 ffmpeg 按原样(wav)分段一个 wav 文件,它非常快(在我们的机器上 < 1 秒),然后使用 GNU 并行执行 ffmpeg 再次将 wav 分段编码为 aac 并手动更改 . m3u8 文件而不更改其持续时间。这执行得更快,但是在流式传输输出音频时可以听到“静音”间隙。
我最初使用 mp3 尝试了第二种情况,结果还是一样的。虽然我读过 lame 在编码期间添加了填充(http://scruss.com/blog/2012/02/21/generational-loss-in-mp3-re-encoding/),但这是否意味着 libfdk_aac 也添加编码期间填充?
也许这与这个问题有关:如何在重建音频文件时对音频文件进行编码和分段,而不会在片段之间出现间隙(或音频弹出)?