您的位置:首页 > 其它

librtmp发送flv tag扩展时间戳

2017-11-30 20:46 211 查看
 一 librtmp 存在一个bug当时间戳大于0xffffff也就是4.64小时的时候,会和FMS掉连接,至于修复方法网上比较多,我就不多说了。可以参考这个:http://blog.csdn.net/jiang_shikun/article/details/46047417 

 二 librtmp调用有的同学发送rtmp 消息的时候,是直接调用的RTMP_SendPacket 发送的,在RTMPPacket *packet->m_nTimeStamp 打上时间戳。有的同学习惯以flv tag的方式发送rtmp消息。调用的librtmp提供的外部接口,int RTMP_Write(RTMP *r, const char *buf, int size); 调用传入的数据是一个个flv tag格式的。当时间戳大于3字节的时候,如何封装flv tag中的时间戳呢?查看flv 格式文档:  


将高8bits 填充到Timestamp Extended 字节中。参见代码:      flv_tag_buf[4] = last_timestamp >> 16 &0xff;
            flv_tag_buf[5] = last_timestamp >> 8 &0xff;
            flv_tag_buf[6] = last_timestamp &0xff;
            flv_tag_buf[7] = last_timestamp >>24&0xff;
            rtmp_ret = RTMP_Write(rtmp_object_,(char*)flv_tag_buf,flv_tag_len);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: