怎样用AACLib V1.0在Android上音频编码解码
发布网友
发布时间:2022-04-23 13:23
我来回答
共1个回答
热心网友
时间:2023-10-15 11:53
这几天在 android上的音频项目,顺便把用到的aac编解码库封装了一下,有需要的可以从上面下载。当然是没有本事自己写编解码器的,还是用FFmpeg + FDK_aac来做。下面介绍一下其java接口的使用。java库见libaac.jar文件,把libaac.jar加到 libs目录下,把libaac.so加到 libs/armeabi目录即可使用。
AAC编码:
(1) 创建一个Encoder对象作为成员变量
aac.Encoder encoder;
(2) 初始化它
encoder = new aac.Encoder();
if(! encoder.open(11025, 1))
{
Log.d("mylog", "failed to open encoder !\n");
encoder = null;
}
这里要指定输入音频源(PCM格式)的sampe_rate和channel个数,如果为CHANNEL_OUT_MONO,则channel=1,否则为2。 sample_rate一般设置为11025,因为手机性能有限,设置太高的话也处理不过来,而且处理人声的话11025也是足够了。
(3) 编码
把接收到PCM数据交给encoder来处理即可,要求输入源为ENCODING_PCM_16BIT,即每个sample是16BIT的。这个encoder对象内有2个缓冲区:inbuf, outbuf。显然,在编码时,inbuf就是用于存储接收到的PCM数据,outbuf就是存编码后得到的数据。
int out_size = encoder.encode(in_size);
其返回值out_size,表示在outbuf里的有效数据长度。此时可以把outbuf里的aac数据通过网络发送或其他用途。
其中,用户需要知道encoder每次处理多长的数据,即一个frame的大小。对于单声道MONO来说,每次应该输入2048byte的数据。对于双声道STEREO来说,应该输入4096byte的数据。下面这一行可以根据声道数来计算输入的frame的大小:
int in_size = aac.Encoder.frameSize(1);
AAC解码:
(1) 创建一个Decoder对象作为成员变量
aac.Decoder decoder;
(2) 初始化
decoder = new aac.Decoder();
if( ! decoder.open())
{
Log.d("mylog", "failed to open decoder !\n");
decoder = null;
}
(3) 解码
Decoder对象也有inbuf和outbuf,把待解码的aac frame放到inbuf里
int pcm_size = decoder.decode(aac_size);
解得到数据在outbuf里,其有效长度为上述函数的返回值pcm_size,此时可以把outbuf里的PCM数据取出来播放或其他用途。
播放此文件需要一个音频编解码器。要确定此编解码器是否可以从 Web 上...
RealPlayer 10.5 解码核心 & ActiveX 6.0.12.1483 RealMedia Splitter 1.0.1.1 QuickTime 7.04.80 解码核心 & ActiveX (含 AMR/3GP & H264 in MOV 支持)Kopei's XviD Codec 1.10 (Build 20051230)ffdshow MPEG-4 Codec 20060403 (含 realaac、liba52、libdts、libtremor 等)On2 VP7 C...
我用BT下载了一部电影,用什么播放呀
3、OGG音频解码器:Ogg DirectShow Filter,用于播放Ogg音频或使用Ogg音频的AVI、Ogm文件的播放插件。 下载地址:http://www.shooter.com.cn/?softid=oggds 4、indeo编解码器:Indeo XP Codec Package Datecode 20030909 是Intel公司推出的一款高品质的AVI视频文件编码解码器,现在许多游戏中的动画仍然是使用Indeo Codec,...
FFmpeg常见命令行(一):FFmpeg工具使用基础
3. 转码参数:- 可以设置输出比特率、分辨率和帧率,如将video.mp4转为1280x720,比特率1000kbps。- 指定编码器:如使用AAC和H.264进行音频和视频编码。4. 基本转码原理:FFmpeg通过编解码、解封装、封装和过滤器处理音频和视频数据,实现不同格式之间的转换。5. ffprobe和ffplay应用:- ffprobe用于元...
...但录制效果不太完美,急求一个包装~美化~效果处理声音的软件...
安装waves 4.0后,在“DerectX”选择“wavesC4”,出现调整窗口.这时候要根据自己的声音对高低频进行调节,开始使用软件的时候也许还不知道怎么调整相关数据,大家可以这样,在调整窗口选择“load”,进去后会看到很多种效果,大家可以选择倒数第四个“popvocal”,然后按确定.压限的作用就是人声的高频不要...
[高分]暴风1.7关联设置,Real解码器丢失
↑- 更新 Media Player Classic 为非官方编译的 6.4.8.3 版本,在稳定性和功能上有了一定的改进↑- RealPlayer 10.5 解码器更新至 6.0.12.1056 简体中文正式版,并增加了对 Ogg Vorbis 音频编码的支持↑- QuickTime 解码器更新至 6.5.2.10 最新版本↑- XviD 核心更新至 1.1 alpha Koepi's Build 20041013↑- ...
FFmpeg使用手册 - FFmpeg 的基本组成
1.1 Avformat模块: 负责封装与解封装,支持众多格式和协议,如mp4、flv的处理,自定义封装格式需要添加新的format模块。1.2 Avcodec模块: 实现广泛的编码解码,部分依赖第三方编码器,如H.264、AAC等,扩展自定义编码格式需在codec模块中添加。1.3 Libavfilter: 通用音频/视频滤镜框架,处理如分割、裁剪...
压缩MP3最好的软件有哪些?
目前有成百上千种的MP3压缩软件,各自使用不同的编码解码方式。虽然压出来的文件? download.21cn.com/list.php?id=28663 33. CD to MP3 Maker 简体中文版 V1.21 Ease CD Ripper(简体中文版)能高速地将CD压缩成MP3,WAVE,WMA,OGG文件。适用于Wi download.21cn.com/list.php?id=41344 34. Vqf for Winamp...
XviD电影解码器.声音插件上那下载??
RealMedia Splitter 1.0.1.1 QuickTime 7.04.80 解码核心 & ActiveX (含 AMR/3GP & H264 in MOV 支持)Kopei's XviD Codec 1.10 (Build 20051230)ffdshow MPEG-4 Codec 20060123 (含 realaac、liba52、libdts、libtremor 等)On2 VP7 Codec 7.0.9.0 On2 VP6 Codec 6.4.2.0 Ligos ...
谁有vp62解码器给我个!!!
1、FFDShow 视频编码器,可编码自有的 FFVFW/FFDS 格式 MPEG4 视频和通用的 DivX 3_/XviD 视频,功能强大b 2、VP62 编码器,可用于编码 VP60/VP61/VP62 视频,同时可以 VFW 方式解码 VP62 视2,yI 频以临时解决 VP6 Decompressor 和 VSFilter 不兼容导致的字幕显示问题uYl 3、蓝色网际制作的 ...
关于android
LibWebCore - 一个最新的web浏览器引擎用来支持Android浏览器和一个可嵌入的web视图。 SGL - 一个内置的2D图形引擎 3D libraries - 基于OpenGL ES 1.0 APIs实现;该库可以使用硬件3D加速(如果可用)或者使用高度优化的3D软加速。 FreeType - 位图(bitmap)和向量(vector)字体显示。 SQLite - 一个对于所有应用程序...