![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
AAC
mo4776
这个作者很懒,什么都没留下…
展开
-
通过libfdk-aac的使用来看音频参数配置的策略
灵活性背景在一些实时音视频系统中,终端软件通常可以设置音频编码参数,如采样率,通道数,码率等。开放编码参数可配,增加了灵活性,但是在实现增加了复杂度。特别是某些编码格式,如果考虑到音频的采集,回放,实时性。这里针对AAC的编解码库libfdk-aac来说说参数可配的限制。libfdk-aac不同AAC规格的差异性不通规格AAC编码输入帧的长度要求不一样,如下所示:AACENC_GRANULE_LENGTH = 0x0105, /*!< Core encoder (AAC) a原创 2020-06-05 10:55:48 · 2048 阅读 · 4 评论 -
libfdk-aac编解码代码示例
背景前面几篇文章介绍了AAC的几种封装标准及libfdk-aac的一些使用细节,这篇文章就给出libfdk-aac编解码代码示例。示例编码编码封装类CAACEncoder适用于RTP流媒体应用,设置的AAC编码规格为AAC-LD,封装格式为LATM,设置编码输入的采样点数为480(适用于采样率为48000),包复用个数为2(适用于采样周期为20ms)编码接口 int EncodeFram...原创 2020-03-06 18:57:04 · 3859 阅读 · 9 评论 -
使用libfdk-aac编码所需注意的细节
背景libfdk-aac源码中提供了一个编码的示例程序,文件为aac-enc.c,演示了编码API基本的调用流程,流程也比较简单,看看示例代码就明白了。这里要讲的是应用在rtp流媒体时,所需注意的细节。细节封装格式的选择typedef enum { TT_UNKNOWN = -1, /**< Unknown format. */ TT_MP4_RAW =...原创 2020-01-20 16:58:47 · 4201 阅读 · 11 评论 -
编译libfdk-aac
经验的误区fdk-aac项目中并没有直接提供vs下的编译工程,也没有CmakeList 脚本。所以我凭经验判断,源码是需要在mingw环境下编译。正是这种直观,简单的判断,直接在编译上挖了个坑。我用mingw很顺利编译出了libfdk-aac.a库,结果在链接到执行程序时出错了,错误如下:(fft.o) : fatal error LNK1143: 无效或损坏的文件: 没有 COMDAT 0...原创 2020-01-20 11:35:19 · 1905 阅读 · 6 评论 -
AAC及其封装格式
背景最近在媒体库中需要加AAC,要求能与华为的一个IP语音电话型号,通过AAC对通。这个需求的功能并不复杂,而难在对于AAC的封装格式标准及对于AAC编解码库的使用,需要有一个系统性的认识。AAC标准光编码规格就有好几种,并且针对不同的场景衍生出的封装格式也有好几种。应用到流媒体,rfc也有几个。所以是细节特别多。很容易走错方向。做个总结,这将是一系列文章,先介绍AAC封装标准,RTP封包标准...原创 2020-01-06 19:46:29 · 3959 阅读 · 0 评论 -
RFC6416中对AAC进行RTP打包方式介绍
简介rfc6416是描述如何将MPEG-4 Audio/Visual Stream封包至RTP中的。文档写的还是比较清晰简明的,对音频而言,没有再定义额外的码流结构,就是直接对MPEG-4 Audio stream的结构进行打包。下面列出的是需要理解的概念:MPEG-4 Audio/Visual Stream是在ISO/IEC 14496-3,ISO/IEC 14496-2中定义,分别用于...原创 2020-01-12 11:04:49 · 1335 阅读 · 0 评论 -
RFC3640中对AAC进行RTP打包方式介绍
总括RFC3640和RFC6416定义了两种对MPEG-4 Stream的RTP封包方式。这里只介绍对音频码流(即AAC)的封装方式。先从RFC3640开始。如果有RTP打包音视频码流的开发经验,下面的一些知识点,理解起来会简单些。RFC 3640中定义了对MPEG-4 Elementary stream(包括audio,video,mpeg4 system)通过RTP封包的方式。下面所列的是...原创 2020-01-06 20:19:27 · 2948 阅读 · 2 评论