# HG changeset patch
# User gpoirier
# Date 1168387696 0
# Node ID 7e5c4075fcdf3974353d5ac604c5b0bdb5c8365c
# Parent f0040ff1ba401771fac92f60d05d219b594c3c52
explain how to use MEncoder to create QuickTime-compatible files
Mainly based on a patch by Mark Pilgrim % pilgrim A gmail P com %
Original thread:
Date: Oct 19, 2006 9:50 PM
Subject: [MPlayer-DOCS] Interested in contributing case studies
diff -r f0040ff1ba40 -r 7e5c4075fcdf DOCS/xml/en/encoding-guide.xml
--- a/DOCS/xml/en/encoding-guide.xml Tue Jan 09 21:32:25 2007 +0000
+++ b/DOCS/xml/en/encoding-guide.xml Wed Jan 10 00:08:16 2007 +0000
@@ -2898,11 +2898,12 @@
.
-
+
Next, we want to determine the appropriate crop rectangle, so we use the
cropdetect filter:
mplayer dvd://1 -vf cropdetect
-Make sure you seek to a fully filled frame (such as a bright scene), and
+Make sure you seek to a fully filled frame (such as a bright scene,
+past the opening credits and logos), and
you will see in MPlayer's console output:
crop area: X: 0..719 Y: 57..419 (-vf crop=720:362:0:58)
We then play the movie back with this filter to test its correctness:
@@ -4082,6 +4083,321 @@
+
+Using MEncoder to create
+QuickTime-compatible files
+
+
+
+Why would one want to produce QuickTime-compatible Files?
+
+
+ There are several reasons why producing
+ QuickTime-compatible files can be desirable.
+
+
+
+ You want any computer illiterate to be able to watch your encode on
+ any major platform (Windows, Mac OSX, Unices …).
+
+
+ QuickTime is able to take advantage of more
+ hardware and software acceleration features of Mac OSX than
+ platform-independent players like MPlayer
+ or VLC.
+ That means that your encodes have a chance to be played smoothly by older
+ G4-powered machines.
+
+
+ QuickTime 7 support the next-generation codec H.264,
+ which yields significantly better picture quality than previous codec
+ generations (MPEG-2, MPEG-4 …).
+
+
+
+
+
+QuickTime 7 limitations
+
+
+ QuickTime 7 supports H.264 video and AAC audio,
+ but it does not support them muxed in AVI container format.
+ However, you can use MEncoder to encode
+ the video and audio, and then use an external program such as
+ mp4creator (part of the
+ MPEG4IP suite)
+ to remux the video and audio tracks into an MP4 container.
+
+
+
+ QuickTime's support for H.264 is limited,
+ so you will need to drop some advanced features.
+ If you encode your video with features that
+ QuickTime 7 does not support,
+ QuickTime-based players will show you a pretty
+ white screen instead of your expected video.
+
+
+
+
+ B-frames:
+ QuickTime 7 supports a maximum of 1 B-frame, i.e.
+ . This means that
+ and will have no
+ effect, since they require to be greater than 1.
+
+
+ Macroblocks:
+ QuickTime 7 does not support 8x8 DCT macroblocks.
+ This option () is off by default, so just be sure
+ not to explicitly enable it. This also means that the
+ option will have no effect, since it requires .
+
+
+ Aspect ratio:
+ QuickTime 7 does not support SAR (sample
+ aspect ratio) information in MPEG-4 files; it assumes that SAR=1. Read
+ the section on scaling
+ for a workaround.
+
+
+
+
+
+
+Cropping
+
+ Suppose you want to rip your freshly bought copy of "The Chronicles of
+ Narnia" Your DVD is region 1,
+ which means it is NTSC. The example below would still apply to PAL,
+ except you would omit and use slightly
+ different and dimensions.
+
+
+
+ After running , you follow the process
+ detailed in the section How to deal
+ with telecine and interlacing in NTSC DVDs and discover that it is
+ 24000/1001 fps progressive video. This simplifies the process somewhat,
+ since you do not need to use an inverse telecine filter such as
+ or a deinterlacing filter such as
+ .
+
+
+
+ Next, you need to crop out the black bars from the top and bottom of the
+ video, as detailed in this
+ previous section.
+
+
+
+
+
+Scaling
+
+
+ The next step is truly heartbreaking.
+ QuickTime 7 does not support MPEG-4 videos
+ with a sample aspect ratio other than 1, so you will need to upscale
+ (which wastes a lot of disk space) or downscale (which loses some
+ details of the source) the video to square pixels.
+ Either way you do it, this is highly inefficient, but simply can not
+ be avoided if you want your video to be playable by
+ QuickTime 7.
+ MEncoder can apply the appropriate upscaling
+ or downscaling by specifying respectively
+ or .
+ This will scale your video to the correct width for the cropped height,
+ rounded to the closest multiple of 16 for optimal compression.
+ Remember that if you are cropping, you should crop first, then scale:
+
+ -vf crop=720:352:0:62,scale=-10:-1
+
+
+
+
+
+A/V sync
+
+
+ Because you will be remuxing into a different container, you should
+ always use the option to ensure that duplicated
+ frames are actually duplicated in the video output. Without this option,
+ MEncoder will simply put a marker in the video
+ stream that a frame was duplicated, and rely on the client software to
+ show the same frame twice. Unfortunately, this "soft duplication" does
+ not survive remuxing, so the audio would slowly lose sync with the video.
+
+
+
+ The final filter chain looks like this:
+ -vf crop=720:352:0:62,scale=-10:-1,harddup
+
+
+
+
+
+Bitrate
+
+
+ As always, the selection of bitrate is a matter the technical properties
+ of the source, as explained
+ here, as
+ well as a matter of taste.
+ This movie has a fair bit of action and lots of detail, but H.264 video
+ looks good at much lower bitrates than XviD or other MPEG-4 codecs.
+ After much experimentation, the author of this guide chose to encode
+ this movie at 900kbps, and thought that it looked very good.
+ You may decrease bitrate if you need to save more space, or increase
+ it if you need to improve quality.
+
+
+
+
+
+Encoding example
+
+
+ You are now ready to encode the video. Since you care about
+ quality, of course you will be doing a two-pass encode. To shave off
+ some encoding time, you can specify the option
+ on the first pass; this reduces and
+ to 1. To save some disk space, you can
+ use the option to strip off the first few seconds
+ of the video. (I found that this particular movie has 32 seconds of
+ credits and logos.) can be 0 or 1.
+ The other options are documented in Encoding with
+ the x264 codec and
+ the man page.
+
+ mencoder dvd://1 -o /dev/null -ss 32 -ovc x264 \
+-x264encopts pass=1:turbo:bitrate=900:bframes=1:\
+me=umh:4x4mv:trellis=1:qp_step=4:qcomp=0.7:direct_pred=3:keyint=300 \
+-vf crop=720:352:0:62,scale=-10:-1,harddup \
+-oac faac -faacopts br=192:mpeg=4:object=1 -channels 2 -srate 48000 \
+-ofps 24000/1001
+
+ If you have multi-processor machine, you can add
+ . This increases encoding speed by about
+ 94% per CPU core, with very little quality penalty (about 0.005dB for
+ dual processor, about 0.01dB for a quad processor machine).
+
+
+
+ The second pass is the same, except that you specify the output file
+ and set .
+
+ mencoder dvd://1 -o narnia.avi -ss 32 -ovc x264 \
+-x264encopts pass=2:turbo:bitrate=900:frameref=5:bframes=1:\
+me=umh:4x4mv:trellis=1:qp_step=4:qcomp=0.7:direct_pred=3:keyint=300 \
+-vf crop=720:352:0:62,scale=-10:-1,harddup \
+-oac faac -faacopts br=192:mpeg=4:object=1 -channels 2 -srate 48000 \
+-ofps 24000/1001
+
+
+
+ The resulting AVI should play perfectly in
+ MPlayer, but of course
+ QuickTime can not play it because it does
+ not support H.264 muxed in AVI.
+ So the next step is to remux the video into an MP4 container.
+
+
+
+
+Remuxing as MP4
+
+
+ There are several ways to remux AVI files to MP4. You can use
+ mp4creator, which is part of the
+ MPEG4IP suite.
+
+
+
+ First, demux the AVI into separate audio and video streams using
+ MPlayer.
+
+ mplayer narnia.avi -dumpaudio -dumpfile narnia.aac
+mplayer narnia.avi -dumpvideo -dumpfile narnia.h264
+
+ The filenames are important; mp4creator
+ requires that AAC audio streams be named .aac
+ and H.264 video streams be named .h264.
+
+
+
+ Now use mp4creator to create a new
+ MP4 file out of the audio and video streams.
+
+ mp4creator -create=narnia.aac narnia.mp4
+mp4creator -create=narnia.h264 -rate=23.976 narnia.mp4
+
+ Unlike the encoding step, you must specify the framerate as a
+ decimal (such as 23.976), not a fraction (such as 24000/1001).
+
+
+
+ This narnia.mp4 file should now be playable
+ with any QuickTime 7 application, such as
+ QuickTime Player or
+ iTunes. If you are planning to view the
+ video in a web browser with the QuickTime
+ plugin, you should also hint the movie so that the
+ QuickTime plugin can start playing it
+ while it is still downloading. mp4creator
+ can create these hint tracks:
+
+ mp4creator -hint=1 narnia.mp4
+mp4creator -hint=2 narnia.mp4
+mp4creator -optimize narnia.mp4
+
+ You can check the final result to ensure that the hint tracks were
+ created successfully:
+
+ mp4creator -list narnia.mp4
+
+ You should see a list of tracks: 1 audio, 1 video, and 2 hint tracks.
+
+Track Type Info
+1 audio MPEG-4 AAC LC, 8548.714 secs, 190 kbps, 48000 Hz
+2 video H264 Main@5.1, 8549.132 secs, 899 kbps, 848x352 @ 23.976001 fps
+3 hint Payload mpeg4-generic for track 1
+4 hint Payload H264 for track 2
+
+
+
+
+
+
+Adding metadata tags
+
+
+ If you want to add tags to your video that show up in iTunes, you can use
+ AtomicParsley.
+
+ AtomicParsley narnia.mp4 --metaEnema --title "The Chronicles of Narnia" --year 2005 --stik Movie --freefree --overWrite
+
+ The option removes any existing metadata
+ (mp4creator inserts its name in the
+ "encoding tool" tag), and reclaims the
+ space from the deleted metadata.
+ The option sets the type of video (such as Movie
+ or TV Show), which iTunes uses to group related video files.
+ The option overwrites the original file;
+ without it, AtomicParsley creates a new
+ auto-named file in the same directory and leaves the original file
+ untouched.
+
+
+
+
+
+
+
+
+
+
Encoding with the Video For Windows