Você pode listar informações adicionais sobre o que sua webcam pode gerar com v4l2-ctl --list-formats-ext
. Você também pode mostrar informações da webcam com o ffmpeg usando a opção -list_formats
input:
$ ffmpeg -f video4linux2 -list_formats all -i /dev/video0
[...]
[video4linux2,v4l2 @ 0x1fb7660] Raw : yuyv422 : YUV 4:2:2 (YUYV) : 640x480 160x120 176x144 320x176 320x240 352x288 432x240 544x288 640x360
[video4linux2,v4l2 @ 0x1fb7660] Compressed: mjpeg : MJPEG : 640x480 160x120 176x144 320x176 320x240 352x288 432x240 544x288 640x360
Essa webcam do meu exemplo pode suportar formatos brutos ( yuyv422
) e compactados ( mjpeg
), e você pode informar a ffmpeg
qual deles você quer com a opção -input_format
input.
Exemplos
Fluxo copie o fluxo de vídeo MJPEG (sem re-codificação):
ffmpeg -f v4l2 -input_format mjpeg -i /dev/video0 -c:v copy output.mkv
Codifique novamente o vídeo bruto da webcam para o H.264:
ffmpeg -f v4l2 -input_format yuyv422 -i /dev/video0 -c:v libx264 -vf format=yuv420p output.mp4
O mesmo que acima, mas escolha manualmente a taxa de quadros e o tamanho do vídeo ( v4l2-ctl --list-formats-ext
para a taxa de quadros disponível e tamanhos de vídeo):
ffmpeg -f v4l2 -input_format yuyv422 -framerate 30 -video_size 640x480 -i /dev/video0 -c:v libx264 -vf format=yuv420p output.mp4
-
Consulte a documentação do dispositivo de entrada video4linux2 para mais opções.
-
Se a taxa de quadros que está sendo produzida for menor do que a esperada, adicione mais luz: a webcam pode estar diminuindo a taxa de quadros para obter exposições mais longas em um ambiente escuro.