Об этом проекте
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. Проект использует отдельные крейты для отдельных форматов и кодеков, а фичи управляют тем, какие компоненты компилируются. По умолчанию включены только безроялти-кодеки и форматы с открытыми стандартами, но фича `all` может включить всё.
Поддержка метаданных и тегов охватывает APEv1, APEv2, ID3v1, ID3v2, ISO/MP4, RIFF и комментарии Vorbis в FLAC и OGG. Библиотека также предоставляет базовые аудиопримитивы для эффективной работы с аудиоданными.
Symphonia подчёркивает безопасность и корректность. Она написана на 100% безопасном Rust, направлена на предотвращение атак типа «отказ в обслуживании» и проходит фаззинг-тестирование. Проект также предоставляет инструменты для отладки: `symphonia-play` для проверки, декодирования, валидации и воспроизведения медиапотоков, и `symphonia-check` для проверки декодированного вывода по сравнению с другими декодерами.
Библиотека модульная и позволяет регистрировать сторонние демультиплексоры и декодеры. Существующие сторонние адаптеры включают `symphonia-adapter-fdk-aac` для вариантов AAC через libfdk-aac и `symphonia-adapter-libopus` для Opus через libopus.
Symphonia лицензирована под MPL v2.0. Минимальная поддерживаемая версия Rust для релизов 0.6.x — 1.85. Основной автор — Филип Дельянов, и проект приветствует вклад.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.