zoukankan      html  css  js  c++  java
  • android 音频编解码1

    1. Android 官方的 MediaCodec API
    该 API 是在 Andorid 4.1 (API 16) 版本引入的
    MediaCodec 使用的基本流程是:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    - createEncoderByType/createDecoderByType
    - configure
    - start
    - while(1) {
    - dequeueInputBuffer
    - queueInputBuffer
    - dequeueOutputBuffer
    - releaseOutputBuffer
    }
    - stop
    - release
    1,从 input 缓冲区队列申请 empty buffer [dequeueInputBuffer]
    2,把需要编解码的数据拷贝到 empty buffer,然后放入 input 缓冲区队列 [queueInputBuffer] 
    3,MediaCodec 模块从 input 缓冲区队列取一帧数据进行编解码处理
    4,编解码处理结束后,MediaCodec 将原始数据 buffer 置为 empty 后放回 input 缓冲区队列,将编解码后的数据放入到 output 缓冲区队列
    5,从 output 缓冲区队列申请编解码后的 buffer [dequeueOutputBuffer]
    6,对编解码后的 buffer 进行渲染/播放
    7,渲染/播放完成后,再将该 buffer 放回 output 缓冲区队列 [releaseOutputBuffer]
    第3方库:
    (1) opus 编解码库
    opus 官网地址:https://www.opus-codec.org
    注:如今 Android 5.0 已经官方支持 opus 格式了,关于 Android 支持的多媒体格式列表可以查看 Android developer guide:《Supported Media Formats》
    (2) Speex 编解码库
    老牌的音频处理库,不仅是编解码,还提供了包括音频去噪、回声消除、静音检测等功能,官网地址:http://www.speex.org
    (3) ffmpeg
    iLBC-Android
    iLBC 是著名的 WebRTC 项目的音频编解码模块,iLBC-Android 是从中抽取 iLBC 模块移植到 Android 平台的个人项目,地址:https://github.com/lukeweber/iLBC-Android
    参考
  • 相关阅读:
    iOS埋点统计
    iOS CrashLog Analysis
    ffmpeg for iOS
    Charles抓包http和https
    reveal查看任意APP
    TesseractOCR
    JSPatch
    Mac如何找到从AppStore下载的正版Xcode安装包、以及Xcode清理缓存
    reveal
    TestFlight
  • 原文地址:https://www.cnblogs.com/elesos/p/5924598.html
Copyright © 2011-2022 走看看