Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

What is a good command line tool to get the video bitrate of a divx or xvid avi file for linux?

share|improve this question
up vote 14 down vote accepted

You can use MPlayer to get that information.

$ mplayer -vo null -ao null -identify -frames 0 foo.avi

In particular, you want the -identify option. The option -frames 0 tells it not to playback the file, and -vo null -ao null give it null drivers for video & audio (so you can use this command via SSH or another non-X-enabled terminal).

You can combine this with grep or other tools to pull out the specific line you want:

$ mplayer -vo null -ao null -identify -frames 0 foo.avi | grep kbps
VIDEO:  [XVID]  512x384  24bpp  29.970 fps  990.9 kbps (121.0 kbyte/s)

The full output looks like this:

$ mplayer -vo null -ao null -identify -frames 0 foo.avi
MPlayer dev-SVN-r26940 (C) 2000-2007 MPlayer Team
CPU: [hw dependent]
CPUflags:  [hw dependent]
Compiled with runtime CPU detection.

Playing foo.avi.
AVI file format detected.
[aviheader] Video stream found, -vid 0
[aviheader] Audio stream found, -aid 1
VIDEO:  [XVID]  512x384  24bpp  29.970 fps  990.9 kbps (121.0 kbyte/s)
Clip info:
 Software: transcode-1.0.2
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
Selected video codec: [ffodivx] vfm: ffmpeg (FFmpeg MPEG-4)
Opening audio decoder: [mp3lib] MPEG layer-2, layer-3
AUDIO: 48000 Hz, 2 ch, s16le, 128.0 kbit/8.33% (ratio: 16000->192000)
Selected audio codec: [mp3] afm: mp3lib (mp3lib MPEG layer-2, layer-3)
AO: [null] 48000Hz 2ch s16le (2 bytes per sample)
Starting playback...

Exiting... (End of file)
share|improve this answer
ps. the mplayer manpage is a nightmare ... – quack quixote Oct 15 '09 at 15:18
For those unaware, this is essentially what does, the script which ships with mplayer. – Jonah Braun Nov 13 '11 at 23:41
The flags need to be updated. I get 'invalid option -- 'o' in Ubuntu 13.04 – hnns Aug 19 '13 at 19:53

ffmpeg works fine:

ffmpeg -i file.avi
share|improve this answer
ffmpeg prevails where mplayer fails. – dom0 Aug 25 '14 at 18:43
Some recent distributions (Debian, Ubuntu 14) dropped ffmpeg and instead shipped its libav fork, so you might need to install libav-tools and run avconv -i instead of ffmpeg -i – bain Jan 22 '15 at 17:08
avprobe -show_streams file.avi
share|improve this answer
To show the overall bit rate, you'd be better off using -show_format, or even better (on *nix) avprobe -show_format file.avi | grep bit_rate. The same syntax will also work for ffprobe. – evilsoup Jun 25 '13 at 19:23

Here's another tool that does the same thing: tcprobe, which is part of the transcode package. Use the -i switch to get an info dump from the file (sample output from the same file as in the mplayer example):

$ tcprobe -i foo.avi
[tcprobe] RIFF data, AVI video
[avilib] V: 29.970 fps, codec=XVID, frames=38630, width=512, height=384
[avilib] A: 48000 Hz, format=0x55, bits=16, channels=2, bitrate=128 kbps,
[avilib]    53707 chunks, 21768720 bytes, VBR
[tcprobe] summary for foo.avi, (*) = not default, 0 = not detected
import frame size: -g 512x384 [720x576] (*)
       frame rate: -f 29.970 [25.000] frc=4 (*)
      audio track: -a 0 [0] -e 48000,16,2 [48000,16,2] -n 0x55 [0x2000] (*)
                   bitrate=128 kbps
           length: 38630 frames, frame_time=33 msec, duration=0:21:28.954
share|improve this answer

Here is a copy-paste bash answer using avprobe (which comes with avconv and maybe ffmpeg) in case you want only the number (for further scripting)

function bitrate () { avprobe -show_format "$1" 2> /dev/null | grep "bit_rate" | sed 's/.*bit_rate=\([0-9]\+\).*/\1/g'; }

It works like this. This line gets info about the file (removing extra info on stdout):

avprobe -show_format test.mp4 2> /dev/null

Then grep selects the line which mentions bitrate

grep "bit_rate"

From which sed then extracts the bitrate (in bits/second)

sed 's/.*bit_rate=\([0-9]\+\).*/\1/g';

Long story short, copy the function in the first line and then you can do

$ bitrate test.mp4

(that's not a high-quality video, 593 kb/s, since bitrate uses 1000 instead of 1024 apparently)

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.