Sie können zusätzliche Informationen dazu auflisten, was Ihre Webcam ausgeben kann v4l2-ctl --list-formats-ext
. Sie können Webcam-Informationen auch mit ffmpeg anzeigen, indem Sie die -list_formats
Eingabeoption verwenden:
$ 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
Diese Webcam aus meinem Beispiel kann sowohl die Formate raw ( yuyv422
) als auch komprimierte ( mjpeg
) unterstützen, und Sie können ffmpeg
mit der -input_format
Eingabeoption auswählen, welches Sie möchten .
Beispiele
Stream kopieren Sie den MJPEG-Videostream (keine Umcodierung):
ffmpeg -f v4l2 -input_format mjpeg -i /dev/video0 -c:v copy output.mkv
Kodieren Sie das rohe Webcam-Video erneut in H.264:
ffmpeg -f v4l2 -input_format yuyv422 -i /dev/video0 -c:v libx264 -vf format=yuv420p output.mp4
Wie oben, aber wählen Sie manuell die Bildrate und Videogröße ( v4l2-ctl --list-formats-ext
für verfügbare Bildrate und Videogrößen):
ffmpeg -f v4l2 -input_format yuyv422 -framerate 30 -video_size 640x480 -i /dev/video0 -c:v libx264 -vf format=yuv420p output.mp4
Siehe die video4linux2 Eingabegerät Dokumentation für weitere Optionen.
Wenn die ausgegebene Bildrate niedriger als erwartet ist, fügen Sie mehr Licht hinzu: Die Webcam verringert möglicherweise die Bildrate, um längere Belichtungszeiten in einer dunklen Umgebung zu erhalten.