[rtmpsrc] rtmpsrc should work with advanced RTMP streams like rtmpdump (ex. streams requiring authentication)
Submitted by Damian Ziobro
Link to original bug (#787102)
Description
I have series of RTMP streams (unfortunately those are resticted streams so I cannot share URLs) which does not work with GStreamer's rtmpsrc.
I received NetStream.Play.StreamNotFound for my advanced RTMP streams.
I did investigation and I noticed that rtmpsrc does not support advanced setting up stream before playing it.
However I noticed that dumpsink does with my advanced RTMP streams if I use 'dumpsink -r' and does not work (StreamNotFound) when I use 'dumpsink -i'
I investigated code of dumpsink and I noticed that for advanced streams (-r option) it uses RTMP_SetupStream() function which allows much more configuration (ex. authentication) than RTMP_SetupURL() function (-i option).
I noticed that rtmpsrc uses RTMP_SetupURL() which explains why my advanced RTMP streams don't work with GStreamer rtmpsrc.
Therefore I decided to implement enhancement to rtmpsrc in order to be possible to play advanced RTMP streams in GStreamer.
I implemented using advanced RTMP_SetupStream() instead of simple RTMP_SetupURL().
With this patch my advanced RTMP streams work fine, as well as any other RTMP streams which I found on the web and tested:
rtmp://184.72.239.149/vod/BigBuckBunny_115k.mov
rtmp://s2pchzxmtymn2k.cloudfront.net/cfx/st/mp4:sintel.mp4
rtmpt://s2pchzxmtymn2k.cloudfront.net/cfx/st/mp4:sintel.mp4
I attach my patch with this implementation as it enhances GStreamer functionality by allowing to play more advanced RTMP streams.
I believe it may even solve this issue: https://bugzilla.gnome.org/show_bug.cgi?id=759863