Adding in --realtime (-R) should help.

Without it, rtmpdump tries to pause/unpause the stream when it sees an empty buffer, and the server doesn't seem to like that.


On Sun, Apr 20, 2014 at 2:43 PM, Zeev Tarantov <zeev.tarantov@gmail.com> wrote:
This page plays a video stream:

http://www.imeche.org/video-pay/reaction-engines

I've used rtmpsrv to generate this command:

rtmpdump -r "rtmp://lbw.flash.streamuk.com:1935/StreamConnectOnDemand" -a "StreamConnectOnDemand" -f "LNX 11,2,202,350" -W "http://scpro.streamuk.com/flash/main.swf?wId=f1993e8ab2520fbf0000482f41f21d8421c94cb187a250564457af39000000660000000053547ff241f2&wowLoad=true&updateTime=3000&playerroot=http://scpro.streamuk.com/flash/skins/&baseUrl=http://api.scpro.streamuk.com/&skinName=playerWhite_wide" -p "http://scpro.streamuk.com" -y "mp4:102/18479/20f15b96-3a0e-4f72-bfcc-67b5b58c4839_f2099c8a-150d-4c88-b26a-0c18f25214e5.mp4" -o 20f15b96-3a0e-4f72-bfcc-67b5b58c4839_f2099c8a-150d-4c88-b26a-0c18f25214e5.flv

To which I've appended "-e -V".

When invoked, rtmpdump begins to download the stream but it stops and starts downloading from many seconds before, and it never progresses much into the stream while it keeps appending sections it has downloaded already to the output file.

Compiling from git does not change this behavior.

Sample output:

72128.094 kB / 107.52 sec (2.3%)
DEBUG: HandleCtrl, received ctrl. type: 31, len: 6
DEBUG: HandleCtrl, Stream BufferEmpty 1
DEBUG: HandleCtrl, received ctrl. type: 32, len: 6
DEBUG: HandleCtrl, Stream BufferReady 1
DEBUG: HandleCtrl, received ctrl. type: 31, len: 6
DEBUG: HandleCtrl, Stream BufferEmpty 1
DEBUG: HandleCtrl, received ctrl. type: 32, len: 6
DEBUG: HandleCtrl, Stream BufferReady 1
DEBUG: HandleCtrl, received ctrl. type: 31, len: 6
DEBUG: HandleCtrl, Stream BufferEmpty 1
DEBUG: HandleCtrl, received ctrl. type: 1, len: 6
DEBUG: HandleCtrl, Stream EOF 1
DEBUG: RTMP_ClientPacket, received: invoke 302 bytes
DEBUG: (object begin)
DEBUG: Property: NULL
DEBUG: (object begin)
DEBUG: Property: <Name:              level, STRING:    status>
DEBUG: Property: <Name:               code, STRING:    NetStream.Pause.Notify>
DEBUG: Property: <Name:        description, STRING:    Pausing 102/18479/20f15b96-3a0e-4f72-bfcc-67b5b58c4839_f2099c8a-150d-4c88-b26a-0c18f25214e5.mp4.>
DEBUG: Property: <Name:            details, STRING:    102/18479/20f15b96-3a0e-4f72-bfcc-67b5b58c4839_f2099c8a-150d-4c88-b26a-0c18f25214e5.mp4>
DEBUG: Property: <Name:           clientid, NUMBER:    1656645808.00>
DEBUG: (object end)
DEBUG: (object end)
DEBUG: HandleInvoke, server invoking <onStatus>
DEBUG: HandleInvoke, onStatus: NetStream.Pause.Notify
DEBUG: RTMP_SendPause, 0, pauseTime=15948
DEBUG: Invoking pause
DEBUG: HandleCtrl, received ctrl. type: 4, len: 6
DEBUG: HandleCtrl, Stream IsRecorded 1
DEBUG: HandleCtrl, received ctrl. type: 0, len: 6
DEBUG: HandleCtrl, Stream Begin 1
DEBUG: RTMP_ClientPacket, received: invoke 306 bytes
DEBUG: (object begin)
DEBUG: Property: NULL
DEBUG: (object begin)
DEBUG: Property: <Name:              level, STRING:    status>
DEBUG: Property: <Name:               code, STRING:    NetStream.Unpause.Notify>
DEBUG: Property: <Name:        description, STRING:    Unpausing 102/18479/20f15b96-3a0e-4f72-bfcc-67b5b58c4839_f2099c8a-150d-4c88-b26a-0c18f25214e5.mp4.>
DEBUG: Property: <Name:            details, STRING:    102/18479/20f15b96-3a0e-4f72-bfcc-67b5b58c4839_f2099c8a-150d-4c88-b26a-0c18f25214e5.mp4>
DEBUG: Property: <Name:           clientid, NUMBER:    1656645808.00>
DEBUG: (object end)
DEBUG: (object end)
DEBUG: HandleInvoke, server invoking <onStatus>
DEBUG: HandleInvoke, onStatus: NetStream.Unpause.Notify
DEBUG: RTMP_ClientPacket, received: invoke 223 bytes
DEBUG: (object begin)
DEBUG: Property: NULL
DEBUG: (object begin)
DEBUG: Property: <Name:              level, STRING:    status>
DEBUG: Property: <Name:               code, STRING:    NetStream.Play.Start>
DEBUG: Property: <Name:        description, STRING:    Started playing 102/18479/20f15b96-3a0e-4f72-bfcc-67b5b58c4839_f2099c8a-150d-4c88-b26a-0c18f25214e5.mp4.>
DEBUG: Property: <Name:           clientid, NUMBER:    1656645808.00>
DEBUG: Property: <Name:         isFastPlay, BOOLEAN:    FALSE>
DEBUG: (object end)
DEBUG: (object end)
DEBUG: HandleInvoke, server invoking <onStatus>
DEBUG: HandleInvoke, onStatus: NetStream.Play.Start
DEBUG: RTMP_ClientPacket, received: notify 24 bytes
DEBUG: (object begin)
DEBUG: (object end)
DEBUG: ignoring too small audio packet: size: 0
DEBUG: RTMP_ClientPacket, received: notify 44 bytes
DEBUG: (object begin)
DEBUG: (object begin)
DEBUG: Property: <Name:               code, STRING:    NetStream.Data.Start>
DEBUG: (object end)
DEBUG: (object end)
DEBUG: RTMP_ClientPacket, received: notify 604 bytes
DEBUG: (object begin)
DEBUG: (object begin)
DEBUG: Property: <Name:          trackinfo, OBJECT>
DEBUG: (object begin)
DEBUG: (object begin)
DEBUG: Property: <Name:           language, STRING:    eng>
DEBUG: Property: <Name:          timescale, NUMBER:    25.00>
DEBUG: Property: <Name:             length, NUMBER:    114110.00>
DEBUG: Property: <Name:  sampledescription, OBJECT>
DEBUG: (object begin)
DEBUG: (object begin)
DEBUG: Property: <Name:         sampletype, STRING:    avc1>
DEBUG: (object end)
DEBUG: (object end)
DEBUG: (object end)
DEBUG: (object begin)
DEBUG: Property: <Name:           language, STRING:    eng>
DEBUG: Property: <Name:          timescale, NUMBER:    22050.00>
DEBUG: Property: <Name:             length, NUMBER:    100640768.00>
DEBUG: Property: <Name:  sampledescription, OBJECT>
DEBUG: (object begin)
DEBUG: (object begin)
DEBUG: Property: <Name:         sampletype, STRING:    mp4a>
DEBUG: (object end)
DEBUG: (object end)
DEBUG: (object end)
DEBUG: (object end)
DEBUG: Property: <Name:      audiochannels, NUMBER:    2.00>
DEBUG: Property: <Name:    audiosamplerate, NUMBER:    22050.00>
DEBUG: Property: <Name:     videoframerate, NUMBER:    25.00>
DEBUG: Property: <Name:             aacaot, NUMBER:    2.00>
DEBUG: Property: <Name:           avclevel, NUMBER:    30.00>
DEBUG: Property: <Name:         avcprofile, NUMBER:    100.00>
DEBUG: Property: <Name:       audiocodecid, STRING:    mp4a>
DEBUG: Property: <Name:       videocodecid, STRING:    avc1>
DEBUG: Property: <Name:              width, NUMBER:    640.00>
DEBUG: Property: <Name:             height, NUMBER:    360.00>
DEBUG: Property: <Name:         frameWidth, NUMBER:    640.00>
DEBUG: Property: <Name:        frameHeight, NUMBER:    360.00>
DEBUG: Property: <Name:       displayWidth, NUMBER:    640.00>
DEBUG: Property: <Name:      displayHeight, NUMBER:    360.00>
DEBUG: Property: <Name:          framerate, NUMBER:    25.00>
DEBUG: Property: <Name:       moovposition, NUMBER:    1170677745.00>
DEBUG: Property: <Name:           duration, NUMBER:    4564.40>
DEBUG: (object end)
DEBUG: (object end)
INFO: Metadata:
INFO: trackinfo:
INFO:   language              eng
INFO:   timescale             25.00
INFO:   length                114110.00
INFO: sampledescription:
INFO:   sampletype            avc1
INFO:   language              eng
INFO:   timescale             22050.00
INFO:   length                100640768.00
INFO: sampledescription:
INFO:   sampletype            mp4a
INFO:   audiochannels         2.00
INFO:   audiosamplerate       22050.00
INFO:   videoframerate        25.00
INFO:   aacaot                2.00
INFO:   avclevel              30.00
INFO:   avcprofile            100.00
INFO:   audiocodecid          mp4a
INFO:   videocodecid          avc1
INFO:   width                 640.00
INFO:   height                360.00
INFO:   frameWidth            640.00
INFO:   frameHeight           360.00
INFO:   displayWidth          640.00
INFO:   displayHeight         360.00
INFO:   framerate             25.00
INFO:   moovposition          1170677745.00
INFO:   duration              4564.40
72168.526 kB / 43.48 sec (0.9%)
DEBUG: HandleCtrl, received ctrl. type: 32, len: 6
DEBUG: HandleCtrl, Stream BufferReady 1
DEBUG: ignoring too small video packet: size: 2
74525.246 kB / 43.48 sec (0.9%)
DEBUG: ignoring too small video packet: size: 2
DEBUG: HandleCtrl, received ctrl. type: 31, len: 6
DEBUG: HandleCtrl, Stream BufferEmpty 1
DEBUG: RTMP_SendPause, 1, pauseTime=15960
DEBUG: Invoking pause
DEBUG: HandleCtrl, received ctrl. type: 32, len: 6
DEBUG: HandleCtrl, Stream BufferReady 1
74632.546 kB / 43.76 sec (0.9%)^C


See, it reached 107.52 sec into the stream and then it began to download from 43.76 sec into the stream.

The stream plays fine in Firefox using the flash player. It skips a bit, but it is progressing. I hoped rtmpdump would be able to wait for packets that take too long to arrive and to ask for lost packets to e transmitted again, enabling me to download a complete copy. But as-is, rtmpdump is useless.

Instead of asking for my money back, can anybody help? Are there arguments I can try? Are there patches I can try?

_______________________________________________
rtmpdump mailing list
rtmpdump@mplayerhq.hu
https://lists.mplayerhq.hu/mailman/listinfo/rtmpdump