Я пытаюсь создать скрипт для записи оконных игр с помощью ffmpeg.
Это то, что я до сих пор:
#!/bin/sh
INFO=$(xwininfo -frame)
WIN_GEO=$(echo $INFO | grep -oEe 'geometry [0-9]+x[0-9]+' | grep -oEe '[0-9]+x[0-9]+')
WIN_XY=$(echo $INFO | grep -oEe 'Corners:\s+\+[0-9]+\+[0-9]+' | grep -oEe '[0-9]+\+[0-9]+' | sed -e 's/+/,/' )
ffmpeg -f x11grab -y -r 60 -s $WIN_GEO -i :0.0+$WIN_XY -f alsa -i pulse -crf 18 -preset ultrafast -threads 8 -async 5000 $1.mkv
Это позволяет мне щелкнуть окно и записать его - это работает, но есть некоторые проблемы:
- Я вручную должен перенаправить звук игры с помощью pavucontrol, чтобы иметь возможность записать его
- Звук не синхронизируется, я попробовал много вариантов без удачи
- Я не могу найти способ записать как игровой звук, так и звук с микрофона
Так,
- Можно ли как-нибудь улучшить скрипт для улучшения качества / производительности?
- Как я могу предотвратить несинхронизацию звука?
- Как можно одновременно записывать видео игры, аудио игры и микрофона?