Capturando a tela do PC quando o OBS Studio não funciona
Dica publicada em Shell Script / Miscelânea
Capturando a tela do PC quando o OBS Studio não funciona
Devido a problemas com drivers de vídeo que não suportam OpenGL 3.0 para cima o OBS-Studio não consegue abrir, dando erro de Mesa e dizendo para o usuário atualizar os drivers de vídeo. Isso pode ocorrer em sistemas que usam vídeo Intel GMA X4500 ou mesmo superiores presentes em muitas placas 775 que usam o chipset G41 e TALVEZ em placas mais novas que usam o driver Intel HD 2500 para baixo.
Um teste básico é abrir o Terminal e digitar:
Deverá aparecer algo do tipo
Aquele OpenGL version string: 2.1 já entrega que o OpenGL é abaixo do 3.0 e já ferra o uso do OBS Studio. Há outros programas que não precisam do OpenGL mas aqui vou mostrar como gravar a tela sem o programa, usando um script simples que pode ser adaptado ao uso necessário. Vamos usar o ffmpeg para tal MAS o sistema tem que estar em X11 e não em Wayland.
Instale os pacotes necessários:
Abra o terminal e digite:
Coloque dentro:
Salve o arquivo e dê o chmod +x no mesmo para torná-lo executável. Para usá-lo, basta digitar no mesmo local em que ele estiver ./gravar.sh e aparecerão mensagens de nome do arquivo desejado e que para parar a gravação basta pressionar CTRL+C.
Algumas observações:
Do jeito que o script está, funciona sem problemas em um Core2Duo e7400 numa placa-mãe Asrock G41-VS3 com tudo onboard e 4GB de RAM. Se você tiver algo melhor mas onde o OBS Studio fica de "OBS-Studiagem", acredito que esse script vai ser uma mão na roda.
Um teste básico é abrir o Terminal e digitar:
glxinfo | grep "OpenGL version"
Deverá aparecer algo do tipo
OpenGL version string: 2.1 Mesa 25.0.7-2
Aquele OpenGL version string: 2.1 já entrega que o OpenGL é abaixo do 3.0 e já ferra o uso do OBS Studio. Há outros programas que não precisam do OpenGL mas aqui vou mostrar como gravar a tela sem o programa, usando um script simples que pode ser adaptado ao uso necessário. Vamos usar o ffmpeg para tal MAS o sistema tem que estar em X11 e não em Wayland.
Instale os pacotes necessários:
sudo apt install ffmpeg xrandr zenity
Abra o terminal e digite:
nano ~/gravar.sh
Coloque dentro:
#!/bin/bash
# Verifica dependências
for cmd in ffmpeg zenity xrandr; do
if ! command -v "$cmd" &>/dev/null; then
zenity --error --text="O comando '$cmd' não está instalado."
exit 1
fi
done
# Verifica X11
if [ "$XDG_SESSION_TYPE" != "x11" ]; then
zenity --error --text="Esse script só funciona no X11.\nSessão atual: $XDG_SESSION_TYPE"
exit 1
fi
# Nome do arquivo
ARQUIVO=$(zenity --entry \
--title="Gravar Tela (X11)" \
--text="Digite o nome do arquivo (sem extensão):" \
--entry-text="gravacao")
[ -z "$ARQUIVO" ] && exit
# Resolução fixa
RESOLUCAO="1366x768"
# Pré-aquecimento do áudio (se pw-cat existir)
if command -v pw-cat &>/dev/null; then
pw-cat --record --duration 1 /dev/null 2>/dev/null
sleep 1
fi
# Aviso
zenity --info \
--title="Gravação iniciando" \
--text="A gravação vai começar agora.\n\nPressione Ctrl+C no terminal para encerrar."
# Gravação
ffmpeg \
-video_size "$RESOLUCAO" \
-framerate 15 \
-f x11grab -i "$DISPLAY" \
-f pulse -i default \
-c:v libx264 \
-preset ultrafast \
-crf 28 \
-pix_fmt yuv420p \
-g 30 \
-threads 2 \
-movflags +faststart \
-c:a libmp3lame -b:a 96k \
-af aresample=async=1:first_pts=0 \
"${ARQUIVO}.mkv"
Salve o arquivo e dê o chmod +x no mesmo para torná-lo executável. Para usá-lo, basta digitar no mesmo local em que ele estiver ./gravar.sh e aparecerão mensagens de nome do arquivo desejado e que para parar a gravação basta pressionar CTRL+C.
Algumas observações:
- Em Resolução Fixa coloque a resolução adequada para permitir a gravação sem dar DUP (duplicar quadros) e DROP (dropar quadros) pois isso influencia na fluidez do vídeo. No meu exemplo está em 1366x768, adeque então conforme a necessidade de resolução usada no seu monitor;
- Em -framerate 15 \ use um FPS que não provoque DUP e DROP de quadros. Em máquinas com processador mais fraco isso poderá ocorrer se colocar 30 fps, o negócio é testar. No meu C2D e7400 15 fps funciona bunitão e com 25 já começa a dropar se o navegador de internet estiver aberto;
- Em -g 30 \ coloque o dobro do framerate. No meu exemplo o framerate é 15, então aqui deverá o -g ser 30.
Do jeito que o script está, funciona sem problemas em um Core2Duo e7400 numa placa-mãe Asrock G41-VS3 com tudo onboard e 4GB de RAM. Se você tiver algo melhor mas onde o OBS Studio fica de "OBS-Studiagem", acredito que esse script vai ser uma mão na roda.