繁体   English   中英

用ffmpeg捕获Windows屏幕

[英]Capture Windows screen with ffmpeg

ffmpeg是跨平台且非常强大的软件,可处理视频/音频或 stream。 在 Linux ffmpeg 可以使用以下命令捕获 X11 屏幕:

ffmpeg -f x11grab -r 25 -s cif -i :0.0 out.mpeg

但是有没有可能用ffmpeg抢Windows桌面?

像这样使用内置的 GDI 屏幕抓取器(无需安装):

ffmpeg -f gdigrab -framerate 10 -i desktop [output]

这会将您的所有显示器捕获为一个大的连续显示器。

如果你想限制到一个区域,并显示被抓取的区域:

ffmpeg -f gdigrab -framerate ntsc -offset_x 10 -offset_y 20 -video_size 640x480 \
-show_region 1 -i desktop [output]

要获取名为“Calculator”的 window 的内容:

ffmpeg -f gdigrab -framerate 25 -i title=Calculator [output]

我发现帧率 10 非常适合屏幕捕捉(您可以更改它)。

我已经对文件和流输出进行了编码,并且效果很好。

*this code is tried successfully on windows XP Sp3 and ffmpeg (last version 28/12/2012 for windows) -ffmpeg.exe must be copied in c:\windows\system32 directory for being accessed from anywhere from your PC) ScreenCapture can be免费下载(谷歌)。 安装它(msi 文件)。 它从(ScreenCapture.ax 文件)自动注册。 它还与 IscrenCapture.h 文件一起发送。

- 捕获屏幕视频和音频(调整您拥有的设备音频 - 我的是 RealTek AC97 音频)我无法在注册表中安装 UscreenCapture 的参数(甚至在 IscrenCapture.h 文件上尝试过)。它始终只提供完整的屏幕捕获。 注册表位置有错误,在参数类型中(双字由作者指定,但已安装 reg_binary)...然后我使用crop() ffmpeg function 捕获屏幕上的任何区域。命令行是:

xwidth , xheight是要捕获的区域的宽度和高度。 xleft , xtop矩形捕获的左上角坐标。

ffmpeg -f dshow -i video="UScreenCapture":audio="Realtek AC97 Audio" -vf crop=xwidth:xheight:xleft:xtop c:\output.flv

捕捉视频只能使用

ffmpeg -f dshow -i video="UScreenCapture" -vf  crop=xwidth:xheight:xleft:xtop c:\output.flv

注意:x11grab 不适用于 windows(它专门用于 Linux/X11)可以使用 wscript.shell 以静默方式对 line 命令进行编码。 我使用格式视频 output 作为 flv,因为我有最好的渲染和小容量。我没有成功使用 mp4。

您可以通过 ffmpeg 了解您的媒体设备:

ffmpeg -list_devices true -f dshow -i dummy

- 您可以使用此命令行从您的电脑录制任何声音(适应您拥有的设备):

ffmpeg -f dshow -i audio="Realtek AC97 Audio" -acodec libmp3lame "c:\out.mp3"

这将有助于捕获 windows 上的工作屏幕:

ffmpeg -y -rtbufsize 100M -f gdigrab -t 00:00:30 -framerate 30 -probesize 10M -draw_mouse 1 -i desktop -c:v libx264 -r 30 -preset ultrafast -tune zerolatency -crf 25 -pix_fmt yuv420p c: /video_comapre2.mp4

http://nerdlogger.com/2011/11/03/stream-your-windows-desktop-using-ffmpeg/

解释如何做到这一点。

基本上,安装 uscreencapture dshow 过滤器,然后安装 ffmpeg -f dshow -i video="UScreenCapture" out.mp4

不久前,将实现此功能的补丁发送到ffmpeg 邮件列表 这将使gdigrabx11grab一样工作。

此外,支持 ffmpeg 编解码器页面显示“VfW”(Windows 的视频?又名 DirectShow?)捕获。

这可以在不使用x11grab/xcbgrab/gdigrab的情况下通过 linux 中的以下命令来linux

要录制视频,

 ffmpeg -f x11grab  -s 1366x768 -i :0.0 -r 25 -vcodec libx264  output.mkv

要录制帧,

./ffmpeg -f fbdev -framerate 1 -i /dev/fb1 -frames:v 1 screenshot3.jpeg

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM