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 mit eigenständiger Python-ausführbare Datei (py2exe / pyinstaller)
  • HOG-Deskriptor mit Python + OpenCV
  • Fehler beim Laden der OpenCL-Laufzeit - OpenCV3 Python
  • OpenCV zieht nicht passende Punkte
  • TypeError: Argument nach Name ('k') und Position (2)
  • TypeError: Erforderliches Argument 'outImg' (Pos 6) nicht gefunden
  • TypeError: src Datentyp = 15 wird nicht unterstützt
  • OpenCV-Python dichter SIFT
  • Segmentierungsfehler und Crashing beim Versuch, opencv zu importieren
  • Zeichnung Histogramm in OpenCV-Python
  • Beste Weg, um OpenCV auf Windows mit Enthought Canopy Python zu installieren?
  • Python ist die beste Programmiersprache der Welt.