MultiMediaFramework
码农突围
这个作者很懒,什么都没留下…
展开
-
Android Multimedia框架总结(二十五)MediaProjection实现手机截屏(无须root)
前言:一年半多以前,我们曾有个项目,要做一个截屏功能,当时负责调研的同事,答应了产品上这个功能,但开发一周后,发现,无法实现截取手机屏幕图像,须要root权限,才能做。因为最近研究MediaProjection,意外的发现,竟然无须root,可以截屏原创 2017-01-01 19:29:59 · 9239 阅读 · 8 评论 -
Android Multimedia框架总结(五)多媒体基础概念
上篇中介绍了MediaPlayer从prepare到playback的其他过程,但是很多的一些音视频的基础概念可能还不是很清楚,今天将介绍下对于多媒体开发时,常常有一些基本概念。看下今天的Agenda:对杂而乱的媒体概念进行归类原创 2016-09-04 13:40:07 · 10316 阅读 · 2 评论 -
Android Multimedia框架总结(七)C++中MediaPlayer的C/S架构补充及MediaService介绍
前面一篇主要介绍c++中MediaPlayer的C/S架构中和Client相关部分,并中间穿插了mediaplayerservice的部分。但是对于这块C/S部分,没有放大去分析。- C/S模型中的三角关系流程图- MediaPlayerService相关联的类图- MediaPlayerService的产生过程- MediaPlayerService添加服务过程- MediaPlayerService通过原创 2016-09-08 01:26:00 · 7613 阅读 · 0 评论 -
Android Multimedia框架总结(十)Stagefright框架之音视频输出过程
前言:上篇文中最后介绍了数据解码放到Buffer过程,今天分析的是stagefright框架中音视频输出过程: 先看下今天的Agenda:- 一张图回顾数据处理过程- 视频渲染器构建过程- 音频数据到Buffer过程- AudioPlayer在AwesomePlayer运行过程- 音视频同步- 音视频输出- 一张图看音视频输出原创 2016-09-17 01:56:40 · 6588 阅读 · 1 评论 -
Android Multimedia框架总结(十六)Camera2框架之openCamera及session过程
前言:前一篇介绍了Camera2相关类作用及功能,并未对源码部分了解,今天了解了在Camera2框架中openCamera及session过程,Agenda如下:原创 2016-10-27 09:26:12 · 5609 阅读 · 1 评论 -
Android Multimedia框架总结(十五)Camera框架之Camera2补充
前言:监于5.0之后Google用的是Camera2相关API取代之前的Camera,过时的Camera虽然精典,但不再进行介绍,可自行查阅相关资料。今天本文是在正式深入代码前对Camera2的一个补充。原创 2016-10-07 19:12:09 · 5937 阅读 · 0 评论 -
Android Multimedia框架总结(十四)Camera框架初识及自定义相机案例
前言:国庆节告一段落,又是新一月,上月主要是围绕MediaPlayer相关展开,从今天开始,开始分析多媒体框架中的Camera模块,看下今天的Agenda:- Camera拍照- Camera录像- 新API android.hardware.camera2- 新旧API特点对比- Camera自定义相机- 新API android.hardware.camera2自定义相机原创 2016-10-05 16:35:33 · 15126 阅读 · 8 评论 -
Android Multimedia框架总结(十七)音频开发基础知识
近年来,唱吧,全民K歌,QQ音乐,等成为音频软件的主流力量,音频开发一直是多媒体开发中不可或缺的部分,如为什么这个声音这么不清楚,为什么耳机里有电流声,为什么录音时,有时会碰到奇怪的回声原创 2016-11-08 09:09:46 · 7892 阅读 · 5 评论 -
Android Multimedia框架总结(四)MediaPlayer中从Java层到C++层类关系及prepare及之后其他过程
前言:在上篇中,分析了MediaPlayer的从创建到setDataSource过程,尽管看了代码,但是没有从MediaPlayer生态上认识各类库之音依赖调用关系,在本篇中将作一个补充整体上的认识。看下今天的Agenda:- MediaPlayer各个so库之间关系结构图- MediaPlayer各个具体类之间依赖关系图- prepare的执行过程- asyncprepare执行过程- 两者区别原创 2016-09-03 02:18:46 · 9394 阅读 · 7 评论 -
Android Multimedia框架总结(一)MediaPlayer介绍之状态图及生命周期
前言:从本章开始,将进入Multimedia框架,包含MediaPlayer, Camera, Surface, MediaRecord, 接下来几篇都是MediaPlayer相关。同样看下Agenda如下: - MediaPlayer的状态图 - Idle 状态 - End 状态 - Error 状态 - Initialized状态原创 2016-08-29 00:25:50 · 22303 阅读 · 8 评论 -
Android Multimedia框架总结(二十七)MediaCodec回顾
Android App 通过 MediaCodec Java API 获得的编解码器,实际上是由 StageFright 媒体框架提供。android.media.MediaCodec 调用 libmedia_jni.so 中 JNI native 函数,这些 JNI 函数再去调用 libstagefright.so 库获得 StageFright 框架中的编解码器。StageFright再调用O原创 2017-06-04 15:35:34 · 6249 阅读 · 2 评论 -
Android Multimedia框架总结(二十六)利用FFmpeg进行解码直播流
转载请把头部出处链接和尾部二维码一起转载,本文出自逆流的鱼yuiop:http://blog.csdn.net/hejjunlin/article/details/59225373早在去年九月份时,写过一篇《手把手图文并茂教你用Android Studio编译FFmpeg库并移植》,今天用去年编译好的3.1.3的ffmpeg,进行在Android平台上解码直播流。看下Agenda:原创 2017-03-02 01:11:44 · 8477 阅读 · 6 评论 -
Android Multimedia框架总结(二十八)NuPlayer到OMX过程
NuPlayer是谷歌新研发的。 AwesomePlayer存在BUG,谷歌早已在android m 版本中弃用。spMediaPlayerBase> MediaPlayerService::Client::createPlayer(player_type playerType){ // determine if we have the right player type原创 2017-06-23 13:21:52 · 12443 阅读 · 1 评论 -
Android Multimedia框架总结(二)MediaPlayer框架及播放网络视频案例
今天的Agenda:- Android中的MediaPlayer框架- MediaPlayer播放视频主要模块- 播放主要模块对应组件- MediaPlayer方法对应有效状态及无效状态- 案例:Mediaplayer播放网络视频原创 2016-08-31 01:27:21 · 19935 阅读 · 20 评论 -
Android Multimedia框架总结(三)MediaPlayer中创建到setDataSource过程
前言:前一篇的mediaPlayer框架,对于各个模块的关系,得先从核心类MediaPlayer铺开,同样看下今天的Agenda:- MediaPlayer从create到setDisplay时序图- MediaPlayer的create过程- MediaPlayer的setDataSource过程- MediaPlayer的setDisplay过程原创 2016-09-01 01:32:00 · 16871 阅读 · 10 评论 -
Android Multimedia框架总结(六)C++中MediaPlayer的C/S架构
前面几节中,都是通过java层调用到jni中,jni向下到c++层并未介绍 看下Java层一个方法在c++层 MediaPlayer后续过程frameworks/av/media/libmedia/MediaPlayer.cpp 找一个我们之前熟悉的setDataResource方法看下C/S模式的过程,亦可参考[Android Multimedia框架总结(四)MediaPlayer中从Java层到C++层类原创 2016-09-05 07:29:11 · 7642 阅读 · 5 评论 -
Android Multimedia框架总结(二十四)MediaMuxer实现手机屏幕录制成gif图
前言:上篇中,介绍是用MediaMuxer与MediaExtractor进入音视频的裁剪,今天用MediaMuxer与AudioRecord与MediaCodec及Surface进行屏幕录制成gif。看下Agenda原创 2016-12-25 02:22:14 · 15589 阅读 · 6 评论 -
Android Multimedia框架总结(二十三)MediaCodec补充及MediaMuxer引入(附案例)
前言:前面几章都是分析MediaCodec相关源码,有收到提问,说MediaCodec到底是硬解码还是软解码?看下今天的Agenda:MediaCodec到底是硬解码还是软解码MediaMuxer初识原创 2016-12-19 00:10:08 · 17547 阅读 · 6 评论 -
Android Multimedia框架总结(二十二)MediaCodec中C++中创建到start过程及状态变换
上一章介绍MediaCodec中创建到start过程(到jni部分),从今天开始,将深入源码中看看其c++过程,看下Agenda如下:mediacodec.hCreateByTypeinitMediaCodec中BufferInfo内部类:configure过程startBufferInfo在MediaCodec.h中对应是一个结构体//create by 逆流的鱼yuiop on 2016/12原创 2016-12-11 16:41:53 · 7898 阅读 · 1 评论 -
Android Multimedia框架总结(二十一)MediaCodec中创建到start过程(到jni部分)
上一章介绍MediaCodec的说明及状态图,从今天开始,将深入源码中看看其过程,看下Agenda如下:- 一张图看清MediaCodec从创建到start过程- 补充MediaCodec基本用法- MediaCodec中BufferInfo内部类:- android_media_MediaCodec.cpp- android_media_MediaCodec.h原创 2016-11-28 23:03:37 · 14743 阅读 · 2 评论 -
Android Multimedia框架总结(二十)MediaCodec状态周期及Codec与输入/输出Buffer过程(附实例)
前言:前面几节都是介绍Camera2相关,对于Camera2预览把图像显示在SurfaceView上,还有录像时,时时刷新当前图像区域。追溯到最早介绍的MediaPlayer播放视频,这些都离不开重要角色MediaCodec,今天介绍MediaCodec,看下Agenda:原创 2016-11-16 10:46:21 · 13733 阅读 · 7 评论 -
Android Multimedia框架总结(十九)Camera2框架C/S模型之CameraService启动及与Client连接过程
Agenda:- 一张图看Camera2框架类图- CameraService启动- ICameraService.cpp- Camera2Client.h与Camera2Client.cpp- ICamera.h与 ICamera.cpp- Camera2Client与CameraService连接原创 2016-11-13 18:20:37 · 7281 阅读 · 1 评论 -
Android Multimedia框架总结(十八)Camera2框架从Java层到C++层类关系
Agenda:getSystemService(Context.CAMERA_SERVICE)CameraManager.getCameraIdList()ICameraService.aidlICameraService.cppcamera2中从Java层到C++层,以获取摄像头数目为例。 1.当我们获取摄像头时,会调用 CameraManager manager = (Camera原创 2016-11-12 11:43:04 · 5661 阅读 · 0 评论 -
Android Multimedia框架总结(十三)CodeC部分之OpenMAX框架初识及接口与适配层实现
前言:上篇中介绍OMX事件回调,从今天开始,走入Codec部分之OpenMAX框架里。看下今天的Agenda如下:- 一张图回顾音视频同步- 一张图看清OpenMAX在Android系统中位置- OpenMAX是什么- OpenMax IL简介- OpenMax IL结构- Android中OpenMax的使用情况- OpenMax的接口与实现 - Android中OpenMax的适配层- mp3原创 2016-09-24 22:19:31 · 14374 阅读 · 2 评论 -
Android Multimedia框架总结(十二)CodeC部分之OMXCodec与OMX事件回调流程
前言:上篇文中分析到AwesomePlayer到OMX服务,曾介绍到,OMX服务主要完成三个任务: NodeInstance列表的管理,NodeInstance的操作, 事件的处理。最后这个事件处理就是今天放大看的内部细节,看看Codec部分...原创 2016-09-23 00:18:33 · 7278 阅读 · 0 评论 -
Android Multimedia框架总结(十一)CodeC部分之AwesomePlayer到OMX服务
前言:上篇文《Android Multimedia框架总结(十)》总结了音视频的输出过程,从今天开始分析Codec部分,今天分析的是AwesomePlayer到OMX服务过程,也就是开启OpenMax准备相关。先看下今天的Agenda原创 2016-09-22 16:15:44 · 7207 阅读 · 2 评论 -
Android Multimedia框架总结(九)Stagefright框架之数据处理及到OMXCodec过程
不知不觉到第九篇了,感觉还有好多好多没有写,路漫漫其修远兮 ,吾将上下而求索,上篇主要介绍了Stagefright框架及AwesomePlayer的数据解析器,最后我们说道,涉及parse及decode部分,将在本篇中介绍,看下今天的Agenda原创 2016-09-14 03:02:36 · 7945 阅读 · 4 评论 -
Android Multimedia框架总结(八)Stagefright框架之AwesomePlayer及数据解析器
前言:前面一篇分析了mediaplayerservice及MediaPlayer中的CS模型,但是对于如何能把数据解析出来,渲染到最终的SurfaceView上显示,并且播放起来,我们依然还不得而知,从今天开始,就开始介绍多媒体框架中数据解析->解码->渲染输出过程,也就是后面几篇都要介绍的stagefright框架。先看下今天的Agenda:原创 2016-09-11 22:21:05 · 11361 阅读 · 5 评论 -
直播首屏耗时400ms以下的优化实践
本文首发于公号:码农突围导读:直播行业的竞争越来越激烈,进过18年这波洗牌后,已经度过了蛮荒暴力期,剩下的都是在不断追求体验。通过多种方案并行,把首开降到500ms以下,希望能对大家有借鉴。背景:基于FFmpeg的ijkplayer,最新版本0.88版本。拉流协议基于http-flv,http-flv更稳定些,国内大部分直播公司基本都是使用http-flv了,从我们实际数据来看,http-f...原创 2019-09-27 20:49:16 · 868 阅读 · 0 评论