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文件

java录屏录像 java录屏实现_java录屏录像

之后在start方法里面会开一个线程不断的去截取当前的屏幕

java录屏录像 java录屏实现_java 录屏_02

最后调用stop方法关闭线程的同时生成最终的录屏文件

java录屏录像 java录屏实现_jar_03

使用样例

这里为了方便调用,使用JavaFX写了一个小的桌面程序

新建一个maven项目,在你的pom.xml文件中加入cn.novelweb:tool:1.2.3:jar

桌面程序运行时的截图:

java录屏录像 java录屏实现_xml_04

java录屏录像 java录屏实现_java录屏录像_05

java录屏录像 java录屏实现_java 录屏_06