首页
/ Liquidsoap 2.3.3 版本发布:音频流媒体处理的重要更新

Liquidsoap 2.3.3 版本发布:音频流媒体处理的重要更新

2025-07-01 18:59:20作者:伍希望

Liquidsoap 是一款功能强大的音频流媒体处理工具,广泛应用于网络电台、流媒体服务器等场景。它支持多种音频格式的输入输出,具备灵活的脚本配置能力,能够实现复杂的音频处理流程。本次发布的 2.3.3 版本是 2.3.x 系列的第三个错误修复版本,主要解决了内存损坏导致的段错误问题,并带来了一些功能改进和优化。

关键修复与改进

内存损坏问题修复

2.3.3 版本最重要的修复是针对 lufs C 代码中导致的内存损坏问题。这个问题在 2.3.2 版本中引入,可能导致程序崩溃(segfault)。lufs 是用于音频响度测量的模块,对于需要精确控制音频响度的流媒体应用尤为重要。所有使用该功能的用户都应尽快升级到此版本。

OCaml 5.x 支持

这是 Liquidsoap 首次同时提供基于 OCaml 4.14.x 和 5.x 的构建版本。虽然目前 OCaml 5 版本的内存使用量仍然明显较高,尚不适合生产环境,但这一举措为未来的过渡奠定了基础。开发团队将持续优化 OCaml 5 版本的内存使用效率。

新功能与增强

SRT 输入支持 IPv6

input.srt 模块新增了 ipv6only 参数,允许绑定到纯 IPv6 地址。当 bind_address 设置为 IPv6 地址时,应将此参数设为 true。这增强了流媒体服务器在现代网络环境中的兼容性。

HLS 分段命名改进

现在 HLS 分段名称可以包含子目录,这为组织和管理大量分段文件提供了更大的灵活性,特别适合长期运行的流媒体服务。

FFmpeg 原始音频数据隐式转换

对 FFmpeg 原始音频数据的隐式转换支持使得使用原始 FFmpeg 格式编写脚本变得更加实用。这一改进简化了音频处理流程,降低了开发复杂度。

API 变更与行为调整

defer 函数改进

defer 函数现在可以直接操作通用的 source(audio=pcm('a)) 源,变得更加用户友好。原来的 defer 函数已重命名为 defer.pcm_s16 以保持向后兼容。

元数据映射默认值变更

metadata.map 函数的 strip 参数默认值改为 trueinsert_missing 参数默认值改为 false。同时新增了 settings.metadata.map.stripsettings.metadata.map.insert_missing 配置项,允许恢复之前的默认行为。

其他修复与优化

  • 修复了向 Shoutcast 服务器发送空元数据的问题
  • 自动关闭通过脚本值打开的文件描述符,并记录文件描述符泄漏警告
  • dtoolsduppyxmlplaylist 移入 Liquidsoap 代码库,不再需要单独安装这些依赖

总结

Liquidsoap 2.3.3 版本虽然是一个维护性更新,但解决了关键的内存安全问题,并带来了一些实用的功能改进。对于需要稳定运行的生产环境,特别是使用 lufs 功能的用户,建议尽快升级。同时,OCaml 5.x 支持的引入为未来的性能优化奠定了基础,值得开发者关注。

登录后查看全文
热门项目推荐
相关项目推荐