Grave uma captura de tela com lapso de tempo diretamente no ffmpeg

7

Posso usar o ffmpeg para gravar minha área de trabalho do Xorg (sem áudio) em um quadro por segundo em um arquivo de vídeo que reproduzirá os quadros a 30 quadros por segundo sem exigir um processo de conversão?

O comando a seguir registra minha tela esquerda em 1 quadro por segundo, mas o vídeo resultante avançará o quadro de vídeo uma vez por segundo.

ffmpeg -r 1 -f x11grab -s 1920,1080 -i :0.0+0,0 -vcodec libx264 -crf 0 -preset ultrafast -threads 0 out.mkv

Alternativas conhecidas:

  1. Faça capturas de tela em um intervalo , em seguida, combine vídeos usando o mencoder
  2. Como # 1, mas usando o ffmpeg
  3. Grave um vídeo da área de trabalho com o ffmpeg a 1 fps ou menos, se o codificador suportar esses números e acelere o vídeo depois via ffmpeg .

Se não for possível com ffmpeg sozinho, uma combinação de import e ffmpeg ou algumas outras ferramentas permitirá que o vídeo de intervalo de tempo esteja pronto o mais rápido possível após o término da gravação?

    
por qubodup 09.12.2015 / 06:51

1 resposta

4

Isso deve funcionar:

ffmpeg -framerate 1 -f x11grab -s 1920,1080 -i :0.0+0,0 -vf settb=\(1/30\),setpts=N/TB/30 -r 30 -vcodec libx264 -crf 0 -preset ultrafast -threads 0 out.mkv

EDIT: parênteses escapados do shell

    
por 30.12.2015 / 12:32