android开发,静音录制视频,在一般清晰度的前提下保证文件大小越小越好
public void startRecord() {mediarecorder = new MediaRecorder();// 创建mediarecorder对象mCamera = getCameraInstance();Parameters parameters = mCamera.getParameters(); mCamera.autoFocus(null);// 解锁cameramCamera.setDisplayOrientation(90);mCamera.unlock();mediarecorder.setCamera(mCamera);List<Size> supportedPreviewSizes = parameters.getSupportedPreviewSizes(); for(int i=0;i<supportedPreviewSizes.size();i++){Log.v("startRecord", "width="+supportedPreviewSizes.get(i).width+";height="+supportedPreviewSizes.get(i).height);}// 设置录制视频源为Camera(相机) // mediarecorder.setAudioSource(MediaRecorder.AudioSource.CAMCORDER); mediarecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);// 设置录制文件质量,格式,分辨率之类,这个全部包括了 // mediarecorder.setProfile(CamcorderProfile.get(CamcorderProfile.QUALITY_480P)); //7.43M 10frame // mediarecorder.setProfile(CamcorderProfile.get(CamcorderProfile.QUALITY_1080P)); //70.94M 10frame // mediarecorder.setProfile(CamcorderProfile.get(CamcorderProfile.QUALITY_CIF)); // 2.6M 5frame/10frame // mediarecorder.setProfile(CamcorderProfile.get(CamcorderProfile.QUALITY_QCIF)); //0.76M 30frame 模糊 // mediarecorder.setProfile(CamcorderProfile.get(CamcorderProfile.QUALITY_QVGA)); //2.1M // mediarecorder.setProfile(CamcorderProfile.get(CamcorderProfile.QUALITY_TIME_LAPSE_CIF)); //不支持 // mediarecorder.setProfile(CamcorderProfile.get(CamcorderProfile.QUALITY_LOW)); //766KB 还行 比QUALITY_QCIF好 // mediarecorder.setProfile(CamcorderProfile.get(CamcorderProfile.QUALITY_TIME_LAPSE_LOW)); //1M 质量类似LOW // mediarecorder.setProfile(CamcorderProfile.get(CamcorderProfile.QUALITY_TIME_LAPSE_480P)); //480p效果 // mediarecorder.setAudioEncoder(MediaRecorder.AudioEncoder.); // mediarecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);// boolean isSupQUALITY_TIME_LAPSE_CIF = CamcorderProfile.hasProfile(CamcorderProfile.QUALITY_TIME_LAPSE_CIF); // boolean isSupQUALITY_LOW = CamcorderProfile.hasProfile(CamcorderProfile.QUALITY_LOW); // Log.v("startRecord", "isSupQUALITY_TIME_LAPSE_CIF="+isSupQUALITY_TIME_LAPSE_CIF+";isSupQUALITY_LOW="+isSupQUALITY_LOW); // // mediarecorder.setVideoFrameRate(30);//start实现录像静音 mediarecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4); // mediarecorder.setVideoSize(640,480);mediarecorder.setVideoSize(1280,720);//设置编码比特率,不设置会使视频图像模糊 // mediarecorder.setVideoEncodingBitRate(5*1024*1024); //清晰 512*1024(不清楚)mediarecorder.setVideoEncodingBitRate(900*1024); //较为清晰,且文件大小为3.26M(30秒)mediarecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264); //H263的貌似有点不清晰 // mediarecorder.setVideoFrameRate(10); //设置无效//end mediarecorder.setPreviewDisplay(surfaceHolder.getSurface());// 设置视频文件输出的路径mediarecorder.setOutputFile(Environment.getExternalStorageDirectory().getAbsolutePath() + "/data/data/"+System.currentTimeMillis()+".mp4");try {// 准备录制 mediarecorder.prepare();// 开始录制 mediarecorder.start();} catch (Exception e) {e.printStackTrace();}}
一般情况下,我们直接调用 mediarecorder 会产生很大的视频文件,30秒的为70M,因此,我们需要在录制视频时尽量控制视频文件的大小!
mediarecorder.setVideoEncodingBitRate(900*1024); //设置编码比特率,不设置会使视频图像模糊
android开发,静音录制视频,在一般清晰度的前提下保证文件大小越小越好相关推荐
- Android开发记录:视频提取音频
文章目录 前言 使用方法 前言 Android开发中从视频中提取音频主要有三种方式结合FFmpeg,MP4Parser,MediaExtractor. 多媒体视频处理工具FFmpeg有非常强大的功能包 ...
- android listview下拉动画效果,Android开发中利用ListView实现一个渐变式的下拉刷新动画...
Android开发中利用ListView实现一个渐变式的下拉刷新动画 发布时间:2020-11-23 16:50:31 来源:亿速云 阅读:80 作者:Leah 本篇文章给大家分享的是有关Androi ...
- 如何在不影响图片清晰度的前提下放大照片?
对于像素图而言,无损压缩的难度并不大.只要算法得当,就能在压缩体积的同时,尽可能多地保留细节. 而真正考验软件水平的,是图片无损放大.相信很多小伙伴也都知道,像素图是由若干个像素点组成的,放大后会模糊 ...
- Android开发 之 直播视频技术探究之---基础知识大纲介绍
一.前言 最近各种视频直播app到处都是,各种霸屏,当然我们也是需要体验的,关于视频直播的软件这里就不介绍了,在不是技术的人来看,直播是一种潮流,是一种娱乐方式,但是作为一个高技术的,我们除了看看,更 ...
- 老罗Android开发视频教程录制计划
录制视频的规划 1. android入门介绍9集--录制完成 2. 百度地图开发10集-- 录制完成 3. 常用UI的布局5集--已经更新到第二集 4. 常用UI控件32集 5. 菜单5集 6. 提示 ...
- 短视频开发,录制视频添加背景音乐功能实现
短视频开发,会在视频录制时提供相关的背景音乐选择,看似简单的选取背景音乐,但对开发人员来说却不是那么简单,如何实现短视频开发录制视频添加背景音乐功能呢? 1.短视频开发在录制界面点击音乐,绘制UI 添 ...
- Android自定义照相机录制视频
Android端视频的录制: 1.自定义Camera和MediaRecorder录制视频和拍摄照片,基本功能都能实现,但是也存在一定的问题.a.后置摄像头拍摄完成后照片自动旋转90度或者270度b.如 ...
- android 调用系统录制视频和音频
1.录制视频 请先申请相机权限 <uses-permission android:name="android.permission.CAMERA" /> public ...
- mac环境Android将屏幕录制视频转化成GIF动态图
一 需要本机配置好adb环境,录制视频 ①录制视频的命令: adb shell screenrecord /sdcard/example.mp4 ②保存到指定的文件件,比如本地的下载的目录 adb ...
最新文章
- linux 如何禁用账号和解除禁用账号
- HTML设置允许冒泡,html css hover也会冒泡
- Android笔记 fragment通信
- 洛谷 P1080 国王游戏
- Webstorm配置运行React Native
- git 拉取代码库的项目到本地(window系统)
- aspnetpager 详解
- win7高级搜索计算机,使用win7系统高级搜索功能的方法介绍
- vmware之centos7 删除分区
- VMware vmdk文件打开方法
- python解析sql字段血缘_SQL血缘关系分析
- JavaScript基础要点
- 如何实现网页分享到微信,微博,空间
- React-moveable的使用
- 通过数据分析找出Netflix最适合学习英语的电影和电视剧
- 弹性和瞬态故障处理库Polly之重试策略
- sketch怎么转换成html,手稿秒变html的Sketch 2 Code
- LilyPond教程(0)——目录和索引
- 如何选择大数据培训机构
- linux centos 解压 tar.bz2文件
热门文章
- wxwidgets mysql_Ubuntu下wxWidgets学生公寓管理编程,sqlite3的用法(mysql数据_MySQL
- c# imager让图片有圆角unity_Qt编写自定义控件24-图片轮播控件
- 腾讯云yum操作实现CentOS 7.6 64位Linux系统图形界面的安装和vnc的搭建
- 【直播回放】80分钟剖析GAN如何从各个方向提升图像的质量
- 全球及中国海洋工程装备行业产值规模价值及投资风险预警报告2021-2027年版
- 全球及中国微型风扇行业营销前景及发展趋势建议报告2022-2027年
- TEA加密算法的C/C++实现
- Hadoop实例之利用MapReduce实现日志清洗(附源代码)
- 电子工程师需要了解的SMT贴片质量问题汇总(转)
- SrpingCloud 之SrpingCloud config分布式配置中心