FFmpeg
FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多code都是从头开发的。
FFmpeg在Linux平台下开发,但它同样也可以在其它操作系统环境中编译运行,包括Windows、Mac OS X等。这个项目最早由Fabrice Bellard发起,2004年至2015年间由Michael Niedermayer主要负责维护。许多FFmpeg的开发人员都来自MPlayer项目,而且当前FFmpeg也是放在MPlayer项目组的服务器上。项目的名称来自MPEG视频编码标准,前面的"FF"代表"Fast Forward"
实现录屏
实现屏幕录制的原理就是通过不断的截屏,然后将所有的图片整合到一起形成的mp4文件就是最终的录屏文件.
最终录屏文件的大小,不光与整合时的各种参数有关,还有截屏时的图片大小有关.
如果去录制一把画质开到最高的吃鸡(绝地求生)游戏,录制半个小时左右文件可以达到5GB
如果只是录制一些普通的教程之类的,同样录制半个小时文件差不多在700MB左右
安装
实现录屏的核心程序已经整合到cn.novelweb:tool:1.2.9:jar中,可以直接在pom.xml中引用
cn.novelweb
tool
[1.0, 5.0]
如果idea自动下载失败,可以使用mvn命令手动下载
mvn org.apache.maven.plugins:maven-dependency-plugin:3.1.1:get -Dartifact=cn.novelweb:tool:1.2.9:jar
部分源码
每次开始录制时会调用一遍init方法,在指定目录位置形成一个没有任何大小的*.mp4文件
之后在start方法里面会开一个线程不断的去截取当前的屏幕
最后调用stop方法关闭线程的同时生成最终的录屏文件
使用样例
这里为了方便调用,使用JavaFX写了一个小的桌面程序
新建一个maven项目,在你的pom.xml文件中加入cn.novelweb:tool:1.2.3:jar
桌面程序运行时的截图: