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 一个能自动进行压缩的小视频录制库相关推荐

  1. python批量删缩进_鬼畜小姐姐+野狼disco,十分钟教你如何用Python剪辑一个牛逼的抖音小视频?...

    鬼畜小姐姐+野狼disco,十分钟教你如何用Python剪辑一个牛逼的抖音小视频? 前言 半个月前,后台有个小伙伴问我,如何将视频中的音频提取出来,并且将声音转成文字写入到 word 中,正好接下来的 ...

  2. 自动爬取bilibi小视频

    自动爬取bilibi小视频 实验环境 实验步骤 第一步:查找request URL请求地址 第二步:代码实现 1.访问目标网址代码 2.下载情况展示 3.编写主函执行程序 实验环境 Chrome 浏览 ...

  3. Android仿微信小视频录制功能

    还没看完,应该还不错,先收藏,觉得可以开拓 https://blog.csdn.net/u012227600/article/details/50835633 -------------------- ...

  4. FFmpeg 开发(12):Android FFmpeg 实现带滤镜的微信小视频录制功能

    前文利用 FFmpeg 分别实现了对 Android Camera2 采集的预览帧进行编码生成 mp4 文件,以及对 Android AudioRecorder 采集 PCM 音频进行编码生成 aac ...

  5. Android录制视频,仿微信小视频录制(一)

    Android录制视频,第一部分自定义控件 简述 公司有一个录制视频并上传的功能,录制视频具体使用类如下:硬件控制使用Camera,视频录制的格式音频等具体配置与录制使用MediaRecorder,预 ...

  6. Android仿微信小视频录制功能(二)

    Android仿微信小视频录制功能(二) 接着上一篇,在完成了录制功能后,伟大的哲学家沃兹基索德曾经说过:"有录就有放.",那么紧接着就来实现播放功能,按照国际惯例,先上下效果图: ...

  7. Android 微信小视频录制功能实现

    目录 开发之前 开发环境 相关知识点 开始开发 案例预览 案例分析 搭建布局 视频预览的实现 自定义双向缩减的进度条 录制事件的处理 长按录制 抬起保存 上滑取消 双击放大(变焦) 实现视频的录制 实 ...

  8. Android 仿微信小视频录制

    Android 仿微信小视频录制 WechatShortVideo和WechatShortVideo文章

  9. 使用Vue做一个可自动拼图的拼图小游戏(二)

    背景以及最终效果 在上一篇文章中我们已经写完了一个可以正常玩的拼图小游戏,但是这还没有结束,我们还要接着试一下让拼图游戏可以自己完成拼图. 在线体验 本部分是这篇文章的第二部分,主要讲的是实现自动拼图 ...

最新文章

  1. 彩色图像到灰度转换 常见方法汇总与对比
  2. SQL 2008中修改表结构提示“阻止保存要求重新创建表的更改”
  3. Java实现BASE64编解码
  4. 使用Dnsmasq加速苹果App Store、iCloud、iTunes、Mac更新等访问速度
  5. 将查询结果插入到现有表中
  6. Java程序员从笨鸟到菜鸟之(九十九)深入java虚拟机(八)开发自己的类加载器...
  7. 这周,全球首个IT技术全中文免费学习平台诞生了!太惊艳!
  8. mysql 磁盘i o 优化_经典案例:磁盘I/O巨高排查全过程
  9. CF802C-Heidi and Library(hard)【费用流】
  10. nuc972的ramfs的配置yaffs2,ubi文件系统
  11. windows和linux中搭建python集成开发环境IDE——如何设置多个python环境
  12. Storm入门-Storm与Spark对比
  13. 人工智能+眼科疾病辅助诊断(相关信息搜集)
  14. linux 挂载raid_linux下做raid
  15. Activiti工作流引擎启动提示表不存在解决方案
  16. sch i699android4,SCH-I699
  17. Unity实战之打靶游戏
  18. GraphQL标准的Java实现graphql-java概述
  19. 鸿蒙系统运行内存为啥只有8g,为什么手机运存是8G的,但是可用却只有5G?
  20. 多功能计算机十二生肖,十二生肖那是真人实演的危险特技,不是电脑特效!

热门文章

  1. 软件开发过程与项目管理(2.软件项目确定)
  2. 【swarm测试极简指南】Bee Clef 是什么?
  3. 链游Game/Defi/NFT的可组合性
  4. 【C#调用本地打印机(使用 “Drawing“ 包)】
  5. redis | 九、redis之Geospatial
  6. 超高清壁纸显示Mac将会有视网膜屏版本
  7. 面试题-华为-空瓶换饮料问题-1
  8. airbnb 爱彼迎开源 Epoxy 优化使用 RecyclerView
  9. vue项目导出自定义多级表头表格
  10. 制作杂志级图表的第一步:突破Excel的默认颜色