XVideo 一个能自动进行压缩的小视频录制库
XVideo
一个能自动进行压缩的视频录制库
关于我
特征
支持自定义小视频录制时的视频质量。
支持自定义视频录制的界面。
支持自定义最大录制时长和最小录制时长。
支持自定义属性的视频压缩。
演示(请star支持)
添加Gradle依赖
1.在项目根目录的 build.gradle 的 repositories 添加:
allprojects {repositories {...maven { url "https://jitpack.io" }}
}
2.在主项目的 build.gradle 中增加依赖。
dependencies {···implementation 'com.github.xuexiangjys:XVideo:1.0.1'
}
3.进行视频录制存储目录地址的设置。
/*** 初始化xvideo的存放路径*/
public static void initVideo() {XVideo.setVideoCachePath(PathUtils.getExtDcimPath() + "/xvideo/");// 初始化拍摄XVideo.initialize(false, null);
}
视频录制
1.视频录制需要CAMERA
权限和STORAGE
权限。在Android6.0机器上需要动态获取权限,推荐使用XAOP进行权限申请。
2.调用MediaRecorderActivity.startVideoRecorder
开始视频录制。
/*** 开始录制视频* @param requestCode 请求码*/
@Permission({PermissionConsts.CAMERA, PermissionConsts.STORAGE})
public void startVideoRecorder(int requestCode) {MediaRecorderConfig mediaRecorderConfig = MediaRecorderConfig.newInstance();XVideo.startVideoRecorder(this, mediaRecorderConfig, requestCode);
}
3.MediaRecorderConfig
是视频录制的配置对象,可自定义视频的宽、高、时长以及质量等。
MediaRecorderConfig config = new MediaRecorderConfig.Builder().fullScreen(needFull) //是否全屏.videoWidth(needFull ? 0 : Integer.valueOf(width)) //视频的宽.videoHeight(Integer.valueOf(height)) //视频的高.recordTimeMax(Integer.valueOf(maxTime)) //最大录制时间.recordTimeMin(Integer.valueOf(minTime)) //最小录制时间.maxFrameRate(Integer.valueOf(maxFrameRate)) //最大帧率.videoBitrate(Integer.valueOf(bitrate)) //视频码率.captureThumbnailsTime(1).build();
视频压缩
使用libx264进行视频压缩。由于手机本身CPU处理能力有限的问题,在手机上进行视频压缩的效率并不是很高,大约压缩的时间需要比视频拍摄本身的时长还要长一些。
LocalMediaConfig.Builder builder = new LocalMediaConfig.Builder();
final LocalMediaConfig config = builder.setVideoPath(path) //设置需要进行视频压缩的视频路径.captureThumbnailsTime(1).doH264Compress(compressMode) //设置视频压缩的模式.setFramerate(iRate) //帧率.setScale(fScale) //压缩比例.build();
CompressResult compressResult = XVideo.startCompressVideo(config);
混淆配置
-keep class com.xuexiang.xvideo.jniinterface.** { *; }
特别感谢
https://github.com/mabeijianxi/small-video-record
联系方式
微信公众号
XVideo 一个能自动进行压缩的小视频录制库相关推荐
- python批量删缩进_鬼畜小姐姐+野狼disco,十分钟教你如何用Python剪辑一个牛逼的抖音小视频?...
鬼畜小姐姐+野狼disco,十分钟教你如何用Python剪辑一个牛逼的抖音小视频? 前言 半个月前,后台有个小伙伴问我,如何将视频中的音频提取出来,并且将声音转成文字写入到 word 中,正好接下来的 ...
- 自动爬取bilibi小视频
自动爬取bilibi小视频 实验环境 实验步骤 第一步:查找request URL请求地址 第二步:代码实现 1.访问目标网址代码 2.下载情况展示 3.编写主函执行程序 实验环境 Chrome 浏览 ...
- Android仿微信小视频录制功能
还没看完,应该还不错,先收藏,觉得可以开拓 https://blog.csdn.net/u012227600/article/details/50835633 -------------------- ...
- FFmpeg 开发(12):Android FFmpeg 实现带滤镜的微信小视频录制功能
前文利用 FFmpeg 分别实现了对 Android Camera2 采集的预览帧进行编码生成 mp4 文件,以及对 Android AudioRecorder 采集 PCM 音频进行编码生成 aac ...
- Android录制视频,仿微信小视频录制(一)
Android录制视频,第一部分自定义控件 简述 公司有一个录制视频并上传的功能,录制视频具体使用类如下:硬件控制使用Camera,视频录制的格式音频等具体配置与录制使用MediaRecorder,预 ...
- Android仿微信小视频录制功能(二)
Android仿微信小视频录制功能(二) 接着上一篇,在完成了录制功能后,伟大的哲学家沃兹基索德曾经说过:"有录就有放.",那么紧接着就来实现播放功能,按照国际惯例,先上下效果图: ...
- Android 微信小视频录制功能实现
目录 开发之前 开发环境 相关知识点 开始开发 案例预览 案例分析 搭建布局 视频预览的实现 自定义双向缩减的进度条 录制事件的处理 长按录制 抬起保存 上滑取消 双击放大(变焦) 实现视频的录制 实 ...
- Android 仿微信小视频录制
Android 仿微信小视频录制 WechatShortVideo和WechatShortVideo文章
- 使用Vue做一个可自动拼图的拼图小游戏(二)
背景以及最终效果 在上一篇文章中我们已经写完了一个可以正常玩的拼图小游戏,但是这还没有结束,我们还要接着试一下让拼图游戏可以自己完成拼图. 在线体验 本部分是这篇文章的第二部分,主要讲的是实现自动拼图 ...
最新文章
- 彩色图像到灰度转换 常见方法汇总与对比
- SQL 2008中修改表结构提示“阻止保存要求重新创建表的更改”
- Java实现BASE64编解码
- 使用Dnsmasq加速苹果App Store、iCloud、iTunes、Mac更新等访问速度
- 将查询结果插入到现有表中
- Java程序员从笨鸟到菜鸟之(九十九)深入java虚拟机(八)开发自己的类加载器...
- 这周,全球首个IT技术全中文免费学习平台诞生了!太惊艳!
- mysql 磁盘i o 优化_经典案例:磁盘I/O巨高排查全过程
- CF802C-Heidi and Library(hard)【费用流】
- nuc972的ramfs的配置yaffs2,ubi文件系统
- windows和linux中搭建python集成开发环境IDE——如何设置多个python环境
- Storm入门-Storm与Spark对比
- 人工智能+眼科疾病辅助诊断(相关信息搜集)
- linux 挂载raid_linux下做raid
- Activiti工作流引擎启动提示表不存在解决方案
- sch i699android4,SCH-I699
- Unity实战之打靶游戏
- GraphQL标准的Java实现graphql-java概述
- 鸿蒙系统运行内存为啥只有8g,为什么手机运存是8G的,但是可用却只有5G?
- 多功能计算机十二生肖,十二生肖那是真人实演的危险特技,不是电脑特效!
热门文章
- 软件开发过程与项目管理(2.软件项目确定)
- 【swarm测试极简指南】Bee Clef 是什么?
- 链游Game/Defi/NFT的可组合性
- 【C#调用本地打印机(使用 “Drawing“ 包)】
- redis | 九、redis之Geospatial
- 超高清壁纸显示Mac将会有视网膜屏版本
- 面试题-华为-空瓶换饮料问题-1
- airbnb 爱彼迎开源 Epoxy 优化使用 RecyclerView
- vue项目导出自定义多级表头表格
- 制作杂志级图表的第一步:突破Excel的默认颜色