1.MainActivity.java import android.app.Activity; import android.os.Bundle; import android.os.Environment; import android.view.SurfaceHolder; import android.view.SurfaceView; /** * MediaCodec SurfaceHolder Example * @author taehwan * */ public class M…
场景介绍: 设备端通过服务器传向客户端(Android手机)实时发送视频数据(H.264)和音频数据(g711a或g711u), 需要在客户端将音视频数据保存为MP4文件存放在本地,用户可以通过APP或者直接在手机上观看MP4文件. 解决方案: 通过Android MultiMedia Framework提供的MediaMuxer类对音视频数据进行同步合成. 流程图: 流程分析: 1.整体来看, 合成的MP4文件, 视频部分为H.264编码格式的数据, 音频部分为AAC编码格式的数据, 因此,…
前段时间项目中需要在 Android 中播放视频.流媒体.查看监控,就研究了一下 Android 多媒体解决方案. 查找了一下,大致有如下几种: Android MediaPlayer FFmpeg Google ExoPlayer Vitamio VLC Android MediaPlayer 是 Android 内置的播放器,支持格式很有限:3gp mp4,且不支持流媒体. FFmpeg 是一套功能强大的跨平台多媒体解决方案,需要用NDK编译,支持海量格式.流媒体. Google ExoPl…
在这里给出自己的一个测试DEMO,里面注释很详细.简单的视频录制功能. package com.video; import java.io.IOException; import android.app.Activity; import android.content.pm.ActivityInfo; import android.graphics.PixelFormat; import android.media.MediaRecorder; import android.os.Bundle;…
前言 说到android的多媒体,一把辛酸一把泪,当初听说会多媒体的比较牛掰,公司也有需求,于是乎我也积极的加入研究android多媒体的行列,记得以前刚接触的时候,最开始还是比较头大的,主要是但是很多细节比较零散凌乱,无法形成规律模式和合理的解决方案,但是慢慢也虽然接触了久了,很多事情也就明白过来了,接触android三年多四年了,慢慢的也有些学习和做事的体会,多媒体的接触过程更加的强化我的学习规律,因为最近公司事情比较少,基本没有加班,晚上就写写自己的博客,分享下以前学习多媒体过程,下面我也…
目录:     (4)Android 官方网站 对 MediaCodec的介绍 注:编解码器特定数据(Code-specific Data,简写为csd) 部分结合网上资料加入了补充和个人理解.请悉知.   正文:         MediaCodec类可用于访问底层媒体编解码器,例如:编码器/解码器组件.它是Android底层多媒体支持基础架构的一部分(通常与MediaExtractor, MediaSync, MediaMuxer, MediaCrypto, MediaDrm, Image,…
在Android多媒体类,MediaMuxer和MediaCodec这是一个相对年轻,他们是JB 4.1和JB 4.3据介绍. 前者被用来产生一个混合的音频和视频的多媒体文件.的缺点是,现在可以只支持一个audio track而一个video track,而唯一支持mp4出口.然是新生事物,相信之后的版本号应该会有大的改进.MediaCodec用于将音视频进行压缩编码,它有个比較牛X的地方是能够对Surface内容进行编码,如KK 4.4中屏幕录像功能就是用它实现的. 注意它们和其他一些多媒体相…
android的多媒体框架中, stagefright其实是AwesomePlayer的代理,就是个皮包公司. status_t StagefrightPlayer::setDataSource( const char *url, const KeyedVector<String8, String8> *headers) { return mPlayer->setDataSource(url, headers); } status_t StagefrightPlayer::prepare…
1. 使用NDK去编译官方的FFmpeg原版的话,还得自己实现JNI层与Java层,工程量比较大.所以移植FFmpeg到Android平台时,可以移植一些已经实现JNI与JAVA层的开源项目,毕竟软件行业从来都是站在巨人肩膀上发展的. 2.移植havlenapetr/FFMpeg havlenapetr的开源项目是比较出名的一个FFmpeg工程,很多Android多媒体项目都是在此基础上面修改的. 下载地址:https://github.com/havlenapetr/FFMpeg 可以直接ZI…
Android多媒体整体架构图 MediaPlayer框架图 Camera框架图 SoundRecorder框架图 VideoCamera框架图 OpenCore与Skia ALSA Audio框架图 Video Overlay框架图 Camera HAL演化图…