目录
前言
在Windows系统使用抓取屏幕数据有两种方法:gdigrab和dshow。
一、dshow
使用前需要先安装screen-capture-recorder,下载地址
下载完后直接默认安装。注意,需要Java运行环境(Java Runtime Environment),如果没有的话下载一个就行。
安装好之后,执行命令行
ffmpeg -list_devices true -f dshow -i dummy
screen-capture-recorder就是录屏要用的。
virtual-audio-capturer就是抓取屏幕声音的。
然后执行命令行录制屏幕
ffmpeg -f dshow -i video="screen-capture-recorder" -vcodec libx264 ffmpeg01.mp4
目前使用ffmpeg version 6.1.1录屏是会提示失败,使用ffmpeg version 4.0.2能支持(具体原因没去细究)
二、gdigrab(强烈建议)
根据雷神的文章里阐述:gdigrab是FFmpeg专门用于抓取Windows桌面的设备。非常适合用于屏幕录制。而且不需要额外安装软件。
它通过不同的输入URL支持两种方式的抓取:
抓取整张桌面
(1)“desktop”:抓取整张桌面。或者抓取桌面中的一个特定的区域。
ffmpeg -f gdigrab -framerate 30 -i desktop -c:v libx264 -pix_fmt yuv420p output.mp4
ffmpeg -f gdigrab -framerate 30 -i desktop -c:v libx264 output.mp4
抓取屏幕中特定的一个窗口
(2)“title={窗口名称}”:抓取屏幕中特定的一个窗口(目前中文窗口还有乱码问题)。
gdigrab另外还支持一些参数,用于设定抓屏的位置:
offset_x:抓屏起始点横坐标。
offset_y:抓屏起始点纵坐标。
video_size:抓屏的大小。
framerate:抓屏的帧率。
ffmpeg -f gdigrab -offset_x 100 -offset_y 200 -video_size 640x480 -i desktop output.mp4
抓取屏幕及声音
在录制屏幕声音需要用到dshow里的virtual-audio-capturer
ffmpeg -f gdigrab -i desktop -f dshow -i audio="virtual-audio-capturer" -c:v libx264 -c:a libmp3lame output.mp4