Collection of audio utilities for decoding/encoding files and streams.
Go to file
DataHoarder 3cdb593d2c
All checks were successful
continuous-integration/drone/push Build is passing
Added format / decoder guesser
2022-03-06 14:52:01 +01:00
audio Added format / decoder guesser 2022-03-06 14:52:01 +01:00
cgo Proper FLAC byte reader, use buffered reader 2022-03-01 22:02:06 +01:00
hasher Added Hasher / Filter / Sink interfaces and implementation 2022-02-22 19:30:48 +01:00
resources Added Vorbis support 2022-03-05 11:09:24 +01:00
.drone.yml Update CI dependencies 2022-02-28 13:57:21 +01:00
.gitignore Initial commit 2022-02-22 10:35:08 +01:00
.gitmodules Addded samples submodule 2022-02-22 10:44:50 +01:00
go.mod Added Vorbis support 2022-03-05 11:09:24 +01:00
go.sum Added Vorbis support 2022-03-05 11:09:24 +01:00
Kirika.go Initial commit 2022-02-22 10:35:08 +01:00
Kirika_test.go Added format / decoder guesser 2022-03-06 14:52:01 +01:00
LICENSE Initial commit 2022-02-22 10:35:08 +01:00
README.md Added Vorbis support 2022-03-05 11:09:24 +01:00

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