Фильтр Chromakey для отображения прозрачной клавиатуры во время записи игрового экрана с помощью ffmpeg - PullRequest
0 голосов
/ 31 января 2020

Я пытаюсь отобразить прозрачную клавиатуру, как эта (он использует 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 команду для этого?

1 Ответ

1 голос
/ 31 января 2020

Просто используйте gdi cap в качестве первого ввода и запустите 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 перед вводом.
...