13.1. Selecting codecs and container formats

Chapter 13. Basic usage of MEncoder

13.1. Selecting codecs and container formats

Audio and video codecs for encoding are selected with the -oac and -ovc options, respectively. Type for instance:

mencoder -ovc help

to list all video codecs supported by the version of MEncoder on your machine. The following choices are available:

Audio Codecs:

Audio codec name Description
mp3lame encode to VBR, ABR or CBR MP3 with LAME
lavc use one of codecs">libavcodec's codecs
faac FAAC AAC encoder
toolame MPEG Layer 2 encoder
twolame MPEG Layer 2 encoder based on tooLAME
pcm uncompressed PCM audio
copy do not reencode, just copy compressed frames

Video codecs:

Video codec name Description
lavc use one of
xvid Xvid, MPEG-4 Advanced Simple Profile (ASP) codec
x264 x264, MPEG-4 Advanced Video Coding (AVC), AKA H.264 codec
nuv nuppel video, used by some applications
raw uncompressed video frames
copy do not reencode, just copy compressed frames
frameno used for 3-pass encoding (not recommended)

Output container formats are selected with the -of option. Type:

mencoder -of help

to list all containers supported by the version of MEncoder on your machine. The following choices are available:

Container formats:

Container format name Description
lavf one of the containers supported by libavformat
avi Audio-Video Interleaved
mpeg MPEG-1 and MPEG-2 PS
rawvideo raw video stream (no muxing - one video stream only)
rawaudio raw stream (no muxing - one stream only)

The AVI container is the native container format for MEncoder, which means that it's the one that is best handled, and the one for which MEncoder was designed. As noted above, other container formats are usable, but you may experience problems when using them.

libavformat containers:

If you selected libavformat to do the muxing of the output file (by using the -of lavf), the appropriate container format will be determined by the file extension of the output file. You may force a particular container format with libavformat's format option.

libavformat container name Description
mpg MPEG-1 and MPEG-2 PS
asf Advanced Streaming Format
avi Audio-Video Interleaved
wav Waveform Audio
swf Macromedia Flash
flv Macromedia Flash video
rm RealMedia
au SUN AU
nut NUT container (experimental and not yet spec-compliant)
mov QuickTime
mp4 MPEG-4 format
dv Sony Digital Video container
mkv Matroska audio/video container

As you can see, libavformat allows MEncoder to mux into a considerable variety of containers. Unfortunately, as MEncoder was not designed from the beginning to support container formats other than AVI, your should really be paranoid about the resulting file. Please to be sure that the audio/video synchronization is OK and that the file can be played correctly by players other than MPlayer.

Example 13.1. encode to Macromedia Flash format

Creating a Macromedia Flash video suitable for playback in a web browser with the Macromedia Flash plugin:

mencoder input.avi -o output.flv -of lavf \
 -oac mp3lame -lameopts abr:br=56 -srate 22050 -ovc lavc \
 -lavcopts vcodec=flv:vbitrate=500:mbd=2:mv0:trell:v4mv:cbp:last_pred=3


Chapter 13. Basic usage of MEncoder 13.2. Selecting input file or device