Alternativen zu Video4Linux2 zum Abrufen von Webcams (Verwenden von FFmpeg)

2226
Jodes

Ich erhalte (zwei abwechselnde) Fehler, wenn Sie diese Anleitung zum Streaming von einem Raspberry Pi befolgen . Gibt es neben V4L2 noch andere Grabber, mit denen ich arbeiten kann ffmpeg?

Oder gibt es noch andere Streaming-Setups, die ich ausprobieren könnte? Ich habe 'motion' probiert, aber es war sehr ruckartig und konnte bei 160x120 nicht mehr als ein paar Bilder pro Sekunde erreichen.

Ich habe auch VLC ausprobiert, bekam aber einen Fehler. (Etwas über ALSA - ich vermute, da weder das RPi noch die Webcam ein Mikrofon oder einen anderen Audioeingang haben).

(Und ja, die Webcam funktioniert mit dem RPi, ich habe es mit Hilfe von RPi gesehen guvcview.)

Vielen Dank!

Edit 1 Soweit ich das beurteilen kann, verwenden Sie fast alles (zB VLC, Bewegung usw.) V4L2, so dass es so aussieht, als gäbe es keine Alternativen.

Edit 2: Nachfolgend eine Konfiguration, die ich verwendet habe, und die Ergebnisse . Dies ist jetzt ein drittes Problem. Ich kann die anderen beiden Fehlermeldungen beim Ausführen von ffmpeg / server nicht replizieren. Ich habe ausgeführt topund es gibt so gut wie keine CPU-Auslastung durch andere Prozesse. Ein Problem ist, dass die Webcam bei 30 Bildern pro Sekunde immer eine reine Bildaufnahme erzwingt. In einigen Konfigurationen kopiert das System jedoch mit einem niedrigen FPS (wie bei Bewegung) und manchmal wirft es den einen oder anderen Fehler.

Befehl:

ffserver -f ~/ffserver3.conf & ffmpeg -v verbose -r 1 -s 320x240 -f video4linux2 -i /dev/video0 http://localhost:8080/webcam.ffm 

ffserver3.conf:

Port 8080 BindAddress 0.0.0.0 MaxClients 10 MaxBandwidth 50000 NoDaemon  <Feed webcam.ffm> file /tmp/webcam.ffm FileMaxSize 10M </Feed>  <Stream webcam.mjpeg> Feed webcam.ffm Format mjpeg VideoSize 320x240 VideoFrameRate 1 VideoBitRate 50000 VideoQMin 1 VideoQMax 10 </Stream>  <Stream stat.html> Format status </Stream> 

Ergebnis:

ffmpeg version N-51221-gdda04a5 Copyright (c) 2000-2013 the FFmpeg developers built on Mar 23 2013 02:21:23 with gcc 4.6 (Debian 4.6.3-12+rpi1) configuration: libavutil 52. 22.101 / 52. 22.101 libavcodec 55. 1.100 / 55. 1.100 libavformat 55. 0.100 / 55. 0.100 libavdevice 55. 0.100 / 55. 0.100 libavfilter 3. 48.100 / 3. 48.100 libswscale 2. 2.100 / 2. 2.100 libswresample 0. 17.102 / 0. 17.102 [video4linux2,v4l2 @ 0x256c4b0] fd:3 capabilities:4000001 [video4linux2,v4l2 @ 0x256c4b0] The driver changed the time per frame from 1/1 to 1/30 ffserver version N-51221-gdda04a5 Copyright (c) 2000-2013 the FFmpeg developers built on Mar 23 2013 02:21:23 with gcc 4.6 (Debian 4.6.3-12+rpi1) configuration: libavutil 52. 22.101 / 52. 22.101 libavcodec 55. 1.100 / 55. 1.100 libavformat 55. 0.100 / 55. 0.100 libavdevice 55. 0.100 / 55. 0.100 libavfilter 3. 48.100 / 3. 48.100 libswscale 2. 2.100 / 2. 2.100 libswresample 0. 17.102 / 0. 17.102 [video4linux2,v4l2 @ 0x256c4b0] ioctl(VIDIOC_DQBUF): Input/output error [video4linux2,v4l2 @ 0x256c4b0] Estimating duration from bitrate, this may be inaccurate Input #0, video4linux2,v4l2, from '/dev/video0': Duration: N/A, bitrate: 36864 kb/s Stream #0:0: Video: rawvideo (YUY2 / 0x32595559), yuyv422, 320x240, 36864 kb/s, 30 fps, 30 tbr, 1000k tbn, 1000k tbc [http @ 0x256d3c0] HTTP error 503 Server too busy http://localhost:8080/webcam.ffm: Input/output error 
2
Welche Fehler bekommst du? Bitte posten Sie den von Ihnen verwendeten ffmpeg-Befehl und die vollständige, ungeschnittene Terminalausgabe. AFAIK, V4L2 ist die einzige Möglichkeit, das zu tun, was Sie möchten. Es ist fast sicher einfacher, das zu debuggen, als eine Alternative zu finden. evilsoup vor 11 Jahren 1
Ich weiß, das ist ein alter Thread, aber @jodes hast du es irgendwie behoben? Ich kämpfe mit dem gleichen Problem. Ajith vor 9 Jahren 0
@ Aji, ich habe keine Angst Jodes vor 9 Jahren 0

1 Antwort auf die Frage

0
Futal

Der V4L2-Teststand (Paket qv4l2) kann dabei helfen, die Parameter der Webcam zu kennen. Zum Beispiel werden mögliche Kombinationen aus Auflösung und Bildrate aufgelistet.

Vivi-Dummy-Treiber (sudo modprobe vivi) kann helfen, zu ermitteln, ob das Problem vom Treiber oder von ffmpeg stammt. Es erstellt / dev / videoX und zeigt eine Textkarte (Textmuster) mit den aktuellen Parametern an.