利用LIBRTMP直播时 更改发送数据的包大小
来源:互联网 发布:群晖1517端口转发教程 编辑:程序博客网 时间:2024/05/21 17:10
在用RTMP协议做视频直播时,协议默认的发送消息的大小是128字节。开源库librtmp中说可以更改这个大小,因为用128的包发送数据,效率太低了,网络上一般MTU都在1400左右,所以还是改大点的好。网上搜了半天也没有找到参考的代码,可能关键词写的不对。rtmpdump里面没有参考代码,只能自己试验了,最后还是找到了正确的办法。
RTMP *r; //提前申请的
RTMPPacket pack;
RTMPPacket_Alloc(&pack, 4);
pack.m_packetType = RTMP_PACKET_TYPE_CHUNK_SIZE;
pack.m_nChannel = 0x02;
pack.m_headerType = RTMP_PACKET_SIZE_LARGE;
pack.m_nTimeStamp = 0;
pack.m_nInfoField2 = 0;
pack.m_nBodySize = 4;
int nVal = 1024; //希望指定的大小pack.m_body[3] = nVal & 0xff; //大字节序
pack.m_body[2] = nVal >> 8;
pack.m_body[1] = nVal >> 16;
pack.m_body[0] = nVal >> 24;
r->m_outChunkSize = nVal;
//we send packet 1024 bytesRTMP_SendPacket(r,&pack,1);
RTMPPacket_Free(&pack);
要注意的是 通道用2,一般媒体数据是4。流ID用0。消息类型是RTMP_PACKET_TYPE_CHUNK_SIZE了,还必须指定m_outChunkSize ,否则协议没有自动修改,发送还是会错误,改过来之后发送正常了。再看输出的log,已经用1024发送了。
- 利用LIBRTMP直播时 更改发送数据的包大小
- 利用LIBRTMP直播时 更改发送数据的包大小
- 使用RTMPdump(libRTMP)直播来自v4l2的摄像头数据
- 使用RTMPdump(libRTMP)直播来自v4l2的摄像头数据
- 最简单的基于librtmp的示例:发布(FLV通过RTMP发布)(发送数据)
- 【基于libRTMP的流媒体直播之 AAC、H264 推送】
- 基于libRTMP的流媒体直播之 AAC、H264 推送
- 基于libRTMP的流媒体直播之 AAC、H264 推送
- 基于libRTMP的流媒体直播之 AAC、H264 推送
- 基于libRTMP的流媒体直播之 AAC、H264 解析
- 【基于libRTMP的流媒体直播之 AAC、H264 推送】
- 【基于libRTMP的流媒体直播之 AAC、H264 推送】
- 基于libRTMP的流媒体直播之音频推送
- 基于libRTMP的流媒体直播之 AAC、H264 推送
- 【基于libRTMP的流媒体直播之 AAC、H264 推送】
- 基于libRTMP的流媒体直播之 AAC、H264 推送
- 【基于libRTMP的流媒体直播之 AAC、H264 推送】
- 【基于libRTMP的流媒体直播之 AAC、H264 推送】
- Android布局-RelativeLayout
- Docker 网络(一)——查看Docker Container IP
- 深入理解Java:注解(Annotation)自定义注解入门
- qq视频聊天时的audio录音 Framework相关代码流程
- 面试题21 包含Min函数的栈
- 利用LIBRTMP直播时 更改发送数据的包大小
- Android Annotations浅析
- 矩阵分解在推荐系统中的应用(中文译)- MATRIX FACTORIZATION TECHNIQUES FOR RECOMMENDER SYSTEMS
- MSSQL定时备份数据库到其他服务器
- android中的Http协议
- 阿里音乐流行趋势预测大赛一起做-(7)初赛总结之用户分类
- CSS浮动属性Float详解
- 一键安装Maven (使用Yum)
- Android:Bluetooth 的打开和关闭