2002-06-14 01:44:30 +00:00
|
|
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
2001-11-04 11:20:11 +00:00
|
|
|
<HTML>
|
2002-03-07 17:55:34 +00:00
|
|
|
|
|
|
|
<HEAD>
|
2002-08-04 00:07:55 +00:00
|
|
|
<TITLE>Encoding - MEncoder - The Movie Encoder for Linux</TITLE>
|
2002-06-12 09:14:08 +00:00
|
|
|
<LINK REL="stylesheet" TYPE="text/css" HREF="default.css">
|
2002-06-14 01:44:30 +00:00
|
|
|
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
|
2002-03-07 17:55:34 +00:00
|
|
|
</HEAD>
|
|
|
|
|
2002-06-14 01:44:30 +00:00
|
|
|
<BODY>
|
2001-11-04 11:20:11 +00:00
|
|
|
|
|
|
|
|
2002-08-04 22:13:09 +00:00
|
|
|
<P><B><A NAME="encoding">2.4 Encoding with MEncoder</A></B></P>
|
2001-11-04 11:20:11 +00:00
|
|
|
|
2002-08-11 18:27:38 +00:00
|
|
|
|
2002-08-04 22:13:09 +00:00
|
|
|
<P><B><A NAME="overview">2.4.1 Overview</A></B></P>
|
2001-12-24 23:00:07 +00:00
|
|
|
|
2001-11-04 11:20:11 +00:00
|
|
|
<P><B>MEncoder</B> (<B>MPlayer</B>'s Movie Encoder) is a simple movie encoder,
|
2002-08-10 20:26:43 +00:00
|
|
|
designed to encode MPlayer-playable movies
|
|
|
|
(<B>AVI/ASF/OGG/DVD/VCD/VOB/MPG/MOV/VIV/FLI/RM/NUV/NET</B>) to other
|
|
|
|
MPlayer-playable formats (see below). It can encode with various codecs, like
|
|
|
|
<B>DivX4</B> (1 or 2 passes), libavcodec,
|
|
|
|
<B>PCM</B>/<B>MP3</B>/<B>VBR MP3</B> audio. Also has powerful plugin system
|
|
|
|
for video manipulation.</P>
|
2001-11-04 11:20:11 +00:00
|
|
|
|
2002-08-11 18:27:38 +00:00
|
|
|
|
2002-08-04 22:13:09 +00:00
|
|
|
<P><B><A NAME="compilation">2.4.2 Compilation</A></B></P>
|
2001-12-24 23:00:07 +00:00
|
|
|
|
2002-06-14 01:44:30 +00:00
|
|
|
<UL>
|
|
|
|
<LI><B>OPTIONAL</B> - read <B>MPlayer</B>'s compilation instruction.</LI>
|
|
|
|
<LI><B>OPTIONAL (LINUX ONLY)</B> - download the newest <B>DivX4linux</B> libs
|
|
|
|
from <A HREF="http://avifile.sourceforge.net/download.htm">avifile.sourceforge.net</A>,
|
|
|
|
and have them PROPERLY installed. You need them if you want DivX4
|
|
|
|
(1/2 pass) encoding.</LI>
|
2002-08-04 22:13:09 +00:00
|
|
|
<LI><B>OPTIONAL</B> - <A HREF="codecs.html#xvid">download and install
|
2002-06-28 06:07:46 +00:00
|
|
|
<B>XViD</B></A>. Not very useful, libavcodec's <I>mpeg4</I> codec
|
|
|
|
can encode with much better speed AND quality than XViD or DivX4/5.</LI>
|
2002-06-14 01:44:30 +00:00
|
|
|
<LI><B>OPTIONAL</B> - for libavcodec support, install libavcodec as
|
2002-08-04 22:13:09 +00:00
|
|
|
described in the <A HREF="codecs.html#libavcodec">libavcodec section</A>.</LI>
|
2002-06-14 01:44:30 +00:00
|
|
|
<LI><B>OPTIONAL</B> - download and compile <B>libmp3lame</B> (from lame 3.89beta or lame CVS).<BR>
|
2002-06-27 16:43:05 +00:00
|
|
|
<B>WARNING: DO NOT COMPILE LAME < 3.90 WITH <U>GCC 2.96</U>! It won't
|
2002-06-14 01:44:30 +00:00
|
|
|
work properly!</B><BR>
|
|
|
|
This
|
|
|
|
is needed for CBR/VBR MP3 audio encoding ability. Note that a single
|
|
|
|
<CODE>lame</CODE> binary isn't sufficient. BTW: the less optimization
|
|
|
|
you use for lame, the better the quality will be. You can test
|
|
|
|
quality by running <CODE>make test</CODE> after lame's compiling process
|
|
|
|
is over. The resulting number should be less than <B>30</B>. Don't
|
|
|
|
panic if it's <B>400</B> or so, you shouldn't heard any audible
|
|
|
|
quality decrease. Oh, and if your compiler doesn't even run <CODE>make test</CODE> ...
|
2002-06-27 16:43:05 +00:00
|
|
|
Well, delete that <B>GCC 2.96</B> or upgrade lame to at least <B>3.90</B>.</LI>
|
2002-06-14 01:44:30 +00:00
|
|
|
<LI><B>OPTIONAL</B> - <CODE>libjpeg</CODE> and <CODE>libpng</CODE> -
|
2002-08-04 22:13:09 +00:00
|
|
|
as described in the <A HREF="documentation.html#installation">Installation</A>
|
2002-06-14 01:44:30 +00:00
|
|
|
section</LI>
|
|
|
|
</UL>
|
2001-11-04 11:20:11 +00:00
|
|
|
|
|
|
|
<P>You are ready. As you probably know, other encoding tools need the
|
2002-08-10 20:26:43 +00:00
|
|
|
<I>avifile</I> library installed. <B>MEncoder</B> doesn't need it at all.</P>
|
2001-11-04 11:20:11 +00:00
|
|
|
|
2002-08-11 18:27:38 +00:00
|
|
|
|
2002-08-04 22:13:09 +00:00
|
|
|
<P><B><A NAME="features">2.4.3 MEncoder features</A></B></P>
|
2001-12-24 23:00:07 +00:00
|
|
|
|
2002-06-14 01:44:30 +00:00
|
|
|
<UL>
|
|
|
|
<LI>encoding from the wide range of fileformats and decoders of <B>MPlayer</B></LI>
|
|
|
|
<LI>encoding to all the codecs of ffmpeg's
|
2002-08-04 22:13:09 +00:00
|
|
|
<A HREF="codecs.html#libavcodec">libavcodec</A></LI>
|
2002-06-14 01:44:30 +00:00
|
|
|
<LI>video encoding from <B>V4L compatible TV tuners</B></LI>
|
|
|
|
<LI>encoding/multiplexing to interleaved AVI files with proper index</LI>
|
|
|
|
<LI>creating files from external audio stream</LI>
|
|
|
|
<LI>1, 2 or 3 pass <B>DivX4</B> video</LI>
|
|
|
|
<LI><B>VBR</B> MP3 audio - <B>IMPORTANT NOTE:</B> VBR MP3 audio doesn't
|
|
|
|
always play nicely on windows players! On the other hand, currently
|
|
|
|
<B>MEncoder</B>'s CBR encoding is totally broken on win32 players :)</LI>
|
|
|
|
<LI>PCM audio</LI>
|
|
|
|
<LI>stream copying</LI>
|
|
|
|
<LI>input A/V synchronizing (PTS-based, can be disabled with -mc 0 option)</LI>
|
|
|
|
<LI>FPS correction with <CODE>-ofps</CODE> option (useful when encoding
|
2002-08-10 20:26:43 +00:00
|
|
|
29.97fps VOB to 24fps AVI)</LI>
|
2002-06-14 01:44:30 +00:00
|
|
|
<LI>using our very powerful plugin system (crop, expand, flip, postprocess,
|
|
|
|
rotate, scale, rgb/yuv conversion)</LI>
|
|
|
|
<LI>can encode DVD/VOBsub <B>AND</B> text subtitles into the output file</LI>
|
2002-07-11 21:47:16 +00:00
|
|
|
<LI>can rip DVD subtitles to Vobsub format</LI>
|
2002-06-14 01:44:30 +00:00
|
|
|
</UL>
|
2001-11-04 11:20:11 +00:00
|
|
|
|
2002-06-14 01:44:30 +00:00
|
|
|
<B>Planned features:</B>
|
|
|
|
<UL>
|
|
|
|
<LI>even wider variety of available en/decoding formats/codecs
|
2002-08-10 20:26:43 +00:00
|
|
|
(creating VOB files with DivX4/Indeo5/VIVO streams :)</LI>
|
2002-06-14 01:44:30 +00:00
|
|
|
<LI>audio encoding from v4l (DONE for FreeBSD ?)</LI>
|
|
|
|
</UL>
|
2001-11-04 11:20:11 +00:00
|
|
|
|
2002-08-11 18:27:38 +00:00
|
|
|
|
2002-08-04 22:13:09 +00:00
|
|
|
<P><B><A NAME="2pass">2.4.3.1 Encoding 2 or 3-pass DivX4</A></B></P>
|
2001-11-11 22:30:31 +00:00
|
|
|
|
2002-08-10 20:26:43 +00:00
|
|
|
<P><U><B>2-pass encoding:</B></U> the name comes from the fact that this method
|
|
|
|
encodes the file <I>twice</I>. The first encoding (dubbed <I>pass</I>)
|
|
|
|
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.</P>
|
2001-11-11 22:30:31 +00:00
|
|
|
|
|
|
|
<P>This example shows how to encode a DVD to a 2-pass DivX4 AVI. Just two
|
2002-08-10 20:26:43 +00:00
|
|
|
commands are needed:<BR>
|
|
|
|
<CODE> rm frameno.avi</CODE> - remove this file, which
|
|
|
|
can come from a previous 3-pass encoding (it interferes with current
|
|
|
|
one)<BR>
|
|
|
|
<CODE> mencoder -dvd 2 -lavcopts
|
|
|
|
-vcodec=mpeg4:more_options -o movie.avi -pass 1<BR>
|
|
|
|
mencoder -dvd 2 -lavcopts vcodec=mpeg4:more_options
|
|
|
|
-o movie.avi -pass 2</CODE></P>
|
2002-01-28 14:01:29 +00:00
|
|
|
|
2002-06-14 01:44:30 +00:00
|
|
|
<P><U><B>3-pass encoding:</B></U> this is an extension of 2-pass encoding,
|
2002-01-28 14:01:29 +00:00
|
|
|
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
|
2002-06-14 01:44:30 +00:00
|
|
|
audio is encoded only once, unlike in 2-pass mode. The schematics:</P>
|
2002-01-28 14:01:29 +00:00
|
|
|
|
2002-06-14 01:44:30 +00:00
|
|
|
<TABLE>
|
2002-08-11 18:27:38 +00:00
|
|
|
<TR>
|
|
|
|
<TD><CODE>rm frameno.avi</CODE></TD>
|
|
|
|
<TD><B>remove conflicting temporary file</B></TD>
|
|
|
|
</TR>
|
|
|
|
<TR>
|
|
|
|
<TD><CODE>mencoder <file/DVD> -ovc frameno -o
|
2002-06-14 01:44:30 +00:00
|
|
|
frameno.avi</CODE></TD>
|
2002-08-11 18:27:38 +00:00
|
|
|
<TD><B><U>First pass:</U> an audio-only avi file will be created, containing
|
|
|
|
ONLY the requested audio stream. Don't forget <CODE>-lameopts</CODE>, 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.</B></TD>
|
|
|
|
</TR>
|
|
|
|
<TR>
|
|
|
|
<TD><CODE>mencoder <file/DVD> -oac copy -pass 1
|
2002-06-14 01:44:30 +00:00
|
|
|
-ovc divx4 -divx4opts br=<bitrate></CODE></TD>
|
2002-08-11 18:27:38 +00:00
|
|
|
<TD><B><U>Second pass:</U> alias the first pass of DivX4 video encoding.
|
|
|
|
Optionally specify the video bitrate MEncoder printed at the end of the
|
|
|
|
previous pass.</B></TD>
|
|
|
|
</TR>
|
|
|
|
<TR>
|
|
|
|
<TD><CODE>mencoder <file/DVD> -oac copy -pass 2
|
2002-06-14 01:44:30 +00:00
|
|
|
-ovc divx4 -divx4opts br=<bitrate></CODE></TD>
|
2002-08-11 18:27:38 +00:00
|
|
|
<TD><B><U>Third pass:</U> 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 <CODE>frameno.avi</CODE> will be
|
|
|
|
inserted into the destination file.. and it's all ready!</B></TD>
|
|
|
|
</TR>
|
2002-06-14 01:44:30 +00:00
|
|
|
</TABLE>
|
2002-01-28 14:01:29 +00:00
|
|
|
|
2002-06-14 01:44:30 +00:00
|
|
|
<P><B>Example for 3-pass encoding:</B></P>
|
2002-01-28 14:01:29 +00:00
|
|
|
|
|
|
|
<P><CODE> rm frameno.avi</CODE> - remove this file,
|
|
|
|
which can come from a previous 3-pass encoding (it interferes with current
|
|
|
|
one)<BR>
|
2002-08-10 20:26:43 +00:00
|
|
|
<CODE> mencoder -dvd 2 -ovc frameno
|
|
|
|
-o frameno.avi<BR>
|
|
|
|
mencoder -dvd 2
|
|
|
|
-lavcopts vcodec=mpeg4:more_options -oac copy -o movie.avi -pass 1<BR>
|
|
|
|
mencoder -dvd 2
|
2002-08-11 18:27:38 +00:00
|
|
|
-lavcopts vcodec=mpeg4:more_options -oac copy -o movie.avi -pass 2</CODE></P>
|
2002-01-28 14:01:29 +00:00
|
|
|
|
2002-06-14 01:44:30 +00:00
|
|
|
<P><U><B>2 or 3-pass encoding using internal libavcodec controller:</B></U>
|
2002-08-10 20:26:43 +00:00
|
|
|
Optionally you can use libavcodec's internal 2 or 3-pass mode, it may give
|
|
|
|
you better final rate accuracy than using the external, DivX4-inspired 2-pass
|
|
|
|
rate controler with libavcodec.</P>
|
2002-06-14 01:44:30 +00:00
|
|
|
|
2002-04-24 16:47:37 +00:00
|
|
|
<UL>
|
2002-08-10 20:26:43 +00:00
|
|
|
<LI><B>2-pass encoding:</B><BR>
|
|
|
|
<CODE>rm -f lavc_stats.txt<BR>
|
|
|
|
mencoder -dvd 2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 (audio-options) -o
|
|
|
|
movie.avi<BR>
|
|
|
|
mencoder -dvd 2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=2 (audio-options) -o
|
|
|
|
movie.avi</CODE></LI>
|
|
|
|
<LI><B>3-pass encoding:</B><BR>
|
|
|
|
<CODE>rm -f frameno.avi lavc_stats.txt<BR>
|
|
|
|
mencoder -dvd 2 -ovc frameno (audio-options) -o frameno.avi<BR>
|
|
|
|
mencoder -dvd 2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 -oac copy -o
|
|
|
|
movie.avi<BR>
|
|
|
|
mencoder -dvd 2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=2 -oac copy -o
|
|
|
|
movie.avi</CODE></LI>
|
2002-04-24 16:47:37 +00:00
|
|
|
</UL>
|
2001-11-13 17:11:26 +00:00
|
|
|
|
2002-08-11 18:27:38 +00:00
|
|
|
|
2002-08-04 22:13:09 +00:00
|
|
|
<P><B><A NAME="rescaling">2.4.3.2 Rescaling movies</A></B></P>
|
2001-11-13 17:11:26 +00:00
|
|
|
|
2001-12-10 17:37:18 +00:00
|
|
|
<P>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.</P>
|
2001-11-13 17:11:26 +00:00
|
|
|
|
2002-05-04 16:29:11 +00:00
|
|
|
<P>The scaling process is handled by the <I>'scale'</I> video filter:
|
|
|
|
<CODE>-vop scale=X:Y</CODE>. Its quality can be set with the
|
2002-06-14 01:44:30 +00:00
|
|
|
<CODE>-sws</CODE> option. If it's not specified, <B>MEncoder</B> will use 0:
|
2002-05-04 16:29:11 +00:00
|
|
|
fast bilinear.</P>
|
2001-12-10 17:37:18 +00:00
|
|
|
|
2002-06-14 01:44:30 +00:00
|
|
|
<P>Usage:<BR>
|
2002-08-10 20:26:43 +00:00
|
|
|
<CODE> mencoder sample-svcd.mpg -lavcopts
|
|
|
|
vcodec=mpeg4:more_options -vop scale=640:480 -sws 2 -o
|
|
|
|
output.avi</CODE></P>
|
2001-12-10 17:37:18 +00:00
|
|
|
|
2002-02-12 22:34:35 +00:00
|
|
|
|
2002-08-04 22:13:09 +00:00
|
|
|
<P><B><A NAME="copying">2.4.3.3 Stream copying</A></B></P>
|
2001-12-10 17:37:18 +00:00
|
|
|
|
2002-06-14 01:44:30 +00:00
|
|
|
<P><B>MEncoder</B> can handle input streams in two ways: <B>encode</B> or
|
2001-12-10 17:37:18 +00:00
|
|
|
<B>copy</B> them. This section is about <B>copying</B>.</P>
|
|
|
|
|
|
|
|
<UL>
|
2002-08-10 20:26:43 +00:00
|
|
|
<LI><B>Video stream</B> (option <CODE>-ovc copy</CODE>): nice stuff can be
|
|
|
|
done :)<BR>
|
|
|
|
Like, putting (not converting!) FLI or VIVO or MPEG1 video into
|
|
|
|
an AVI file! Of course only <B>MPlayer</B> can play such files :) And it
|
|
|
|
probably has no real life value at all. Rationally: video stream copying
|
|
|
|
can be useful for example when only the audio stream has to be encoded
|
|
|
|
(like, uncompressed PCM to MP3).</LI>
|
2001-12-10 17:37:18 +00:00
|
|
|
|
2002-06-14 01:44:30 +00:00
|
|
|
<LI><B>Audio stream</B> (option <CODE>-oac copy</CODE>): straightforward.
|
2002-08-10 20:26:43 +00:00
|
|
|
It is possible to take an external audio file (MP3, Vorbis) and mux it
|
|
|
|
into the output stream. Use the <CODE>-audiofile <filename></CODE>
|
|
|
|
option for this.</LI>
|
2001-12-10 17:37:18 +00:00
|
|
|
</UL>
|
|
|
|
|
2002-02-12 22:34:35 +00:00
|
|
|
|
2002-08-04 22:13:09 +00:00
|
|
|
<P><B><A NAME="fixing">2.4.3.4 Fixing AVIs with broken index or interleaving</A></B></P>
|
2001-12-18 17:07:21 +00:00
|
|
|
|
|
|
|
<P>Easiest thing. We simply copy the video and audio streams, and
|
2002-08-10 20:26:43 +00:00
|
|
|
<B>MEncoder</B> 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 <CODE>-ni</CODE> option won't be needed for them
|
|
|
|
anymore.</P>
|
2001-12-18 17:07:21 +00:00
|
|
|
|
2002-06-14 01:44:30 +00:00
|
|
|
<P>Command: <CODE>mencoder -idx input.avi -ovc copy -oac copy -o output.avi</CODE></P>
|
2001-12-18 17:07:21 +00:00
|
|
|
|
2001-12-24 23:00:07 +00:00
|
|
|
|
2002-08-04 22:13:09 +00:00
|
|
|
<P><B><A NAME="libavcodec">2.4.3.5 Encoding with the libavcodec codec family</A></B></P>
|
2001-12-24 23:00:07 +00:00
|
|
|
|
2002-08-04 22:13:09 +00:00
|
|
|
<P><A HREF="codecs.html#libavcodec">libavcodec</A> provides simple encoding to a
|
2002-08-10 20:26:43 +00:00
|
|
|
lot of interesting video and audio formats (currently its audio codecs are
|
|
|
|
unsupported). You can encode to the following codecs:</P>
|
2001-12-24 23:00:07 +00:00
|
|
|
|
|
|
|
<UL>
|
|
|
|
<LI>mjpeg - Motion JPEG</LI>
|
2001-12-26 21:45:23 +00:00
|
|
|
<LI>h263 - H263</LI>
|
2001-12-24 23:00:07 +00:00
|
|
|
<LI>h263p - H263 Plus</LI>
|
|
|
|
<LI>mpeg4 - DivX4</LI>
|
|
|
|
<LI>msmpeg4 - the old DivX</LI>
|
2002-05-04 18:25:48 +00:00
|
|
|
<LI>msmpeg4v2 - Micro$oft MPEG4 V2 (DivX alias MP43 predecessor)</LI>
|
2001-12-24 23:00:07 +00:00
|
|
|
<LI>rv10 - an old RealVideo codec</LI>
|
|
|
|
<LI>mpeg1video - MPEG1 video :)</LI>
|
|
|
|
</UL>
|
|
|
|
|
|
|
|
<P>The first column contains the codec names that should be passed after the
|
2002-06-14 01:44:30 +00:00
|
|
|
<CODE>vcodec</CODE> config, like: <CODE>-lavcopts vcodec=msmpeg4</CODE></P>
|
2001-12-24 23:00:07 +00:00
|
|
|
|
2002-06-14 01:44:30 +00:00
|
|
|
<P>An example, with MJPEG compression:<BR>
|
2002-08-10 20:26:43 +00:00
|
|
|
<CODE> mencoder -dvd 2 -o title2.avi -ovc lavc
|
|
|
|
-lavcopts vcodec=mjpeg</CODE></P>
|
2001-12-31 01:12:55 +00:00
|
|
|
|
2002-02-12 22:34:35 +00:00
|
|
|
|
2002-08-04 22:13:09 +00:00
|
|
|
<P><B><A NAME="image_files">2.4.3.6 Encoding from multiple input image files (JPEGs or PNGs)</A></B></P>
|
2002-03-03 10:54:03 +00:00
|
|
|
|
|
|
|
<P><B>MEncoder</B> 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.</P>
|
|
|
|
|
2002-06-14 01:44:30 +00:00
|
|
|
<P><B>Explanation of the process</B></P>
|
2002-03-03 10:54:03 +00:00
|
|
|
|
2002-03-13 15:33:55 +00:00
|
|
|
<P><B>MEncoder</B> <I>decodes</I> the input image(s) with <CODE>libjpeg</CODE>
|
2002-08-11 18:27:38 +00:00
|
|
|
(when decoding PNGs, it will use <B>libpng</B>).</P>
|
2002-03-03 10:54:03 +00:00
|
|
|
|
|
|
|
<P><B>MEncoder</B> 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.</P>
|
|
|
|
|
2002-06-14 01:44:30 +00:00
|
|
|
<P><B>Examples</B></P>
|
2002-03-03 10:54:03 +00:00
|
|
|
|
|
|
|
<P>The explanation of the <CODE>-mf</CODE> option can be found below in the
|
2002-08-04 22:13:09 +00:00
|
|
|
global <A HREF="#options">Options</A> section and in the man page.</P>
|
2002-03-03 10:54:03 +00:00
|
|
|
|
2002-06-14 01:44:30 +00:00
|
|
|
<P><I>Creating a DivX4 file from all the JPEG files in the current dir:</I><BR>
|
2002-05-21 19:05:49 +00:00
|
|
|
<CODE>mencoder \*.jpg -mf on:w=800:h=600:fps=25 -ovc divx4 -o
|
2002-03-03 10:54:03 +00:00
|
|
|
output.avi</CODE></P>
|
|
|
|
|
2002-06-14 01:44:30 +00:00
|
|
|
<P><I>Creating a DivX4 file from some JPEG files in the current dir:</I><BR>
|
2002-03-28 17:30:46 +00:00
|
|
|
<CODE>mencoder frame001.jpg,frame002.jpg -mf on:w=800:h=600:fps=25 -ovc divx4 -o
|
|
|
|
output.avi</CODE></P>
|
|
|
|
|
2002-06-14 01:44:30 +00:00
|
|
|
<P><I>Creating a Motion JPEG (MJPEG) file from all the JPEG files in the current dir:</I><BR>
|
2002-03-03 10:54:03 +00:00
|
|
|
<CODE>mencoder \*.jpg -mf on:w=800:h=600:fps=25 -ovc copy
|
|
|
|
-o output.avi</CODE></P>
|
|
|
|
|
2002-06-14 01:44:30 +00:00
|
|
|
<P><I>Creating an uncompressed file from all the PNG files in the current dir:</I><BR>
|
2002-03-03 10:54:03 +00:00
|
|
|
<CODE>mencoder \*.png -mf on:w=800:h=600:fps=25:type=png -ovc raw -o
|
|
|
|
output.avi</CODE></P>
|
|
|
|
|
2002-06-14 01:44:30 +00:00
|
|
|
<P><I>Creating a Motion PNG (MPNG) file from all the PNG files in the current dir:</I><BR>
|
2002-03-03 10:54:03 +00:00
|
|
|
<CODE>mencoder \*.png -mf on:w=800:h=600:fps=25:type=png -ovc copy
|
|
|
|
-o output.avi</CODE></P>
|
|
|
|
|
|
|
|
|
2002-08-04 22:13:09 +00:00
|
|
|
<P><B><A NAME="vobsub">2.4.3.7 Extracting DVD subtitles to Vobsub file</A></B></P>
|
2002-07-11 21:47:16 +00:00
|
|
|
|
2002-07-13 14:23:36 +00:00
|
|
|
<P><B>MEncoder</B> is capable of extracting subtitles from a DVD into
|
2002-08-10 20:26:43 +00:00
|
|
|
Vobsub fomat files. They consist of a pair of files ending in
|
|
|
|
<CODE>.idx</CODE> and <CODE>.sub</CODE> and are usually packaged in a single
|
|
|
|
<CODE>.rar</CODE> archive. <B>MPlayer</B> can play these with the
|
|
|
|
<CODE>-vobsub</CODE> and <CODE>-vobsubid</CODE> options.</P>
|
2002-07-11 21:47:16 +00:00
|
|
|
|
2002-07-13 14:23:36 +00:00
|
|
|
<P>You specify the basename (i.e without the <CODE>.idx</CODE> or
|
2002-08-10 20:26:43 +00:00
|
|
|
<CODE>.sub</CODE> extension) of the output files with <CODE>-vobsubout</CODE>
|
|
|
|
and the index for this subtitle in the resulting files with
|
|
|
|
<CODE>-vobsuboutindex</CODE>.</P>
|
2002-07-11 21:47:16 +00:00
|
|
|
|
2002-07-13 14:23:36 +00:00
|
|
|
<P>If the input is not from a DVD you should use <CODE>-ifo</CODE> to
|
2002-08-10 20:26:43 +00:00
|
|
|
indicate the <CODE>.ifo</CODE> file needed to construct the resulting
|
|
|
|
<CODE>.idx</CODE> file.</P>
|
2002-07-11 21:47:16 +00:00
|
|
|
|
2002-08-10 20:26:43 +00:00
|
|
|
<P>If the input is not from a DVD and you do not have the <CODE>.ifo</CODE>
|
|
|
|
file you will need to use the <CODE>-vobsubid</CODE> option to let it know
|
|
|
|
what language id to put in the <CODE>.idx</CODE> file.</P>
|
2002-07-11 21:47:16 +00:00
|
|
|
|
2002-07-13 14:23:36 +00:00
|
|
|
<P>Each run will append the running subtitle if the <CODE>.idx</CODE> and
|
2002-08-10 20:26:43 +00:00
|
|
|
<CODE>.sub</CODE> files already exist. So you should remove any before
|
|
|
|
starting.</P>
|
2002-07-11 21:47:16 +00:00
|
|
|
|
2002-07-13 14:23:36 +00:00
|
|
|
<P><B>Examples</B></P>
|
2002-07-11 21:47:16 +00:00
|
|
|
|
|
|
|
<P><I>Copying two subtitles from a DVD while doing 3-pass encoding</I><BR>
|
2002-08-10 20:26:43 +00:00
|
|
|
<CODE>rm subtitles.idx subtitles.sub</CODE><BR>
|
|
|
|
<CODE>mencoder -dvd 1 -vobsubout subtitles -vobsuboutindex 0
|
|
|
|
-sid 2 -o frameno.avi -ovc frameno</CODE><BR>
|
|
|
|
<CODE>mencoder -dvd 1 -oac copy -ovc divx4 -pass 1</CODE><BR>
|
|
|
|
<CODE>mencoder -dvd 1 -oac copy -ovc divx4 -pass 2 -vobsubout
|
|
|
|
subtitles -vobsuboutindex 1 -sid 5</CODE></P>
|
2002-07-11 21:47:16 +00:00
|
|
|
|
|
|
|
<P><I>Copying a french subtitle from an MPEG file</I><BR>
|
2002-08-10 20:26:43 +00:00
|
|
|
<CODE>rm subtitles.idx subtitles.sub</CODE><BR>
|
|
|
|
<CODE>mencoder movie.mpg -ifo movie.ifo -vobsubout subtitles
|
|
|
|
-vobsuboutindex 0 -vobsuboutid fr -sid 1</CODE></P>
|
2002-07-11 21:47:16 +00:00
|
|
|
|
2002-07-13 14:23:36 +00:00
|
|
|
|
2002-08-04 22:13:09 +00:00
|
|
|
<P><B><A NAME="syntax">2.4.4 Syntax</A></B></P>
|
2002-07-13 14:23:36 +00:00
|
|
|
|
|
|
|
<P> <CODE>mencoder [options] [input file] [options] ...</CODE></P>
|
|
|
|
|
|
|
|
|
2002-08-04 22:13:09 +00:00
|
|
|
<P><B><A NAME="options">2.4.5 Available options</A></B></P>
|
2001-11-13 17:11:26 +00:00
|
|
|
|
2002-06-14 01:44:30 +00:00
|
|
|
<P>NOTE: for all available options, <B>read the man page!</B></P>
|
2001-11-13 17:11:26 +00:00
|
|
|
|
2002-08-11 18:27:38 +00:00
|
|
|
<P>As <B>MEncoder</B> is built on the same codebase as <B>MPlayer</B>, there
|
2002-02-12 22:34:35 +00:00
|
|
|
are many <B>MPlayer</B> options that have function in <B>MEncoder</B> too!
|
|
|
|
See, you can use <CODE>-sid</CODE> to rip a DVD with subtitles, or
|
2002-08-11 18:27:38 +00:00
|
|
|
<CODE>-noidx</CODE> to disregard buggy index of input AVI. <B>Be smart!</B></P>
|
2002-02-12 22:34:35 +00:00
|
|
|
|
2002-01-15 17:04:01 +00:00
|
|
|
<TABLE BORDER=1>
|
2002-08-11 18:27:38 +00:00
|
|
|
<TR>
|
|
|
|
<TD><CODE>-ss</CODE> time</TD>
|
|
|
|
<TD>start encoding from the given time (can start only from keyframes!)
|
|
|
|
</TD>
|
|
|
|
</TR>
|
|
|
|
<TR>
|
|
|
|
<TD><CODE>-endpos</CODE> time</TD>
|
|
|
|
<TD>stop encoding at the given time. See the man page for examples!
|
|
|
|
</TD>
|
|
|
|
</TR>
|
|
|
|
<TR>
|
|
|
|
<TD><CODE>-o</CODE> filename</TD>
|
|
|
|
<TD>specify output filename
|
|
|
|
</TD>
|
|
|
|
</TR>
|
|
|
|
<TR>
|
|
|
|
<TD><CODE>-sws</CODE> 0-2</TD>
|
|
|
|
<TD>type of scaling method<BR>
|
|
|
|
0 - fast bilinear<BR>
|
|
|
|
1 - bilinear<BR>
|
|
|
|
2 - bicubic (best quality)<BR>
|
|
|
|
</TD>
|
|
|
|
</TR>
|
|
|
|
<TR>
|
|
|
|
<TD><CODE>-ovc</CODE> codecname</TD>
|
|
|
|
<TD>Encode with the given codec (codec names are from codecs.conf). Examples:<BR>
|
|
|
|
<B>help</B> - get list of available codecs<BR>
|
|
|
|
<B>rawrgb</B> - ?<BR>
|
|
|
|
<B>copy</B> - no encoding, just copy the stream (only from AVI/ASF now)<BR>
|
|
|
|
<B>divx4</B> - encode to DivX4<BR>
|
|
|
|
<B>lavc</B> - encode with a codec from libavcodec<BR>
|
|
|
|
<B>vfw</B> - encode with a Windows DLL<BR>
|
|
|
|
</TD>
|
|
|
|
</TR>
|
|
|
|
<TR>
|
|
|
|
<TD><CODE>-oac</CODE> codecname</TD>
|
|
|
|
<TD>Encode with the given codec (codec names are from codecs.conf). Examples:<BR>
|
|
|
|
<B>help</B> - get list of available codecs<BR>
|
|
|
|
<B>copy</B> - no encoding, just copy the stream (only from AVI/ASF now)<BR>
|
|
|
|
<B>pcm</B> - encode to uncompressed PCM<BR>
|
|
|
|
<B>mp3lame</B> - encode to MP3 (using Lame)<BR>
|
|
|
|
</TD>
|
|
|
|
</TR>
|
|
|
|
<TR>
|
|
|
|
<TD><CODE>-mf</CODE> multifile options</TD>
|
|
|
|
<TD>Used when encoding from multiple JPEG files. Its sub-options are:<BR>
|
|
|
|
<B>on</B> - turns on multifile support<BR>
|
|
|
|
<B>w</B>=<value> - width of the output file<BR>
|
|
|
|
<B>h</B>=<value> - height of the output file<BR>
|
|
|
|
<B>fps</B>=<value> - fps of the output file<BR>
|
|
|
|
<B>type</B>=<value> - type of input files (available types:
|
|
|
|
<CODE>jpeg</CODE>, <CODE>png</CODE>)<BR>
|
|
|
|
</TD>
|
|
|
|
</TR>
|
|
|
|
|
|
|
|
<TR>
|
|
|
|
<TD><CODE>-divx4opts</CODE></TD>
|
|
|
|
<TD>If encoding to DivX4, you can specify its parameters here, like:<BR>
|
|
|
|
<CODE>-divx4opts br=1800:deinterlace:key=250</CODE><BR>
|
|
|
|
Common options: <B>(for full list, check the man page!)</B><BR>
|
|
|
|
<B>help</B> - get help<BR>
|
|
|
|
<B>br</B>=<value> - specify bitrate in kbit <4-16000>
|
|
|
|
or bit <16001-24000000><BR>
|
|
|
|
<B>q</B>=<value> - quality (1-fastest, 5-best - default 5)<BR>
|
|
|
|
<B>key</B>=<value> - keyframe interval<BR>
|
|
|
|
</TD>
|
|
|
|
</TR>
|
|
|
|
<TR>
|
|
|
|
<TD><CODE>-lavcopts</CODE></TD>
|
|
|
|
<TD>If encoding with libavcodec, you can specify its parameters here, like:<BR>
|
|
|
|
<CODE>-lavcopts vcodec=msmpeg4:vbitrate=1800:vhq:keyint=250</CODE><BR>
|
|
|
|
Common options: <B>(for full list, check the man page!)</B><BR>
|
|
|
|
<B>help</B> - get help<BR>
|
|
|
|
<B>vcodec</B>=<value> - select videocodec (for the full list, see the libavcodec section above)<BR>
|
|
|
|
<B>vbitrate</B>=<value> - specify bitrate in kbit <4-16000> or bit <16001-24000000><BR>
|
|
|
|
<B>vhq</B> - high quality<BR>
|
|
|
|
<B>keyint</B>=<value> - keyframe interval<BR>
|
|
|
|
</TD>
|
|
|
|
</TR>
|
|
|
|
<TR>
|
|
|
|
<TD><CODE>-lameopts</CODE></TD>
|
|
|
|
<TD>If encoding to MP3 with libmp3lame, you can specify its parameters here, like:<BR>
|
|
|
|
<CODE>-lameopts q=3</CODE><BR>
|
|
|
|
<CODE>-lameopts br=192:cbr</CODE><BR>
|
|
|
|
Common options: <B>(for full list, check the man page!)</B><BR>
|
|
|
|
<B>help</B> - get help<BR>
|
|
|
|
<B>cbr</B> - select <B>CBR</B> MP3 (default is <B>VBR</B>)<BR>
|
|
|
|
<B>br</B>=<value> - specify bitrate in kbit <0-1024> (this is for <B>CBR</B> only!)<BR>
|
|
|
|
<B>q</B>=<value> - quality (0-highest, 9-fastest - default 0) (this is for <B>VBR</B> only!)<BR>
|
|
|
|
<B>vbr</B>=<value> - VBR sub-mode (3-ABR, best quality/speed) (this is for <B>VBR</B> only!)<BR>
|
|
|
|
</TD>
|
|
|
|
</TR>
|
|
|
|
<TR>
|
|
|
|
<TD><CODE>-vobsubout</CODE> basename</TD>
|
|
|
|
<TD>Specify the basename for the output <CODE>.idx</CODE> and <CODE>.sub</CODE>
|
|
|
|
files. This turns off subtitle rendering on the encoded movie.</TD>
|
|
|
|
</TR>
|
|
|
|
<TR>
|
|
|
|
<TD><CODE>-vobsuboutindex</CODE> index</TD>
|
|
|
|
<TD>Specify the index of the subtitles in the output files. Defaults to 0.</TD>
|
|
|
|
</TR>
|
|
|
|
<TR>
|
|
|
|
<TD><CODE>-vobsuboutid</CODE> langid</TD>
|
|
|
|
<TD>Specify the language two letter code for the subtitles. This overrides
|
|
|
|
what is read from the DVD or the <CODE>.ifo</CODE> file.</TD>
|
|
|
|
</TR>
|
2001-11-13 17:11:26 +00:00
|
|
|
</TABLE>
|
2001-11-11 22:30:31 +00:00
|
|
|
|
2002-08-04 22:13:09 +00:00
|
|
|
<P><B><A NAME="examples">2.4.6 Examples</A></B></P>
|
2001-11-04 11:20:11 +00:00
|
|
|
|
2002-06-14 01:44:30 +00:00
|
|
|
<P>Using <B>MEncoder</B> is the easiest thing on Earth. See the following:</P>
|
2001-11-04 11:20:11 +00:00
|
|
|
|
2002-06-14 01:44:30 +00:00
|
|
|
<P>Encoding from DVD, title 2:<BR>
|
2002-05-17 04:09:37 +00:00
|
|
|
<CODE> mencoder -dvd 2 -lavcopts vcodec=mpeg4:more_options -o title2.avi</CODE></P>
|
2001-11-04 11:20:11 +00:00
|
|
|
|
2002-06-14 01:44:30 +00:00
|
|
|
<P>The same, but with libavcodec family, MJPEG compression:<BR>
|
2002-05-21 19:05:49 +00:00
|
|
|
<CODE> mencoder -dvd 2 -lavcopts vcodec=mjpeg:more_options -ffourcc mjpg -o title2.avi</CODE></P>
|
2001-12-24 23:00:07 +00:00
|
|
|
|
2002-06-14 01:44:30 +00:00
|
|
|
<P>Encoding from DVD, title 2, with rescaling:<BR>
|
2002-05-17 04:09:37 +00:00
|
|
|
<CODE> mencoder -dvd 2 -vop scale=640:480 -sws 2 -lavcopts vcodec=mpeg4:more_options -o title2.avi</CODE></P>
|
2001-12-10 17:37:18 +00:00
|
|
|
|
2002-06-14 01:44:30 +00:00
|
|
|
<P>Encoding from HTTP:<BR>
|
2002-05-17 04:09:37 +00:00
|
|
|
<CODE> mencoder http://mplayer.hq/example.avi -lavcopts vcodec=mpeg4:more_options -o example.avi</CODE></P>
|
2001-11-04 11:20:11 +00:00
|
|
|
|
2002-06-14 01:44:30 +00:00
|
|
|
<P>Encoding from a pipe:<BR>
|
2002-05-17 04:09:37 +00:00
|
|
|
<CODE> rar p test-SVCD.rar | mencoder -lavcopts vcodec=mpeg4:more_options -ofps 24 -pass 1 -- -</CODE></P>
|
2001-11-04 11:20:11 +00:00
|
|
|
|
2002-06-14 01:44:30 +00:00
|
|
|
<P>Encoding multiple *.vob files:<BR>
|
2001-11-13 20:07:09 +00:00
|
|
|
<CODE> cat *.vob | mencoder <options> -</CODE></P>
|
|
|
|
|
2002-08-04 22:13:09 +00:00
|
|
|
<P>Encoding from tuner (for tuner options <A HREF="documentation.html#tv">see the TV input section!</A>):<BR>
|
2001-12-08 11:19:55 +00:00
|
|
|
<CODE> mencoder -tv on:driver=v4l:width=640:height=480 <options></CODE></P>
|
2001-11-17 13:27:24 +00:00
|
|
|
|
2002-08-10 20:26:43 +00:00
|
|
|
<P>For all available options, <B>check the MEncoder man page!</B></P>
|
2002-06-14 01:44:30 +00:00
|
|
|
|
2001-11-04 11:20:11 +00:00
|
|
|
</BODY>
|
|
|
|
</HTML>
|