From 4e8a50437110dc3d70e406c8d3dbf2a522ff5594 Mon Sep 17 00:00:00 2001
From: diego MEncoder (MPlayer's Movie Encoder) is a simple movie encoder,
-designed to encode MPlayer-playable movies
-(AVI/ASF/OGG/DVD/VCD/VOB/MPG/MOV/VIV/FLI/RM/NUV/NET) to other MPlayer-playable
-formats (see below). It can encode with various codecs, like DivX4 (1 or
-2 passes), libavcodec, PCM/MP3/VBRMP3 audio. Also has
-stream copying and video resizing abilities.
-
-
-
- WARNING : DO NOT COMPILE LAME WITH GCC 2.96 ! It won't
- work properly !
- This
- is needed for CBR/VBR MP3 audio encoding ability. Note that a single
- lame
binary isn't sufficient. BTW: the less optimization
- you use for lame, the better the quality will be. You can test
- quality by running make test
after lame's compiling process
- is over. The resulting number should be less than 30. Don't
- panic if it's 400 or so, you shouldn't heard any audible
- quality decrease. Oh, and if your compiler doesn't even run make test
...
- Well, delete that GCC 2.96.libjpeg
and libpng
-
- as described in the Installation
- section
You are ready. As you probably know, other encoding tools need the -avifile library installed. MEncoder doesn't need it at all.
- - - --
-ofps
option (useful when encoding
- 29.97fps VOB to 24fps AVI)Planned features : -
2.4.3.1. Encoding 2 or 3-pass DivX4
- -2-pass encoding : the name comes from the fact that this method encodes the file twice. -The first encoding (dubbed pass) creates some temporary files (*.log) with a -size of few megabytes, do not delete them yet (you can delete the AVI). In the second pass, the -2-pass output file is created, using the bitrate data from the temporary files. The resulting -file will have much better image quality. If this is the first time you heard -about this, you should consult some guides available on the Net.
- -This example shows how to encode a DVD to a 2-pass DivX4 AVI. Just two
-commands are needed :
- rm frameno.avi
- remove this file, which
- can come from a previous 3-pass encoding (it interferes with current one)
- mencoder -dvd 2 -divx4opts br=1100
--o movie.avi -pass 1
- mencoder -dvd 2 -divx4opts br=1100 -o movie.avi -pass 2
3-pass encoding : this is an extension of 2-pass encoding, - where the audio encoding takes place in a separate pass. This method enables - estimation of recommended video bitrate in order to fit on a CD. Also, the - audio is encoded only once, unlike in 2-pass mode. The schematics :
- --
- rm frameno.avi |
- - remove conflicting temporary file | -
- mencoder <file/DVD> -ovc frameno -o
- frameno.avi |
-
- First pass : an audio-only avi file will be created, containing
- ONLY the requested audio stream. Don't forget -lameopts , if
- you need to set it. If you were encoding a long movie, MEncoder prints
- the recommended bitrate values for 650Mb, 700Mb, and 800Mb destination
- sizes, after this pass finishes. |
-
- mencoder <file/DVD> -oac copy -pass 1
- -divx4opts br=<bitrate> |
- - Second pass : alias the first pass of DivX4 video encoding. - Optionally specify the video bitrate MEncoder printed at the end of the - previous pass. | -
- mencoder <file/DVD> -oac copy -pass 2
- -divx4opts br=<bitrate> |
-
- Third pass : alias the second pass of DivX4 video encoding.
- Optionally specify the video bitrate MEncoder printed at the end of the
- previous pass. In this pass, audio from frameno.avi will be
- inserted into the destination file.. and it's all ready! |
-
Example for 3-pass encoding :
- - rm frameno.avi
- remove this file,
- which can come from a previous 3-pass encoding (it interferes with current
- one)
- mencoder -dvd 2 -ovc frameno
- -o frameno.avi
- mencoder -dvd 2
- -divx4opts br=1100 -oac copy -o movie.avi -pass 1
-
- mencoder -dvd 2
- -divx4opts br=1100 -oac copy -o movie.avi -pass 2
2 or 3-pass encoding using internal libavcodec controler :
-Optionally you can use libavcodec's internal 2 or 3-pass mode, it may gives you
-better final rate accuracy than using the external, DivX4-inspired 2-pass rate
-controler with libavcodec.
-
rm -f lavc_stats.txt
-mencoder -dvd 2 -ovc lavc -lacvopts vpass=1 (audio-options) -o movie.avi
-mencoder -dvd 2 -ovc lavc -lacvopts vpass=2 (audio-options) -o movie.avi
rm -f frameno.avi lavc_stats.txt
-mencoder -dvd 2 -ovc frameno (audio-options) -o frameno.avi
-mencoder -dvd 2 -ovc lavc -lacvopts vpass=1 -oac copy -o movie.avi
-mencoder -dvd 2 -ovc lavc -lacvopts vpass=2 -oac copy -o movie.avi
Often the need to resize movie images' size emerges. Its reasons can be many, - examples are decreasing output file size, encoding SVCDs to DivX. Ripped DVDs - are mostly rescaled, for example a 4:3 DVD should be 640x480, especially - when you want it to fit to 1 CD, and have good quality at the same time. - SVCDs have 480x480 size, and their header contains the aspect ratio the - player should use (Ex.: 480x480 + 4:3 = 640x480). However when encoding to - AVI (DivX) files, you have be aware that AVI headers don't store this - value. Thus, the only solution is rescaling.
- -The scaling process is handled by the 'scale' video filter:
- -vop scale=X:Y
. Its quality can be set with the
- -sws
option. If it's not specified, MEncoder will use 0 :
- fast bilinear.
Usage :
- mencoder sample-svcd.mpg -divx4opts br=1300 -vop scale=640:480 -sws 2 -o output.avi
MEncoder can handle input streams in two ways : encode or - copy them. This section is about copying.
- --
-ovc copy
) : nice stuff can be done :)-oac copy
) : straightforward.
- It is possible to take an external audio file (MP3, AC3, Vorbis) and mux it
- into the output stream. Use the -audiofile <filename>
- option for this.2.4.3.4. Fixing AVIs with broken index or interleaving
- -Easiest thing. We simply copy the video and audio streams, and
-MEncoder generates the index. Of course this cannot fix possible bugs in
-the video and/or audio streams. It also fixes files with broken interleaving,
-thus the -ni
option won't be needed for them anymore.
Command : mencoder -idx input.avi -ovc copy -oac copy -o output.avi
2.4.3.5. Encoding with the libavcodec codec family
- -libavcodec provides simple encoding to a -lot of interesting video and audio formats (currently its audio codecs are -unsupported). You can encode to the following codecs :
- --
The first column contains the codec names that should be passed after the
- vcodec
config, like : -lavcopts vcodec=msmpeg4
An example, with MJPEG compression :
- mencoder -dvd 2 -o title2.avi -ovc lavc -lavcopts vcodec=mjpeg
2.4.3.6. Encoding from multiple input image files (JPEGs or PNGs)
- -MEncoder is capable of creating movies from one or more JPEG or PNG - files. With simple framecopy it can create MJPEG (Motion JPEG) or MPNG - (Motion PNG) files.
- -Explanation of the process
- -MEncoder decodes the input image(s) with libjpeg
- (when decoding PNGs, it will use libpng).
-
MEncoder then feeds the decoded image to the chosen video compressor - (DivX4, Xvid, ffmpeg msmpeg4, etc...). Watch for the PNG decoder, as - currently it can output only to RGB formats, thus can't be used with codecs - that require YUV as input, like DivX4 or ffmpeg's msmpeg4.
- -Examples
- -The explanation of the -mf
option can be found below in the
- global Options section and in the manpage.
Creating a DivX4 file from all the JPEG files in the current dir :
- mencoder \*.jpg -mf on:w=800:h=600:fps=25 -ovc divx4 -o
- output.avi
Creating a DivX4 file from some JPEG files in the current dir :
- mencoder frame001.jpg,frame002.jpg -mf on:w=800:h=600:fps=25 -ovc divx4 -o
- output.avi
Creating a Motion JPEG (MJPEG) file from all the JPEG files in the current dir :
- mencoder \*.jpg -mf on:w=800:h=600:fps=25 -ovc copy
- -o output.avi
Creating an uncompressed file from all the PNG files in the current dir :
- mencoder \*.png -mf on:w=800:h=600:fps=25:type=png -ovc raw -o
- output.avi
Creating a Motion PNG (MPNG) file from all the PNG files in the current dir :
- mencoder \*.png -mf on:w=800:h=600:fps=25:type=png -ovc copy
- -o output.avi
mencoder [options] [input file] [options] ...
NOTE : for all available options, read the manpage !
- -
- As MEncoder is built on the same codebase as MPlayer, there
- are many MPlayer options that have function in MEncoder too!
- See, you can use -sid
to rip a DVD with subtitles, or
- -noidx
to disregard buggy index of input AVI. Be smart!
-
- -ss time | -- start encoding from the given time (can start only from keyframes !) - | -
- -endpos time | -- stop encoding at the given time. See the manpage for examples ! - | -
- -o filename | -- specify output filename - | -
- -sws 0-2 | -
- type of scaling method - 0 - fast bilinear - 1 - bilinear - 2 - bicubic (best quality) - |
-
- -ovc codecname | -
- Encode with the given codec (codec names are from codecs.conf). Examples: - help - get list of available codecs - rawrgb - ? - copy - no encoding, just copy the stream (only from AVI/ASF now) - divx4 - encode to DivX4 - lavc - encode with a codec from libavcodec - vfw - encode with a Windows DLL - |
-
- -oac codecname | -
- Encode with the given codec (codec names are from codecs.conf). Examples: - help - get list of available codecs - copy - no encoding, just copy the stream (only from AVI/ASF now) - pcm - encode to uncompressed PCM - mp3lame - encode to MP3 (using Lame) - |
-
- -mf multifile options | -
- Used when encoding from multiple JPEG files. Its sub-options are: - on - turns on multifile support - w=<value> - width of the output file - h=<value> - height of the output file - fps=<value> - fps of the output file - type=<value> - type of input files (available types : jpeg , png )- |
-
- -divx4opts | -
- If encoding to DivX4, you can specify its parameters here, like: - -divx4opts br=1800:deinterlace:key=250 - Common options: (for full list, check the manpage!) - help - get help - br=<value> - specify bitrate in kbit <4-16000> or bit <16001-24000000> - q=<value> - quality (1-fastest, 5-best - default 5) - key=<value> - keyframe interval - |
-
- -lavcopts | -
- If encoding with libavcodec, you can specify its parameters here, like: - -lavcopts vcodec=msmpeg4:vbitrate=1800:vhq:keyint=250 - Common options: (for full list, check the manpage!) - help - get help - vcodec=<value> - select videocodec (for the full list, see the libavcodec section above) - vbitrate=<value> - specify bitrate in kbit <4-16000> or bit <16001-24000000> - vhq - high quality - keyint=<value> - keyframe interval - |
-
- -lameopts | -
- If encoding to MP3 with libmp3lame, you can specify its parameters here, like: - -lameopts q=3 - -lameopts br=192:cbr - Common options: (for full list, check the manpage!) - help - get help - cbr - select CBR MP3 (default is VBR) - br=<value> - specify bitrate in kbit <0-1024> (this is for CBR only!) - q=<value> - quality (0-highest, 9-fastest - default 0) (this is for VBR only!) - vbr=<value> - VBR sub-mode (3-ABR, best quality/speed) (this is for VBR only!) - |
-
Using MEncoder is the easiest thing on Earth. See the following :
- -Encoding from DVD, title 2 :
- mencoder -dvd 2 -o title2.avi
The same, but with libavcodec family, MJPEG compression :
- mencoder -dvd 2 -o title2.avi -ovc lavc -lavcopts vcodec=mjpeg -ffourcc mjpg
Encoding from DVD, title 2, with rescaling :
- mencoder -dvd 2 -vop scale=640:480 -sws 2 -o title2.avi
Encoding from HTTP :
- mencoder http://mplayer.hq/example.avi -o example.avi
Encoding from a pipe :
- rar p test-SVCD.rar | mencoder -divx4opts br=800 -ofps 24 -pass 1 -- -
Encoding multiple *.vob files :
- cat *.vob | mencoder <options> -
Encoding from tuner (for tuner options see the TV input section !) :
- mencoder -tv on:driver=v4l:width=640:height=480 <options>
For all available options, check the MEncoder man page ! -
- - - -- cgit v1.2.3