Hi<br><br>I've been successfully recording tv from my cable companys web offering (<a href="http://yousee.tv">yousee.tv</a>). It's not public so I can't show you how it looks.<br><br>Unfortunately it stopped working a little over a week ago - maybe they switched server versions.<br>
<br>This was the command I used to successfully record with before:<br><br>./rtmpdump -r rtmpe://<a href="http://live.fmis.yousee.tv/live">live.fmis.yousee.tv/live</a> -v -o tmp.flv -V -W <a href="http://yousee.tv/design/swf/YouSeeVideoPlayer_beta.swf">http://yousee.tv/design/swf/YouSeeVideoPlayer_beta.swf</a> --pageUrl <a href="http://yousee.tv/livetv/dr1?remote">http://yousee.tv/livetv/dr1?remote</a> -y "encoder1_1200" -f "WIN 10,0,32,18" -live -C O:1<br>
<br>Now this gives me:<br><br>DEBUG: Property: <Name: no-name., STRING: _error><br>DEBUG: Property: <Name: no-name., NUMBER: 1.00><br>DEBUG: Property: NULL<br>DEBUG: Property: <Name: no-name., OBJECT><br>
DEBUG: (object begin)<br>DEBUG: Property: <Name: level, STRING: error><br>DEBUG: Property: <Name: code, STRING: NetConnection.Connect.Rejected><br>DEBUG: Property: <Name: description, STRING: Connection failed.><br>
DEBUG: Property: <Name: application, BOOLEAN: FALSE><br><br>So I went to use rtmpsuck to see if I needed to include additional data on the connect request using the --conn/-C command. The normal flash client includes a HUGE amount of request data (compared to others I've seen discussed on the net). I've included the request below but edited it heavily to not flood you:<br>
<br>DEBUG: ServePacket, client sent packet type 14, size 17601 bytes<br>DEBUG: (object begin)<br>DEBUG: Property: <Name: no-name., STRING: connect><br>DEBUG: Property: <Name: no-name., NUMBER: 1.00><br>
DEBUG: Property: <Name: no-name., OBJECT><br>DEBUG: (object begin)<br>DEBUG: Property: <Name: app, STRING: live><br>DEBUG: Property: <Name: flashVer, STRING: WIN 11,0,1,152><br>
DEBUG: Property: <Name: swfUrl, STRING: <a href="http://yousee.tv/design/swf/YouSeeVideoPlayer_beta.swf">http://yousee.tv/design/swf/YouSeeVideoPlayer_beta.swf</a>><br>DEBUG: Property: <Name: tcUrl, STRING: rtmpe://<a href="http://live.fmis.yousee.tv/live">live.fmis.yousee.tv/live</a>><br>
DEBUG: Property: <Name: fpad, BOOLEAN: FALSE><br>DEBUG: Property: <Name: capabilities, NUMBER: 239.00><br>DEBUG: Property: <Name: audioCodecs, NUMBER: 3575.00><br>DEBUG: Property: <Name: videoCodecs, NUMBER: 252.00><br>
DEBUG: Property: <Name: videoFunction, NUMBER: 1.00><br>DEBUG: Property: <Name: pageUrl, STRING: <a href="http://yousee.tv/livetv/dr1/">http://yousee.tv/livetv/dr1/</a>><br>DEBUG: Property: <Name: objectEncoding, NUMBER: 3.00><br>
DEBUG: (object end)<br>DEBUG: Property: <Name: no-name., OBJECT><br>DEBUG: (object begin)<br>DEBUG: Property: <Name: channelData, OBJECT><br>DEBUG: (object begin)<br>DEBUG: Property: <Name: channelAry, OBJECT><br>
DEBUG: (object begin)<br>DEBUG: Property: <Name: 0, OBJECT><br>DEBUG: (object begin)<br>DEBUG: Property: <Name: url, STRING: /livetv/dr1><br>DEBUG: Property: <Name: totalMillisecond, NUMBER: nan><br>
DEBUG: Property: <Name: logo_large, STRING: <a href="http://cloud.yousee.tv/static/img/logos/large_dr1.png">http://cloud.yousee.tv/static/img/logos/large_dr1.png</a>><br>DEBUG: Property: <Name: id, STRING: dr1><br>
DEBUG: Property: <Name: xml, STRING: <a href="http://yousee.tv/feeds/player/livetv/dr1/?1321388604.7347">http://yousee.tv/feeds/player/livetv/dr1/?1321388604.7347</a>><br>DEBUG: Property: <Name: name, STRING: DR1><br>
DEBUG: Property: <Name: logo_small, STRING: <a href="http://cloud.yousee.tv/static/img/logos/small_dr1.png">http://cloud.yousee.tv/static/img/logos/small_dr1.png</a>><br>DEBUG: Property: <Name: logoUrl, STRING: <a href="http://cloud.yousee.tv/static/img/logos/small_dr1.png">http://cloud.yousee.tv/static/img/logos/small_dr1.png</a>><br>
DEBUG: Property: <Name: startMillisecond, NUMBER: nan><br>DEBUG: (object end)<br>DEBUG: Property: <Name: 1, OBJECT><br>DEBUG: (object begin)<br>DEBUG: Property: <Name: url, STRING: /livetv/dr2><br>
DEBUG: Property: <Name: totalMillisecond, NUMBER: nan><br>DEBUG: Property: <Name: logo_large, STRING: <a href="http://cloud.yousee.tv/static/img/logos/large_dr2.png">http://cloud.yousee.tv/static/img/logos/large_dr2.png</a>><br>
DEBUG: Property: <Name: id, STRING: dr2><br><br>... this continues to all the way up to object 24 - one for each channel ...<br><br>DEBUG: (object end)<br>DEBUG: (object end)<br>DEBUG: Property: NULL<br>
DEBUG: (object end)<br>DEBUG: Property: <Name: token, STRING: /cCFV5CFanarewY0IjC+kpU/3qe8cPd+esf+2TTbQNsslV7Ie81V86iVsoZ/nOtBQJZy1h1NXFN4Dw31uDXEFPfwhyccZ8RVij+sXYb27n2msR3k3ulETYD<br>z+KhYqA4VWbqR8MUMKyx7F5xFEYMlBmnH99acxwnJuLBEuNXZd/WIkvHGRsTDIigJEm0KJv4I7qox7BoK+rUvZgaa5ju4rPGkkDD6sN9hbsSBXZJt3eZoG61JpSeDxv><br>
DEBUG: Property: <Name: servertime, STRING: 2011/11/15 21:23:24 UTC+0100><br>DEBUG: Property: <Name: skin, STRING: yousee><br>DEBUG: Property: <Name: description, STRING: ><br>
DEBUG: Property: <Name: timelineData, OBJECT><br>DEBUG: (object begin)<br>DEBUG: Property: <Name: itemAry, OBJECT><br>DEBUG: (object begin)<br>DEBUG: Property: <Name: 0, OBJECT><br>
DEBUG: (object begin)<br>DEBUG: Property: NULL<br>DEBUG: Property: <Name: description, STRING: ><br>DEBUG: Property: <Name: duration, NUMBER: 0.00><br>DEBUG: Property: <Name: endMillisecond, NUMBER: 1321388700000.00><br>
DEBUG: Property: <Name: title, STRING: TV AVISEN><br>DEBUG: Property: <Name: timeLabel, STRING: 21:00-21:25><br>DEBUG: Property: <Name: original_title, STRING: ><br>
DEBUG: Property: <Name: start, STRING: 2011/11/15 21:00:00 UTC+0100><br>DEBUG: Property: <Name: startMillisecond, NUMBER: 1321387200000.00><br>DEBUG: Property: <Name: director, STRING: ><br>
DEBUG: Property: <Name: end, STRING: 2011/11/15 21:25:00 UTC+0100>DEBUG: (object end)<br>DEBUG: Property: <Name: 1, OBJECT><br>DEBUG: (object begin)<br>DEBUG: Property: NULL<br>
DEBUG: Property: <Name: description, STRING: Glem alt om hurtig sagsbehandling, hvis du går til politiet og anmelder, at du har været udsat for bedrageri. Efterfor<br>skning af økonomisk kriminalitet foregår ofte dræbende langsomt , og imens de kriminelle fortsætter deres fupnumre, må l><br>
<br>... this continues with further objects, 5 in total, which correspond to the channel schedule ...<br><br>DEBUG: (object end)<br>DEBUG: (object end)<br>DEBUG: Property: NULL<br>DEBUG: Property: <Name: totalMillisecond, NUMBER: 15900000.00><br>
DEBUG: Property: NULL<br>DEBUG: Property: <Name: startMillisecond, NUMBER: 1321387200000.00><br>DEBUG: Property: NULL<br>DEBUG: Property: <Name: currentMillisecond, NUMBER: 1321388604000.00><br>DEBUG: (object end)<br>
DEBUG: Property: <Name: streamList, OBJECT><br>DEBUG: (object begin)<br>DEBUG: Property: <Name: 0, OBJECT><br>DEBUG: (object begin)<br>DEBUG: Property: <Name: bitrate, NUMBER: 600.00><br>
DEBUG: Property: <Name: streamName, STRING: encoder1_600><br>DEBUG: (object end)<br>DEBUG: Property: <Name: 1, OBJECT><br>DEBUG: (object begin)<br>DEBUG: Property: <Name: bitrate, NUMBER: 1200.00><br>
DEBUG: Property: <Name: streamName, STRING: encoder1_1200><br>DEBUG: (object end)<br>DEBUG: (object end)<br>DEBUG: Property: <Name: ratiochangeable, BOOLEAN: FALSE><br>DEBUG: Property: <Name: subtitles, BOOLEAN: FALSE><br>
DEBUG: Property: NULL<br>DEBUG: Property: <Name: serverMillionSecon, NUMBER: 1321388604000.00><br>DEBUG: Property: <Name: channelLogoUrl, STRING: <a href="http://cloud.yousee.tv/static/img/logos/small_dr1.png">http://cloud.yousee.tv/static/img/logos/small_dr1.png</a>><br>
DEBUG: Property: NULL<br>DEBUG: Property: <Name: meta, STRING: 96600|YSBB|<a href="http://yousee.tv">yousee.tv</a>|Livetv:dr1|webtv|livetv|605991935|><br>DEBUG: Property: <Name: channelName, STRING: DR1><br>
DEBUG: Property: <Name: type, STRING: livetv><br>DEBUG: Property: NULL<br>DEBUG: Property: <Name: serverurl, STRING: rtmpe://<a href="http://live.fmis.yousee.tv/live">live.fmis.yousee.tv/live</a>><br>
DEBUG: (object end)<br>DEBUG: (object end)<br>DEBUG: ServeInvoke, client invoking <connect><br><br>Which concludes the client request.<br><br>Server replies with:<br>DEBUG: Property: <Name: code, STRING: NetConnection.Connect.Success><br>
<br>And the client is connected.<br><br>As you can see, the request is _very_ large. II've been trying with various combinations of -C data, serverurl, channelName, type, tcUrl, etc. but with no luck. Either my attempt results in:<br>
<br>DEBUG: RTMP_ClientPacket, received: invoke 126 bytes<br>DEBUG: (object begin)<br>DEBUG: Property: <Name: no-name., STRING: _error><br>DEBUG: Property: <Name: no-name., NUMBER: 1.00><br>
DEBUG: Property: NULL<br>DEBUG: Property: <Name: no-name., OBJECT><br>DEBUG: (object begin)<br>DEBUG: Property: <Name: level, STRING: error><br>DEBUG: Property: <Name: code, STRING: NetConnection.Connect.Rejected><br>
DEBUG: Property: <Name: description, STRING: Connection failed.><br>DEBUG: Property: <Name: application, BOOLEAN: FALSE><br>DEBUG: (object end)<br>DEBUG: (object end)<br><br><br>Or in:<br>
<br>DEBUG: RTMP_ClientPacket, received: invoke 239 bytes<br>DEBUG: (object begin)<br>DEBUG: Property: <Name: no-name., STRING: _error><br>DEBUG: Property: <Name: no-name., NUMBER: 1.00><br>
DEBUG: Property: NULL<br>DEBUG: Property: <Name: no-name., OBJECT><br>DEBUG: (object begin)<br>DEBUG: Property: <Name: level, STRING: error><br>DEBUG: Property: <Name: code, STRING: NetConnection.Connect.Rejected><br>
DEBUG: Property: <Name: description, STRING: Connection failed.><br>DEBUG: Property: <Name: description, STRING: [ Server.Reject ] : Adaptor: _defaultRoot_, VHost: _defaultVHost_, App: live/_definst_, (onConnect call failed)><br>
DEBUG: (object end)<br>DEBUG: (object end)<br><br>For example the above command gives first error, whereas -C O:0 gives second error - maybe because request no longer is valid?<br><br>I've even been trying to change the code to set serverurl, channelName with additional AMF_EncodeNamedString() calls in SendConnectPacket, but that also didn't work.<br>
<br>Server version seems to be:<br>DEBUG: HandShake: FMS Version : 4.0.3.1<br><br>Do you have any hints that might help? Since the client request captured via rtmpsuck is so large, I cannot realistically produce the same via -C options. I've been thinking about overwriting the connect packet with the captured one and see if that would work. It's either that or finding a DVB-C capture card... :)<br>
<br>The email got rather long (sorry), but if you need additional data/logs, please say so.<br><br>Thanks,<br><br>/Allan<br><br>