AVC sequence header AAC sequence header
推送H.264和AAC的重要前提
RTMP的音视频流的封装形式和FLV格式相似, 流媒体服务器向客户端发送包含H264和AAC的RTMP直播流,需要首先发送:
- AVC sequence header
- AAC sequence header
这两个header非常重要,是客户端解码的必需部分.
因为以上两个参数只在客户端开始拉流开始的时候接收一次.
所以当H264参数发生变化时(如分辨率或帧率等)发生变化或AAC音频参数发生变化(采样率等),这时候两个header的内容也会发生变化. 这时候如果不重新拉流,就会出现绿屏或花屏的现象(因为解码参数已经发生变化).
因此这时候应该客户端应该进行重新拉流(重新接受两个header),画面就会恢复正常.
那这两个神奇的header究竟都藏了些什么具体信息呢?
AVC sequence header
AVCDecoderConfigurationRecord
Refer from H.264-AVC-ISO_IEC_14496-15.pdf
AVCDecoderConfigurationRecord的一些参数
解码时,解码器通过Profile
知道需要准备那些参数, 通过level
知道图像可能的最大的分辨率和帧率,通过SPS
信息可计算出宽和高(如果信息充分还可计算出帧率信息).
AAC sequence header
AAC
中用AudioSpecificConfig
结构体来表示AAC sequence header
.
AudioSpecificConfig ()
{
audioObjectType = GetAudioObjectType();
samplingFrequencyIndex;
if ( samplingFrequencyIndex == 0xf )
{
samplingFrequency;
}
channelConfiguration;
...
}
Refer from ISO-14496-3(2009-09).pdf
AudioSpecificConfig
Audio Object Types
Audio Object Types部分列表
samplingFrequencyIndex
A four bit field indicating the sampling rate used. If samplingFrequencyIndex equals 15 then the actual sampling rate is signaled directly by the value of samplingFrequency . In all other cases samplingFrequency is set to the value of the corresponding entry in Table 1.18.
通过查询下表可获取实际的采样率, 如samplingFrequencyIndex
等于0x5
, 查表可知当前的音频采样率为32000
.
Sampling Frequency Index
samplingFrequency
The sampling frequency used for this audio object. Either transmitted directly, or coded in the form of samplingFrequencyIndex.
音频的采样率. 可用samplingFrequency
直接来指定, 或者用samplingFrequencyIndex
来指定.
channelConfiguration
用于描述声道信息, 常用的值有2
, 立体声双声道.
channelConfiguration
References:
http://download.csdn.net/download/winlinvip/6602533
http://download.csdn.net/download/stormjiang/6290515
http://www.cnblogs.com/haibindev/archive/2011/12/29/2305712.html
作者:FlyingPenguin
链接:https://www.jianshu.com/p/0bff0fc2bf28
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
AVC sequence header AAC sequence header相关推荐
- php {template header},php通过header发送自定义数据
发送header: 我们定义了三个参数,token.language.region,放入header发送过去 <?php $url = 'http://www.example.com';$hea ...
- mysql sequence java_MySQL增加Sequence管理功能
项目应用中,曾有以下一个场景: 接口中要求发送一个int类型的流水号,由于多线程模式,如果用时间戳,可能会有重复的情况(当然概率很小). 所以想到了利用一个独立的自增的sequence来解决该问题. ...
- uvm中sequence和virtual sequence中objection的控制
sequence中的objection的控制策略 在整颗UVM树中,树的结点很多,理论来说在任何组件中都可以控制objection.一般在sequence和virtual sequence中,也有在s ...
- 程序的本质之二ELF文件的文件头、section header和program header
操作系统:CentOS Linux release 7.7.1908 内核版本:3.10.0-1062.1.1.el7.x86_64 运行平台:x86_64 参考文献:http://refspecs. ...
- html设置 header,http设置header
在阅读本文前,大家要有一个概念,在实现正常的TCP/IP 双方通信情况下,是无法伪造来源 IP 的,也就是说,在 TCP/IP 协议中,可以伪造数据包来源 IP ,但这会让发送出去的数据包有去无回,无 ...
- php 请求header,PHP的curl查看header信息的功能(包括查看返回header和请求header)
1.参看返回header信息,需要设置 curl_setopt($ch, CURLOPT_HEADER, true); //返回response头部信息 在curl_exec($ch);返回接口的顶部 ...
- php header jpg,php header函数输入图片IE不显示问题
在php中利用header直接动态显示图片时发现显示图片为一个X了,这个问题在其它浏览器没有问题,只在ie浏览器中出问题了, 那么此问题如何解决? 刚开始img.php文件跳转到文件是这样写的 hea ...
- java header file_javah 生成header file 报错 问题解决
标签: 环境:Android Studio, Mac OS 目标: 用javah 为MainActivity.class 生成 jni header 文件 正确的命令是 cd javah -class ...
- php如何处理查询请求,PHP的curl查看header信息的功能(包括查看返回header和请求header)...
PHP的curl功能十分强大,简单点说,就是一个PHP实现浏览器的基础. 最常用的可能就是抓取远程数据或者向远程POST数据.但是在这个过程中,调试时,可能会有查看header的必要. 如下: ech ...
最新文章
- linux替换包的脚本,Andorid 自动替换logo打包脚本(支持windows和linux)
- 【分享】SMTP工作原理大剖析
- pandas 索引_Pandas学习笔记03数据清洗(通过索引选择数据)
- centos 安装 图像识别工具 tesseract-ocr 流程
- java中无法推断类型参数_Java中的推断异常
- 解决Git Log在IDEA中乱码的问题
- 关于Python生成器的一个小问题(StopIteration)
- 电脑硬件知识学习_关于网络学习心得体会集锦七篇
- java扫雷游戏设计总结_JAVA版扫雷游戏的设计与实现
- Executors Java编程规范插件提示手动创建线程池的解决办法
- 主板检测卡c5_主板检测卡代码大全
- 用 QT实现拖放(drag-drop)功能
- 【转载】气象数据相关资源
- 软件需求分析——非功能性需求
- VUE全局this指向
- 从强化学习的角度看alphago与MCTS
- Rect 和 Bounds
- 饥荒高脚鸟蛋孵化教程
- Flutter高仿微信-第59篇-同步数据
- 加密艺术,当AI遇上区块链 |Mixlab跨学科
热门文章
- 3COM小型企业有线局域网方案(三、四、五)
- Lanecat网猫的案例
- 中石油训练赛 - Swapity Swap(矩阵快速幂)
- CodeForces - 510E Fox And Dinner(最大流+奇偶建边+路径打印)
- HDU - 4565 So Easy!(共轭构造+推公式+矩阵快速幂)
- 安卓入门系列-09一个实战小项目(备忘录Memo)
- Linux服务-SSH服务部署
- 柴油机计算机故障,柴油机故障论文,关于6105小型高速柴油机常见故障处理相关参考文献资料-免费论文范文...
- 对校招生培养工作的建议_如何提升人才培养质量?西华的老师们正面临一场大考...
- 高性能服务器 - window篇