Hi, i'm totally new to rtmpdump/librtmp and rtmp also. And it seams that this is my first post so i want to greet everybody
I'm trying to build a program for dumping rtmp streamed videos.
The url for such a stream is something like this:
Code:
rtmp://cp125301.edgefcs.net/ondemand/mp4:zdf/12/06/120621_1808_hko_vh.mp4
if i am trying to dump this with rtmpdump all seams to be fine
Code:
./rtmpdump.linux -r rtmp://cp125301.edgefcs.net/ondemand/mp4:zdf/12/06/120621_1808_hko_vh.mp4 -V -o zdf2.mp4
and in verbose mode its showing me the following extra infos:
Code:
DEBUG: Hostname : cp125301.edgefcs.net
DEBUG: Port : 1935
DEBUG: Playpath : mp4:zdf/12/06/120621_1808_hko_vh.mp4
DEBUG: tcUrl : rtmp://cp125301.edgefcs.net:1935/ondemand
DEBUG: app : ondemand
but if i'm using librtmp its seams that the parser is doing some thing different here:
Code:
#include "rtmp.h"
#include <stdio.h>
int main()
{
int retVal = 0;
RTMP* r = RTMP_Alloc();
retVal = RTMP_SetupURL(r, "rtmp://cp125301.edgefcs.net/ondemand/mp4:zdf/12/06/120621_1808_hko_vh.mp4");
printf("\n\nhost: %s \nplaypath: %s \ntcUrl: %s \napp: %s\n\n", r->Link.hostname.av_val, r->Link.playpath.av_val,r->Link.tcUrl.av_val, r->Link.app.av_val);
retVal = RTMP_Connect(r, NULL);
printf("connect r: %i\n", retVal);
return 0;
}
output is :
Code:
host: cp125301.edgefcs.net/ondemand/mp4:zdf/12/06/120621_1808_hko_vh.mp4
playpath: mp4:zdf/12/06/120621_1808_hko_vh.mp4
tcUrl: rtmp://cp125301.edgefcs.net/ondemand/mp4:zdf/12/06/120621_1808_hko_vh.mp4
app: ondemand/mp4:zdf/12/06/120621_1808_hko_vh.mp4
ERROR: WriteN, RTMP send error 104 (1 bytes)
connect r: 0
ERROR: RTMP_Connect1, handshake failed.
which differs from the values from rtmpdump and might be wrong?
i was trying to correct this by manually set the values in the RTMP record by hand as they appear in rtmpdump.. but maybe i missed something
Code:
//manual set hostname
AVal hostname;
hostname.av_val = "cp125301.edgefcs.net";
hostname.av_len = sizeof("cp125301.edgefcs.net");
r->Link.hostname = hostname;
//manual set playpath
AVal playpath;
playpath.av_val = "mp4:zdf/12/06/120621_1808_hko_vh.mp4";
playpath.av_len = sizeof("mp4:zdf/12/06/120621_1808_hko_vh.mp4");
r->Link.playpath = playpath;
// r->Link.playpath0 = playpath;
//
//manual tcUrl
AVal tcUrl;
tcUrl.av_val = "rtmp://cp125301.edgefcs.net:1935/ondemand";
tcUrl.av_len = sizeof("rtmp://cp125301.edgefcs.net:1935/ondemand");
r->Link.tcUrl = tcUrl;
//manuel app
AVal app;
app.av_val = "ondemand";
app.av_len = sizeof("ondemand");
r->Link.app = app;
after all this seams to be not working and i get an error messages:
Code:
ERROR: WriteN, RTMP send error 104 (1 bytes)
ERROR: RTMP_Connect1, handshake failed.
someone any suggestions?
regards pythonner