Difference between revisions of "FFmpeg"

From ArchWiki
Jump to: navigation, search
(Introduction: Nobody cares about xvid. Fix link to supported audio and video.)
(Every paragraph does not need a bullet.)
Line 15: Line 15:
  
 
== Encoding examples ==
 
== Encoding examples ==
* Examples using syntax and recommended  options from {{Filename|extra/ffmpeg 20110622-1}}
 
  
 
=== VOB to any container ===
 
=== VOB to any container ===
* Concatenate the desired [[Wikipedia:VOB|VOB]] files into a single VOB file:  
+
Concatenate the desired [[Wikipedia:VOB|VOB]] files into a single VOB file:  
 
  $ cat VTS_01_1.VOB VTS_01_2.VOB VTS_01_3.VOB VTS_01_4.VOB > Transformers.3.Dark.of.the.Moon.VOB
 
  $ cat VTS_01_1.VOB VTS_01_2.VOB VTS_01_3.VOB VTS_01_4.VOB > Transformers.3.Dark.of.the.Moon.VOB
* Or concatenate and then pipe the output VOB to FFmpeg:  
+
Or concatenate and then pipe the output VOB to FFmpeg:  
 
  $ cat VTS_01_1.VOB VTS_01_2.VOB VTS_01_3.VOB VTS_01_4.VOB > Transformers.3.Dark.of.the.Moon.VOB | ffmpeg -i ...
 
  $ cat VTS_01_1.VOB VTS_01_2.VOB VTS_01_3.VOB VTS_01_4.VOB > Transformers.3.Dark.of.the.Moon.VOB | ffmpeg -i ...
  
 
=== Single-pass x264 (lossless) ===
 
=== Single-pass x264 (lossless) ===
* {{Codeline|crf}}={{Codeline|0}} is the recommended option for [http://www.videolan.org/developers/x264.html x264] [[Wikipedia:Lossless_data_compression|lossless]] encoding.
+
{{Codeline|crf}}={{Codeline|0}} is the recommended option for [http://www.videolan.org/developers/x264.html x264] [[Wikipedia:Lossless_data_compression|lossless]] encoding.
  
:* {{Codeline|crf}}={{Codeline|0}} produces higher quality visuals versus {{Codeline|qp}}={{Codeline|0}} at the same filesize:
+
{{Codeline|crf}}={{Codeline|0}} produces higher quality visuals versus {{Codeline|qp}}={{Codeline|0}} at the same filesize:
 
<pre style='overflow:auto'>
 
<pre style='overflow:auto'>
 
ffmpeg -i 13.Assassins.VOB -acodec copy -vcodec libx264 -preset placebo -crf 0 -x264opts frameref=15 13.Assassins.mkv
 
ffmpeg -i 13.Assassins.VOB -acodec copy -vcodec libx264 -preset placebo -crf 0 -x264opts frameref=15 13.Assassins.mkv
 
</pre>
 
</pre>
:* {{Codeline|qp}}={{Codeline|0}} does not depend on lookahead and can result in a faster encoding times:  
+
{{Codeline|qp}}={{Codeline|0}} does not depend on lookahead and can result in a faster encoding times:  
 
<pre style='overflow:auto'>
 
<pre style='overflow:auto'>
 
ffmpeg -i 13.Assassins.VOB -acodec copy -vcodec libx264 -preset placebo -x264opts qp=0:frameref=15 13.Assassins.mkv
 
ffmpeg -i 13.Assassins.VOB -acodec copy -vcodec libx264 -preset placebo -x264opts qp=0:frameref=15 13.Assassins.mkv
 
</pre>
 
</pre>
* Drawbacks for both lossless methods include relatively slow encoding speed and no reasonable way to estimate output filesize.
+
Drawbacks for both lossless methods include relatively slow encoding speed and no reasonable way to estimate output filesize.
  
 
=== Single-pass MPEG-2 (near lossless) ===
 
=== Single-pass MPEG-2 (near lossless) ===
* Allow FFmpeg to automatically set DVD standardized parameters:
+
Allow FFmpeg to automatically set DVD standardized parameters. Encode to DVD [[Wikipedia:MPEG-2|MPEG-2]] at a frame rate of 30 frames/second:
:* Encode to DVD [[Wikipedia:MPEG-2|MPEG-2]] at a frame rate of 30 frames/second:
+
  
 
  ffmpeg -i 13.Assassins.VOB -target ntsc-dvd -sameq 13.Assassins.mpg
 
  ffmpeg -i 13.Assassins.VOB -target ntsc-dvd -sameq 13.Assassins.mpg
  
:* Encode to DVD MPEG-2 at a frame rate of 24 frames/second:
+
Encode to DVD MPEG-2 at a frame rate of 24 frames/second:
  
 
  ffmpeg -i 13.Assassins.VOB -target film-dvd -sameq 13.Assassins.mpg
 
  ffmpeg -i 13.Assassins.VOB -target film-dvd -sameq 13.Assassins.mpg
  
 
=== Single-pass x264 (very high-quality) ===
 
=== Single-pass x264 (very high-quality) ===
* {{Codeline|threads}}={{Codeline|0}} '''=''' automatically detect and select the appropriate number of threads:  
+
{{Codeline|threads}}={{Codeline|0}} '''=''' automatically detect and select the appropriate number of threads:  
 
<pre style='overflow:auto'>
 
<pre style='overflow:auto'>
 
ffmpeg -i Transformers.3.Dark.of.the.Moon.VOB -acodec libmp3lame -ab 256k -vcodec libx264 -preset veryslow -crf 15 -threads 0 -x264opts frameref=15:fast_pskip=0 Transformers.3.Dark.of.the.Moon.mkv
 
ffmpeg -i Transformers.3.Dark.of.the.Moon.VOB -acodec libmp3lame -ab 256k -vcodec libx264 -preset veryslow -crf 15 -threads 0 -x264opts frameref=15:fast_pskip=0 Transformers.3.Dark.of.the.Moon.mkv
 
</pre>
 
</pre>
* {{Codeline|tune}} option should be set to [http://forum.doom9.org/showthread.php?t=149394 match the type and content of the of media being encoded]:
+
{{Codeline|tune}} option should be set to [http://forum.doom9.org/showthread.php?t=149394 match the type and content of the of media being encoded]:
 
<pre style='overflow:auto'>
 
<pre style='overflow:auto'>
 
ffmpeg -i 13.Assassins.VOB -acodec libmp3lame -ab 256k -vcodec libx264 -preset veryslow -tune film -crf 15 -threads 0 -x264opts frameref=15:fast_pskip=0 13.Assassins.mkv
 
ffmpeg -i 13.Assassins.VOB -acodec libmp3lame -ab 256k -vcodec libx264 -preset veryslow -tune film -crf 15 -threads 0 -x264opts frameref=15:fast_pskip=0 13.Assassins.mkv
Line 59: Line 57:
  
 
=== Two-pass x264 (very high-quality) ===
 
=== Two-pass x264 (very high-quality) ===
* Audio deactivated as only video statistics are recorded during the first of multiple pass runs:  
+
Audio deactivated as only video statistics are recorded during the first of multiple pass runs:  
 
<pre style='overflow:auto'>
 
<pre style='overflow:auto'>
 
ffmpeg -i Transformers.3.Dark.of.the.Moon.VOB -an -vcodec libx264 -pass 1 -preset veryslow -threads 0 -b 3000k -x264opts frameref=15:fast_pskip=0 -f rawvideo -y /dev/null
 
ffmpeg -i Transformers.3.Dark.of.the.Moon.VOB -an -vcodec libx264 -pass 1 -preset veryslow -threads 0 -b 3000k -x264opts frameref=15:fast_pskip=0 -f rawvideo -y /dev/null
 
</pre>
 
</pre>
* Container format is automatically detected and muxed into from the output file extenstion ({{Codeline|.mkv}}):
+
Container format is automatically detected and muxed into from the output file extenstion ({{Codeline|.mkv}}):
 
<pre style='overflow:auto'>  
 
<pre style='overflow:auto'>  
 
ffmpeg -i Transformers.3.Dark.of.the.Moon.VOB -acodec libvo-aacenc -ab 256k -ar 96000 -vcodec libx264 -pass 2 -preset veryslow -threads 0 -b 3000k -x264opts frameref=15:fast_pskip=0 Transformers.3.Dark.of.the.Moon.mkv
 
ffmpeg -i Transformers.3.Dark.of.the.Moon.VOB -acodec libvo-aacenc -ab 256k -ar 96000 -vcodec libx264 -pass 2 -preset veryslow -threads 0 -b 3000k -x264opts frameref=15:fast_pskip=0 Transformers.3.Dark.of.the.Moon.mkv
Line 69: Line 67:
  
 
=== Two-pass MPEG-4 (very high-quality) ===
 
=== Two-pass MPEG-4 (very high-quality) ===
* Audio deactivated as only video statistics are logged during the first of multiple pass runs:  
+
Audio deactivated as only video statistics are logged during the first of multiple pass runs:  
 
<pre style='overflow:auto'>
 
<pre style='overflow:auto'>
 
ffmpeg -i Transformers.3.Dark.of.the.Moon.VOB -an -vcodec mpeg4 -pass 1 -mbd 2 -trellis 2 -flags +cbp+mv0 -pre_dia_size 4 -dia_size 4 -precmp 4 -cmp 4 -subcmp 4 -preme 2 -qns 2 -b 3000k -f rawvideo -y /dev/null
 
ffmpeg -i Transformers.3.Dark.of.the.Moon.VOB -an -vcodec mpeg4 -pass 1 -mbd 2 -trellis 2 -flags +cbp+mv0 -pre_dia_size 4 -dia_size 4 -precmp 4 -cmp 4 -subcmp 4 -preme 2 -qns 2 -b 3000k -f rawvideo -y /dev/null
 
</pre>
 
</pre>
  
* Container format is automatically detected and muxed into from the output file extenstion ({{Codeline|.avi}}):
+
Container format is automatically detected and muxed into from the output file extenstion ({{Codeline|.avi}}):
 
<pre style='overflow:auto'>  
 
<pre style='overflow:auto'>  
 
ffmpeg -i Transformers.3.Dark.of.the.Moon.VOB -acodec copy -vcodec mpeg4 -vtag DX50 -pass 2 -mbd 2 -trellis 2 -flags +cbp+mv0 -pre_dia_size 4 -dia_size 4 -precmp 4 -cmp 4 -subcmp 4 -preme 2 -qns 2 -b 3000k Transformers.3.Dark.of.the.Moon.avi
 
ffmpeg -i Transformers.3.Dark.of.the.Moon.VOB -acodec copy -vcodec mpeg4 -vtag DX50 -pass 2 -mbd 2 -trellis 2 -flags +cbp+mv0 -pre_dia_size 4 -dia_size 4 -precmp 4 -cmp 4 -subcmp 4 -preme 2 -qns 2 -b 3000k Transformers.3.Dark.of.the.Moon.avi
Line 88: Line 86:
 
=== Creating presets ===
 
=== Creating presets ===
  
* Populate {{Filename|~/.ffmpeg}} with the default [http://ffmpeg.org/ffmpeg-doc.html#SEC13 preset files]:  
+
Populate {{Filename|~/.ffmpeg}} with the default [http://ffmpeg.org/ffmpeg-doc.html#SEC13 preset files]:  
  
 
  $ cp -iR /usr/share/ffmpeg ~/.ffmpeg
 
  $ cp -iR /usr/share/ffmpeg ~/.ffmpeg
  
* Create new and/or modify the default preset files:
+
Create new and/or modify the default preset files:
  
 
{{File|~/.ffmpeg/libavcodec-vhq.ffpreset|<nowiki>
 
{{File|~/.ffmpeg/libavcodec-vhq.ffpreset|<nowiki>
Line 109: Line 107:
 
=== Using preset files ===
 
=== Using preset files ===
  
* Enable the {{Codeline|-vpre}} option after declaring the desired  {{Codeline|-vcodec}}
+
Enable the {{Codeline|-vpre}} option after declaring the desired  {{Codeline|-vcodec}}
  
 
==== {{filename|libavcodec-vhq.ffpreset}} ====
 
==== {{filename|libavcodec-vhq.ffpreset}} ====
Line 119: Line 117:
 
===== Two-pass MPEG-4 (very high quality) =====
 
===== Two-pass MPEG-4 (very high quality) =====
  
* First pass of a multipass (bitrate) ratecontrol transcode:
+
First pass of a multipass (bitrate) ratecontrol transcode:
 
<pre style='overflow:auto'>
 
<pre style='overflow:auto'>
 
ffmpeg -i 13.Assassins.2010.mpg -an -vcodec mpeg4 -pass 1 -vpre vhq -f rawvideo -y /dev/null
 
ffmpeg -i 13.Assassins.2010.mpg -an -vcodec mpeg4 -pass 1 -vpre vhq -f rawvideo -y /dev/null
 
</pre>
 
</pre>
* Ratecontrol based on the video statistics logged from the first pass:  
+
Ratecontrol based on the video statistics logged from the first pass:  
 
<pre style='overflow:auto'>
 
<pre style='overflow:auto'>
 
ffmpeg -i 13.Assassins.2010.mpg -acodec libvorbis -aq 8 -ar 48000 -vcodec mpeg4 -pass 2 -vpre vhq -b 3000k 13.Assassins.2010.mp4
 
ffmpeg -i 13.Assassins.2010.mpg -acodec libvorbis -aq 8 -ar 48000 -vcodec mpeg4 -pass 2 -vpre vhq -b 3000k 13.Assassins.2010.mp4
Line 139: Line 137:
 
== Volume gain ==
 
== Volume gain ==
  
* Change the audio volume in multiples of 256 where '''256 = 100%''' (normal) volume. Additional values such as 400 are also valid options.  
+
Change the audio volume in multiples of 256 where '''256 = 100%''' (normal) volume. Additional values such as 400 are also valid options.  
 
  -vol 256  = 100%
 
  -vol 256  = 100%
 
  -vol 512  = 200%
 
  -vol 512  = 200%
Line 146: Line 144:
 
  -vol 2048 = 800%
 
  -vol 2048 = 800%
  
* To double the volume '''(512 = 200%)''' of an [[Wikipedia:Mp3|MP3]] file:
+
To double the volume '''(512 = 200%)''' of an [[Wikipedia:Mp3|MP3]] file:
 
  ffmpeg -i example.mp3 -vol 512 loud-example.mp3
 
  ffmpeg -i example.mp3 -vol 512 loud-example.mp3
  
* To quadruple the volume '''(1024 = 400%)''' of an [[Wikipedia:Ogg|Ogg]] file:
+
To quadruple the volume '''(1024 = 400%)''' of an [[Wikipedia:Ogg|Ogg]] file:
 
  ffmpeg -i example.ogg -vol 1024 loud-example.ogg
 
  ffmpeg -i example.ogg -vol 1024 loud-example.ogg
  
* Note that gain metadata is only written to the output file. Unlike mp3gain or ogggain, the source sound file is untouched.
+
Note that gain metadata is only written to the output file. Unlike mp3gain or ogggain, the source sound file is untouched.
  
 
== Extracting audio ==
 
== Extracting audio ==
Line 159: Line 157:
 
Input #0, avi, from 'The.Kings.Speech.2010.mpg':<br>  Duration: 01:58:28.96, start: 0.000000, bitrate: 3000 kb/s<br>    Stream #0.0: Video: mpeg4, yuv420p, 720x480 [PAR 1:1 DAR 16:9], 29.97 tbr, 29.97 tbn, 29.97 tbc<br>    Stream #0.1: Audio: ac3, 48000 Hz, stereo, s16, 384 kb/s<br>    Stream #0.2: Audio: ac3, 48000 Hz, 5.1, s16, 448 kb/s<br>    Stream #0.3: Audio: dts, 48000 Hz, 5.1 768 kb/s}}
 
Input #0, avi, from 'The.Kings.Speech.2010.mpg':<br>  Duration: 01:58:28.96, start: 0.000000, bitrate: 3000 kb/s<br>    Stream #0.0: Video: mpeg4, yuv420p, 720x480 [PAR 1:1 DAR 16:9], 29.97 tbr, 29.97 tbn, 29.97 tbc<br>    Stream #0.1: Audio: ac3, 48000 Hz, stereo, s16, 384 kb/s<br>    Stream #0.2: Audio: ac3, 48000 Hz, 5.1, s16, 448 kb/s<br>    Stream #0.3: Audio: dts, 48000 Hz, 5.1 768 kb/s}}
  
* Extract the first ({{codeline|-map 0:1}}) [[Wikipedia:Dolby_Digital|AC-3]] encoded audio stream exactly as it was multiplexed into the file:  
+
Extract the first ({{codeline|-map 0:1}}) [[Wikipedia:Dolby_Digital|AC-3]] encoded audio stream exactly as it was multiplexed into the file:  
 
<pre style='overflow:auto'>
 
<pre style='overflow:auto'>
 
ffmpeg -i The.Kings.Speech.mpg -map 0:1 -acodec copy -vn The.Kings.Speech.ac3
 
ffmpeg -i The.Kings.Speech.mpg -map 0:1 -acodec copy -vn The.Kings.Speech.ac3
 
</pre>
 
</pre>
* Convert the third ({{codeline|-map 0:3}}) [[Wikipedia:DTS_(sound_system)|DTS]] audio stream to an [[Wikipedia:Advanced_Audio_Coding|AAC]] file with a bitrate of 192 kb/s and a [[Wikipedia:Sampling_rate|sampling rate]] of 96000 Hz:
+
Convert the third ({{codeline|-map 0:3}}) [[Wikipedia:DTS_(sound_system)|DTS]] audio stream to an [[Wikipedia:Advanced_Audio_Coding|AAC]] file with a bitrate of 192 kb/s and a [[Wikipedia:Sampling_rate|sampling rate]] of 96000 Hz:
 
<pre style='overflow:auto'>
 
<pre style='overflow:auto'>
 
ffmpeg -i The.Kings.Speech.mpg -map 0:3 -acodec libvo-aacenc -ab 192k -ar 96000 -vn The.Kings.Speech.aac
 
ffmpeg -i The.Kings.Speech.mpg -map 0:3 -acodec libvo-aacenc -ab 192k -ar 96000 -vn The.Kings.Speech.aac
 
</pre>
 
</pre>
* {{codeline|-vn}} disables the processing of the video stream.
+
{{codeline|-vn}} disables the processing of the video stream.
  
 
=== Stripping audio ===
 
=== Stripping audio ===
Line 192: Line 190:
 
== Package removal ==
 
== Package removal ==
  
* [[pacman]] will not [[Pacman#Removing_packages|remove]] configuration files outside of the defaults that were created during package installation. This includes user-created preset files.
+
[[pacman]] will not [[Pacman#Removing_packages|remove]] configuration files outside of the defaults that were created during package installation. This includes user-created preset files.
  
 
== Additional resources ==
 
== Additional resources ==

Revision as of 00:19, 16 November 2011

This template has only maintenance purposes. For linking to local translations please use interlanguage links, see Help:i18n#Interlanguage links.


Local languages: Català – Dansk – English – Español – Esperanto – Hrvatski – Indonesia – Italiano – Lietuviškai – Magyar – Nederlands – Norsk Bokmål – Polski – Português – Slovenský – Česky – Ελληνικά – Български – Русский – Српски – Українська – עברית – العربية – ไทย – 日本語 – 正體中文 – 简体中文 – 한국어


External languages (all articles in these languages should be moved to the external wiki): Deutsch – Français – Română – Suomi – Svenska – Tiếng Việt – Türkçe – فارسی

Template:Article summary start Template:Article summary text Template:Article summary end

Introduction

FFmpeg is command-line driven collection of tools which enables the decoding, encoding, conversion and playback of most audio and video streams.

Package installation

Template:Package Official is part of the official Arch Linux [extra] repository.

Template:Cli

Encoding examples

VOB to any container

Concatenate the desired VOB files into a single VOB file:

$ cat VTS_01_1.VOB VTS_01_2.VOB VTS_01_3.VOB VTS_01_4.VOB > Transformers.3.Dark.of.the.Moon.VOB

Or concatenate and then pipe the output VOB to FFmpeg:

$ cat VTS_01_1.VOB VTS_01_2.VOB VTS_01_3.VOB VTS_01_4.VOB > Transformers.3.Dark.of.the.Moon.VOB | ffmpeg -i ...

Single-pass x264 (lossless)

Template:Codeline=Template:Codeline is the recommended option for x264 lossless encoding.

Template:Codeline=Template:Codeline produces higher quality visuals versus Template:Codeline=Template:Codeline at the same filesize:

ffmpeg -i 13.Assassins.VOB -acodec copy -vcodec libx264 -preset placebo -crf 0 -x264opts frameref=15 13.Assassins.mkv

Template:Codeline=Template:Codeline does not depend on lookahead and can result in a faster encoding times:

ffmpeg -i 13.Assassins.VOB -acodec copy -vcodec libx264 -preset placebo -x264opts qp=0:frameref=15 13.Assassins.mkv

Drawbacks for both lossless methods include relatively slow encoding speed and no reasonable way to estimate output filesize.

Single-pass MPEG-2 (near lossless)

Allow FFmpeg to automatically set DVD standardized parameters. Encode to DVD MPEG-2 at a frame rate of 30 frames/second:

ffmpeg -i 13.Assassins.VOB -target ntsc-dvd -sameq 13.Assassins.mpg

Encode to DVD MPEG-2 at a frame rate of 24 frames/second:

ffmpeg -i 13.Assassins.VOB -target film-dvd -sameq 13.Assassins.mpg

Single-pass x264 (very high-quality)

Template:Codeline=Template:Codeline = automatically detect and select the appropriate number of threads:

ffmpeg -i Transformers.3.Dark.of.the.Moon.VOB -acodec libmp3lame -ab 256k -vcodec libx264 -preset veryslow -crf 15 -threads 0 -x264opts frameref=15:fast_pskip=0 Transformers.3.Dark.of.the.Moon.mkv

Template:Codeline option should be set to match the type and content of the of media being encoded:

ffmpeg -i 13.Assassins.VOB -acodec libmp3lame -ab 256k -vcodec libx264 -preset veryslow -tune film -crf 15 -threads 0 -x264opts frameref=15:fast_pskip=0 13.Assassins.mkv

Two-pass x264 (very high-quality)

Audio deactivated as only video statistics are recorded during the first of multiple pass runs:

ffmpeg -i Transformers.3.Dark.of.the.Moon.VOB -an -vcodec libx264 -pass 1 -preset veryslow -threads 0 -b 3000k -x264opts frameref=15:fast_pskip=0 -f rawvideo -y /dev/null

Container format is automatically detected and muxed into from the output file extenstion (Template:Codeline):

 
ffmpeg -i Transformers.3.Dark.of.the.Moon.VOB -acodec libvo-aacenc -ab 256k -ar 96000 -vcodec libx264 -pass 2 -preset veryslow -threads 0 -b 3000k -x264opts frameref=15:fast_pskip=0 Transformers.3.Dark.of.the.Moon.mkv

Two-pass MPEG-4 (very high-quality)

Audio deactivated as only video statistics are logged during the first of multiple pass runs:

ffmpeg -i Transformers.3.Dark.of.the.Moon.VOB -an -vcodec mpeg4 -pass 1 -mbd 2 -trellis 2 -flags +cbp+mv0 -pre_dia_size 4 -dia_size 4 -precmp 4 -cmp 4 -subcmp 4 -preme 2 -qns 2 -b 3000k -f rawvideo -y /dev/null

Container format is automatically detected and muxed into from the output file extenstion (Template:Codeline):

 
ffmpeg -i Transformers.3.Dark.of.the.Moon.VOB -acodec copy -vcodec mpeg4 -vtag DX50 -pass 2 -mbd 2 -trellis 2 -flags +cbp+mv0 -pre_dia_size 4 -dia_size 4 -precmp 4 -cmp 4 -subcmp 4 -preme 2 -qns 2 -b 3000k Transformers.3.Dark.of.the.Moon.avi

Determining bitrates with fixed output file sizes

  • (Desired File Size in MB - Audio File Size in MB) x 8192 kb/MB / Length of Media in Seconds (s) = Bitrate in kb/s
  • (3900 MB - 275 MB) = 3625 MB x 8192 kb/MB / 8830 s = 3363 kb/s required to achieve an approximate total output file size of 3900 MB

Preset files

Creating presets

Populate Template:Filename with the default preset files:

$ cp -iR /usr/share/ffmpeg ~/.ffmpeg

Create new and/or modify the default preset files:

Template:File

Using preset files

Enable the Template:Codeline option after declaring the desired Template:Codeline

Template:Filename

Two-pass MPEG-4 (very high quality)

First pass of a multipass (bitrate) ratecontrol transcode:

ffmpeg -i 13.Assassins.2010.mpg -an -vcodec mpeg4 -pass 1 -vpre vhq -f rawvideo -y /dev/null

Ratecontrol based on the video statistics logged from the first pass:

ffmpeg -i 13.Assassins.2010.mpg -acodec libvorbis -aq 8 -ar 48000 -vcodec mpeg4 -pass 2 -vpre vhq -b 3000k 13.Assassins.2010.mp4
  • libvorbis quality settings (VBR)
  • -aq 4 = 128 kb/s
  • -aq 5 = 160 kb/s
  • -aq 6 = 192 kb/s
  • -aq 7 = 224 kb/s
  • -aq 8 = 256 kb/s

Volume gain

Change the audio volume in multiples of 256 where 256 = 100% (normal) volume. Additional values such as 400 are also valid options.

-vol 256  = 100%
-vol 512  = 200%
-vol 768  = 300%
-vol 1024 = 400%
-vol 2048 = 800%

To double the volume (512 = 200%) of an MP3 file:

ffmpeg -i example.mp3 -vol 512 loud-example.mp3

To quadruple the volume (1024 = 400%) of an Ogg file:

ffmpeg -i example.ogg -vol 1024 loud-example.ogg

Note that gain metadata is only written to the output file. Unlike mp3gain or ogggain, the source sound file is untouched.

Extracting audio

Template:Cli

Extract the first (Template:Codeline) AC-3 encoded audio stream exactly as it was multiplexed into the file:

ffmpeg -i The.Kings.Speech.mpg -map 0:1 -acodec copy -vn The.Kings.Speech.ac3

Convert the third (Template:Codeline) DTS audio stream to an AAC file with a bitrate of 192 kb/s and a sampling rate of 96000 Hz:

ffmpeg -i The.Kings.Speech.mpg -map 0:3 -acodec libvo-aacenc -ab 192k -ar 96000 -vn The.Kings.Speech.aac

Template:Codeline disables the processing of the video stream.

Stripping audio

  1. Copy the first video stream (Template:Codeline) along with the second AC-3 audio stream (Template:Codeline).
  2. Convert the AC-3 audio stream to two-channel MP3 with a bitrate of 128 kb/s and a sampling rate of 48000 Hz.
ffmpeg -i The.Kings.Speech.mpg -map 0:0 -map 0:2 -vcodec copy -acodec libmp3lame -ab 128k -ar 48000 -ac 2 The.Kings.Speech.mkv

Template:Cli

Note: Removing undesired audio streams allows for additional bits to be allocated towards improving video quality.

Adding subtitles

FFmpeg does not currently support muxing subtitle files into existing streams. See MEncoder for subtitle muxing support.

Recording webcam

With FFmpeg it is very easy to record a video from the webcam and including audio sources from an additional microphone. This following example uses pulseaudio with the alsa backend for the microphone and assumes that the webcam is correctly recognised under /dev/video0.

$ ffmpeg -f alsa -i pulse -f video4linux2 -s 640x480 -i /dev/video0 out.mpg

Package removal

pacman will not remove configuration files outside of the defaults that were created during package installation. This includes user-created preset files.

Additional resources