[Libav-user] Live update of song name in audio livestream

stef at stef.link stef at stef.link
Fri Oct 15 13:58:15 EEST 2021


I use libav to live stream audio. Is it possible to put live metadata 
updates in that stream?

For example, if I listen to some radio station's live stream with VLC 
player, I see the name and artist of the song currently playing.  This 
information updates instantly when the song is changed.  I want 
listeners of my audio stream to similarly see a text of my choosing that 
can be changed at any time during the stream.  I know this is 
theoretically possible, because the streaming tool called 'butt' [0] can 
do this.

My application generates audio data which I encode with libavcodec (with 
an encoder of the user's choosing).  That audio data is then sent to an 
Icecast server using libavformat.

Icecast expects metadata to be embedded into the stream [1] for 
Icecast-supported formats [2].  Does this mean that the encoder should 
be responsible for sending along the metadata? If so, how would I 
achieve this with FFmpeg?

Thanks in advance,

Stef Gijsberts

[0]: https://danielnoethen.de/butt/

[1]: "Metadata is expected to be embedded into the stream. For legacy 
formats (MP3, AAC...) metadata can't be included in the stream, so it 
has to be updated out of band using the metadata update endpoint in 
Icecast admin to do so."

[2]: "It supports Ogg (Vorbis, Theora), Opus, FLAC and WebM (VP8/VP9)"

More information about the Libav-user mailing list