librtmp发送阻塞
来源:互联网 发布:希尔伯特 知乎 编辑:程序博客网 时间:2024/05/29 06:45
我的解决方法是:直接用RTMP_IsConnected()在推流之前检测网络是否断开,流是否断开,如果发现断开,马上启动重连RTMP。这样可以避免在路由器不稳定的情况下,出现阻塞现象。
上面的解决方法在最近的实验中发现,并不能真正发现预防网络掉线后及时发现并做相应的处理。以下的解决方法才是从根本原因解决了阻塞的问题。
上面的解决方法在最近的实验中发现,并不能真正发现预防网络掉线后及时发现并做相应的处理。以下的解决方法才是从根本原因解决了阻塞的问题。
在librtmp的RTMP_Connect0( )中加入了send超时设置,如下添加蓝色部分代码,并重新编译librtmp库:
/* set timeout */{ struct timeval timeout; timeout.tv_sec = 5; timeout.tv_usec = 0; SET_RCVTIMEO(tv, r->Link.timeout); if (setsockopt(r->m_sb.sb_socket, SOL_SOCKET, SO_RCVTIMEO, (char *)&tv, sizeof(tv))) { RTMP_Log(RTMP_LOGERROR, "%s, Setting socket timeout to %ds failed!", __FUNCTION__, r->Link.timeout); } 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!", __FUNCTION__, timeout.tv_sec); } else { RTMP_Log(RTMP_LOGDEBUG, "%s, Setting socket timeout to %ds success!", __FUNCTION__, timeout.tv_sec); }}
0 0
- librtmp发送阻塞
- librtmp发送AVC,AAC数据包
- librtmp发送AVC,AAC数据包
- librtmp发送AVC,AAC数据包
- LibRTMP源代码分析8:发送消息
- 通过LIBRTMP发送H264和AAC
- RTMPdump(libRTMP) 源代码分析 8: 发送消息(Message)
- 利用LIBRTMP直播时 更改发送数据的包大小
- LibRTMP源代码分析8:发送消息(Send RTMPPacket)
- LibRTMP源代码分析7:发送消息(Send Message)
- LibRTMP源代码分析8:发送消息(Send RTMPPacket)
- 利用LIBRTMP直播时 更改发送数据的包大小
- RTMPdump(libRTMP) 源代码分析 8: 发送消息(Message)
- RTMPdump(libRTMP) 源代码分析 8: 发送消息(Message)
- easydss与librtmp发送flv tag扩展时间戳
- 最简单的基于librtmp的示例:发布(FLV通过RTMP发布)(发送数据)
- kafka异步发送数据,不阻塞
- TCP send函数 阻塞发送数据详解
- 使用OpenCV进行标定(Python)
- JavaScript-总结常用代码书写规范
- JavaScript常用本地对象、分别有什么方法
- SQL2008+ 根据子类ID来查找最大级父类ID
- Javascript 行为委托
- librtmp发送阻塞
- iOS View Controller 全屏布局
- JavaEE平台下CRM系统开发
- 虚幻4属性系统(反射)翻译
- 【Java常用类库】_大数操作(BigIntger、BigDecimal)
- 洛谷 P2038 无线网络发射器选址
- 欢迎使用CSDN-markdown编辑器
- 计算机视觉
- 依赖包后出现Failed to resolve: com.github.Aspsine:SwipeToLoadLayout:1.0.3错误