【第四篇章-android平台MediaCodec】编解码逻辑认识

假设我们需要做的东西是一个媒体文件合成器,功能是先截取出多段媒体文件中的某些片段,再将这些片段合成为一个新的媒体文件,那么我们可以用mediacodec来帮我们做些事情。

MediaCodec进行编解码的大体逻辑是这样的:

主要函数的调用逻辑如下:

从图可知,我们先用解码器将多段outputBuffer数据拿出来,然后再用编码器将它们放到一个文件里去。如果还要加上叠加字幕、特技处理等的效果,那么也是先拿到outputBuffer,然后处理,最后将处理后的数据喂给编码器,生成最终文件。

时间: 2024-10-22 05:47:32

【第四篇章-android平台MediaCodec】编解码逻辑认识的相关文章

【第四篇章-android平台MediaCodec】判断是否支持硬解码代码

public boolean isSupportMediaCodecHardDecoder(){ boolean isHardcode = false; //读取系统配置文件/system/etc/media_codecc.xml File file = new File("/system/etc/media_codecs.xml"); InputStream inFile = null; try { in = new FileInputStream(file); } catch (E

【第四篇章-android平台MediaCodec】解决Observer died. Quickly, do something, ... anything...

当出现!!!Observer died. Quickly, do something, ... anything...说明你的程序已经出现严重异常了,那会是什么情况呢?这个问题困扰了我许久,后来原来是使用了mediacodec的非公有API导致的,去掉这个API即OK. 版权声明:本文为博主原创文章,未经博主允许不得转载.

【第一篇章-android平台buffer播放探索】Steaming Source Player

为了在android平台找到buffer播放方式,花了不少功夫,在这个探索过程中,果断否定了native media的方式,在找到Steaming Source Player之前还进行了一次Nuplayer的尝试,我们把android里面的Nuplayer单独独立出来可进行NDK编译用加载库的方式跑起来,在三星以及小米的手机上跑是没有问题的,整体功能还算OK,但是想android平台通吃的话,会遇到很多兼容性问题,因为Nuplayer要对接底层OMX相关的模块,并不是每一家对OMX的封装做的到位

直播技术总结(二)ijkplayer的编译到Android平台并测试解码库

转载请把头部出处链接和尾部二维码一起转载,本文出自逆流的鱼yuiop:http://blog.csdn.net/hejjunlin/article/details/55670380 前言:ijkplayer,是b站工程师开源的播放器框架,基于FFmpeg及MediaCodec,内部实现软解及硬解的功能,对于没有自研底层播放器的公司,用它确实是比较合适了.关于介绍可以直接看:https://github.com/Bilibili/ijkplayer,今天主要是对ijkplayer进行编译在Andr

【第二篇章-android平台buffer播放实现】buffer play demo

通过第一篇章的探索,可以明确下在android平台下是可以实现buffer播放的,它支持的android的版本是从4.0开始的,因此,android平台可以实现android4.0以上平台的buffer播放.我已经实现了一个DEMO,支持4.1到4.4,大家可以使用下,需要的人多的话可以分享源码.

Android Base64 URI 编解码bad base-64异常处理

这篇随笔介绍一个常用的Base64对URI编解码时不容易发现的异常状况. Android使用NanoHTTPD作为HTTP服务器对外提供HTTP数据流传输的应用里,用Base64对一个资源进行了编码,如下(调试截图): 资源:/storage/emulated/0/Movies/The Mountain.mp4 Base64编码后:L3N0b3JhZ2UvZW11bGF0ZWQvMC9Nb3ZpZXMvVGhlIE1vdW50YWluLm1wNA== 此时该资源的链接是这样的:http://xx

Android JNI Lame编解码实现wav到MP3的转换

1.JNI简介 JNI全称为Java Native Interface(JAVA本地调用).从Java1.1开始,JNI成为java平台的一部分,它允许Java代码和其他语言写的代码(如C&C++)进行交互.并非从Android发布才引入JNI的概念的. 2.JNI与NDK 简单来说,Android的NDK提供了一些交叉编译工具链和Android自带的库,这些Android的库可以让开发者在编写本地语言的程序时调用.而NDK提供的交叉编译工具链就对已经编写好的C&C++代码进行编译,生成库

【第一篇章-android平台buffer播放探索】buffer play demo

从google发布的各个android版本源码看,android4.0开始就做了支持buffer播放的接口及demo了,编译完android SDK后在out中会生成一个可执行文件stream,这个就是一个非常好的demo测试程序,支持H264的ts播放,程序源代码位置以android4.3为例说明下,目录:android4.3\frameworks\av\cmds\stagefright,对应文件为stream.cpp,通用播放器用buffer来做突破口就在此哦,从这里开始,感兴趣的可以这么做

android MediaCodec 音频编解码的实现——转码

原文地址:http://blog.csdn.net/tinsanmr/article/details/51049179 从今天开始 每周不定期更新博客,把这一周在工作与学习中遇到的问题做个总结.俗话说:好记性不如写博客,善于总结的人才能走的更远.写博客这种利人利己的好处我就不一 一列举了,总之,谁做谁知道,哈哈.在文章中如果有什么问题或者错误,欢迎各位的讨论和指正.好了,步入正题,来看看我们今天要讲的MediaCodec 一.概述 由于项目的需要,需要将mp3文件转码为aac音频文件,起初打算移