RTMP_Init“分段错误”

我正在使用librtmp传输视频。我在ubuntu 16.04中使用“ sudo apt-get librtmp-dev”安装了librtmp。我成功编译了代码,但在RTMP_Init()中遇到了“分段错误”。这是我的rtmp_test代码:

主要功能:

int main(int argc,char *argv[]){
    printf("11111\n");
    if (RTMP264_Connect("rtmp://**********") == TRUE){
        printf("connect successful");
    }
    printf("22222222\n");
    return 0;
}

RTMP264_Connect功能:

int RTMP264_Connect(const char * url){
    printf("~~~~~~~1\n");
    RTMP_Init(m_Rtmp);
    printf("~~~~~~~2\n");
    if(RTMP_SetupURL(m_Rtmp,(char*)url) == FALSE){
        RTMP_Free(m_Rtmp);
        return FALSE;
    }
    printf("~~~~~~~3\n");
    RTMP_EnableWrite(m_Rtmp);
    if(RTMP_Connect(m_Rtmp,NULL)==FALSE){
        RTMP_Free(m_Rtmp);
        return FALSE;
    }

运行代码时,出现此错误:

11111
aaaa
~~~~~~~1
Segmentation fault

所以我确定问题出在RTMP_init函数中。我在互联网上看到有人说原因可能是套接字未初始化。我找到了一个套接字初始化代码:

int Initsockets()
{
#ifdef WIN32

    WORD version;
    WSADATA wsaData;
    version = MAKEWORD(1,1);
    return (WSAStartup(version,&wsaData) == 0);
#endif
}

void CleanupSockets()
{
#ifdef WIN32
    WSACleanup();
#endif
}

但这是针对Windows系统的。如果我在Ubuntu上运行,我将报告一个错误。而且我不知道我的问题是否与未初始化的套接字有关。谢谢有人能告诉我如何解决我的问题!

rlh834844153 回答:RTMP_Init“分段错误”

根据documentation

  

基本交互如下。使用RTMP_Alloc()创建会话句柄,并使用RTMP_Init()初始化会话句柄。

您尚未致电RTMP_Alloc,这大概是造成段错误的原因

本文链接:https://www.f2er.com/2929163.html

大家都在问