[FFmpeg-devel] Icecast protocol implementation doesn't parse "/" as a valid mountpoint

c0re c0re at bmcs.one
Tue Jan 22 21:29:31 EET 2019

Hi all, 

Today as I tried to implement transcoding a videofeed to an icecast
audio-only stream I have encountered some behavior that, in my
opionion, leaves room for improvement.

The setup used in this scenario consists of 
* an Open Broadcaster Studio (OBS) instance sending a video/audio feed
* an nginx endpoint to receive and re-stream said feed to various
hosts (including localhost) 
* and lastly an AzuraCast (https://github.com/AzuraCast/AzuraCast)instance which employs Icecast2.4 for audio broadcasting. 

AzuraCast allows streamer/DJ accounts to live-broadcast to any of its
radio-stations by connecting through a Broadcasting software of your
choice (noteworthy mentions are BUTT or Mixxx) to a dedicated port
(e.g. 8005) and a static[1] mountpoint "/" and providing credentials. 

[1]static as in there is no easy way for me to change this design

The way in which the icecast protocol is currently implemented in
ffmpeg, it will check for characters after the trailing slash and
assume this as a valid mountpoint. 

A trailing slash by itself will always be discarded with the following

	"No mountpoint (path) specified!" 

see: https://ffmpeg.org/doxygen/2.5/icecast_8c_source.html 
[lines 157-161]

so icecast://source:pass@host:port/ is considered invalid by ffmpeg (I
cannot think of a quick and dirty workaround either). 

To my understanding assigning a lone slash as a mountpoint name isn't
considered invalid by the IceCast specification and therefore I
suggest that it would be an enhancement to lift this current
limitation on the way that mountpoints are parsed in an ffmpeg+icecast

kind regards,
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: This is a digitally signed message part
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20190122/6435906e/attachment.sig>

More information about the ffmpeg-devel mailing list