Wie zu greifen Laptop Webcam Video mit ffmpeg in Windows

Ich habe ein kleines Python-Programm, das sehr gut funktioniert, um kurze Videos von Webcams in Linux (zumindest für Laptops, die eingebaute Webcams) mit einem Sub-Prozess mit ffmpeg zu erfassen.

Jetzt versuche ich, das gleiche Programm zu schreiben, um Webcams in Windows zu erfassen, und ich weiß, dass ich das generische "/ dev / video0" nicht verwenden kann, das funktioniert ziemlich gut in Linux, aber ich dachte, dass etwas wie das Benennen es "Integrated Camera" Sollte reichen, aber es scheitert.

Hier ist mein Linux-Code (das funktioniert):

import sys from subprocess import call from datetime import datetime def record_webcam(seconds): cam = '/dev/video0' timestamp = datetime.now().strftime('%Y%m%d-%H%M%S') filename = timestamp + 'something.mkv' #generated with more complexity in the actual code, but that isn't important ffmpeg_cmd = 'ffmpeg -t {} -an -i {} -c:v libx264 -preset veryslow -crf 25 {}'.format(seconds, cam, filename).split() p = call(ffmpeg_cmd) return filename if p == 0 else False if __name__ == '__main__': record_webcam(sys.argv[1]) 

Ich habe die Dokumentation für ffmpeg gesehen und versucht, nach Lösung zu suchen, aber bis jetzt bin ich verloren …

Ich weiß, dass "Integrated Camera" s nur auf einigen Laptops und nicht anderen verfügbar sind und dass es keine anderen Kameras anschließen wird, aber es ist genug für meinen Anwendungsfall … aber wenn du eine Herausforderung wünschst, würde ich auch gerne Wissen, wie man es auf jeden Windows-PC mit einer Kamera anwenden, unabhängig davon, was es heißt.

Auch ist es einfacher oder mehr zu empfehlen, was ich hier nur mit Python-Tools, wie OpenCV versuchen?

Danke im Voraus! Edit: Ich beantwortete meine eigene Frage mit einer Teillösung, wenn jemand interessiert ist, basiert auf einem Kommentar von @Mulvya, aber wenn jemand mir noch den Teil über OpenCV erklären könnte, würde ich es gern noch hören …

Folge Frage hier: ffmpeg durch python subprocess fehlt die kamera

One Solution collect form web for “Wie zu greifen Laptop Webcam Video mit ffmpeg in Windows”

Ich habe es getan … basierend auf dem, was @Mulvya kommentiert hat, konnte ich alle Kameras mit dem Code auflisten und einen Befehl von ihnen extrahieren, ich habe jetzt ein anderes Problem darüber, aber ich werde noch eine Frage dafür stellen. In der Zwischenzeit, wenn jemand interessiert ist, automatisch die Auswahl der ersten verfügbaren Kamera auf Windows durch python und ffmpeg, meine Lösung ist dies:

  import re from subprocess import Popen, PIPE list_cmd = 'ffmpeg -list_devices true -f dshow -i dummy'.split() p = Popen(list_cmd, stderr=PIPE) for line in iter(p.stderr.readline,''): if flagcam: cam = re.search('".*"',line.decode(encoding='UTF-8')).group(0) cam = 'video=' + cam if cam else '' flagcam = False elif 'DirectShow video devices'.encode(encoding='UTF-8') in line: flagcam = True elif 'Immediate exit requested'.encode(encoding='UTF-8') in line: break 

Die Variable "cam" hält nun den Namen der cam, wie es in DirectShow auf Windows ist

Folge Frage hier, wenn jemand helfen will EDIT: auch gelöst

  • OpenCV: Mindestabstand zwischen beliebig großen Konturen (Python)
  • Auswahl des besten Wertebereichs aus der Histogrammkurve
  • Schneiden von Live-Video-Feed in OpenCV
  • Weird OpenCV .read () hängt ohne Fehler
  • Cv2.VideoCapture.open () gibt immer FALSE zurück
  • Wie kann ich ein openCV-Video auf eine HTML-Webseite streamen?
  • Opencv Rechteck mit gestrichelten oder gestrichelten Linien
  • Wie man das Fenster in opencv2 python skaliert
  • Gibt es eine Möglichkeit, pyplot.imshow () Objekt zu numpy Array zu konvertieren?
  • Bild in N Farben in OpenCV Python reduzieren
  • Blob-Filterung mit Opencv in Python
  • Python ist die beste Programmiersprache der Welt.