这个项目能做什么
Symphonia是一个纯Rust音频解码和媒体解复用库。它专为需要读取常见媒体容器格式、提取元数据和标签,以及解码音频流而不依赖C库的应用程序而设计。
支持的容器格式包括AIFF、CAF、ISO/MP4、MKV/WebM、OGG和Wave。支持的音频编解码器包括AAC-LC、ADPCM、ALAC、FLAC、MP1、MP2、MP3、PCM和Vorbis。一些编解码器和格式仍在开发中,例如Opus、WavPack和HE-AAC变体。该项目为各个格式和编解码器使用单独的crate,功能标志控制编译哪些组件。默认情况下,仅启用免版税的开源标准编解码器和格式,但`all`功能标志可以启用所有内容。
元数据和标签支持涵盖APEv1、APEv2、ID3v1、ID3v2、ISO/MP4、RIFF,以及FLAC和OGG中的Vorbis注释。该库还提供基本的音频原语,用于高效操作音频数据。
Symphonia强调安全性和正确性。它完全用安全的Rust编写,旨在防止拒绝服务攻击,并经过模糊测试。该项目还提供调试工具:`symphonia-play`用于探测、解码、验证和播放媒体流,`symphonia-check`用于验证解码输出与其他解码器的一致性。
该库是模块化的,允许注册第三方解复用器和解码器。现有的第三方适配器包括` symphonia-adapter-fdk-aac`(通过libfdk-aac支持AAC变体)和`symphonia-adapter-libopus`(通过libopus支持Opus)。
Symphonia根据MPL v2.0许可证发布。0.6.x版本的最低支持Rust版本为1.85。主要作者是Philip Deljanov,项目欢迎贡献。
评论
0 评分人数达到10人后显示
登录后参与讨论。