Audio/video stream recording forums (http://stream-recorder.com/forum/index.php)
-   rtmpdump (http://stream-recorder.com/forum/forumdisplay.php?f=54)
-   -  

Customized rtmpdump binaries with patch file

(http://stream-recorder.com/forum/showthread.php?t=16103)

gorilla.maguila 01-23-2014 09:33 AM

Re: Customized rtmpdump binaries with patch file


 
I was trying to figure out why a simple rtmpdump command was blocking with message:

Code:

onStatus.............level...error..code...NetConnection.Connect.Rejected
Then I realized that the error can be handled, avoiding blocking, adding:

Code:

if (AVMATCH(&code, &av_NetStream_Failed)
          || AVMATCH(&code, &av_NetStream_Play_Failed)
          || AVMATCH(&code, &av_NetStream_Play_StreamNotFound)
          || AVMATCH(&code, &av_NetConnection_Connect_Rejected)
          || AVMATCH(&code, &av_NetConnection_Connect_InvalidApp))

Does anybody know why this isn't included by default?

sunhouse2 02-03-2014 05:26 PM

Re: Customized rtmpdump binaries with patch file


 
can't get teledunet.com streams with rtmpdump anyone have a solution?

jhb50 02-09-2014 12:50 AM

Re: Customized rtmpdump binaries with patch file


 
@KSV

www.filmon.com recently changed their vod methodology.
Using MediaBox I get:

url: rtmp://flash-cloud.filmon.com/demand/storage/25/410/116548/mp4:116548.mp4
app: demand/storage/25/410/116548
extra:
flashVer: WIN 12,0,0,44
pageUrl: http://www.filmon.com/vod/view/5717-...-from-a-killer
swfUrl: http://www.filmon.com/tv/modules/Fil...layer.swf?v=48
tcUrl: rtmp://flash-cloud.filmon.com/demand/storage/25/410/116548
playPath: mp4:116548.mp4

which yields:
rtmpdump.exe -r "rtmp://flash-cloud.filmon.com/demand/storage/25/410/116548/mp4:116548.mp4" -y "mp4:116548.mp4" -p "http://www.filmon.com/vod/view/5717-0-letters-from-a-killer" -W "http://www.filmon.com/tv/modules/FilmOnTV/files/flashapp/filmon/FilmonPlayer.swf?v=48" -v -z -m 15 | ffplay.exe" -i -

but this fails with:
DEBUG: Property: <Name: code, STRING: NetConnection.Call.Failed>
DEBUG: Property: <Name: description, STRING: Method not found (FCSubscribe).>
DEBUG: (object end)
DEBUG: (object end)
DEBUG: HandleInvoke, server invoking <_error>
ERROR: rtmp server sent error

I think the "extra:" above implies additional info is required.

Can you help?

chap 02-09-2014 02:56 AM

Re: Customized rtmpdump binaries with patch file


 
Code:

rtmpdump -r "rtmp://flash-cloud.filmon.com/demand/storage/25/410/116548" -a "demand/storage/25/410/116548" -f "WIN 11,9,900,170" -W "http://www.filmon.com/tv/modules/FilmOnTV/files/flashapp/filmon/FilmonPlayer.swf" -p "http://www.filmon.com/vod/view/5717-0-letters-from-a-killer" -C O:1 -C O:0 -y "mp4:116548.mp4" -o "2014-02-09_11-55-38_mp4_116548.flv"

jhb50 02-09-2014 10:42 PM

Re: Customized rtmpdump binaries with patch file


 
@chap Thanks for the tip. Actually it turns out the c (conn) 's are not required, and it failed for me because I included a v (live) when it is a file.

So the minimum command that works is:
rtmpdump.exe -r "rtmp://flash-cloud.filmon.com/demand/storage/25/410/116548" -a "demand/storage/25/410/116548" -y "mp4:116548.mp4" -p "http://www.filmon.com/vod/view/5717-0-letters-from-a-killer" -W "http://www.filmon.com/tv/modules/FilmOnTV/files/flashapp/filmon/FilmonPlayer.swf?v=48"

Darby_Crash 02-20-2014 01:59 PM

Re: Customized rtmpdump binaries with patch file


 
Quote:

Originally Posted by gorilla.maguila (Post 64134)
Recently a user asked me how to dump a stream on:

http://beta.ddoss.me/pay_tv.php

So in case anyone is interested to make it work some lines need to be added to rtmp.c:

Code:

else if (strstr(pageUrl, "ddoss.me"))
{
    SendCommand(r, "r", FALSE);
    RTMP_SendCreateStream(r);
    SendGetStreamLength(r);
}

Then a simple rtmpdump command works:

Code:

rtmpdump -r rtmp://pc3oot.us.to:1935/live  -p http://beta.ddoss.me/pay_tv.php -W http://ni208114_1.vweb03.nitrado.net/playr.swf -y action

Where can i found a patch for this?

Code:

RTMPDump v2.4
(c) 2010 Andrej Stepanchuk, Howard Chu, The Flvstreamer Team; license: GPL
DEBUG: Parsing...
DEBUG: Parsed protocol: 0
DEBUG: Parsed host    : pc3oot.us.to
DEBUG: Parsed app    : live
DEBUG: Protocol : RTMP
DEBUG: Hostname : pc3oot.us.to
DEBUG: Port    : 1935
DEBUG: Playpath : cinema
DEBUG: tcUrl    : rtmp://pc3oot.us.to:1935/live
DEBUG: swfUrl  : http://ni208114_1.vweb03.nitrado.net/playr.swf
DEBUG: pageUrl  : http://streampiraten.ws/streams.php
DEBUG: app      : live
DEBUG: live    : yes
DEBUG: timeout  : 30 sec
DEBUG: SWFSHA256:
DEBUG: 7f 0c 9d f4 6a 5b 03 11 55 e5 6e f3 17 9e 7e 9a
DEBUG: 18 43 ca 75 6b ff 99 f1 7d aa 9b 41 38 1c e4 01
DEBUG: SWFSize  : 219602
DEBUG: Setting buffer time to: 36000000ms
Connecting ...
DEBUG: RTMP_Connect1, ... connected, handshaking
DEBUG: HandShake: Client type: 03
DEBUG: HandShake: Client digest offset: 417
DEBUG: HandShake: Initial client digest:
DEBUG: fb bf ce 94 38 1f be 42 e6 38 1b 3d 63 b2 82 8a
DEBUG: cc 76 58 a2 52 8a 36 85 08 ed d6 e8 52 e4 6e 7e
DEBUG: HandShake: Type Answer  : 03
DEBUG: HandShake: Server Uptime : 578056511
DEBUG: HandShake: FMS Version  : 4.5.0.1
DEBUG: HandShake: Calculated digest key from secure key and server digest:
DEBUG: a5 f0 9f 9f 4c 8d 5f 42 1d 08 7a b3 8c 8d 18 80
DEBUG: 75 54 0c 37 3a 85 56 13 03 44 b0 f0 8d 04 f7 ec
DEBUG: HandShake: Client signature calculated:
DEBUG: 24 a2 fc e1 4c 05 d5 1a 71 fa 09 19 49 e7 10 59
DEBUG: af 04 55 2e f9 26 b7 08 5e 8d f3 b9 75 d3 e5 dc
DEBUG: HandShake: Server sent signature:
DEBUG: ba 5d 0a 47 41 e0 01 03 f8 61 6c a3 94 6e b4 3e
DEBUG: 7f 32 5d 2a a5 8b 88 f5 c4 97 04 2d af 94 86 ac
DEBUG: HandShake: Digest key:
DEBUG: 15 d4 47 b3 03 8c eb e8 92 7f 69 49 08 df 30 85
DEBUG: a5 f1 d8 57 b1 61 38 0f 24 ce a2 55 2b 2b ba 2e
DEBUG: HandShake: Signature calculated:
DEBUG: ba 5d 0a 47 41 e0 01 03 f8 61 6c a3 94 6e b4 3e
DEBUG: 7f 32 5d 2a a5 8b 88 f5 c4 97 04 2d af 94 86 ac
DEBUG: HandShake: Genuine Adobe Flash Media Server
DEBUG: HandShake: Handshaking finished....
DEBUG: RTMP_Connect1, handshaked
DEBUG: Invoking connect
INFO: Connected...
DEBUG: HandleServerBW: server BW = 2500000
DEBUG: HandleClientBW: client BW = 2500000 2
DEBUG: HandleChangeChunkSize, received: chunk size change to 4096
DEBUG: RTMP_ClientPacket, received: invoke 240 bytes
DEBUG: (object begin)
DEBUG: Property: <Name:            no-name, STRING:      _result>
DEBUG: Property: <Name:            no-name, NUMBER:      1.00>
DEBUG: Property: <Name:            no-name, OBJECT>
DEBUG: (object begin)
DEBUG: Property: <Name:            fmsVer, STRING:      FMS/4,5,0,297>
DEBUG: Property: <Name:      capabilities, NUMBER:      255.00>
DEBUG: Property: <Name:              mode, NUMBER:      1.00>
DEBUG: (object end)
DEBUG: Property: <Name:            no-name, OBJECT>
DEBUG: (object begin)
DEBUG: Property: <Name:              level, STRING:      status>
DEBUG: Property: <Name:              code, STRING:      NetConnection.Connect.Success>
DEBUG: Property: <Name:        description, STRING:      Connection succeeded.>
DEBUG: Property: <Name:    objectEncoding, NUMBER:      3.00>
DEBUG: Property: <Name:              data, ECMA_ARRAY>
DEBUG: (object begin)
DEBUG: Property: <Name:            version, STRING:      4,5,0,297>DEBUG: (object end)
DEBUG: (object end)
DEBUG: (object end)
DEBUG: HandleInvoke, server invoking <_result>
DEBUG: HandleInvoke, received result for method call <connect>
DEBUG: sending ctrl, type: 0x0003
DEBUG: Invoking createStream
DEBUG: RTMP_ClientPacket, received: invoke 29 bytes
DEBUG: (object begin)
DEBUG: Property: <Name:            no-name, STRING:      _result>
DEBUG: Property: <Name:            no-name, NUMBER:      2.00>
DEBUG: Property: NULL
DEBUG: Property: <Name:            no-name, NUMBER:      1.00>
DEBUG: (object end)
DEBUG: HandleInvoke, server invoking <_result>
DEBUG: HandleInvoke, received result for method call <createStream>
DEBUG: FCSubscribe: cinema
DEBUG: Invoking FCSubscribe
DEBUG: SendPlay, seekTime=0, stopTime=0, sending play: cinema
DEBUG: Invoking play
DEBUG: sending ctrl, type: 0x0003
DEBUG: RTMP_ClientPacket, flex message, size 120 bytes, not fully supported
DEBUG: (object begin)
DEBUG: Property: <Name:            no-name, STRING:      _error>
DEBUG: Property: <Name:            no-name, NUMBER:      3.00>
DEBUG: Property: NULL
DEBUG: Property: <Name:            no-name, OBJECT>
DEBUG: (object begin)
DEBUG: Property: <Name:              level, STRING:      error>
DEBUG: Property: <Name:              code, STRING:      NetConnection.Call.Failed>
DEBUG: Property: <Name:        description, STRING:      Method not found (FCSubscribe).>
DEBUG: (object end)
DEBUG: (object end)
DEBUG: HandleInvoke, server invoking <_error>
ERROR: rtmp server sent error
DEBUG: HandleChangeChunkSize, received: chunk size change to 4096
DEBUG: RTMP_ClientPacket, received: invoke 144 bytes
DEBUG: (object begin)
DEBUG: Property: <Name:            no-name, STRING:      onStatus>
DEBUG: Property: <Name:            no-name, NUMBER:      151794.00>DEBUG: Property: NULL
DEBUG: Property: <Name:            no-name, OBJECT>
DEBUG: (object begin)
DEBUG: Property: <Name:              level, STRING:      error>
DEBUG: Property: <Name:              code, STRING:      NetStream.Play.Failed>
DEBUG: Property: <Name:        description, STRING:      Read access denied for stream cinema.>
DEBUG: Property: <Name:          clientid, STRING:      qAAPwRAA>
DEBUG: (object end)
DEBUG: (object end)
DEBUG: HandleInvoke, server invoking <onStatus>
DEBUG: HandleInvoke, onStatus: NetStream.Play.Failed
ERROR: Closing connection: NetStream.Play.Failed
DEBUG: Closing connection.

Edit:

With this mod, work but sometimes rtmpdump fail and don't run also with some teledunet stream (Linux):

Code:

else if (strstr(pageUrl, "streampiraten.ws"))
{
    SendCommand(r, "r", FALSE);
    RTMP_SendCreateStream(r);
    SendGetStreamLength(r);
}

Thanks gorilla.maguila!

Please KSV, can you compile a binary for Windows, also with this mod?

Darby_Crash 02-22-2014 04:06 PM

Re: Customized rtmpdump binaries with patch file


 
I've compiled rtmpdump with KSV's patch and streampiraten.ws's fix for Windows.

Code:

http://www.mediafire.com/download/cfdlwsqg9zg3c4s/RTMPDUMP+2.4+%2B+KSV+Patch+%2B+StreamPiraten.ws+Fix+%28Windows+32_64+bit%29.rar
64 bit version (MinGW) is 100% working.

32 bit version (Cygwin) need Cygwin's dll.

semerim 03-03-2014 01:49 PM

Re: Customized rtmpdump binaries with patch file


 
Quote:

Originally Posted by Darby_Crash (Post 64915)
I've compiled rtmpdump with KSV's patch and streampiraten.ws's fix for Windows.

Code:

http://www.mediafire.com/download/cfdlwsqg9zg3c4s/RTMPDUMP+2.4+%2B+KSV+Patch+%2B+StreamPiraten.ws+Fix+%28Windows+32_64+bit%29.rar
64 bit version (MinGW) is 100% working.

32 bit version (Cygwin) need Cygwin's dll.


Great catch! 64 bit version resolved an issue I had with this stream:
rtmp://evp.mm.uol.com.br/radioam_poa/_definst_/radioam_poa.sdp/radioam_poa

Would it be possible for you to compile a 32 bit version that runs natively and doesn't use Cygwin?
Thanks.

denobis 03-04-2014 06:14 AM

Re: Customized rtmpdump binaries with patch file


 
Thanks for your work KSV et alia.

When you calculate the SWFVerification token you must have the decompressed swf which in normal case is as simple as CWS. But what if you have a ZWS compressed swf? See

http://static1.tele-cinco.net/comun/...7e39b10cf57 8

It's already included this case? and if not, there is a possibility to implement lzma decompression?

denobis 03-04-2014 07:12 AM

Re: Customized rtmpdump binaries with patch file


 
Not implemented in hashswf

if (i->first)
{
i->first = 0;

/* compressed? */

if (!strncmp(p, "CWS", 3))
{
*p = 'F';
i->zlib = 1;
}

HMAC_crunch(i->ctx, (unsigned char *)p, 8);
p += 8;
len -= 8;
i->size = 8;
}

So the program fails when the swf is ZWS which it's managed as FWS


All times are GMT -6. The time now is 12:26 PM.