Chromakey 过滤器在使用 ffmpeg 录制游戏屏幕时显示透明键盘

Chromakey filter to display transparent keyboard while recording game screen using ffmpeg

我正在尝试显示像这样的透明键盘(他使用的是 OBS studio): https://www.youtube.com/watch?v=6RCXyh2aICY

所以我将所有 "NohBoard v1.2.2" 颜色设置为绿色 (0x00FF00),字母除外,然后:

ffmpeg -y -f gdigrab -framerate 30 -draw_mouse 0 -i title="NohBoard v1.2.2" keyboard.mp4
ffmpeg -y -i keyboard.mp4 -c: png -vf "chromakey=0x00FF00:similarity=.200" keyboard1.mp4
ffmpeg -y -i gameplay.avi -i keyboard1.mp4 -filter_complex "[1:v] scale=560x180 [kb]; [0:v][kb] overlay=x=W-w-520:y=H-h-0 [done]" -shortest -map [done] test.mkv

到目前为止一切正常,但我可以为此使用 1 个命令吗?

在缩放之前简单地使用 gdi 上限作为第一个输入和 运行 colorkey*。

ffmpeg -y -i gameplay.avi -f gdigrab -framerate 30 -draw_mouse 0 -i title="NohBoard v1.2.2" -filter_complex "[1:v]colorkey=0x00FF00:similarity=.200,scale=560x180 [kb]; [0:v][kb] overlay=x=W-w-520:y=H-h-0 [done]" -shortest -map [done] test.mkv

  • gdigrab 发送 RGB 帧,因此 colorkey 将比 chromakey 更快,后者需要在键控前转换为 YUV 像素。