<div dir="ltr"><div><div><div><div><div><div><div><div>This page plays a video stream:<br><br><a href="http://www.imeche.org/video-pay/reaction-engines">http://www.imeche.org/video-pay/reaction-engines</a><br><br></div>I've used rtmpsrv to generate this command:<br>
<br><span style="font-family:courier new,monospace">rtmpdump -r "rtmp://<a href="http://lbw.flash.streamuk.com:1935/StreamConnectOnDemand">lbw.flash.streamuk.com:1935/StreamConnectOnDemand</a>" -a "StreamConnectOnDemand" -f "LNX 11,2,202,350" -W "<a href="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">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</a>" -p "<a href="http://scpro.streamuk.com">http://scpro.streamuk.com</a>" -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</span><br>
<br></div>To which I've appended "<span style="font-family:courier new,monospace">-e -V</span>".<br><br></div>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.<br>
<br></div>Compiling from git does not change this behavior.<br><br></div>Sample output:<br><br><span style="font-family:courier new,monospace">72128.094 kB / 107.52 sec (2.3%)<br>DEBUG: HandleCtrl, received ctrl. type: 31, len: 6<br>
DEBUG: HandleCtrl, Stream BufferEmpty 1<br>DEBUG: HandleCtrl, received ctrl. type: 32, len: 6<br>DEBUG: HandleCtrl, Stream BufferReady 1<br>DEBUG: HandleCtrl, received ctrl. type: 31, len: 6<br>DEBUG: HandleCtrl, Stream BufferEmpty 1<br>
DEBUG: HandleCtrl, received ctrl. type: 32, len: 6<br>DEBUG: HandleCtrl, Stream BufferReady 1<br>DEBUG: HandleCtrl, received ctrl. type: 31, len: 6<br>DEBUG: HandleCtrl, Stream BufferEmpty 1<br>DEBUG: HandleCtrl, received ctrl. type: 1, len: 6<br>
DEBUG: HandleCtrl, Stream EOF 1<br>DEBUG: RTMP_ClientPacket, received: invoke 302 bytes<br>DEBUG: (object begin)<br>DEBUG: Property: NULL<br>DEBUG: (object begin)<br>DEBUG: Property: <Name: level, STRING: status><br>
DEBUG: Property: <Name: code, STRING: NetStream.Pause.Notify><br>DEBUG: Property: <Name: description, STRING: Pausing 102/18479/20f15b96-3a0e-4f72-bfcc-67b5b58c4839_f2099c8a-150d-4c88-b26a-0c18f25214e5.mp4.><br>
DEBUG: Property: <Name: details, STRING: 102/18479/20f15b96-3a0e-4f72-bfcc-67b5b58c4839_f2099c8a-150d-4c88-b26a-0c18f25214e5.mp4><br>DEBUG: Property: <Name: clientid, NUMBER: 1656645808.00><br>
DEBUG: (object end)<br>DEBUG: (object end)<br>DEBUG: HandleInvoke, server invoking <onStatus><br>DEBUG: HandleInvoke, onStatus: NetStream.Pause.Notify<br>DEBUG: RTMP_SendPause, 0, pauseTime=15948<br>DEBUG: Invoking pause<br>
DEBUG: HandleCtrl, received ctrl. type: 4, len: 6<br>DEBUG: HandleCtrl, Stream IsRecorded 1<br>DEBUG: HandleCtrl, received ctrl. type: 0, len: 6<br>DEBUG: HandleCtrl, Stream Begin 1<br>DEBUG: RTMP_ClientPacket, received: invoke 306 bytes<br>
DEBUG: (object begin)<br>DEBUG: Property: NULL<br>DEBUG: (object begin)<br>DEBUG: Property: <Name: level, STRING: status><br>DEBUG: Property: <Name: code, STRING: NetStream.Unpause.Notify><br>
DEBUG: Property: <Name: description, STRING: Unpausing 102/18479/20f15b96-3a0e-4f72-bfcc-67b5b58c4839_f2099c8a-150d-4c88-b26a-0c18f25214e5.mp4.><br>DEBUG: Property: <Name: details, STRING: 102/18479/20f15b96-3a0e-4f72-bfcc-67b5b58c4839_f2099c8a-150d-4c88-b26a-0c18f25214e5.mp4><br>
DEBUG: Property: <Name: clientid, NUMBER: 1656645808.00><br>DEBUG: (object end)<br>DEBUG: (object end)<br>DEBUG: HandleInvoke, server invoking <onStatus><br>DEBUG: HandleInvoke, onStatus: NetStream.Unpause.Notify<br>
DEBUG: RTMP_ClientPacket, received: invoke 223 bytes<br>DEBUG: (object begin)<br>DEBUG: Property: NULL<br>DEBUG: (object begin)<br>DEBUG: Property: <Name: level, STRING: status><br>DEBUG: Property: <Name: code, STRING: NetStream.Play.Start><br>
DEBUG: Property: <Name: description, STRING: Started playing 102/18479/20f15b96-3a0e-4f72-bfcc-67b5b58c4839_f2099c8a-150d-4c88-b26a-0c18f25214e5.mp4.><br>DEBUG: Property: <Name: clientid, NUMBER: 1656645808.00><br>
DEBUG: Property: <Name: isFastPlay, BOOLEAN: FALSE><br>DEBUG: (object end)<br>DEBUG: (object end)<br>DEBUG: HandleInvoke, server invoking <onStatus><br>DEBUG: HandleInvoke, onStatus: NetStream.Play.Start<br>
DEBUG: RTMP_ClientPacket, received: notify 24 bytes<br>DEBUG: (object begin)<br>DEBUG: (object end)<br>DEBUG: ignoring too small audio packet: size: 0<br>DEBUG: RTMP_ClientPacket, received: notify 44 bytes<br>DEBUG: (object begin)<br>
DEBUG: (object begin)<br>DEBUG: Property: <Name: code, STRING: NetStream.Data.Start><br>DEBUG: (object end)<br>DEBUG: (object end)<br>DEBUG: RTMP_ClientPacket, received: notify 604 bytes<br>DEBUG: (object begin)<br>
DEBUG: (object begin)<br>DEBUG: Property: <Name: trackinfo, OBJECT><br>DEBUG: (object begin)<br>DEBUG: (object begin)<br>DEBUG: Property: <Name: language, STRING: eng><br>DEBUG: Property: <Name: timescale, NUMBER: 25.00><br>
DEBUG: Property: <Name: length, NUMBER: 114110.00><br>DEBUG: Property: <Name: sampledescription, OBJECT><br>DEBUG: (object begin)<br>DEBUG: (object begin)<br>DEBUG: Property: <Name: sampletype, STRING: avc1><br>
DEBUG: (object end)<br>DEBUG: (object end)<br>DEBUG: (object end)<br>DEBUG: (object begin)<br>DEBUG: Property: <Name: language, STRING: eng><br>DEBUG: Property: <Name: timescale, NUMBER: 22050.00><br>
DEBUG: Property: <Name: length, NUMBER: 100640768.00><br>DEBUG: Property: <Name: sampledescription, OBJECT><br>DEBUG: (object begin)<br>DEBUG: (object begin)<br>DEBUG: Property: <Name: sampletype, STRING: mp4a><br>
DEBUG: (object end)<br>DEBUG: (object end)<br>DEBUG: (object end)<br>DEBUG: (object end)<br>DEBUG: Property: <Name: audiochannels, NUMBER: 2.00><br>DEBUG: Property: <Name: audiosamplerate, NUMBER: 22050.00><br>
DEBUG: Property: <Name: videoframerate, NUMBER: 25.00><br>DEBUG: Property: <Name: aacaot, NUMBER: 2.00><br>DEBUG: Property: <Name: avclevel, NUMBER: 30.00><br>DEBUG: Property: <Name: avcprofile, NUMBER: 100.00><br>
DEBUG: Property: <Name: audiocodecid, STRING: mp4a><br>DEBUG: Property: <Name: videocodecid, STRING: avc1><br>DEBUG: Property: <Name: width, NUMBER: 640.00><br>DEBUG: Property: <Name: height, NUMBER: 360.00><br>
DEBUG: Property: <Name: frameWidth, NUMBER: 640.00><br>DEBUG: Property: <Name: frameHeight, NUMBER: 360.00><br>DEBUG: Property: <Name: displayWidth, NUMBER: 640.00><br>DEBUG: Property: <Name: displayHeight, NUMBER: 360.00><br>
DEBUG: Property: <Name: framerate, NUMBER: 25.00><br>DEBUG: Property: <Name: moovposition, NUMBER: 1170677745.00><br>DEBUG: Property: <Name: duration, NUMBER: 4564.40><br>
DEBUG: (object end)<br>DEBUG: (object end)<br>INFO: Metadata:<br>INFO: trackinfo:<br>INFO: language eng<br>INFO: timescale 25.00<br>INFO: length 114110.00<br>INFO: sampledescription:<br>
INFO: sampletype avc1<br>INFO: language eng<br>INFO: timescale 22050.00<br>INFO: length 100640768.00<br>INFO: sampledescription:<br>INFO: sampletype mp4a<br>
INFO: audiochannels 2.00<br>INFO: audiosamplerate 22050.00<br>INFO: videoframerate 25.00<br>INFO: aacaot 2.00<br>INFO: avclevel 30.00<br>INFO: avcprofile 100.00<br>
INFO: audiocodecid mp4a<br>INFO: videocodecid avc1<br>INFO: width 640.00<br>INFO: height 360.00<br>INFO: frameWidth 640.00<br>INFO: frameHeight 360.00<br>
INFO: displayWidth 640.00<br>INFO: displayHeight 360.00<br>INFO: framerate 25.00<br>INFO: moovposition 1170677745.00<br>INFO: duration 4564.40<br>72168.526 kB / 43.48 sec (0.9%)<br>
DEBUG: HandleCtrl, received ctrl. type: 32, len: 6<br>DEBUG: HandleCtrl, Stream BufferReady 1<br>DEBUG: ignoring too small video packet: size: 2<br>74525.246 kB / 43.48 sec (0.9%)<br>DEBUG: ignoring too small video packet: size: 2<br>
DEBUG: HandleCtrl, received ctrl. type: 31, len: 6<br>DEBUG: HandleCtrl, Stream BufferEmpty 1<br>DEBUG: RTMP_SendPause, 1, pauseTime=15960<br>DEBUG: Invoking pause<br>DEBUG: HandleCtrl, received ctrl. type: 32, len: 6<br>
DEBUG: HandleCtrl, Stream BufferReady 1<br>74632.546 kB / 43.76 sec (0.9%)^C</span><br><br></div><div>See, it reached 107.52 sec into the stream and then it began to download from 43.76 sec into the stream.<br></div></div>
<br>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.<br>
</div><br>Instead of asking for my money back, can anybody help? Are there arguments I can try? Are there patches I can try?<br></div>