Linux: Some ffmpeg command line examples


here are a list of some command line examples for converting audio and video files with ffmpeg. ffmpeg is part of the most linux distributions but there is also a Windows version available.

Convert ogg to mp3, with -a you can specify some audio options here a bitrate of 192k
ffmpeg -i input.ogg -ab 192k output.mp3
To remove the embedded cover(Cover is saved as Video Stream)

ffmpeg -i input.mp3 -vn -ab 192k output.mp3
To remove cover and copy the audio stream, no remux is done => better quality
ffmpeg -i input.mp3 -y -map 0:a -codec:a copy -map_metadata -1 output.mp3

Covert a MKV container to avi. 2 Steps required.

Step 1 (h264 -> mpeg4)

ffmpeg -i video.mkv -qscale 0 -acodec copy temp.avi

and Step 2

ffmpeg -i temp.avi -vcodec mpeg4 -b 4000k -acodec mp2 -ab 320k output.avi

MPEG4 to xvid Bitrate 1200kb half resolution, AC3 to mp3 128kb
ffmpeg -i temp.avi -vf scale=iw/2:-1 -b 1200k -q:v 2 -q:a 2 -c:v libxvid  -c:a libmp3lame -b:a 128k output.avi
Another simple way to xvid
ffmpeg -i input.avi -c:v mpeg4 -vtag xvid output.avi
MKV to xvid 4:3
ffmpeg -i input.mkv -sn -c:a libmp3lame -ar 48000 -ab 128k -ac 2 -c:v libxvid -crf 24 -vtag DIVX -vf scale=640:480 -aspect 4:3 -mbd rd -flags +mv4+aic -trellis 2 -cmp 2 -subcmp 2 -g 30 -vb 1500k output.avi
MKV to xvid 16:9
ffmpeg -i input.mkv -sn -c:a libmp3lame -ar 48000 -ab 128k -ac 2 -c:v libxvid -crf 24 -vtag DIVX -vf scale=720:480 -aspect 16:9 -mbd rd -flags +mv4+aic -trellis 2 -cmp 2 -subcmp 2 -g 30 -vb 1500k output.avi
Format to play on some DVD Player with SDCard (Medion for example)
ffmpeg -i input.mkv -f avi -c:v libxvid -qscale:v 2 -vf scale=512x280 -c:a libmp3lame -b:a 320k output.avi
and with a limited bitrate
ffmpeg -i input.mkv -f avi -c:v libxvid -b:v 1M -maxrate 1M -bufsize 1M -vf scale=512x280 -c:a libmp3lame -b:a 320k output.avi
Scale to a specific resolution and preserve aspect ration
ffmpeg -i temp.avi -vf scale=320:-1 output_320.avi

Concat 2 files with the same codec. Create a list of video files and write it to file

cat movlist.txt
file 'movPart1.avi'
file 'movPart2.avi'
ffmpeg -f concat -i movlist.txt -c copy mov.avi

Same but with mp3 files, Metadata are used from mp3File1.mp3

ffmpeg -i "concat:mp3File1.mp3|mp3File2.mp3" -acodec copy mp3file.mp3

Export Metadata from an mp3 file

ffmpeg -i mp3File1.mp3 -f ffmetadata mp3File1.metadata

With new metadata

ffmpeg -i "concat:mp3File1.mp3|mp3File2.mp3" -metadata "title=My Heavy Song" -metadata "artist=Metalartist" -metadata "album=Best Metal Album ever" -acodec copy mp3file.mp3 -vn

To flip a video vertically

ffmpeg -i in.avi -vf vflip flipped.avi

To flip a video horizontally

ffmpeg -i in.avi -vf hflip flipped.avi

Rotate 90° clockwise

ffmpeg -i in.avi -vf transpose=1 flipped.avi

Rotate 90° counterclockwise

ffmpeg -i in.avi -vf transpose=2 -c:a flipped.avi


To map the german audio channel as default. List channels

ffmpeg -i in.avi 2>&1 |grep Stream
    Stream #0:0(eng): Video: h264 (High), yuv420p(tv, bt709/unknown/unknown, progressive)1k tbn, 47.95 tbc (default)..
    Stream #0:1(ger): Audio: ac3, 48000 Hz, stereo, fltp, 224 kb/s (default) (forced)
    Stream #0:2(eng): Audio: ac3, 48000 Hz, 5.1(side), fltp, 640 kb/s

To select the german Audio stream as default use -map 0:a:0, means 1st Audio stream (counted from 0)

ffmpeg -i in.avi ... -map 0:v:0 -map 0:a:0 ...

To be continued


Advertisment to support

Windows: Determine uptime from command line


unlike Linux, Windows has no builtin uptime command to see when the operating system starts.

But nevertheless it’s possible. Use the systeminfo command.

c:\> systeminfo | findstr /i time
System Boot Time:          05.06.2014, 21:05:06
Time Zone:                 (UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna

Note: If you have installed a language different then english replace time as filter which applies to your language.