# HG changeset patch
# User gpoirier
# Date 1120639197 0
# Node ID e51e67f19effdbeb97f224de68eab44660cbf08a
# Parent 5e1ea4b159d4dc777b3d81022029973606be1dff
Documentation for VCD/SVCD/DVD encoding, patch by Brendan McCarthy < bmccarthy AH iinet POUM net POUM au>
diff -r 5e1ea4b159d4 -r e51e67f19eff DOCS/xml/en/mencoder.xml
--- a/DOCS/xml/en/mencoder.xml Wed Jul 06 08:15:46 2005 +0000
+++ b/DOCS/xml/en/mencoder.xml Wed Jul 06 08:39:57 2005 +0000
@@ -2767,6 +2767,610 @@
+
+Using MEncoder to create VCD/SVCD/DVD-compliant files.
+
+
+Format Constraints
+
+ MEncoder is capable of creating VCD, SCVD
+ and DVD format MPEG files using the
+ libavcodec library.
+ These files can then be used in conjunction with
+ vcdimager
+ or
+ dvdauthor
+ to create discs that will play on a standard set-top player.
+
+
+
+ The DVD, SVCD, and VCD formats are subject to heavy constraints.
+ Only a small selection of encoded picture sizes and aspect ratios are
+ available.
+ If your movie does not already meet these requirements, you may have
+ to scale,crop or add black borders to the picture to make it
+ compliant.
+
+
+
+Format Constraints
+
+
+
+
+
+ Format
+ Resolution
+ V. Codec
+ V. Bitrate
+ Sample Rate
+ A. Codec
+ A. Bitrate
+ FPS
+ Aspect
+
+
+
+
+ NTSC DVD
+ 720x480, 704x480, 352x480, 352x240
+ MPEG-2
+ 9800 kbps
+ 48000 Hz
+ AC3,PCM
+ 1536 kbps
+ 23.976, 29.97
+ 4:3, 16:9 (only for 720x480)
+
+
+ NTSC DVD
+ 352x240*
+ MPEG-1
+ 1856 kbps
+ 48000 Hz
+ AC3,PCM
+ 1536 kbps
+ 23.976, 29.97
+ 4:3, 16:9
+
+
+ NTSC SVCD
+ 480x480
+ MPEG-2
+ 2600 kbps
+ 44100 Hz
+ MP2
+ 384 kbps
+ 29.97
+ 4:3
+
+
+ NTSC VCD
+ 352x240
+ MPEG-1
+ 1150 kbps
+ 44100 Hz
+ MP2
+ 224 kbps
+ 23.976, 29.97
+ 4:3
+
+
+ PAL DVD
+ 720x576, 704x576, 352x576, 352x288
+ MPEG-2
+ 9800 kbps
+ 48000 Hz
+ MP2,AC3,PCM
+ 1536 kbps
+ 25
+ 4:3, 16:9 (only for 720x576)
+
+
+ PAL DVD
+ 352x288*
+ MPEG-1
+ 1856 kbps
+ 48000 Hz
+ MP2,AC3,PCM
+ 1536 kbps
+ 25
+ 4:3, 16:9
+
+
+ PAL SVCD
+ 480x576
+ MPEG-2
+ 2600 kbps
+ 44100 Hz
+ MP2
+ 384 kbps
+ 25
+ 4:3
+
+
+ PAL VCD
+ 352x288
+ MPEG-1
+ 1150 kbps
+ 44100 Hz
+ MP2
+ 224 kbps
+ 25
+ 4:3
+
+
+
+
+
+ * These resolutions are rarely used for DVDs because they are fairly low
+ quality.
+
+
+
+ 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.
+
+
+
+
+GOP Size Constraints
+
+ DVD, VCD, and SVCD also constrain you to relatively low
+ GOP (Group of Pictures) sizes.
+ For 30 fps material the largest allows GOP size is 18.
+ For 25 or 25 fps, the maximum is 15.
+ The GOP size is set using the option.
+
+
+
+
+Bitrate Constraints
+
+ 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
+ restrictive 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.
+
+
+
+
+
+Output Options
+
+ MEncoder has options to control the output
+ format.
+ Using these options we can instruct it to create the correct type of
+ file.
+
+
+
+ The options for VCD and SVCD are called xvcd and xsvcd, because they
+ are extended formats.
+ They are not strictly compliant, mainly because the output does not
+ contain scan offsets.
+ If you need to generate an SVCD image, you should pass the output file
+ to
+ vcdimager.
+
+
+
+ VCD:
+
+ -of mpeg -mpegopts format=xvcd
+
+
+
+
+ SVCD:
+
+ -of mpeg -mpegopts format=xsvcd
+
+
+
+
+ DVD:
+
+ -of mpeg -mpegopts format=dvd
+
+
+
+
+Aspect Ratio
+
+ The aspect argument of is used to encode
+ the aspect ratio of the file.
+ During playback the aspect ratio is used to restore the video to the
+ correct size.
+
+
+
+ 16:9 or "Widescreen"
+
+ -lavcopts aspect=16/9
+
+
+
+
+ 4:3 or "Fullscreen"
+
+ -lavcopts aspect=4/3
+
+
+
+
+ 2.35:1 or "Cinemascope" NTSC
+
+ -vf scale=720:368,expand=720:480 -lavcopts aspect=16/9
+
+ To calculate the correct scaling size, use the expanded NTSC width of
+ 854/2.35 = 368
+
+
+
+ 2.35:1 or "Cinemascope" PAL
+
+ -vf scale="720:432,expand=720:576 -lavcopts aspect=16/9
+
+ To calculate the correct scaling size, use the expanded PAL width of
+ 1024/2.35 = 432
+
+
+
+
+
+Sample Rate Conversion
+
+ If the audio sample rate in the original file is not the same as
+ required by the target format, sample rate conversion is required.
+ This is acheived using the and
+ options together.
+
+
+ DVD:
+
+ -srate 48000 -af lavcresample=48000
+
+
+
+ VCD and SVCD:
+
+ -srate 44100 -af lavcresample=44100
+
+
+
+
+
+
+Using libavcodec for VCD/SVCD/DVD Encoding
+
+
+Introduction
+
+ libavcodec can be used to
+ create VCD/SVCD/DVD compliant video by using the appropriate options.
+
+
+
+
+lavcopts
+
+ This is a list of fields in that you may
+ be required to change in order to make a complaint movie for VCD, SVCD,
+ or DVD:
+
+
+
+
+ acodec:
+ for VCD, SVCD, or PAL DVD;
+ 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 is not compliant for any of these formats, but
+ players often have no problem playing it anyway.
+
+
+
+ abitrate:
+ 224 for VCD; up to 384 for SVCD; up to 1536 for DVD, but commonly
+ used values range from 192 kbps for stereo to 384 kbps for 5.1 channel
+ sound.
+
+
+
+ vcodec:
+ for VCD;
+ for SVCD;
+ is usually used for DVD but you may also use
+ for CIF resolutions.
+
+
+
+ keyint:
+ Used to set the GOP size.
+ 18 for 30fps material, or 15 for 25/24 fps material.
+ Commercial producers seem to prefer keyframe intervals of 12.
+ It is possible to make this much larger and still retain compatibility
+ with most players.
+ A of 25 should never cause any problems.
+
+
+
+ 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.
+
+
+
+
+
+Examples
+
+ This is a typical minimum set of for
+ encoding video:
+
+
+ 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
+
+
+
+
+
+
+Advanced Options
+
+ For higher quality encoding, you may also wish to add quality-enhancing
+ options to lavcopts, such as ,
+ , and others.
+ Note that and , 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 to lavcopts.
+ Doing so may help reduce the appearance of blocks in flat-colored areas.
+ Putting it all together, this 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
+
+
+
+
+
+
+
+Encoding Audio
+
+ VCD and SVCD supports MPEG-1 layer II audio, using one of
+ toolame,
+ twolame,
+ or libavcodec's mp2 encoder.
+ The libavcodec mp2 is far from being as good as the other two libraries,
+ however it should always be available to use.
+
+
+
+ For DVD audio, libavcodec's
+ AC3 codec is used.
+
+
+
+toolame
+
+ For VCD and SVCD:
+
+ -oac toolame -toolameopts br=224
+
+
+
+
+
+twolame
+
+ For VCD and SVCD:
+
+ -oac twolame -twolameopts br=224
+
+
+
+
+
+libavcodec
+
+ For DVD with 2 channel sound:
+
+ -oac lavc -lavcopts acodec=ac3:abitrate=192
+
+
+
+ For DVD with 5.1 channel sound:
+
+ -channels 6 -oac lavc -lavcopts acodec=ac3:abitrate=384
+
+
+
+ For VCD and SVCD:
+
+ -oac lavc -lavcopts acodec=mp2:abitrate=224
+
+
+
+
+
+
+
+Putting it all Together
+
+ This section shows some complete commands for creating VCD/SVCD/DVD
+ compliant videos.
+
+
+
+PAL DVD
+
+
+ mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=dvd -vf scale=720:576,\
+ harddup -srate 48000 -af lavcresample=48000 -lavcopts vcodec=mpeg2video:\
+ vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=5000:keyint=15:acodec=ac3:\
+ abitrate=192:aspect=16/9 -ofps 25 \
+ -o movie.mpgmovie.avi
+
+
+
+
+
+NTSC DVD
+
+
+ mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=dvd -vf scale=720:480,\
+ harddup -srate 48000 -af lavcresample=48000 -lavcopts vcodec=mpeg2video:\
+ vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=5000:keyint=18:acodec=ac3:\
+ abitrate=192:aspect=16/9 -ofps 30000/1001 \
+ -o movie.mpgmovie.avi
+
+
+
+
+
+PAL AVI Containing AC3 Audio to DVD
+
+ If the source already has AC3 audio, use -oac copy instead of re-encoding it.
+
+ mencoder -oac copy -ovc lavc -of mpeg -mpegopts format=dvd -vf scale=720:576,\
+ harddup -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:\
+ vbitrate=5000:keyint=15:aspect=16/9 -ofps 25 \
+ -o movie.mpgmovie.avi
+
+
+
+
+
+NTSC AVI Containing AC3 Audio to DVD
+
+ If the source already has AC3 audio, and is NTSC @ 23.976 fps:
+
+ mencoder -oac copy -ovc lavc -of mpeg -mpegopts format=dvd -vf scale=720:480,\
+ harddup -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:\
+ vbitrate=5000:keyint=15:aspect=16/9 -ofps 24000/1001 \
+ -o movie.mpgmovie.avi
+
+
+
+
+
+PAL SVCD
+
+
+ mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=xsvcd -vf \
+ scale=480:576,harddup -srate 44100 -af lavcresample=44100 -lavcopts \
+ vcodec=mpeg2video:mbd=2:keyint=15:vrc_buf_size=917:vrc_minrate=600:\
+ vbitrate=2500:vrc_maxrate=2500:acodec=mp2:abitrate=224 -ofps 25 \
+ -o movie.mpgmovie.avi
+
+
+
+
+
+NTSC SVCD
+
+
+ mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=xsvcd -vf \
+ scale=480:480,harddup -srate 44100 -af lavcresample=44100 -lavcopts \
+ vcodec=mpeg2video:mbd=2:keyint=18:vrc_buf_size=917:vrc_minrate=600:\
+ vbitrate=2500:vrc_maxrate=2500:acodec=mp2:abitrate=224 -ofps 30000/1001 \
+ -o movie.mpgmovie.avi
+
+
+
+
+
+PAL VCD
+
+
+ mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=xvcd -vf \
+ scale=352:288,harddup -srate 44100 -af lavcresample=44100 -lavcopts \
+ vcodec=mpeg1video:keyint=15:vrc_buf_size=327:vrc_minrate=1152:vbitrate=1152:\
+ vrc_maxrate=1152:acodec=mp2:abitrate=224 -ofps 25 \
+ -o movie.mpgmovie.avi
+
+
+
+
+
+NTSC VCD
+
+
+ mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=xvcd -vf \
+ scale=352:240,harddup -srate 44100 -af lavcresample=44100 -lavcopts \
+ vcodec=mpeg1video:keyint=18:vrc_buf_size=327:vrc_minrate=1152:vbitrate=1152:\
+ vrc_maxrate=1152:acodec=mp2:abitrate=224 -ofps 30000/1001 \
+ -o movie.mpgmovie.avi
+
+
+
+
+
+
+How to deal with telecine and interlacing within NTSC DVDs