3.6 KiB
3.6 KiB
Kirika
Collection of audio utilities for decoding/encoding files and streams.
- Not based on ffmpeg/libav/libavcodec/libavformat and alike
- Channel-based audio consumption/filter chain
- Raw sample analyzer channels
- AnalyzerChannel channels / mergers / splitters / trimmers
- Audio resampler
- Audio downmixing to stereo/mono
- Multi-codec decoder and encoder
- Multi-format packetizers
Codecs supported
Codec | Container | Decoder | Analyzer | Encoder | Notes |
---|---|---|---|---|---|
FLAC | FLAC | ✅ | ✅ | ✅ | Adjustable encoding compression level and block size. |
TTA | TTA | ✅ | ✅ | ✅ | Only 16bit encoding |
MP3 | MP3 | ✅ | - | ✅ | Adjustable encoding bitrate and mode. Decoding via minimp3, encoding via LAME. |
Opus | Ogg | ✅ | - | ✅ | Adjustable encoding bitrate. |
AAC | ADTS | ❌ | - | ✅ | Adjustable encoding bitrate and mode (LC, HEv2). |
Container packetizers supported
Container | Packetizer | Keep Mode | Sample Number |
---|---|---|---|
FLAC | ✅ | ✅ | ✅ |
TTA | ❌ | - | - |
MP3 | ✅ | ✅ | ✅ |
Ogg | ✅ | ✅ | ✅* |
ADTS | ✅ | ✅ | ❌ |
Dependencies
Go >= 1.18
libFLAC (required by goflac)
sudo apt install libflac-dev
libopus and libopusfile (required by go-pus)
sudo apt install libopus-dev libopusfile-dev
libopusenc (required by go-pus)
git clone --depth 1 https://github.com/xiph/libopusenc.git
cd libopusenc
./autogen.sh
./configure --prefix /usr
make
sudo make install
FDK AAC Codec Library (required by go-fdkaac)
git clone --depth 1 https://github.com/mstorsjo/fdk-aac.git
cd fdk-aac
./autogen.sh
./configure --prefix /usr
make -j$(nproc)
sudo make install
LAME (required by go-lame)
sudo apt install libmp3lame-dev
libsamplerate (required by gosamplerate)
sudo apt install libsamplerate0-dev