利用LIBRTMP直播时 更改发送数据的包大小
来源:互联网 发布:兄弟打印机数据清零 编辑:程序博客网 时间:2024/05/16 17:18
在用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发送了。
0 0
- 利用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 推送】
- VMWare网络设置的3中方式
- iOS 使用libx264编码视频
- Unix Socket编程--I/O复用之select模型
- vector
- TCategoryButtons
- 利用LIBRTMP直播时 更改发送数据的包大小
- 用程序来控制一个网页,实现自动输入等操作(转载)
- html 基础代码
- iphone手机音频AAC视频H264推流(一) iphone手机推流最佳方案
- HDFS简介
- 数的计算
- 编程珠玑第1章部分课后习题答案注解
- 关于调用Shell_NotifyIcon操作托盘图标失败的说明
- Http 协议续