Qual é o comando ffmpeg para gravar a tela e o áudio interno (no Ubuntu 18.04)?
Vou omitir as muitas coisas que tentei que não funcionaram e pular para algo próximo do que estou procurando;
V="$(xdpyinfo | grep dimensions | perl -pe 's/.* ([0-9]+x[0-9]+) .*/$1/g')"
A="$(pacmd list-sources | grep -PB 1 "analog.*monitor>" | head -n 1 | perl -pe 's/.* //g')"
F="$(date --iso-8601=minutes).mkv"
ffmpeg -video_size "$V" -framerate 10 -f x11grab -i :0.0 -f pulse -ac 2 -i "$A" "$F"
Consigo vídeo, mas sem áudio.
parecord -d alsa_output.pci-0000_00_1b.0.analog-stereo.monitor example.wav # index: 1
receberá áudio.
Taxa de quadros aplicada a ambos os fluxos, mas como os exemplos de documentação do ffmpeg estão dispersos, deixarei uma resposta aqui
Onde
ffmpeg
a ferramenta-loglevel error
apenas erros de impressão-video_size "$V"
resolução da sua tela (ou menos se você quiser apenas uma subseção gravada)-f x11grab
gravar a tela (gravações de tela podem não ser possíveis em wayland?)-i :0.0
o ID da tela X11, (também pode adicionar +x,y para deslocamento)-f pulse
o driver de áudio-i "$A"
o id do fluxo de áudio-f pulse
o driver de áudio novamente (talvez não seja necessário?)-i default
normalmente o microfone do sistema-filter_complex amerge
mesclar os 2 fluxos de áudio-ac 2
converter os 4 canais de áudio para 2-preset veryfast
seja leve na codificação de vídeo para evitar gagueira"$F"
o arquivo de saídaLembre-se de que a ordem dos parâmetros é importante e
pavucontrol
pode remapear o áudio apenas enquanto o ffmpeg estiver em execução.