2011-01-12 9 views
4

Gibt es eine Möglichkeit, ein einzelnes Bild einer Videodatei in Python zu erfassen?
könnte es auch durch die Befehlszeile erfolgen. Ich benutze Handbrakecli, um die Videos zu konvertieren,
, aber ich würde einige Screenshots davon auch brauchen.Capture Screenshot/Frame einer Videodatei

danke

Antwort

6

Sie zuerst PyFFmpeg heraus überprüfen sollten.

PyFFmpeg ist ein Wrapper um die FFmpeg libavcodec, libavformat und libavutil Bibliotheken, deren Hauptzweck ist es, Zugriff auf einzelne Frames von Video liefern Dateien von verschiedenen Formaten (einschließlich MPEG und DivX-kodierte Videos). Es bietet auch Zugriff auf Audiodaten.

Es ist auch möglich, ffmpeg zu verwenden. Rufen Sie das also unter subprocess an. Eine einfache Suche gibt Ihnen den Befehl zum Extrahieren eines Frames aus einer Videodatei. Rufen Sie einfach diesen Befehl mit subprocess und das sollte es tun.

>>> import subprocess 
>>> import shlex       # to split the command that follows 
>>> command = 'ffmpeg -i sample.avi'  # your command goes here 
>>> subprocess.call(shlex.split(command)) 

Das gleiche Verfahren gilt für handbrakecli oder was auch immer Sie verwenden. Rufen Sie einfach den entsprechenden Befehl auf.

+2

ich sehe ich es mit ffmpeg bekommen wie: ffmpeg -i -ss

+0

, die Sie finden müssen, habe ich Ihnen gerade gegeben, wie wird das mit Python aufrufen. Versuchen Sie zu suchen, die Lösung sollte ziemlich trivial sein. – user225312

+0

ja ich werde. aber ich könnte auch mit ffmpeg leben. Danke – aschmid00