FFMPEG 屏幕捕获和游戏显示

FFMPEG 屏幕捕获和游戏显示

我在网上搜索屏幕捕获软件,找到了两个,分别是卡姆塔西亚ADOBE CAPTIVATE(2017 版). 两者都是商业产品,但后来我发现免费开源的ffmpeg可以做同样的事情。

我在 google 和 youtube 上搜索命令并发现以下内容:

列出设备

ffmpeg -list_devices true -f dshow -i dummy

示例输出:

ffmpeg version N-82143-gbf14393 Copyright (c) 2000-2016 the FFmpeg developers
  built with gcc 5.4.0 (GCC)
  configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-dxva2 --enable-libmfx --enable-nvenc --enable-avisynth --enable-bzlib --enable-libebur128 --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzimg --enable-lzma --enable-decklink --enable-zlib
  libavutil      55. 35.100 / 55. 35.100
  libavcodec     57. 65.100 / 57. 65.100
  libavformat    57. 57.100 / 57. 57.100
  libavdevice    57.  2.100 / 57.  2.100
  libavfilter     6. 66.100 /  6. 66.100
  libswscale      4.  3.100 /  4.  3.100
  libswresample   2.  4.100 /  2.  4.100
  libpostproc    54.  2.100 / 54.  2.100
[dshow @ 00000000007466c0] DirectShow video devices (some may be both video and audio devices)
[dshow @ 00000000007466c0]  "Integrated Webcam"
[dshow @ 00000000007466c0]     Alternative name "@device_pnp_\\?\usb#vid_1bcf&pid_2b8a&mi_00#6&252f9170&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global"
[dshow @ 00000000007466c0] DirectShow audio devices
[dshow @ 00000000007466c0]  "Stereo Mix (Realtek Audio)"
[dshow @ 00000000007466c0]     Alternative name "@device_cm_{33D9A762-90C8-11D0-BD43-00A0C911CE86}\wave_{ADF37977-4572-40C3-A4B8-E1674AD4D12D}"
[dshow @ 00000000007466c0]  "Microphone (Realtek Audio)"
[dshow @ 00000000007466c0]     Alternative name "@device_cm_{33D9A762-90C8-11D0-BD43-00A0C911CE86}\wave_{1E07BFD6-2D61-4A47-A11C-C0D5E170CB15}"
dummy: Immediate exit requested

接下来是 Campture 屏幕:

ffmpeg -y -rtbufsize 200M -f gdigrab -thread_queue_size 1024 -probesize 10M -r 30 -draw_mouse 1 -i desktop -f dshow -channel_layout stereo -thread_queue_size 1024 -i audio="audio device" -c:v libx264 -r 30 -preset ultrafast -tune zerolatency -crf 25 -pix_fmt yuv420p -c:a aac -strict -2 -ac 2 -b:a 128k "video output.mp4"

"audio device"用上-i audio="audio device"一个命令中的有效音频名称替换。

现在,这对我来说效果很好,但当我测试真实游戏的录制时,速度很慢。所以我的问题是,如何改进游戏显示的捕获?

ps:我是在windows10操作系统下操作的。

答案1

看:这里

在 Windows 下,OBS 是最好的免费录制工具。它可以很好地录制大多数游戏,但设置游戏时有点繁琐。通常你必须启动游戏,在不退出游戏的情况下切换回桌面,然后在 OBS 中将其指向游戏屏幕(当游戏在后台运行时存在),然后你就可以开始了。

乍一看似乎很复杂,但那只是因为它几乎可以做所有事情。坚持下去,你一定能完成任务。

相关内容