Ffprobe.exe ✪
Start with simple -show_streams commands, then graduate to JSON output and scripting. Combine it with ffmpeg for intelligent transcoding decisions (e.g., "only re-encode if the bitrate exceeds 5 Mbps"). Master ffprobe , and you will never again wonder what's really inside a media file.
ffprobe -show_streams input.mp4 Lists every single frame in the file (video, audio, subtitle). This can be extremely verbose. Use with -select_streams v to limit to video frames.
info = get_media_info("video.mp4") print(info['format']['duration']) ffprobe.exe is an essential tool for anyone who works with digital media files. It transforms opaque binary files into clear, structured, actionable data. Whether you are a video editor checking source properties, a developer building a media analyzer, or a DevOps engineer validating transcoded assets, ffprobe gives you the truth about your media. ffprobe.exe
ffprobe [options] input_file Without any options, ffprobe outputs a compact summary. For example:
While FFmpeg is the workhorse for converting and manipulating audio and video, ffprobe.exe is the analyst. It doesn't change a single byte of your media. Instead, it reads media files and displays their internal structure, metadata, and stream characteristics with surgical precision. For developers, quality assurance engineers, content archivists, and video enthusiasts, ffprobe is the first and most important tool in the diagnostic toolkit. Start with simple -show_streams commands, then graduate to
For video engineers, ffprobe is superior because it understands FFmpeg’s internal structures and can analyze packets, keyframes, and encoding artifacts. PowerShell Example: Get Video Info as Object $output = ffprobe -v quiet -print_format json -show_streams -show_format input.mp4 | ConvertFrom-Json $videoStream = $output.streams | Where-Object $_.codec_type -eq "video" Write-Host "Resolution: $($videoStream.width)x$($videoStream.height)" Bash Example: Check if Video is H.265/HEVC if ffprobe -v error -select_streams v:0 -show_entries stream=codec_name -of default=noprint_wrappers=1 input.mkv | grep -q hevc; then echo "HEVC video detected" fi Python Example (subprocess) import subprocess, json def get_media_info(filepath): cmd = ['ffprobe', '-v', 'quiet', '-print_format', 'json', '-show_format', '-show_streams', filepath] result = subprocess.run(cmd, capture_output=True, text=True) return json.loads(result.stdout)
ffprobe example.mp4 Output might look like: ffprobe -show_streams input
Create an alias or batch file called mediainfo that runs ffprobe -hide_banner -show_format -show_streams %1 to get a quick, readable summary anytime. Then explore deeper as needed.