Skip to content

Instantly share code, notes, and snippets.

@oldo
Last active March 2, 2023 22:33
Show Gist options
  • Star 40 You must be signed in to star a gist
  • Fork 7 You must be signed in to fork a gist
  • Save oldo/dc7ee7f28851922cca09 to your computer and use it in GitHub Desktop.
Save oldo/dc7ee7f28851922cca09 to your computer and use it in GitHub Desktop.
A python function utilising `ffprobe` to find any metadata related to a video file. Examples of what it can find include bitrate, fps, codec details, duration and many more. This gist returns the video height and width as an example.
#!/usr/local/bin/python3
import subprocess
import shlex
import json
# function to find the resolution of the input video file
def findVideoMetada(pathToInputVideo):
cmd = "ffprobe -v quiet -print_format json -show_streams"
args = shlex.split(cmd)
args.append(pathToInputVideo)
# run the ffprobe process, decode stdout into utf-8 & convert to JSON
ffprobeOutput = subprocess.check_output(args).decode('utf-8')
ffprobeOutput = json.loads(ffprobeOutput)
# prints all the metadata available:
import pprint
pp = pprint.PrettyPrinter(indent=2)
pp.pprint(ffprobeOutput)
# for example, find height and width
height = ffprobeOutput['streams'][0]['height']
width = ffprobeOutput['streams'][0]['width']
print(height, width)
return height, width
@prakashjayy
Copy link

How to get fps?

@danielcardeenas
Copy link

Thanks for this

@scottpetrovic
Copy link

Thank you for making this. This is helping me a bunch with working on a plugin

@Elishai
Copy link

Elishai commented Mar 2, 2019

looking great but i got "OSError: [WinError 6] The handle is invalid".

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment