Hi,
The auth part depends on the IP address, so you can't cut and paste.
rtmpsvr requires you to directs the traffic to it.
On Debian (Linux)
I have a user rtmp, under which I run rtmpsrv. The traffic to port 1935
is redirected using iptables -
iptables -t nat -A OUTPUT -p tcp --dport 1935 -m owner \! --uid-owner rtmp \
-j REDIRECT
For mac don't have one to try this on..
sudo ipfw add 40 fwd 127.0.0.1,1935 tcp from any to any 1935
sudo ipfw add 40 fwd 127.0.0.1,1935 tcp from any to any 1935 not uid RTMP
See
http://stream-recorder.com/forum/use-rtmpdump-rtmpsrv-mac-os-x-t7662.html
Regards
Nigel Taylor
On 07/18/11 05:36, Sam Kuper wrote:
On 18 July 2011 02:33, Nigel Taylor<[email protected]> 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
_______________________________________________
get_iplayer mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/get_iplayer
_______________________________________________
get_iplayer mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/get_iplayer