美文网首页
Android 音视频开发五 解码

Android 音视频开发五 解码

作者: Kael_Zhang的安卓笔记 | 来源:发表于2023-02-26 14:51 被阅读0次

概述

  • 解码是编码的逆过程,对编码后的数据进行逆向操作,还原原始数据的过程
  • 前面几个章节详细讲解了图像基础以及编码流程,其中并未涉及具体算法,编解码算法较为复杂&枯燥,对于Android音视频开发应用层初学者而言,可以暂时跳过算法的学习
  • 目前有很多成熟的编解码工具,MediaCodec就是Android平台专门处理硬编解码的工具

编解码的软硬之分

  • 软编软解码:使用CPU进行编码,一般是执行代码运行算法指令编码,效率低、资源占用高、兼容性好!
  • 硬编硬解码:使用非CPU进行编码,如显卡GPU、专用的DSP、FPGA、ASIC芯片等,效率高、资源占用低、兼容性差!

MediaCodec

  • MediaCodec是Android平台提供的一个底层的音视频编解码框架,它是安卓底层多媒体基础框架的重要组成部分。它经常和 MediaExtractorMediaSyncMediaMuxerMediaCryptoMediaDrmImageSurfaceAudioTrack等一起使用
  • MediaCodec大体流程


    MediaCodec大体流程

    上图所示,数据左进右出,其中有输入和输出端各有若干个buffer,输入端不断拿到一个空buffer,装上数据,传入MediaCodec,输出端不断从MediaCodec获取到buffer,每次得到处理好的数据后,再将buffer交还给MediaCodec

  • MediaCodec状态


    MediaCodec状态

    上图所示,MediaCodec可以理解为一个状态机,期间会经历多个状态,具体来说是总共有三个大状态:Stopped、Executing 、Released,其中Stopped包含Uninitialized、Configured、Error三个小状态,Executing包含Flushed、Running 、End-of-Stream三个小状态

  • 具体用法,可以参考官网
    MediaCodec

相关文章

网友评论

      本文标题:Android 音视频开发五 解码

      本文链接:https://www.haomeiwen.com/subject/alegkdtx.html