Difficulty saving a video

Sam Kuper sam.kuper at uclmail.net
Mon Jul 18 00:36:56 EDT 2011


On 18 July 2011 02:33, Nigel Taylor <njtaylor at asterisk.demon.co.uk> wrote:
> You can also use rtmpsrv (supplied with rtmpdump), this then captures
> browser requests and uses them as parameters for rtmpdump.

Nifty! Or at least, it would be if rtmpsrv worked on my Mac. As it is,
it just outputs:

RTMP Server 2.3
(c) 2010 Andrej Stepanchuk, Howard Chu; license: GPL

Streaming on rtmp://0.0.0.0:1935

And that's all, even when the video is streaming in Firefox. Not sure
why it's not working, though. Changing the Apple Firewall settings to
"Allow incoming connections" didn't seem to make a difference.

(Anyone know, incidentally, whether it's necessary to set the firewall
that way for rtmpsrv to work? I normally don't allow incoming
connections but edited the rule in this case to see if it helped.)

> If you compare,
> get_iplayer is not passing the correct parameters to rtmpdump, which why you
> get the access error.

Aha! Thank you for pointing this out. Is this a bug in get_iplayer? If
so, ought it to be reported somewhere, or is this mailing list thread
sufficient?

> $ rtmpsrv
> RTMP Server v2.4
> (c) 2010 Andrej Stepanchuk, Howard Chu; license: GPL
>
> Streaming on rtmp://0.0.0.0:1935
> WARNING: Trying different position for client digest!
>
> rtmpdump -r "rtmp://195.59.58.142:1935/ondemand?_fcs_vhost=cp54782.edgefcs.net&auth=daEbYaWcWd5aQcXd7aUd1cWdid1cpcJdzaJ-boi4kz-bWG-BntFIqDnHDwHwwI&aifp=v001&slist=secure/s_geog/s_geog_ec_03049_16x9_bb" -a "ondemand?_fcs_vhost=cp54782.edgefcs.net&auth=daEbYaWcWd5aQcXd7aUd1cWdid1cpcJdzaJ-boi4kz-bWG-BntFIqDnHDwHwwI&aifp=v001&slist=secure/s_geog/s_geog_ec_03049_16x9_bb" -f "LNX 10,2,152,27" -W "http://www.bbc.co.uk/emp/revisions/18269_21576_10player.swf?revision=18269_21576" -p "http://www.bbc.co.uk/learningzone/clips/thermal-imagery-in-the-desert/3204.html" -C B:0 -y "secure/s_geog/s_geog_ec_03049_16x9_bb" -o s_geog_ec_03049_16x9_bb.flv

I hoped that copying that line and pasting it into Terminal would
work, but it just yielded:

RTMPDump 2.3
(c) 2010 Andrej Stepanchuk, Howard Chu, The Flvstreamer Team; license: GPL
Connecting ...
INFO: Connected...
ERROR: rtmp server sent error
ERROR: rtmp server requested close


So I tried it with --verbose, which gave:


RTMPDump 2.3
(c) 2010 Andrej Stepanchuk, Howard Chu, The Flvstreamer Team; license: GPL
DEBUG: Protocol : RTMP
DEBUG: Hostname : 195.59.58.142
DEBUG: Port     : 1935
DEBUG: Playpath : secure/s_geog/s_geog_ec_03049_16x9_bb
DEBUG: tcUrl    :
rtmp://195.59.58.142:1935/ondemand?_fcs_vhost=cp54782.edgefcs.net&auth=daEbYaWcWd5aQcXd7aUd1cWdid1cpcJdzaJ-boi4kz-bWG-BntFIqDnHDwHwwI&aifp=v001&slist=secure/s_geog/s_geog_ec_03049_16x9_bb
DEBUG: swfUrl   :
http://www.bbc.co.uk/emp/revisions/18269_21576_10player.swf?revision=18269_21576
DEBUG: pageUrl  :
http://www.bbc.co.uk/learningzone/clips/thermal-imagery-in-the-desert/3204.html
DEBUG: app      :
ondemand?_fcs_vhost=cp54782.edgefcs.net&auth=daEbYaWcWd5aQcXd7aUd1cWdid1cpcJdzaJ-boi4kz-bWG-BntFIqDnHDwHwwI&aifp=v001&slist=secure/s_geog/s_geog_ec_03049_16x9_bb
DEBUG: flashVer : LNX 10,2,152,27
DEBUG: live     : no
DEBUG: timeout  : 30 sec
DEBUG: SWFSHA256:
DEBUG: 75 6e f5 b1 b3 3f 59 e8 86 80 ba 06 bc bc 96 7e
DEBUG: 34 46 8c 82 11 9d f9 e3 78 99 65 51 3e 7e 57 f5
DEBUG: SWFSize  : 1023131
DEBUG: Setting buffer time to: 36000000ms
Connecting ...
DEBUG: RTMP_Connect1, ... connected, handshaking
DEBUG: HandShake: Client type: 03
DEBUG: HandShake: Client digest offset: 244
DEBUG: HandShake: Initial client digest:
DEBUG: 47 9a 4f a6 2c 78 dd 64 93 22 75 e3 9d fe b5 73
DEBUG: 48 21 1d 7d 58 cc 75 c7 87 59 9a ad e5 fc 6a 6b
DEBUG: HandShake: Type Answer   : 03
DEBUG: HandShake: Server Uptime : 16475685
DEBUG: HandShake: FMS Version   : 3.5.6.1
DEBUG: HandShake: Calculated digest key from secure key and server digest:
DEBUG: f7 2c 61 64 4d e1 e7 e9 22 78 2d c9 e3 d7 88 01
DEBUG: 1f 06 14 37 80 26 da 0e 3a d9 f5 aa 5c 2e 35 d2
DEBUG: HandShake: Client signature calculated:
DEBUG: df 5b dc 03 16 f0 1f 55 e2 27 26 32 1c 49 89 fe
DEBUG: b7 75 29 31 ad 19 93 f7 98 1f 73 04 b9 f2 37 15
DEBUG: HandShake: Server sent signature:
DEBUG: d2 d7 25 d9 23 5c ed 30 ca c1 a3 25 01 78 a8 28
DEBUG: 75 97 ec 6b d3 0a 57 89 2e cb 98 bd 7a b7 bf de
DEBUG: HandShake: Digest key:
DEBUG: b5 8a eb eb 26 7d 8e fa 58 9b 11 56 f2 ea b3 9d
DEBUG: ed cd a8 c3 71 50 f9 c3 d1 ca f0 51 39 f8 11 33
DEBUG: HandShake: Signature calculated:
DEBUG: d2 d7 25 d9 23 5c ed 30 ca c1 a3 25 01 78 a8 28
DEBUG: 75 97 ec 6b d3 0a 57 89 2e cb 98 bd 7a b7 bf de
DEBUG: HandShake: Genuine Adobe Flash Media Server
DEBUG: HandShake: Handshaking finished....
DEBUG: RTMP_Connect1, handshaked
DEBUG: Invoking connect
INFO: Connected...
DEBUG: RTMP_ClientPacket, received: invoke 134 bytes
DEBUG: (object begin)
DEBUG: Property: NULL
DEBUG: (object begin)
DEBUG: Property: <Name:              level, STRING:	error>
DEBUG: Property: <Name:               code,
STRING:	NetConnection.Connect.Rejected>
DEBUG: Property: <Name:        description, STRING:	[
AccessManager.Reject ] : Access denied!>
DEBUG: (object end)
DEBUG: (object end)
DEBUG: HandleInvoke, server invoking <_error>
ERROR: rtmp server sent error
DEBUG: RTMP_ClientPacket, received: invoke 18 bytes
DEBUG: (object begin)
DEBUG: Property: NULL
DEBUG: (object end)
DEBUG: HandleInvoke, server invoking <close>
ERROR: rtmp server requested close
DEBUG: Closing connection.


I wonder if the auth strings have to somehow match the requesting
machine? I.e. if they're hashes of some property of the client, like
IP address and maybe other stuff too? If so, that could explain why
the command rtmpsrv generated for you didn't work for me. If so, then
I guess either I need to somehow get rtmpsrv working (any
suggestions?) or maybe resort to WireShark or something, in order to
discover which variables are being passed to the server when my
browser views the video.

Am I on the right track, or barking up the wrong tree?

Thanks again for the help so far. We must be nearly there!

Sam



More information about the get_iplayer mailing list