DataHoarder
d8fbe580ce
All checks were successful
continuous-integration/drone/push Build is passing
|
||
---|---|---|
audio | ||
cgo | ||
hasher | ||
resources | ||
.drone.yml | ||
.gitignore | ||
.gitmodules | ||
go.mod | ||
go.sum | ||
Kirika.go | ||
Kirika_test.go | ||
LICENSE | ||
README.md |
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 | Containers | Decoder | Analyzer | Encoder | Notes |
---|---|---|---|---|---|
FLAC | FLAC, Ogg | ✅ | ✅ | ✅ | 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. |
Vorbis | Ogg | ✅ | - | ❌ | |
AAC | ADTS | ❌ | - | ✅ | Adjustable encoding bitrate and mode (LC, HEv2). |
Container packetizers supported
Container | Packetizer | Keep Mode | Sample Number |
---|---|---|---|
FLAC | ✅ | ✅ | ✅ |
TTA | ❌ | - | - |
MP3 | ✅ | ✅ | ✅ |
Ogg | ✅ | ✅ | ✅* |
ADTS | ✅ | ✅ | ✅ |
*Sample number (absolute granule position) of Ogg depends on underlying codec implementing it.
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