Woher weiß ich, mit welcher Framerate ich die Webcam mit ffmpeg aufnehmen kann?

5246
chocopoche

Ich mache Video von meiner Webcam mit dem folgenden Befehl:

ffmpeg -r 30 -f v4l2 -video_size 160x120 -i /dev/video0 output.avi 

Die Option -r gibt die gewünschte Framerate an. Es ist jedoch nicht so, dass ich 30 FPS will, es funktioniert nur, sonst funktioniert es nicht richtig.

Ohne Framerate ist das Capture sehr fehlerhaft (ich denke, es versucht zu viel zu erfassen, kann aber nicht folgen).

Bei einer Bildfrequenz von 15 ist das Ausgabevideo zweimal länger als die Aufnahmedauer (Art der Zeitlupe).

Mit einer Framerate von 30 scheint es in Ordnung zu sein.

Wie kann ich sicher sein, dass ich 30 fps verwenden sollte? Wenn ich 15 fps aufnehmen möchte, was soll ich tun, um eine korrekte Wiedergabe zu erhalten?

Infos zu meiner Webcam:

co@macbook2008:~$ v4l2-ctl --list-formats-ext ioctl: VIDIOC_ENUM_FMT Index : 0 Type : Video Capture Pixel Format: 'YUYV' Name : YUV 4:2:2 (YUYV) Size: Discrete 160x120 Interval: Discrete 0.033s (30.000 fps) Interval: Discrete 0.036s (27.500 fps) Interval: Discrete 0.040s (25.000 fps) Interval: Discrete 0.044s (22.500 fps) Interval: Discrete 0.050s (20.000 fps) Interval: Discrete 0.057s (17.500 fps) Interval: Discrete 0.067s (15.000 fps) Interval: Discrete 0.080s (12.500 fps) Interval: Discrete 0.100s (10.000 fps) Interval: Discrete 0.133s (7.500 fps) Interval: Discrete 0.200s (5.000 fps) Size: Discrete 176x144 Interval: Discrete 0.033s (30.000 fps) ... and so on for other resolutions 

Vielen Dank

2
Wenn ich eine Vermutung riskieren würde. Das Quellvideo hat ebenfalls 30 Bilder pro Sekunde. Die Ausgabe des Befehls, den Sie ausgegeben haben, bestätigt dies. Ramhound vor 9 Jahren 0
Wie wird es bestätigt, da es viele fps gibt? Der erste wird verwendet? chocopoche vor 9 Jahren 0
Ich verstehe nicht Sie haben den Befehl "v4l2-ctl --list-format-ext" ausgegeben, und die Ausgabe zeigt die unterstützte Bildrate und Auflösung des Quellgeräts an. Es zeigt buchstäblich an, dass 30 fps die höchsten sind, die unterstützt werden. Ramhound vor 9 Jahren 0
Sie können die Bildrate auch auf 27.5 setzen, wenn Sie möchten, indem Sie den Wert ändern und den folgenden Befehl ausgeben: `ffmpeg -r 27.5 -f v4l2 -video_size 160x120 -i / dev / video0 output.avi` Ramhound vor 9 Jahren 0
Wenn ich 15 Sekunden lang "ffmpeg -r 15 -f v4l2 -video_size 160x120 -i / dev / video0 output.avi" mache, habe ich eine Avi von 30 Sekunden. Das `v4l2-ctl --list-format-ext 'sagt also, ich kann mit 15 fps einfangen, aber ich kann es nicht mit der richtigen Geschwindigkeit abspielen. Ich denke, dasselbe gilt für 27.5 fps, aber ich kann das nicht mit Sicherheit testen. chocopoche vor 9 Jahren 0

0 Antworten auf die Frage