---
title: "Read Video Info with FFprobe"
date: 2022-12-28T23:26:38.000Z
author: Z.SHINCHVEN
tags: [FFmpeg, FFprobe]
canonical: https://atlassc.net/2022/12/29/read-video-info-with-ffprobe
---
[FFprobe](https://ffmpeg.org/ffprobe.html) is a tool bundled with FFmpeg to read video info.

## Basic Usage

```bash
ffprobe input.mp4
```

This command returns data in plain text.

## Data Format

FFprobe can print data in [various formats](https://ffmpeg.org/ffprobe.html#Writers): `default`, `compact`, `csv`, `flat`, `ini`, `json`, `xml`.

Let's print data in JSON:

```bash
ffprobe -v quiet -print_format json -show_format -show_streams input.mp4
```

- `-v quiet`: Set log level to quiet
- `-print_format json`: Print data in JSON format
- `-show_format`: Show format info
- `-show_streams`: Show streams info

## Filter Fields

Video infos are mostly stored in `streams` and `format`, you can use `-show_entries` to filter fields:

```bash
ffprobe -v quiet -print_format json -show_entries format=size,bit_rate -show_entries stream=codec_name,height,width input.mp4
```

- `-show_entries stream=codec_name,height,width`: Show codec name, height and width in streams info
- `-show_entries format=size,bit_rate`: Show size and bit rate in format info

Available Fields in `streams` and `format` according to [FFprobe Tips](https://trac.ffmpeg.org/wiki/FFprobeTips)

```ini
[STREAM]
index=0
codec_name=h264
codec_long_name=H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10
profile=High
codec_type=video
codec_time_base=1/50
codec_tag_string=avc1
codec_tag=0x31637661
width=320
height=240
has_b_frames=2
sample_aspect_ratio=1:1
display_aspect_ratio=4:3
pix_fmt=yuv420p
level=13
color_range=N/A
color_space=unknown
color_transfer=unknown
color_primaries=unknown
chroma_location=left
timecode=N/A
refs=4
is_avc=1
nal_length_size=4
id=N/A
r_frame_rate=25/1
avg_frame_rate=25/1
time_base=1/12800
start_pts=0
start_time=0.000000
duration_ts=384000
duration=30.000000
bit_rate=34761
max_bit_rate=N/A
bits_per_raw_sample=8
nb_frames=750
nb_read_frames=N/A
nb_read_packets=N/A
DISPOSITION:default=1
DISPOSITION:dub=0
DISPOSITION:original=0
DISPOSITION:comment=0
DISPOSITION:lyrics=0
DISPOSITION:karaoke=0
DISPOSITION:forced=0
DISPOSITION:hearing_impaired=0
DISPOSITION:visual_impaired=0
DISPOSITION:clean_effects=0
DISPOSITION:attached_pic=0
TAG:language=und
TAG:handler_name=VideoHandler
[/STREAM]
[STREAM]
index=1
codec_name=aac
codec_long_name=AAC (Advanced Audio Coding)
profile=LC
codec_type=audio
codec_time_base=1/44100
codec_tag_string=mp4a
codec_tag=0x6134706d
sample_fmt=fltp
sample_rate=44100
channels=1
channel_layout=mono
bits_per_sample=0
id=N/A
r_frame_rate=0/0
avg_frame_rate=0/0
time_base=1/44100
start_pts=-1024
start_time=-0.023220
duration_ts=1324024
duration=30.023220
bit_rate=56517
max_bit_rate=N/A
bits_per_raw_sample=N/A
nb_frames=1293
nb_read_frames=N/A
nb_read_packets=N/A
DISPOSITION:default=1
DISPOSITION:dub=0
DISPOSITION:original=0
DISPOSITION:comment=0
DISPOSITION:lyrics=0
DISPOSITION:karaoke=0
DISPOSITION:forced=0
DISPOSITION:hearing_impaired=0
DISPOSITION:visual_impaired=0
DISPOSITION:clean_effects=0
DISPOSITION:attached_pic=0
TAG:language=und
TAG:handler_name=SoundHandler
[/STREAM]
[FORMAT]
filename=input.mp4
nb_streams=2
nb_programs=0
format_name=mov,mp4,m4a,3gp,3g2,mj2
format_long_name=QuickTime / MOV
start_time=-0.023220
duration=30.024000
size=368644
bit_rate=98226
probe_score=100
TAG:major_brand=isom
TAG:minor_version=512
TAG:compatible_brands=isomiso2avc1mp41
TAG:title=FFprobe Tips
TAG:encoder=Lavf56.15.101
[/FORMAT]
```

## Select Video Stream

```bash
ffprobe -v quiet -print_format json -show_format -show_streams -select_streams v:0 input.mp4
```

- `-select_streams v:0`: Select the first video stream

## Select Audio Stream

```bash
ffprobe -v quiet -print_format json -show_format -show_streams -select_streams a:0 input.mp4
```

- `-select_streams a:0`: Select the first audio stream

## Print Selected Value Without Key

```bash
ffprobe -v quiet -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 input.mp4
# output: 9020.245000
``` 

## Print Selected Value With Key

```bash
ffprobe -v quiet -show_entries format=duration -of default=noprint_wrappers=1 input.mp4
# output: duration=9020.245000
```
