• 互联网视频直播&点播平台RTMP推流组件EasyRTMP在弱网环境下推流稳定吗?会不会有推流失败的问题?


    EasyRTMP推流组件是一套调用简单、功能完善、运行高效稳定的RTMP专用推流组件,能够应用于各种行业的直播需求,手机直播、桌面直播、摄像机直播、课堂直播等方面。

    TSINGSEE青犀视频有用户使用libeasyrtmp在弱网环境下推流,经常会有推流失败或者断开的问题。对于这种问题,开发人员通过网络抓包进行查看。

    推流断开是由libeasyrtmp客户端主动断开的。而其他的推流工具,同样的网络环境下并没有断开。

    从抓包看,由于网络环境差,存在很多超时重传,同样的对于libeasyrtmp中的超时,直接断开连接了。查看代码,libeasyrtmp对于socket超时设置的2s,所以对于超时超过2s就会断开连接。

    我们可以重新设置超时时间,设置为10s.

     
    int timeout = 10000;
    if (setsockopt(r->m_sb.sb_socket, SOL_SOCKET, SO_SNDTIMEO, (char*)&timeout, sizeof(timeout)) == -1)
    {
    RTMP_Log(RTMP_LOGERROR, "%s, Setting socket timeout to %ds failed!", `ls_function` , timeout);
    }
    else
    {
    	RTMP_Log(RTMP_LOGDEBUG, "%s, Setting socket timeout to %ds success!", `ls_function` , timeout);
    }
    setsockopt(r->m_sb.sb_socket, SOL_SOCKET, SO_RCVTIMEO, (char *)&timeout, sizeof(timeout));
    

      

    修改过后再次通过抓包验证,连接成功,并且超时10s的时候没有再断开。

    所以我们可以得出结论,针对弱网环境下的推流,可以修改libeasyrtmp的socket超时时间,通过延长时间来保持连接。

    关于EasyRTMP

    EasyRTMP流媒体推送软件(以下简称“EasyRTMP”)是一套调用简单、功能完善、运行高效稳定的RTMP功能组件,经过多年实战和线上运行打造,支持RTMP推送断线重连、环形缓冲、智能丢帧、网络事件回调,支持Windows、Linux、arm(hisiv100/hisiv200/hisiv300/hisiv400/etc…)、Android、iOS平台,支持市面上绝大部分的RTMP流媒体服务器,包括Red5、nginx-rtmp、crtmpserver、FMS、Wowza等主流RTMP服务器,能够完美应用于各种行业的直播需求,手机直播、桌面直播、摄像机直播、课堂直播等场景!

  • 相关阅读:
    心情日记:【原创诗歌】怆情吟
    心情日记:2008年3月3日 奶奶去世
    心情日记:健身日记
    金融基础概念期货
    FXDD点值获利计算
    外汇基础概念汇率
    报告论文:是学生都copy下来,现在不用,将来绝对要用(转)
    情感日记:毕业临走物语
    美元为什么坚挺
    英特尔首席技术官:人机智能鸿沟将于2050年消失
  • 原文地址:https://www.cnblogs.com/EasyNVR/p/13607079.html
Copyright © 2020-2023  润新知