Liquidsoap 2.3.3 版本发布:音频流媒体处理的重要更新
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 参数默认值改为 true,insert_missing 参数默认值改为 false。同时新增了 settings.metadata.map.strip 和 settings.metadata.map.insert_missing 配置项,允许恢复之前的默认行为。
其他修复与优化
- 修复了向 Shoutcast 服务器发送空元数据的问题
- 自动关闭通过脚本值打开的文件描述符,并记录文件描述符泄漏警告
- 将
dtools、duppy和xmlplaylist移入 Liquidsoap 代码库,不再需要单独安装这些依赖
总结
Liquidsoap 2.3.3 版本虽然是一个维护性更新,但解决了关键的内存安全问题,并带来了一些实用的功能改进。对于需要稳定运行的生产环境,特别是使用 lufs 功能的用户,建议尽快升级。同时,OCaml 5.x 支持的引入为未来的性能优化奠定了基础,值得开发者关注。
GLM-5智谱 AI 正式发布 GLM-5,旨在应对复杂系统工程和长时域智能体任务。Jinja00
GLM-5-w4a8GLM-5-w4a8基于混合专家架构,专为复杂系统工程与长周期智能体任务设计。支持单/多节点部署,适配Atlas 800T A3,采用w4a8量化技术,结合vLLM推理优化,高效平衡性能与精度,助力智能应用开发Jinja00
jiuwenclawJiuwenClaw 是一款基于openJiuwen开发的智能AI Agent,它能够将大语言模型的强大能力,通过你日常使用的各类通讯应用,直接延伸至你的指尖。Python0203- QQwen3.5-397B-A17BQwen3.5 实现了重大飞跃,整合了多模态学习、架构效率、强化学习规模以及全球可访问性等方面的突破性进展,旨在为开发者和企业赋予前所未有的能力与效率。Jinja00
AtomGit城市坐标计划AtomGit 城市坐标计划开启!让开源有坐标,让城市有星火。致力于与城市合伙人共同构建并长期运营一个健康、活跃的本地开发者生态。01
awesome-zig一个关于 Zig 优秀库及资源的协作列表。Makefile00