4745|0

888

帖子

3

TA的资源

五彩晶圆(初级)

楼主
 

RTMP网络推流调试笔记 [复制链接]

        最近在做RTMP网络推流,遇到了一些问题,现在把这些问题记录一下;

        RTMP网络推流是基于RTMPDUMP来实现的,在刚调试的,把本地的音视频流做了简单的容器封装,推送到服务器;
        在NGINX服务器中音频和视频都可以播放出来,音频出现卡顿,查了一下推流推包时间,发现推包时间不均匀,没有按照时间戳来进行推送,后来把RTMP的推流时间修改为数据包的时间戳后开始推送,在nginx上面的音频和视频的RTMP播放正常了;

        虽然上面的问题基本已经解决,但在wowza上面的问题就比较多了,wowza 播放rtmp 出现音频卡顿,同时不能支持m3u8的视频转换播放;
        这下就比较头疼了,只能把数据一个一个的扣代码了;


1. metadata数据
        在flv中有metadata数据包,在rtmp 中可以不需要推送,推送上去也没有什么影响;
2. sps和pps
        需要在第一次连接后推送到服务器上面;后面是不需要再推送;这个包类型为 AVC sequence header,按照AVCDecoderConfigurationRecord发送就可以,这个参考 标准ISO/IEC 14496-15 中的
5.2.4 小节就可以,注意:
        unsigned int(8) AVCProfileIndication; //sps[1],即0x67 后面那个字节
        unsigned int(8) profile_compatibility; //sps[2]
        unsigned int(8) AVCLevelIndication; //sps[3]
        unsigned int(2) lengthSizeMinusOne; //NALUnitLength 的长度减1,一般为3
        lengthSizeMinusOne 加1 就是NALU 长度字段所占字节数。
        unsigned int(5) numOfSequenceParameterSets; //sps 个数,一般为1
        unsigned int(8) numOfPictureParameterSets; //pps 个数,一般为1
        发送一个pps 和一个sps 就可以了;
3.视频数据的发送
        视频数据正常发送就可以,在前面video tag中配置好后,数据的前面4字节为video数据的长度,后面为h264 nalu数据,这个里面没有00 00 00 01后的数据;
4.音频spicifiConfig包的发送
        这个是在adts中没有配置的参数,像发送视频的sps一样,在连接后就发送一次就可以;
        AAC sequence header也就是包含了AudioSpecificConfig,AudioSpecificConfig包含着一些更加详细音频的信息,AudioSpecificConfig的定义在ISO14496-3中1.6.2.1;在ffmpeg中有对AudioSpecificConfig解析的函数,ff_mpeg4audio_get_config(),可以对比的看一下,理解更深刻。
        AAC raw 这种包含的就是音频ES流了,也就是audio payload.这里不需要添加负载长度,audio tag 中可以解析;
        AudioSpecificConfig 简化格式如下:
                audioObjectType 5bits 编码结构类型,AAC-LC 为2
                samplingFrequencyIndex 4bits 音频采样率索引值
                channelConfiguration 4bits 音频声道数
                GASpecificConfig 该结构包含一下三项
                frameLengthFlag 1bit 标志位,用于表明IMDCT 窗口长度,为0
                dependsOnCoreCoder 1bit 标志位,表明是否依赖corecoder,为0
                extensionFlag 1bit 扩展标志位,选择了AAC-LC,这里必须为0
                AudioSpecificConfig的表有点绕,可以按照上面简化后的格式封装就可以;
               (技术交流 ternence.hsu@foxmail.com)


        经过上面的几个步骤的调整后,wowza 总算是可以播放出音视频数据了,m3u8转码也正常了。
接下来就是稳定性方面的测试了;

点赞 关注
个人签名邮箱:ternence.hsu@foxmail.com
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表