2007-12-30, 16:54
The most recent work I can find on curl support for RTMP is here: http://osdir.com/ml/gnu.gnash.devel2/200...00278.html but it is only RTMPT (RTMP over HTTP, which iPlayer doesn't support). Note it's more than a year old. I don't have the C necessary to get a patch into curl, that's for sure. Strawp - have you seen something more recent?
RTMP is not protected as such, it's a proprietary streaming protocol which was apparently only reverse-engineered last year. In the case of iPlayer it streams FLV, which is a proprietary file format, but can be played back in mplayer, VLC etc. and can be re-encoded to whatever you prefer using mencoder or ffmpeg.
As my blog post said, I used a closed-source Windows tool called Replay Media Catcher to get the .flv file. You run the tool (which sits there waiting), then load the iPlayer video in your browser as normal, and it catches the network traffic, removes the RTMP headers and glues together the FLV body packet by packet. You can then save it out to somewhere on your HDD.
I got a very useful comment from Reinould Elhorst from the WiimediaPlayer project here, which is worth reading.
The RTMP protocol seems sufficiently well documented to allow a client in any language, it just needs someone to sit down and actually write it.
On the other hand, after a couple of minutes of trying, I don't seem to be able to recreate my initial experiment - that is to say there used to be a file at the location http://www.bbc.co.uk/mediaselector/3/str...er?pid=PID where PID is something like b008l1fp (Robin Hood) which would give you two parameters necessary to construct the RTMP URL - I can't get it to work any more (although I'm not on my main PC so I can't access the notes I made until the 2nd Jan) - I just get
<?xml version="1.0" encoding="utf-8"?>
<stream version="0.1">
<error id="notavailable"/>
</stream>
boo.
and finally, just to clarify:
"4. The Beeb provides an FLV source instead of RTMP. (Seems like a sticky topic to me)"
The Beeb *do* provide an FLV, it's just streamed over RTMP, not available as a direct download. Even over RTMPT (RTMP over HTTP) it would require a special client. For the purposes of the streaming iPlayer client, RTMP seems like a sensible choice. We should be grateful it's not RealPlayer
RTMP is not protected as such, it's a proprietary streaming protocol which was apparently only reverse-engineered last year. In the case of iPlayer it streams FLV, which is a proprietary file format, but can be played back in mplayer, VLC etc. and can be re-encoded to whatever you prefer using mencoder or ffmpeg.
As my blog post said, I used a closed-source Windows tool called Replay Media Catcher to get the .flv file. You run the tool (which sits there waiting), then load the iPlayer video in your browser as normal, and it catches the network traffic, removes the RTMP headers and glues together the FLV body packet by packet. You can then save it out to somewhere on your HDD.
I got a very useful comment from Reinould Elhorst from the WiimediaPlayer project here, which is worth reading.
The RTMP protocol seems sufficiently well documented to allow a client in any language, it just needs someone to sit down and actually write it.
On the other hand, after a couple of minutes of trying, I don't seem to be able to recreate my initial experiment - that is to say there used to be a file at the location http://www.bbc.co.uk/mediaselector/3/str...er?pid=PID where PID is something like b008l1fp (Robin Hood) which would give you two parameters necessary to construct the RTMP URL - I can't get it to work any more (although I'm not on my main PC so I can't access the notes I made until the 2nd Jan) - I just get
<?xml version="1.0" encoding="utf-8"?>
<stream version="0.1">
<error id="notavailable"/>
</stream>
boo.
and finally, just to clarify:
"4. The Beeb provides an FLV source instead of RTMP. (Seems like a sticky topic to me)"
The Beeb *do* provide an FLV, it's just streamed over RTMP, not available as a direct download. Even over RTMPT (RTMP over HTTP) it would require a special client. For the purposes of the streaming iPlayer client, RTMP seems like a sensible choice. We should be grateful it's not RealPlayer