summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorgpoirier <gpoirier@b3059339-0415-0410-9bf9-f77b7e298cf2>2005-06-22 09:39:27 +0000
committergpoirier <gpoirier@b3059339-0415-0410-9bf9-f77b7e298cf2>2005-06-22 09:39:27 +0000
commiteec8ec8a5c5a7272fb44d1e9ddc9fc3ef0d6dc50 (patch)
treef3505039bfcc636bb0bb954edc2709ab120cb9bb
parentd7c31709b3ed9a86e31a845a5449fe142dbd3bdf (diff)
downloadmpv-eec8ec8a5c5a7272fb44d1e9ddc9fc3ef0d6dc50.tar.bz2
mpv-eec8ec8a5c5a7272fb44d1e9ddc9fc3ef0d6dc50.tar.xz
Encoding guide featured by Richard Felker III, and updated by Jeff Clagg.
Part of this guide is already in the XML docs. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@15797 b3059339-0415-0410-9bf9-f77b7e298cf2
-rw-r--r--DOCS/tech/encoding-guide.txt819
1 files changed, 819 insertions, 0 deletions
diff --git a/DOCS/tech/encoding-guide.txt b/DOCS/tech/encoding-guide.txt
new file mode 100644
index 0000000000..661d52812e
--- /dev/null
+++ b/DOCS/tech/encoding-guide.txt
@@ -0,0 +1,819 @@
+Topics:
+
+
+I. Preparing to encode
+ 1. Identifying source material and framerate
+ 2. Selecting the quality you want
+ 3. Constraints for efficient encoding
+ 4. Cropping and scaling
+ 5. Choosing resolution and bitrate
+
+II. Containers and codecs
+ 1. Where the movie will be played
+ 2. Constraints of DVD, SVCD, and VCD
+ 3. Limitations of AVI container
+
+III. Basic MEncoder usage
+ 1. Selecting codecs & format
+ 2. Selecting input file or device
+ 3. Loading video filters
+ 4. Notes on A/V sync
+
+IV. Encoding procedures
+ 1. Encoding progressive video
+ 2. Two-pass encoding
+ 3. Encoding interlaced video
+ 4. Deinterlacing
+ 5. Inverse telecine
+ 6. Capturing TV input
+ 7. Dealing with mixed-source content
+ 8. Low-quality & damaged sources
+
+V. Optimizing encoding quality
+ 1. Noise removal
+ 2. Pure quality-gain options
+ 3. Questionable-gain options
+ 4. Advanced MPEG-4 features
+
+
+
+I. Preparing to encode
+
+Before you even think about encoding a movie, you need to take several
+preliminary steps to
+
+
+I.1. Identifying source material and framerate
+
+The first and most important step before you encode should be
+determining what type of content you're dealing with. If your source
+material comes from DVD or broadcast/cable/satellite TV, it will be
+stored in one of two formats: NTSC for North America and Japan, and
+PAL for Europe, etc. But it's important to realize that this is just
+the formatting for presentation on a television, and often does NOT
+correspond to the original format of the movie. In order to produce a
+suitable encode, you need to know the original format. Failure to take
+this into account will result in ugly combing (interlacing) artifacts
+in your encode, and will greatly reduce the quality/bitrate ratio of
+the encoder!
+
+Here is a list of common types of source material, where you're likely
+to find them, and their properties:
+
+Standard Film: Produced for theatrical display at 24fps.
+
+PAL video: Recorded with a PAL video camera at 50 fields per second. A
+field consists of just the even or odd numbered lines of a frame.
+Television was designed to refresh these in alternation as a cheap
+form of analog compression. The human eye supposedly compensates for
+this, but once you understand interlacing you'll learn to see it on TV
+too and never enjoy TV again. Two fields do NOT make a complete frame,
+because they are captured 1/50 of a second apart in time, and thus
+they do not line up unless there is no motion.
+
+NTSC Video: Recorded with an NTSC video camera at 59.94 fields per
+second, or 60 fields per second in the pre-color era. Otherwise
+similar to PAL.
+
+Animation: Usually drawn at 24fps, but animation also comes in
+mixed-framerate varieties.
+
+Computer Graphics (CG): Can be any framerate, but 24 and 30 fps are
+the most frequently encountered in NTSC regions, and 25 fps in PAL
+regions.
+
+Old Film: Various lower framerates.
+
+Movies consisting of frames are referred to as progressive, while
+those consisting of independent fields are called interlaced, or
+sometimes video, although this latter term is ambiguous.
+
+To further complicate matters, some movies will be a mix of several of
+the above.
+
+The most important distinction to make between all of these formats is
+that some are frame-based, while others are field-based. WHENEVER a
+movie is prepared for display on television (including DVD), it is
+converted to a field-based format. The various methods by which this
+can be done are collectively referred to as "pulldown", of which the
+infamous NTSC "3:2 telecine" is one variety. Unless the original
+material was also field-based (and the same fieldrate), you are
+getting the movie in a format other than the original.
+
+There are several common types of pulldown:
+
+PAL 2:2 pulldown: The nicest of them all. Each frame is shown for two
+fields duration, by extracting the even and odd lines and showing them
+in alternation. If the original material is 24fps, this process speeds
+up the movie by 4%.
+
+PAL 2:2:2:2:2:2:2:2:2:2:2:3 pulldown: Every 12th frame is shown for
+three fields duration, instead of just two. This avoids the 4% speedup
+issue, but makes the process much more difficult to reverse. It is
+usually seen in musical productions where adjusting the speed by 4%
+would seriously damage the musical score.
+
+NTSC 3:2 telecine: Frames are shown alternatively for 3 fields or 2
+fields duration. This gives a fieldrate 5/2 times the original
+framerate. The result is also slowed down very slightly from 60 fields
+per second to 59.94 fields per second to maintain NTSC fieldrate.
+
+NTSC 2:2 pulldown: Used for showing 30fps material on NTSC. Nice, just
+like 2:2 PAL pulldown.
+
+There are also methods for converting between NTSC and PAL video. Such
+topics are beyond the scope of this guide. If you encounter such a
+movie and want to encode it, your best bet is to find a copy in the
+original format. NTSC/PAL conversion is highly destructive and cannot
+be reversed cleanly, so your encode will greatly suffer if it is made
+from a converted source.
+
+When video is stored on DVD, consecutive pairs of fields are grouped
+as a frame, even though they are not intended to be shown at the same
+moment in time. The MPEG2 standard used on DVD and digital TV provides
+a way to encode the original progressive frames, and store the number
+of fields for which each should be shown in the frame headers. If this
+method has been used, the term "soft telecine" will often be used to
+describe the movie, since the process only directs the DVD player to
+apply pulldown to the movie rather than altering the movie itself.
+This case is highly preferable since it can easily be reversed
+(actually ignored) by the encoder, and since it preserves maximal
+quality. However, many DVD and broadcast production studios do not use
+proper encoding techniques, and instead produce movies with "hard
+telecine", where fields are actually duplicated in the encoded MPEG2.
+
+The procedures for dealing with these cases will be covered later in
+this guide. For now, we leave you with some guides to identifying
+which type of material you're dealing with:
+
+NTSC regions:
+
+- If MPlayer prints that the framerate has changed to 23.976 when
+ watching your movie, and never changes back, it's almost certainly
+ 24fps content that has been "soft telecined".
+
+- If MPlayer shows the framerate switching back and forth between
+ 23.976 and 29.97, and you see "combing" at times, then there are
+ several possibilities. The 23.976 fps segments are almost certainly
+ 24fps progressive content, "soft telecined", but the 29.97 fps parts
+ could be either hard-telecined 24fps content or NTSC video content.
+ Use the same guidelines as the following two cases to determine
+ which.
+
+- If MPlayer never shows the framerate change, and every single frame
+ with motion appears combed, your movie is NTSC video at 59.94 fields
+ per second.
+
+- If MPlayer never shows the framerate change, and two frames out of
+ every five appear combed, your movie is "hard telecined" 24fps
+ content.
+
+PAL regions:
+
+- If you never see any combing, your movie is 2:2 pulldown.
+
+- If you see combing alternating in and out every half second, then
+ your movie is 2:2:2:2:2:2:2:2:2:2:2:3 pulldown.
+
+- If you always seem combing during motion, then your movie is PAL
+ video at 50 fields per second.
+
+Hint: MPlayer can slow down movie playback with the -speed option. Try
+using -speed 0.2 to watch the movie very slowly and identify the
+pattern, if you can't see it at full speed.
+
+
+I.2. Selecting the quality you want
+
+It's possible to encode your movie at a wide range of qualities. With
+modern video encoders and a bit of pre-codec compression (downscaling
+and denoising), it's possible to achieve very good quality at 700 MB,
+for a 90-110 minute widescreen movie. And all but the longest movies
+can be encoded with near-perfect quality at 1400 MB.
+
+If you do not plan to store your movies on CD or other size-limited
+media, and you want maximal quality at all costs, you can encode in
+constant quantizer mode, which will not aim to meet a specific target
+bitrate or filesize but instead use the maximal accuracy encoding for
+all frames. This is not recommended in most cases, because you can
+achieve significantly smaller file sizes without noticeable loss.
+However, it may be desirable for the hardcore archivists out there.
+
+
+I.4. Cropping and scaling
+
+Recall from the previous section that the final picture size you
+encode should be a multiple of 16 (in both width and height). This can
+be achieved by cropping, scaling, or a combination of both.
+
+When cropping, there are a few guidelines that must be followed to
+avoid damaging your movie. The normal YUV format, 4:2:0, stores chroma
+(color) information subsampled, i.e. chroma is only sampled half as
+often in each direction as luma (intensity) information. Observe this
+diagram, where L indicates luma sampling points and C chroma.
+
+ L L L L L L L L
+ C C C C
+ L L L L L L L L
+
+ L L L L L L L L
+ C C C C
+ L L L L L L L L
+
+As you can see, rows and columns of the image naturally come in pairs.
+Thus your crop offsets and dimensions MUST be even numbers. If they
+are not, the chroma will no longer line up correctly with the luma. In
+theory, it's possible to crop with odd offsets, but it requires
+resampling the chroma which is potentially a lossy operation and not
+supported by the crop filter.
+
+Further, interlaced video is sampled as follows:
+
+ TOP FIELD BOTTOM FIELD
+
+ L L L L L L L L
+ C C C C
+ L L L L L L L L
+
+ L L L L L L L L
+ C C C C
+ L L L L L L L L
+
+ L L L L L L L L
+ C C C C
+ L L L L L L L L
+
+ L L L L L L L L
+ C C C C
+ L L L L L L L L
+
+As you can see, the pattern does not repeat until after 4 lines. So
+for interlaced video, your y-offset and height for cropping must be
+multiples of 4.
+
+So how do you determine a crop rectangle to begin with? Sometimes you
+can guess, but the cropdetect filter in MPlayer can make it easy. Run
+MPlayer with -vf cropdetect and it will print out the crop settings to
+remove the borders. You should let the movie run long enough that the
+whole picture area is used, in order to get accurate crop values.
+Then, test the values you get with MPlayer, using the command line
+cropdetect printed, and adjust the rectangle as needed. The rectangle
+filter can help by allowing you to interactively position the crop
+rectangle over your movie. Remember to follow the above divisibility
+guidelines so that you do not misalign the chroma planes.
+
+If you will be scaling your movie, it's usually best to crop only the
+black borders and noise, then scale so that the resulting dimensions
+are multiples of 16. This can slightly distort the aspect ratio of
+your movie, but in practice the error cannot be seen. It's certainly
+much less visible than the MPEG artifacts you will see from failing to
+crop & scale well.
+
+In certain cases, scaling may be undesirable. Scaling in the vertical
+direction is difficult with interlaced video, and if you wish to
+preserve the interlacing, you should usually refrain from scaling. If
+you will not be scaling but you still want to use multiple-of-16
+dimensions, you will have to overcrop. Do not undercrop, since black
+borders are very bad for encoding!
+
+
+
+
+I.5. Choosing resolution and bitrate
+
+If you will not be encoding in constant quantizer mode, you need to
+select a bitrate. The concept of bitrate is quite simple. It's the
+(average) number of bits that will be consumed to store your movie,
+per second. Normally bitrate is measured in kilobits (1000 bits) per
+second. The size of your movie on disk is the bitrate times the length
+of the movie in time, plus a small amount of "overhead" (see the
+section on codecs and containers). Other parameters such as scaling,
+cropping, etc. will NOT alter the file size unless you change the
+bitrate as well!
+
+Bitrate does NOT scale proportional to resolution. That is to say, a
+320x240 file at 200 kbit/sec will not be the same quality as the same
+movie at 640x480 and 800 kbit/sec! There are two reasons for this:
+
+1. Perceptual: You notice MPEG artifacts more if they're scaled up
+ bigger! Artifacts appear on the scale of blocks (8x8). Your eye
+ will not see errors in 4800 small blocks as easily as it sees
+ errors in 1200 large blocks (assuming you'll be scaling both to
+ fullscreen).
+
+2. Theoretical: When you scale down an image but still use the same
+ size (8x8) blocks for the frequency space transform, you move more
+ data to the high frequency bands. Roughly speaking, each pixel
+ contains more of the detail than it did before. So even though your
+ scaled-down picture contains 1/4 the information in the spacial
+ directions, it could still contain a large portion of the
+ information in the frequency domain (assuming that the high
+ frequencies were underutilized in the original 640x480 image).
+
+Past guides have recommended choosing a bitrate and resolution based
+on a "bits per pixel" approach, but this is usually not valid due to
+the above reasons. A better estimate seems to be that bitrates scale
+proportional to the square root of resolution, so that 320x240 and 400
+kbit/sec would be comparable to 640x480 at 800 kbit/sec. However this
+has not been verified with theoretical or empirical rigor. Further,
+given that movies vary greatly with regard to noise, detail, degree of
+motion, etc., it's futile to make general recommendations for bits per
+length-of-diagonal (the analogue of bits per pixel, using the square
+root).
+
+So far we have discussed the difficulty of choosing a bitrate and
+resolution.
+
+.................
+
+
+
+
+
+
+
+
+
+
+II. Containers and codecs
+
+II.1. Where the movie will be played
+
+Perhaps the most important factor to choosing the format in which you
+will encode your movie is where you want to be able to play it.
+Usually this involves a tradeoff between quality and features, since
+the formats supported by the widest variety of players are also the
+worst in regards to compression.
+
+If you want to be able to play your encode on standalone/set-top
+players, your primary choices are DVD, VCD, and SVCD. There are also
+extensions such as KVCD and XVCD which violate the standards but work
+on many players and deliver higher quality. Modern players are
+beginning to support MPEG-4 ("DivX") movies in AVI and perhaps other
+containers as well, but these are often buggy and require you to
+restrict your encodes to certain subsets of the full MPEG-4
+functionality.
+
+If you wish to be able to share your movies with Windows or Macintosh
+users, without them having to install additional software, your
+choices are very limited. The ancient MPEG-1 format with MP2 or PCM
+audio is probably the only choice that is universally supported.
+Interoperability with Windows/Mac also comes into play when deciding
+how to encode and whether to scale to preserve aspect, since popular
+media player applications for these systems do not honor the aspect
+ratio encoding stored in MPEG-4 avi files.
+
+
+II.2. Constraints of DVD, SVCD, and VCD
+
+Unfortunately, the DVD, SVCD, and VCD formats are subject to heavy
+constraints. Only a small selection of encoded picture sizes & aspect
+ratios are available. If your movie does not meet one of these, you
+must scale and crop or add black borders (which are bad for quality!)
+to make it compliant.
+
+Format Resolution V.Codec A.Codec FPS Aspect
+NTSC DVD 720x480 MPEG-2 AC3,PCM 24,30 4:3,16:9
+NTSC DVD 352x240 * MPEG-1 AC3,PCM 24,30 4:3
+NTSC SVCD 480x480 MPEG-2 MP2 30 4:3
+NTSC VCD 352x240 MPEG-1 MP2 24,30 4:3
+PAL DVD 720x576 MPEG-2 MP2,AC3,PCM 25 4:3,16:9
+PAL DVD 352x288 * MPEG-1 MP2,AC3,PCM 25 4:3
+PAL SVCD 480x576 MPEG-2 MP2 25 4:3
+PAL VCD 352x288 MPEG-1 MP2 25 4:3
+
+* These resolutions are rarely used in DVD because they are fairly low
+ quality.
+
+DVD, VCD, and SVCD also constrain you to relatively low GOP sizes. 18 is
+supposed to be the largest allowed GOP size for 30 fps NTSCP material;
+for 25 or 24 fps, the GOP size should be 15.
+
+VCD video is required to be CBR at 1152 kbps. This highly limiting
+constraint also comes along with an extremly low vbv buffer size of
+327 kilobits. SVCD allows varying video bitrates up to 2500 kbps, and
+a somewhat less insane vbv buffer size of 917 kilobits is allowed. DVD
+video bitrates may range anywhere up to 9800 kbps (though typical bitrates
+are about half that), and the vbv buffer size is 1835 kilobits.
+
+Here is a list of fields in lavcopts that you may be required to change
+in order to make usable video for VCD, SVCD, or DVD:
+
+acodec: mp2 for VCD, SVCD, or PAL DVD; ac3 is most commonly used for DVD.
+ PCM audio may also be used for DVD, but this is mostly a big
+ waste of space. Note that mp3 audio isn't spec-compliant for
+ any of these formats, but players often have no problem playing
+ it anyway.
+
+abitrate: 224 for VCD; user-selectable for DVD and SVCD, but commonly used
+ values range from 192 to 384 kbps.
+
+vcodec: mpeg1video for VCD; mpeg2video for SVCD; mpeg2video is usually
+ used for DVD but you may also use mpeg1video for CIF resolutions.
+
+keyint: 18 for 30fps material, or 15 for 25/24 fps material. Commercial
+ producers seem to prefer keyframe intervals of 12.
+
+vrc_buf_size: 327 for VCD, 917 for SVCD, and 1835 for DVD.
+
+vrc_minrate: 1152, for VCD. May be left alone for SVCD and DVD.
+
+vrc_maxrate: 1152 for VCD; 2500 for SVCD; 9800 for DVD. For SVCD and DVD,
+ you might wish to use lower values depending on your own
+ personal preferences and requirements.
+
+vbitrate: 1152 for vcd; up to 2500 for SVCD; up to 9800 for DVD. For the
+ latter two formats, vbitrate should be set based on personal
+ preference. For instance, if you insist on fitting 20 or so
+ hours on a DVD, you could use vbitrate=400. The resulting
+ video quality would probably be quite bad. If you are trying
+ to squeeze out the maximum possible quality on a DVD, use
+ vbitrate=9800, but be warned that this could constrain you to
+ less than an hour of video on a single-layer DVD.
+
+Here is a typical minimum set of lavcopts for encoding video for a VCD:
+
+-lavcopts vcodec=mpeg1video:vrc_buf_size=327:vrc_minrate=1152:\
+vrc_maxrate=1152:vbitrate=1152:keyint=15:acodec=mp2
+
+SVCD:
+
+-lavcopts vcodec=mpeg2video:vrc_buf_size=917:vrc_maxrate=2500:vbitrate=1800:\
+keyint=15:acodec=mp2
+
+DVD:
+
+-lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:\
+vbitrate=5000:keyint=15:acodec=ac3
+
+For higher quality encoding, you may also wish to add quality-enhancing
+options to lavcopts, such as trell, mbd=2, and others. Note that qpel
+and v4mv, while often useful with MPEG-4, are not usable in MPEG-1 or
+MPEG-2. Also, if you are trying to make a very high quality DVD encode,
+it may be useful to add dc=10 to lavcopts. Doing so may help reduce the
+appearance of blocks in flat-colored areas. Putting it all together,
+here is an example of a set of lavcopts for a higher quality DVD:
+
+-lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:\
+vbitrate=8000:keyint=15:trell:mbd=2:precmp=2:subcmp=2:cmp=2:dia=-10:\
+predia=-10:cbp:mv0:vqmin=1:lmin=1:dc=10
+
+If your movie has 2.35:1 aspect (most recent action movies), you will
+have to add black borders or crop the movie down to 16:9 to make a DVD
+or VCD. If you add black borders, try to align them at 16-pixel
+boundaries in order to minimize the impact on encoding performance.
+Thankfully DVD has sufficiently excessive bitrate that you do not have
+to worry too much about encoding efficiency, but SVCD and VCD are
+highly bitrate-starved and require effort to obtain acceptable
+quality.
+
+
+
+
+
+II.3. Limitations of the AVI container
+
+Although it's the most widely-supported format after MPEG-1, AVI also
+has some major drawbacks. Perhaps the most obvious is the overhead.
+For each chunk of the AVI file, 24 bytes are wasted on headers and
+index. This translates into a little over 5 MB per hour, or 1-2.5%
+overhead for a 700 MB movie. This may not seem like much, but it could
+mean the difference between being able to use 700 kbit/sec video or
+714 kbit/sec, and every bit of quality counts.
+
+In addition to gross inefficiency, AVI also has the following major
+limitations:
+
+1. Only fixed-fps content can be stored. This is particularly limiting
+ if the original material you want to encode is mixed content, for
+ example a mix of NTSC video and film material. Actually there are
+ hacks that can be used to store mixed-framerate content in AVI, but
+ they increase the (already huge) overhead fivefold or more so they
+ are not practical.
+
+2. Audio in AVI files must be either constant-bitrate (CBR) or
+ constant-framesize (i.e. all frames decode to the same number of
+ samples). Unfortunately, the most efficient codec, Vorbis, does not
+ meet either of these requirements. Therefore, if you plan to store
+ your movie in AVI, you'll have to use a less efficient codec such
+ as MP3 or AC3.
+
+With all of that said, MEncoder does not support variable-fps output
+or Vorbis encoding. Therefore, you may not see these as limitations if
+MEncoder is the only tool you will be using to produce your encodes.
+However, it is possible to use MEncoder only for the video encoding,
+and then use external tools to encode the audio and mux it into
+another container format.
+
+
+
+
+
+
+
+III. Basic MEncoder usage
+
+III.1. Selecting codecs & format
+
+Audio and video codecs for encoding are selected with the -oac and
+-ovc options, respectively. The following choices are available,
+although some may not have been enabled at compiletime:
+
+Audio Codecs
+mp3lame Encode VBR or CBR MP3 with LAME
+lavc Use one of libavcodec's audio encoders
+pcm Uncompressed PCM audio
+copy Do not reencode, just copy compressed frames
+
+Video codecs
+lavc Use one of libavcodec's video encoders
+xvid XviD
+raw Uncompressed video frames
+copy Do not reencode, just copy compressed frames
+frameno Used for 3-pass encoding (not recommended)
+
+Several other video codecs are available, but not recommended. The
+lavc audio and video encoders have additional suboptions to select
+which codec to use within lavc. The syntax is:
+
+ -lavcopts acodec=audio_codec_name
+ -lavcopts vcodec=video_codec_name
+
+Your choices for lavc audio are mp2, ac3, and various adpcm formats
+(low efficiency). For lavc video, you have many more choices:
+
+mpeg1video MPEG-1 video
+mpeg2video MPEG-2 video
+mpeg4 MPEG-4 video, standards-compliant
+msmpeg4 Pre-standard MPEG-4 used by MS (aka DivX3)
+msmpeg4v2 Pre-standard MPEG-4 used by MS (low quality)
+msmpeg4v1 Pre-standard MPEG-4 used by MS (low quality)
+wmv1 Windows Media Video, V1 (aka WMV7)
+wmv2 Windows Media Video, V2 (aka WMV8)
+dvvideo DV video (used by DV cameras)
+mjpeg Motion JPEG
+ljpeg Lossless JPEG
+ffv1 Lossless FFmpeg video codec #1 (slow)
+huffyuv A standard lossless codec
+
+...and lots more that aren't worth mentioning for most people.
+
+
+
+III.2. Selecting input file or device
+
+MEncoder can encode from files or directly from a DVD or VCD disc.
+Simply include the filename on the command line to encode from a file,
+or dvd://titlenumber or vcd://tracknumber to encode from a DVD title
+or VCD track. If you have already copied a DVD to your hard drive and
+wish to encode from the copy, you should still use the dvd:// syntax,
+along with -dvd-device followed by the path to the copied DVD root.
+The -dvd-device and -cdrom-device options can also be used to override
+the paths to the device nodes for reading directly from disc, if the
+defaults of /dev/dvd and /dev/cdrom do not work on your system.
+
+When encoding from DVD, it is often desirable to select a chapter or
+range of chapters to encode. You can use the -chapter option for this
+purpose. For example, -chapter 1-4 will only encode chapters 1 through
+4 from the DVD. This is especially useful if you will be making a 1400
+MB encode targetted for two CDs, since you can ensure the split occurs
+exactly at a chapter boundary rather than in the middle of a scene.
+
+If you have a supported TV capture card, you can also encode from the
+TV-in device. Use tv://channelnumber as the filename, and -tv to
+configure various capture settings. DVB input works similarly.
+
+
+III.3. Loading video filters
+
+Learning how to use MEncoder's video filters is essential to producing
+good encodes. All video processing is performed through the filters --
+cropping, scaling, color adjustment, noise removal, sharpening,
+deinterlacing, telecine, inverse telecine, and deblocking, just to
+name a few. Along with the vast number of supported input formats, the
+variety of filters available in MEncoder is one of its main advantages
+over other similar programs.
+
+Filters are loaded in a chain using the -vf option:
+
+ -vf filter1=options,filter2=options,...
+
+Most filters take several numeric options separated by colons, but the
+syntax for options varies from filter to filter, so read the man page
+for details on the filters you wish to use.
+
+Filters operate on the video in the order they are loaded. For
+example, the following chain:
+
+ -vf crop=688:464:12:4,scale=640:464
+
+will first crop the 688x464 region of the picture with upper-left
+corner at (12,4), and then scale the result down to 640x464.
+
+Certain filters need to be loaded at or near the beginning of the
+filter chain, in order to take advantage of information from the video
+decoder that will be lost or invalidated by other filters. The
+principal examples are pp (postprocessing, only when it is performing
+deblock or dering operations), spp (another postprocessor to remove
+MPEG artifacts), pullup (inverse telecine), and softpulldown (for
+converting soft telecine to hard telecine).
+
+Advanced topics in filter chains and usage information for specific
+filters will follow in chapters IV and V, as they are needed for the
+topics covered.
+
+
+
+III.4. Notes on A/V sync
+
+MEncoder's audio/video synchronization algorithms were designed with
+the intention of recovering files with broken sync. However they seem
+to cause unnecessary skipping and duplication of frames, and possibly
+slight A/V desync, when used with proper input. It is therefore
+recommended that you switch to basic A/V sync with the -mc 0 option,
+or put this in your ~/.mplayer/mencoder config file, as long as you
+are only working with good sources (DVD, TV capture, high quality
+MPEG-4 rips, etc) and not broken ASF/RM/MOV files.
+
+If you want to further guard against strange frame skips and
+duplication, you can use both -mc 0 and -noskip. This will prevent ALL
+A/V sync, and copy frames one-to-one, so you cannot use it if you will
+be using any filters that unpredictably add or drop frames, or if your
+input file has variable framerate! Therefore, using -noskip is not in
+general recommended.
+
+The so-called "three-pass" encoding which MEncoder supports has been
+reported to cause A/V desync. This will definitely happen if it is
+used in conjunction with certain filters, therefore, it is now
+recommended NOT to use three-pass mode. This feature is only left for
+compatibility purposes and for expert users who understand when it is
+safe to use and when it is not. If you have never heard of three-pass
+mode before, forget that we even mentioned it!
+
+There have also been reports of A/V desync when encoding from stdin
+with MEncoder. Do not do this! Always use a file or CD/DVD/etc device
+as input.
+
+
+
+
+
+IV.1. Encoding progressive video
+
+As long as your input video is progressive (see section I.1),
+
+
+Let's finally see a few examples:
+
+ Encoding from 2:2 pulldown PAL DVD, title 1
+ 2.35:1 picture aspect
+ 1200 kbit/sec MPEG-4 video
+ 128 kbit/sec average-bitrate MP3 audio
+
+ mencoder dvd://1 -vf crop=712:432,scale=640:288 -mc 0 -oac mp3lame\
+ -lameopts abr:br=128 -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=1200
+
+The crop size was presumably obtained by using the cropdetect filter
+in MPlayer, or experimenting first with crop rectangles in MPlayer.
+The output framerate will be 25 fps, the same as the original DVD. It
+would be preferable to adjust the playback speed to match the original
+24 fps theatrical rate, but this is not yet possible with MEncoder.
+The options we pass to libavcodec are the bare minimum, and will yield
+relatively poor quality. We will refine then in subsequent sections.
+
+Now, a second example:
+
+ Encoding from soft-telecined NTSC DVD, title 3
+ 2.35:1 picture aspect
+ 900 kbit/sec MPEG-4 video
+ Keeping the original AC3 audio
+
+ mencoder dvd://1 -vf crop=708:360,scale=640:288 -mc 0 -oac copy \
+ -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=900 -ofps 23.976023976
+
+This example is very similar to the first example, except for the
+-ofps option to adjust the output framerate. Unless you tell it
+otherwise, MEncoder takes its output framerate from the input
+framerate. This is reported as 29.97 fps (actually 30000/1001), or
+rather, 29.97 pairs of fields per second. But since the DVD is
+soft-telecined, 1/5 of these fields are not actually present, but
+intended to be added by the player when it telecines the movie in
+realtime. There are actually only 23.976 (24000/1001) frames per
+second. If you leave the framerate at the default, 29.97, it will
+still work, but every 4th frame will get encoded in duplicate, making
+the motion appear choppy.
+
+Finally, a comment on the number 23.976023976. You'll often see
+recommendations to use -ofps 23.976, but this is wrong. MEncoder will
+reduce 23.976 to 2997/125, which is not the same as 24000/1001. So in
+order to get the right framerate written in the output file's header,
+always use plenty of precision.
+
+
+
+
+IV.2. Two-pass encoding
+
+The complexity (and thus the number of bits) required to compress the
+frames of a movie can vary greatly from one scene to another. Modern
+video encoders can adjust to these needs as they go and vary the
+bitrate. However, they cannot exceed the requested average bitrate for
+long stretches of time, because they do not know the bitrate needs of
+future scenes.
+
+Two-pass encoding solves this problem by encoding the movie twice.
+During the first pass, statistics are generated regarding the number
+of bits used by each frame and the quantization level (quality) at
+which it was encoded. Then, when the second pass begins, the encoder
+reads these statistics and redistributes the bits from frames where
+they are in excess to frames that are suffering from low quality.
+
+In order for the process to work properly, the encoder should be given
+exactly the same sequence of frames during both passes. This means
+that the same filters must be used, the same encoder parameters must
+be used (with the possible exception of bitrate), and the same frame
+drops and duplications (if any) must take place.
+
+In theory it's possible to use -oac pcm or -oac copy during the first
+pass to avoid spending time encoding the audio. However, this can
+result in slight variations in which frames get dropped or duplicated,
+so it may be preferable to encode the audio during the first pass as
+well as the second. This also allows you to examine the final audio
+bitrate and filesize, and to adjust the audio or video bitrate
+slightly between passes if you don't meet your target size.
+
+Here is an example:
+
+ Encoding from an existing AVI file
+ 500 kbit/sec MPEG-4 video
+ 96 kbit/sec average-bitrate MP3 audio
+
+ mencoder bar.avi -vf scale=448:336 -mc 0 -oac mp3lame -lameopts \
+ abr:br=96 -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=500:vpass=1
+
+ mencoder bar.avi -vf scale=448:336 -mc 0 -oac mp3lame -lameopts \
+ abr:br=96 -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=500:vpass=2
+
+If you do not want to overwrite the output from the first pass when
+you begin the second, you can use the -o option to choose a different
+output filename. Note the addition of the vpass option in this
+example. If vpass is not specified, single-pass encoding is performed.
+If vpass=1, a log file is written with statistics from the first pass.
+If vpass=2, the log file is read and the second pass is encoded based
+on those statistics. If you are short on disk space or don't want the
+extra disk wear from writing the file twice, you can use -o /dev/null
+during the first pass. However, sometimes it is beneficial to watch
+the first-pass file before beginning the second pass to make sure
+nothing went wrong in the encoding.
+
+Next, an example using XviD instead of libavcodec:
+
+ Encoding from an existing AVI file
+ 500 kbit/sec MPEG-4 video
+ Copying the existing audio stream unmodified
+
+ mencoder foo.avi -vf scale=320:240 -mc 0 -oac copy -ovc xvid \
+ -xvidencopts bitrate=400:pass=1
+
+ mencoder foo.avi -vf scale=320:240 -mc 0 -oac copy -ovc xvid \
+ -xvidencopts bitrate=400:pass=2
+
+The options used are slightly different, but the process is otherwise
+the same.
+
+
+
+
+IV.3. Encoding interlaced video
+
+If the movie you want to encode is interlaced (NTSC video or PAL
+video), you will need to choose whether you want to deinterlace or
+not. While deinterlacing will make your movie usable on progressive
+scan displays such a computer monitors and projectors, it comes at a
+cost: the field rate of 50 or 59.94 fields per second is halved to 25
+or 29.97 frames per second, and roughly half the information in your
+movie will be lost during scenes with significant motion.
+
+Therefore, if you are encoding for high quality archival purposes, it
+is recommended not to deinterlace. You can always deinterlace the
+movie at playback time when displaying it on progressive scan devices,
+and future players will be able to deinterlace to full fieldrate,
+interpolating 50 or 59.94 entire frames per second from the interlaced
+video.
+
+Special care must be taken when working with interlaced video:
+
+1. Crop height and y-offset must be multiples of 4.
+
+2. Any vertical scaling must be performed in interlaced mode.
+
+3. Postprocessing and denoising filters may not work as expected
+ unless you take special care to operate them a field at a time, and
+ they may damage the video if used incorrectly.
+
+With these things in mind, here is our first example:
+
+ mencoder capture.avi -mc 0 -oac lavc -ovc lavc -lavcopts \
+ vcodec=mpeg2video:vbitrate=6000:ilmv:ildct:acodec=mp2:abitrate=224
+
+Note the ilmv and ildct options.