From 45bf19a06f03bdb53406ece061aa0fbd7c059bdb Mon Sep 17 00:00:00 2001 From: gpoirier Date: Wed, 10 Jan 2007 00:08:16 +0000 Subject: 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 git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@21861 b3059339-0415-0410-9bf9-f77b7e298cf2 --- DOCS/xml/en/encoding-guide.xml | 320 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 318 insertions(+), 2 deletions(-) (limited to 'DOCS') diff --git a/DOCS/xml/en/encoding-guide.xml b/DOCS/xml/en/encoding-guide.xml index 6722a5dd26..b5bad9079b 100644 --- a/DOCS/xml/en/encoding-guide.xml +++ b/DOCS/xml/en/encoding-guide.xml @@ -2898,11 +2898,12 @@ telecine filter, such as or . - + 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 @@ and development advancements, you may get very different results. + +Using <application>MEncoder</application> to create +<application>QuickTime</application>-compatible files + + + +Why would one want to produce <application>QuickTime</application>-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 …). + + + + + +<application>QuickTime</application> 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 <systemitem class="library">Video For Windows</systemitem> -- cgit v1.2.3