All Projects → stunndard → goicy

stunndard / goicy

Licence: other
AAC and MPEG (MP1, MP2, MP3) Icecast/Shoutcast source client written in Go

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to goicy

fridgefm-radio-core
Simple lightweight package for creating your own radio station via NodeJS heavily inspired by Shoutcast and Icecast.
Stars: ✭ 32 (-44.83%)
Mutual labels:  mp3, icecast, shoutcast
Mediafile
A unified reader of metadata from audio & video files.
Stars: ✭ 138 (+137.93%)
Mutual labels:  mp3, aac
Audiobookconverter
Improved AudioBookConverter based on freeipodsoftware release (mp3 to m4b converter)
Stars: ✭ 131 (+125.86%)
Mutual labels:  mp3, aac
Symphonia
Pure Rust multimedia format demuxing, tag reading, and audio decoding library
Stars: ✭ 191 (+229.31%)
Mutual labels:  mp3, aac
Webrtc apm
webrtc中apm相关代码的提取,包括AEC/NS/AGC/VAD ,另外还包括mp3/aac编码器、SoundTouch
Stars: ✭ 65 (+12.07%)
Mutual labels:  mp3, aac
Recordutil
support free record mp3 amr wav aac format可以录制android ios兼容的aac mp3格式切换录制格式也支持体积极少的amr格式,只需要改变工厂方法改变一句话就能实现,和iOS不撕逼录音,这是一个通用解决方案,你值得拥有!
Stars: ✭ 91 (+56.9%)
Mutual labels:  mp3, aac
Atldotnet
Fully managed, portable and easy-to-use C# library to read and edit audio data and metadata (tags) from various audio formats, playlists and CUE sheets
Stars: ✭ 180 (+210.34%)
Mutual labels:  mp3, aac
Ion.sound
JavaScript plugin for playing sounds and music in browsers
Stars: ✭ 694 (+1096.55%)
Mutual labels:  mp3, aac
Flacon
Audio File Encoder. Extracts audio tracks from an audio CD image to separate tracks.
Stars: ✭ 252 (+334.48%)
Mutual labels:  mp3, aac
icecast-parser
Node.js module for getting and parsing metadata from SHOUTcast/Icecast radio streams
Stars: ✭ 66 (+13.79%)
Mutual labels:  icecast, shoutcast
obplayer
📻 OBPlayer Streaming Automation Playout with CAP EAS Alerting
Stars: ✭ 93 (+60.34%)
Mutual labels:  icecast, shoutcast
Gogglesmm
Goggles Music Manager
Stars: ✭ 41 (-29.31%)
Mutual labels:  mp3, aac
Audioworks
A cross-platform, multi-format audio conversion and tagging suite
Stars: ✭ 35 (-39.66%)
Mutual labels:  mp3, aac
Av Converter
[av-converter.com] Audio and Video Converter, and YouTube downloader. Convert to MP3, MP4, AAC, FLAC, AC3, WAV, etc.
Stars: ✭ 97 (+67.24%)
Mutual labels:  mp3, aac
Esp8266audio
Arduino library to play MOD, WAV, FLAC, MIDI, RTTTL, MP3, and AAC files on I2S DACs or with a software emulated delta-sigma DAC on the ESP8266 and ESP32
Stars: ✭ 972 (+1575.86%)
Mutual labels:  mp3, aac
Audio Steganography Algorithms
A Library of Audio Steganography & Watermarking Algorithms
Stars: ✭ 146 (+151.72%)
Mutual labels:  mp3, aac
Youtube-DL-GUI
Graphical User Interace built around youtube-dl CLI
Stars: ✭ 38 (-34.48%)
Mutual labels:  mp3, aac
slibs
Single file libraries for C/C++
Stars: ✭ 80 (+37.93%)
Mutual labels:  mp3, aac
Freac
The fre:ac audio converter project
Stars: ✭ 518 (+793.1%)
Mutual labels:  mp3, aac
Esp32 Audioi2s
Play mp3 files from SD via I2S
Stars: ✭ 226 (+289.66%)
Mutual labels:  mp3, aac

goicy - AAC/AACplus/AACplusV2 & MP1/MP2/MP3 Icecast/Shoutcast source client

Screenshots

What's the point?

goicy is a small, portable and fast MPEG1/2/2.5 Layer1/2/3 and AAC/AACplus/AACplusV2 Icecast/Shoutcast source client written in Go. It is written to be extremely light-weight, cross-platform and easy to use. It is a complete rewrite in Go of my old source client called hz and written in Free Pascal: https://github.com/stunndard/hz

How it works?

goicy can work in two modes: ffmpeg and file. In ffmpeg mode goicy feeds audio files to ffmpeg which recodes them in realtime to AAC or MP3 format and sends the output to an Icecast or Shoutcast server.

In file mode goicy reads and parses AAC or MPEG (MP1, MP2, MP3) files and sends them to the server without any further processing.

What files are supported?

In ffmpeg mode: any format of file recognizable by ffmpeg is supported.

In file mode: AAC/AACplus/AACplusV2 and MPEG1/MPEG2/MPEG2.5 LayerI/II/III files can be streamed to a Icecast or Shoutcast server. All possible bitrates are fully supported, including CBR and VBR.

Tell me more.

  • Any audio files readable by ffmpeg are supported. All possible bitrates and their variations, including VBR.
  • Pretty precise timing.
  • Icecast and Shoutcast servers are fully supported.
  • Metadata updating supported. The metadata is read from ID3v1 and ID3v2 tags. It can also be read from cuesheets (.cue file with the same name as audio file).

What platforms are supported?

Linux and Windows at the moment.

What is required?

ffmpeg configured with --enable-libfdk-aac. Compile your own, or get the static compiled binaries, for example here: https://sourceforge.net/projects/ffmpeg-hi/

How do I install goicy?

The go get command will automatically fetch all dependencies required, compile the binary and place it in your $GOPATH/bin directory.

go get github.com/stunndard/goicy

How do I configure it?

Read goicy.ini. Tune it for your needs.

[stream]

; stream type
; must be 'file' or 'ffmpeg'
streamtype = ffmpeg
...

[ffmpeg]

; path to the ffmpeg executable
; can be just ffmpeg or ffmpeg.exe if ffmpeg is in PATH
; your ffmpeg should be compiled with libmp3lame and fdk_aac support enabled!
ffmpeg = ffmpeg-hi10-heaac

; sample rate in Hz
; ffmpeg will use its internal resampler
samplerate = 44100

; number of channels
; 1 = mono, 2 stereo
channels = 2

; AAC stream bitrate
bitrate = 192000

; AAC profile
; must be 'lc' for AAC Low Complexity (LC)
; 'he' for AAC SBR (High Efficiency AAC, HEAAC, AAC+, AACplus)
; 'hev2' for AAC SBR + PS (AACplusV2)
aacprofile = lc

Prepare your static playlist file, like:

/home/goicy/tracks/track1.mp3
/home/goicy/tracks/track2.flac
/home/goicy/tracks/track3.m4a
/home/goicy/tracks/track4.aac
/home/goicy/tracks/track5.ogg

Mixing different formats in one playlist is perfectly valid in ffmpeg mode!

How about a remote file, or a radio station?

http://your.server/your/music.mp3
https://your.box/your/music.mp4
http://your.icecast.radio/

Any input recognizable by ffmpeg is perfectly valid in ffmpeg mode So you can easily reencode and relay internet radios too.

In file mode, though, you can only use AAC or MP1/MP2/MP3 files:

/home/goicy/tracks/track1.aac
/home/goicy/tracks/track2.aac
/home/goicy/tracks/track3.aac
/home/goicy/tracks/track4.aac
/home/goicy/tracks/track5.aac

or

/home/goicy/tracks/track1.mp3
/home/goicy/tracks/track2.mp3
/home/goicy/tracks/track3.mp3
/home/goicy/tracks/track4.mp3
/home/goicy/tracks/track5.mp3

All files should be the same format, bitrate, samplerate and number of channels. Don't mix different format (MPx/AACx) or different samplerate in one playlist if goicy is set to file mode.

How do I run it?

goicy inifile, i.e.:

./goicy /etc/goicy/rock.ini
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].