利用LIBRTMP直播时 更改发送数据的包大小

在用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 bytes

RTMP_SendPacket(r,&pack,1);

 RTMPPacket_Free(&pack);

 

要注意的是 通道用2,一般媒体数据是4。流ID用0。消息类型是RTMP_PACKET_TYPE_CHUNK_SIZE了,还必须指定m_outChunkSize ,否则协议没有自动修改,发送还是会错误,改过来之后发送正常了。再看输出的log,已经用1024发送了。


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值