文档章节

AAC 编码之 ADTS 头相关分析

UMU
 UMU
发布于 2017/08/21 15:15
字数 466
阅读 233
收藏 0

行业解决方案、产品招募中!想赚钱就来传!>>>

之前在《Opus 编解码遇到的怪事》说过一个因为编码器不同而导致的怪事的解决过程,最近又出现一例类似情况了。

UMU 的任务是把从麦克风采集到的音频数据,直接编码成 AAC,然后用 live555 流化为 RTSP 协议,做服务端。其中涉及到一个 ADTS 头部的问题,理论上有没有 ADTS 都是可以的,各有可行的解决方案。但在阅读其他同事代码的时候,惊讶地发现,他特地把 ADTS 头给去掉了。而 UMU 调试时,发现 AVPacket 的数据里根本没有 ADTS 头,何来去掉之说?

有了上次的经验,UMU 很快推测,我们俩用的编码器可能不同。后来验证,确实如此:ffmpeg 3.1 有两个 AAC 编码器,一个内置的,名字是 aac,另一个第三方的 libfdk_aac,商业使用 non-free。(以前还有其它两个第三方的,因为质量不行,已经被移除,ffmpeg 官网上有说明)默认的编译方式只有前者,后者需要使用 non-free 参数编译,基于后期的版权问题考虑,UMU 使用的是内置的 aac。但为了调查这个问题,UMU 特地编译并使用了 libfdk_aac,发现确实有不同。

  1. aac 编码出来的 AVPacket 是没有 ADTS 头的; libfdk_aac 则有。

  2. aac 不需要设置 profile,因为它默认使用 LC,而 libfdk_aac 支持很多中 profile,所以需要设置一个合适的。

  3. libfdk_aac 设置合适的 profile 字段,编码出来的 AVPacket 有 ADTS 头,VLC 可以播放,特地去掉 ADTS 头,VLC 也可以播放。

  4. 如果不设置 profile,默认是 FF_PROFILE_UNKNOWN,这时有 ADTS 头,但由于这个 ADTS 头里的 adts_buffer_fullness 不对,所以 VLC 无法播放,去掉反而可以。

UMU

UMU

粉丝 120
博文 113
码字总数 44317
作品 0
厦门
程序员
私信 提问
加载中
请先登录后再评论。
Netty那点事(三)Channel与Pipeline

Channel是理解和使用Netty的核心。Channel的涉及内容较多,这里我使用由浅入深的介绍方法。在这篇文章中,我们主要介绍Channel部分中Pipeline实现机制。为了避免枯燥,借用一下《盗梦空间》的...

黄亿华
2013/11/24
2W
22
Flappy Bird(安卓版)逆向分析(一)

更改每过一关的增长分数 反编译的步骤就不介绍了,我们直接来看反编译得到的文件夹 方法1:在smali目录下,我们看到org/andengine/,可以知晓游戏是由andengine引擎开发的。打开/res/raw/at...

enimey
2014/03/04
5.9K
18
实时分析系统--istatd

istatd是IMVU公司工程师开发的一款优秀的实时分析系统,能够有效地收集,存储和搜索各种分析指标,类似cacti,Graphite,Zabbix等系统。实际上,istatd修改了Graphite的存储后端,重新实现了...

匿名
2013/02/07
2.8K
1
日志分析平台 - Kibana

Kibana 是一个为 Logstash 和 ElasticSearch 提供的日志分析的 Web 接口。可使用它对日志进行高效的搜索、可视化、分析等各种操作。 环境要求: ruby >= 1.8.7 (probably?) bundler logstash...

匿名
2013/02/13
11.5W
1
Swing界面分析和调试工具--Swing Inspector

Swing Inspector是一个Java Swing/AWT用户界面分析和调试工具,功能与firebug类似,具有强大的Swing/AWT用户界面分析和调试相关功能。 适用于从java swing初级到高级的所有开发人员,能够快速...

匿名
2013/03/06
3.3K
0

没有更多内容

加载失败,请刷新页面

加载更多

文件在线预览,有这个项目就够了

大家好呀!我是你们努力的喵哥! 我们在做各种项目时,都会需要预览各类文档的场景。比如,Wrod、PDF、Excel 等的预览。即使,我们个人使用的软件,也会有各类需要预览文件的场景。 在通常情...

Github喵111
昨天
16
0
运营商大数据

运营商大数据 调查结果显示,在全球120家运营商中,约有48%正在实施运营商大数据服务。运营商大数据服务成本平均占运营商总预算的10%,未来五年将上升到23%左右,成为运营商大数据的战略优势...

osc_7nzqlmki
36分钟前
12
0
Mysql如何处理重复数据?让你的效率更高效

有时候,数据表中会存在相同的记录。在获取表中记录时,相较于取得重复记录来说,取得唯一的记录显然更有意义。那么关于mysql数据库如何处理重复数据呢,下面就为大家来讲解这个问题。 http...

osc_tb68dlqx
38分钟前
4
0
有关信越润滑油脂方面常识

有关信越润滑油脂方面常识 一般常见的基础油有矿物油(mineral oil)合成油(synthetic oil),而添加剂则有抗氧化剂、抗腐蚀剂、抗磨剂、清净剂、防锈剂、极压剂、消泡剂、乳化剂等。   润滑油...

feiyoufei
39分钟前
6
0
13-sts的安装和运行SpringBoot项目

展开 本文分享自微信公众号 - 源码客栈(liqz6609)。 如有侵权,请联系 support@oschina.cn 删除。 本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。...

真的是666
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部