随笔分类 -  Android音视频

摘要:一、播放视频说明 1、两种方式播放视频 ①shader播放YUV,后面再介绍。 ②RGB直接显示数据,简单。性能差,用到FFmpeg的格式转换,没有shader效率高。本文介绍这个方式。 2.GLSurfaceView原理(双缓冲机制): SurfaceHolder: getHolder().get 阅读全文
posted @ 2018-11-25 23:02 弄潮儿儿 阅读(1455) 评论(0) 推荐(0)
摘要:一、Open SL ES播放声音流程 简单说明 Open SL ES是android内部的接口,本身可以解码音频,但是我们用FFmpeg,,也可以来录音 。 SL引擎:上下文 混音器:两路声音的混合 Play:控制播放 , 有一个队列来存储播放的数据,设置一个回调的方法,播放之后调一下回调方法拿数据 阅读全文
posted @ 2018-11-24 00:53 弄潮儿儿 阅读(516) 评论(0) 推荐(0)
摘要:一、重采样流程 重采样(解码音频数据之后格式不可以直接播放,需要重采样,类似图像的像素转换) 1.分配上下文 2.设置参数(分为(前几个是)输出格式和(后几个)输入格式,两个相对应的) 可以通过改变样本率来改变音频的播放速度,但是会失帧。 3.初始化 4.开始转换 二、相关函数说明 1、 SwrCo 阅读全文
posted @ 2018-11-21 15:16 弄潮儿儿 阅读(2063) 评论(0) 推荐(0)
摘要:一、基本流程 1、sws_getCachedContext();//得到像素转换的上下文 2、sws_scale();//进行转换 二、函数说明 1、SwsContext *vctx = NULL; //像素格式转换的上下文 frameCount++; //从缓冲中获取上下文 ,参数中原来的格式转换 阅读全文
posted @ 2018-11-21 15:16 弄潮儿儿 阅读(562) 评论(0) 推荐(0)
摘要:一、编解码基本流程 主要流程: 打开视频解码器(音频一样) 软解码、硬解码 进行编解码 下面先来看打开视频解码器 ①avcodec_register_all()//初始化解码 ②先找到解码器、 找解码器(软解码):AVCodec *codec = avcodec_find_decoder(strea 阅读全文
posted @ 2018-11-21 15:13 弄潮儿儿 阅读(939) 评论(0) 推荐(0)
摘要:一、解封装基本流程 二、函数介绍 ①av_register_all(); 初始化解封装,注册解封装格式 在最开始编译FFmpeg的时候,我们做了一个configure的配置,其中开启或者关闭了很多选项。configure的配置会生成两个文件:config.mk和config.h。 config.mk 阅读全文
posted @ 2018-11-21 15:12 弄潮儿儿 阅读(644) 评论(0) 推荐(0)
摘要:1. FFmpeg分为3个版本:Static、 Shared、 Dev 前两个版本可以直接在命令行中使用。包含了三个exe:ffmpeg.exe,ffplay.exe,ffprobe.exe Static版本中的exe体积较大,那是因为相关的Dll都已经编译进exe里面去了。 Shared版本中ex 阅读全文
posted @ 2018-11-12 17:44 弄潮儿儿 阅读(239) 评论(0) 推荐(0)