simple_decoder-0.1.1 has been yanked.
Simple Decoder
Rust-крейт для МАКСИМАЛЬНО лёгкого декодирования и обработки аудио.
Quick Start
Всё, что нужно для счастья:
use SimpleDecoder;
use AudioDecoder;
Основные сущности
SimpleDecoder— универсальный комбайн. Находится в корне, сам определяет формат файла..decode(&[u8])— основной метод, возвращает структуруAudioTrack.AudioTrack— контейнер с сырыми данными (f32) и методами трансформации.
Архитектура проекта
Библиотека построена на базе symphonia (декодинг) и rubato (ресемплинг).
SimpleDecoderError— перечисление всех возможных бед.SimpleDecoder— точка входа.audio:AudioTrack— структура с PCM-данными.AudioFormat— перечисление форматов (MP3, WAV, FLAC и т.д.).
decoders(специализированные декодеры):aac:AACDecoderflac:FLACDecodermp3:MP3Decoderoggopus:OGGOpusDecoderoggvorbis:OGGVorbisDecodersimple:SimpleDecoderwav:WAVDecoder
Powerful Transformations
После декодирования доступен Chain API для подготовки аудио к воспроизведению:
let track = decoder.decode?
.resample? // Высококачественный FFT ресемплинг
.rechannel; // Изменение количества каналов
Методы AudioTrack
| Метод | Описание |
|---|---|
.resample(target_rate) |
Изменяет частоту дискретизации. Использует Sinc-интерполяцию (FFT). |
.rechannel(target_channels) |
Изменяет кол-во каналов. Считает среднее при Downmix (Stereo -> Mono). |
.pcm |
Прямой доступ к Vec<f32> (Interleaved PCM). |
.format |
Возвращает исходный формат файла (AudioFormat). |
.channels |
Текущее количество каналов (u16). |
.sample_rate |
Текущая частота дискретизации (u64). |
Лицензия
Максимально просто — MIT.