|
if (!InitSockets()){
RTMP_LogPrintf("Init Socket Err\n");
return -1;
}
rtmp=RTMP_Alloc();
RTMP_Init(rtmp);
//set connection timeout,default 30s
rtmp->Link.timeout=5;
RTMPPacket*packet=NULL;//rtmp包结构
packet=(RTMPPacket*)malloc(sizeof(RTMPPacket));//创建包
memset(packet,0,sizeof(RTMPPacket));
RTMPPacket_Alloc(packet,1024*64);//给packet分配数据空间
RTMPPacket_Reset(packet);//重置packet状态
if(!RTMP_SetupURL(rtmp,"rtmp://localhost:1935/rtmplive/home"))
{
RTMP_Log(RTMP_LOGERROR,"SetupURL Err\n");
RTMP_Free(rtmp);
CleanupSockets();
return -1;
}
//if unable,the AMF command would be 'play' instead of 'publish'
RTMP_EnableWrite(rtmp);
if (!RTMP_Connect(rtmp,NULL)){
RTMP_Log(RTMP_LOGERROR,"Connect Err\n");
RTMP_Free(rtmp);
CleanupSockets();
return -1;
}
if (!RTMP_ConnectStream(rtmp,0)){
RTMP_Log(RTMP_LOGERROR,"ConnectStream Err\n");
RTMP_Close(rtmp);
RTMP_Free(rtmp);
CleanupSockets();
return -1;
}
这是直接使用 librtmp函数,,在RTMP_ConnectStream 这个地方失败,提示 ERROR: RTMP_ReadPacket, failed to read RTMP packet header
好像包错误,可是我用的都是 rtmp自带的,还没读文件就失败,到底哪里的问题,这次错误本来是用 ffmpeg想 nginx推流发现的,后来在librtmp源码
里面一样错误。搞不懂哪里错了
|
|