Module code >> skvideo.io.ffprobe
Fork me on GitHub

Source code for skvideo.io.ffprobe

import subprocess as sp

from ..utils import *
from .. import _HAS_FFMPEG
from .. import _FFMPEG_PATH
from .. import _FFPROBE_APPLICATION

[docs]def ffprobe(filename): """get metadata by using ffprobe Checks the output of ffprobe on the desired video file. MetaData is then parsed into a dictionary. Parameters ---------- filename : string Path to the video file Returns ------- metaDict : dict Dictionary containing all header-based information about the passed-in source video. """ # check if FFMPEG exists in the path assert _HAS_FFMPEG, "Cannot find installation of real FFmpeg (which comes with ffprobe)." try: command = [_FFMPEG_PATH + "/" + _FFPROBE_APPLICATION, "-v", "error", "-show_streams", "-print_format", "xml", filename] # simply get std output xml = check_output(command) d = xmltodictparser(xml)["ffprobe"] d = d["streams"] #import json #print json.dumps(d, indent = 4) #exit(0) # check type streamsbytype = {} if type(d["stream"]) is list: # go through streams for stream in d["stream"]: streamsbytype[stream["@codec_type"].lower()] = stream else: streamsbytype[d["stream"]["@codec_type"].lower()] = d["stream"] return streamsbytype except: return {}