音频编解码(软/硬编码),音频转码

> 音频编解码(软编码)
FFMpeg视频软件编解码的。B站的ijkplayer等。

 音频数据的编解码- http://blog.51cto.com/ticktick/1760191
1.Android AAC Encoder
一款轻量级的 Android aac 编码库:https://github.com/timsu/android-aac-enc
 2.opencore-amr-android
从 opencore 抽取出来的 amr 编解码库:https://github.com/kevinho/opencore-amr-android
 3.iLBC-Android
iLBC 是著名的 WebRTC 项目的音频编解码模块,iLBC-Android 是从中抽取 iLBC 模块移植到 Android 平台的个人项目,地址:https://github.com/lukeweber/iLBC-Android

环形缓冲区- https://github.com/Jhuster/clib/tree/master/rw_queue
JSSRC- https://github.com/hutm/JSSRC

> 音频转码
MediaCodec编译pcm为aac- https://blog.csdn.net/tn0521/article/details/44980183
android MediaCodec 音频编解码的实现,转码-  https://www.cnblogs.com/Sharley/p/5964490.html
  mp3转码成aac为例,转码实现原理:mp3->pcm->aac,首先将mp3解码成PCM,再将PCM编码成aac格式的音频文件。PCM:可以将它理解为,未经过压缩的数字信号,mp3、aac等 理解为pcm压缩后的文件。播放器在播放mp3、aac等文件时要先将mp3等文件解码成PCM数据,然后再将PCM送到底层去处理播放。 接入了一个第三方的SDK,从中下载下来的音频是AAC格式的。采样率是44.1KHZ。双声道,16Bit。那么首先我需要把他转成PCM。
  编码的aac音频不能播放:在编码过程中需要为aac音频添加ADTS head。

> 音频编解码(硬编码MediaCodec)
  利用Android4.1增加的API MediaCodec和Android 4.3增加的API MediaMuxer进行Mp4视频的录制。
  MediaExtractor:可用于分离视频文件的音轨和视频轨道,如果你只想要视频,那么用selectTrack方法选中视频轨道,然后用readSampleData读出数据,这样你就得到了一个没有声音的视频。传入的是一个音频文件(mp3),所以也就只有一个轨道,音频轨道。
  mime:用来表示媒体文件的格式 mp3为audio/mpeg;aac为audio/mp4a-latm;mp4为video/mp4v-es 此处注意前缀 音频前缀为audio,视频前缀为video 我们可用此区别区分媒体文件内的音频轨道和视频轨道

Android音频编解码和混音实现- https://blog.csdn.net/zhaoshaolei123/article/details/76034298
Android音频编解码和混音- https://github.com/YeDaxia/MusicPlus

ACC音频有ADIF和ADTS两种,第一种适用于磁盘,第二种则可以用于流的传输,它是一种帧序列。
 -- 数字音频的有关属性:
 1.采样频率(Sample Rate):每秒采集声音的数量,它用赫兹(Hz)来表示。(采样率越高越靠近原声音的波形);
 2.采样精度(Bit Depth):指记录声音的动态范围,它以位(Bit)为单位。(声音的幅度差);
 3.声音通道(Channel):声道数。比如左声道右声道。

  AudioRecord采集的是PCM数据。Android官方提供给我们的用于编解码的类是MediaCodec,它是android 4.1(API 16)才引入的,所以只能工作于andorid4.1以上的手机,如果想兼容4.1以下版本的手机,只能使用第三方库,如大名鼎鼎的ffmpeg,B站的ijkplayer等。

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Python是一种功能强大的编程语言,可用于视音频编解码。首先,Python提供了许多第三方库,如OpenCV、PIL、Pygame和MoviePy等,使得处理图像和视频变得非常方便。这些库可以用于读取、处理和显示图像和视频文件。 对于音频编解码,Python也有相应的库和工具。例如,Pydub是一个用于处理音频文件的流行库,它可以用于读取、剪辑、合并和转换不同格式的音频文件。此外,Python还支持音频编码格式,如WAV、MP3和FLAC,可以使用相应的库进行编解码和处理。 使用Python进行视音频编解码的好处之一是它的跨平台性。Python支持多个操作系统,包括Windows、Linux和Mac OS,因此可以在不同的平台上进行视音频处理。此外,Python还可以与其他编程语言进行集成,如C++和Java,以提供更多的功能和性能。 尽管Python在视音频编解码方面具有一定的能力,但对于高性能的需求和复杂的算法,其他语言如C或C++可能更适合。此外,Python在处理大型视频文件时可能会受到性能限制,需要更高级别的处理。因此,对于大型和高性能的视音频编解码任务,可能需要结合其他编程语言来实现。 总之,Python作为一种多用途的编程语言,可以用于简单的视音频编解码任务。它提供了丰富的库和工具,使得处理图像和音频变得更加容易和便捷。然而,在处理复杂的算法和大型文件时,可能需要结合其他语言来获得更高的性能和功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值