[Mplayer-cvslog] CVS: main/TOOLS mencvcd,1.10,1.11

Johannes Feigl jaf at mplayerhq.hu
Sat Nov 2 18:27:26 CET 2002


Update of /cvsroot/mplayer/main/TOOLS
In directory mail:/var/tmp.root/cvs-serv12859

Modified Files:
	mencvcd 
Log Message:
mencvcd 0.2 by Juergen Hammelmann <juergen.hammelmann at gmx.de>

Index: mencvcd
===================================================================
RCS file: /cvsroot/mplayer/main/TOOLS/mencvcd,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- mencvcd	21 Sep 2002 21:54:42 -0000	1.10
+++ mencvcd	2 Nov 2002 17:27:23 -0000	1.11
@@ -1,6 +1,6 @@
 #!/bin/sh
 #
-# Version:          0.1.10
+# Version:          0.2
 #
 # Licence:          GPL
 #
@@ -8,12 +8,13 @@
 #
 # Script:           MPlayer Sources (DVD) to (S)VCD ripping and burning
 #
-# requires:         newest mplayer cvs version
-#                   mjpegtools v1.6 beta
+# requires:         mplayer
+#                   mjpegtools
 #                   vcdimager
 #                   cdrdao
-#                   lame
-#
+#                   lame    (optionally)
+#                   toolame (optionally)
+#                   sox     (optionally)
 
 for exe in mplayer mpeg2enc mp2enc mplex yuvscaler ; do
 	if [ -z "`which $exe`" ]; then
@@ -21,7 +22,7 @@
 		exit 1
 	fi
 done
-for exe in vcdimager lame cdrdao yuvdenoise ; do
+for exe in vcdimager lame cdrdao yuvdenoise sox toolame ; do
         if [ -z "`which $exe`" ]; then
                 echo "WARNING: $exe is not found in your path $PATH!"
 	fi
@@ -62,6 +63,11 @@
 #                     - bug fixes
 #                     - tests now, if the commands are in path and give warnings
 #                       and errors.
+# 2002/11/01        v0.2
+#                     - bug fixes
+#                     - new options: "-sox", "-volume", "-toolame"
+#                     - renamed "-mpg" to "-mpegsrc"
+#                     - default cd size changed to 800mb
 #
 ################################################################################
 #
@@ -69,9 +75,10 @@
 
 TMPDIR="." # path to directory for creating temporary files, recommended 2-3GB space
 
-CDDRV="generic-mmc" # cdrdao: cdwriter driver
-CDDEV="--device 0,1,0" # or comment out and create link /dev/cdrecorder to your cdwriter dev
-
+CDDRV="generic-mmc"    # cdrdao: cdwriter driver
+CDDEV="--device 0,1,0" # or comment out and create link /dev/cdrecorder 
+                       # to your cdwriter dev
+CDMAXSIZE=800
 
 ################################################################################
 AUDIO="audiodump.wav"
@@ -81,50 +88,65 @@
 ################################################################################
 
 function usage() {
-   echo "usage: $HOWCALLED <name> [options] [mplayer options]"
+   echo "Usage: $HOWCALLED <name> [$HOWCALLED options] [mplayer options]"
+   echo
+   echo "For mplayer options see mplayer help and manual."
    echo
    echo "$HOWCALLED options:"
    echo
-   echo "-?|-h         help."
-   echo "-abr <n>      output audio bitrate in kbs [224]."
-   echo "-asr <n>      output audio sample rate in Hz [44100]."
-   echo "-blank        cleans cd-rw before burning."
-   echo "-burnonly     burn only the premastered <name>*.cue/<name>*.bin images."
-   echo "-cdsize <n>   maximal size of cd images [700]."
-   echo "-denoise      denoises mpeg stream."
-   echo "-mp3          outputs audio in mp3 instead of mp2 format."
-   echo "-mpg          don't encode from source, multiplex/burn."
-   echo "              only the encoded mpg stream."
-   echo "-mpgonly      do only encoding to mpeg 1/2 format."
-   echo "-noburn       disables burning."
-   echo "-ratio <s>    output ratio size of frames, see yuvscaler (1)."
-   echo "-size <X>x<Y> sets output size of frames."
-   echo "-svcdout      encode to SVCD format [VCD default]."
-   echo "-sync <n>     set the presentation timestamp offset of video"
-   echo "              stream w.r.t. audio stream (video-audio) in mSec."
-   echo "-vbr <n>      output video bitrate in kbs [VCD:1152, SVCD:2500]."
-   echo "-vfr <n>      sets the frame-rate of the output-stream. Currently"
-   echo "              only the standard MPEG rates are supported."
-   echo "              0 - illegal"
-   echo "              1 - 24000.0/1001.0 (NTSC 3:2 pulldown converted FILM)"
-   echo "              2 - 24.0 (NATIVE FILM)"
-   echo "              3 - 25.0 (PAL/SECAM VIDEO / converted FILM)"
-   echo "              4 - 30000.0/1001.0 (NTSC VIDEO)"
-   echo "              5 - 30.0"
-   echo "              6 - 50.0 (PAL FIELD RATE)"
-   echo "              7 - 60000.0/1001.0 (NTSC FIELD RATE)"
-   echo "              8 - 60.0"
-   echo "-vnorm p|n|s  sets the input video norm p, n or s:"
-   echo "              forces the input stream to be treated as PAL|NTSC|SECAM"
-   echo "              regardless  of  what the stream header might suggest."
-   echo "-w            outputs in wide screen format 16:9."
+   echo "-?|-h           help."
+   echo "-a <n>          sets the aspect ratio (for SVCD):"
+   echo "                1 - 1:1 display"
+   echo "                2 - 4:3 display"
+   echo "                3 - 16:9 display"
+   echo "                4 - 2.21:1 display"
+   echo "-abr <n>        output audio bitrate in kbs [224]."
+   echo "-asr <n>        output audio sample rate in Hz [44100]."
+   echo "-blank          cleans cd-rw before burning."
+   echo "-burnonly       burn only the premastered <name>*.cue/<name>*.bin images."
+   echo "-cdsize <n>     maximal size of cd images [800 = 80min raw cd]."
+   echo "-denoise        denoises mpeg stream."
+   echo "-mp3            outputs audio in mp3 instead of mp2 format."
+   echo "-mpegsrc        don't encode from source, multiplex/burn the "
+   echo "                encoded mpg stream."
+   echo "-mpgonly        do only encoding to mpeg 1/2 format."
+   echo "-noburn         disables burning."
+   echo "-ratio <s>      output ratio size of frames, see yuvscaler (1)."
+   echo "-size <X>x<Y>   sets output size of frames."
+   echo "-sox            use sox for audio resampling."
+   echo "-svcdout        encode to SVCD format [VCD default]."
+   echo "-sync <n>       set the presentation timestamp offset of video"
+   echo "                stream w.r.t. audio stream (video-audio) in mSec."
+   echo "-toolame        use toolame instead of mp2enc."
+   echo "-v <volume>     change  amplitude  (floating  point); less than 1.0"
+   echo "                decreases, greater than 1.0 increases. Use that only"
+   echo "                together with sox!"
+   echo "-vbr <n>        output video bitrate in kbs [VCD:1152, SVCD:2500]."
+   echo "-vfr <n>        sets the frame-rate of the output-stream. Currently"
+   echo "                only the standard MPEG rates are supported:"
+   echo "                0 - illegal"
+   echo "                1 - 24000.0/1001.0 (NTSC 3:2 pulldown converted FILM)"
+   echo "                2 - 24.0 (NATIVE FILM)"
+   echo "                3 - 25.0 (PAL/SECAM VIDEO / converted FILM)"
+   echo "                4 - 30000.0/1001.0 (NTSC VIDEO)"
+   echo "                5 - 30.0"
+   echo "                6 - 50.0 (PAL FIELD RATE)"
+   echo "                7 - 60000.0/1001.0 (NTSC FIELD RATE)"
+   echo "                8 - 60.0"
+   echo "-vnorm <p|n|s>  sets the input video norm p, n or s:"
+   echo "                forces the input stream to be treated as PAL|NTSC|SECAM"
+   echo "                regardless  of  what the stream header might suggest."
+   echo "-w              outputs in wide screen format 16:9."
    echo
    echo "examples:"
    echo
+   echo "'$HOWCALLED teneriffa teneriffa.avi'"
+   echo "this creates a VCD from an avi file."
+   echo
    echo "'$HOWCALLED crazy -dvd 3 -w':"
    echo "encodes and burns dvd title 3 to VCD in 16:9."
    echo
-   echo "'mencvcd carter -dvd 1 -sid 0 -aid 128 -ss 3:00 -frames 1500 \\"
+   echo "'$HOWCALLED carter -dvd 1 -sid 0 -aid 128 -ss 3:00 -frames 1500 \\"
    echo "        -noburn -vnorm n -vfr 1':"
    echo "this encodes 1500 frames of dvd title 1 with subtitle 0 and audio stream"
    echo "128 starting from 3:00 with frame rate 29.97 fps and input video norm NTSC"
@@ -148,6 +170,7 @@
 # some inits
 sub=""
 size=""
+aratio=""
 ratio=""
 params=""
 wide=""
@@ -165,15 +188,20 @@
 denoise="cat -"
 norm="VCD"
 mplexnorm="-f $VCDMODE -m 1 -V -b 46"
-max=700
-mpegnorm="-f $VCDMODE -b $vbr -B 260 -V 46"
 imaget="-t vcd2"
 yuvin=""
 framerate=""
 sync=""
+sox=0
+toolame=0
+volume="1.0"
 
 while [ "$1"x != "x" ]; do
    case $1 in
+      -a)
+        aratio="-a $2"
+	shift 1
+        ;;
       -w)
       	wide="-M WIDE2STD"
 	;;
@@ -191,7 +219,7 @@
         shift 1
         ;;
       -cdsize)
-        max=$2
+        CDMAXSIZE=$2
         shift 1
         ;;
       -blank)
@@ -211,7 +239,7 @@
       -mp3)
         mp3=1
         ;;
-      -mpg)
+      -mpegsrc)
       	mkstream=0
 	;;
       -mpgonly)
@@ -221,6 +249,10 @@
         yuvin="-n $2"
 	shift 1
 	;;
+      -volume)
+        volume="$2"
+	shift 1
+	;;
       -denoise)
         denoise="yuvdenoise"
         ;;
@@ -243,6 +275,12 @@
         sync="-O $2"
 	shift 1
 	;;
+      -sox)
+        sox=1
+	;;
+      -toolame)
+        toolame=1
+	;;
       -vbr)
         vbr=$2
         vbrset=1
@@ -256,15 +294,11 @@
 done
 
 # some configs
+mpegnorm="-f $VCDMODE -b $vbr -B 260 -V 46"
 if [ "$norm" == "SVCD" ]; then
    [ $vbrset -eq 0 ] && vbr=2500
    mplexnorm="-f $SVCDMODE -m 2 -V -b 230"
-   if [ -n "$wide" ]; then
-     wide=""
-     mpegnorm="-f $SVCDMODE -b $vbr -B 260 -V 230 -a 3"
-   else
-     mpegnorm="-f $SVCDMODE -b $vbr -B 260 -V 230 -a 2"
-   fi
+   mpegnorm="-f $SVCDMODE -b $vbr -B 260 -V 230 $aratio"
    imaget="-t svcd"
 fi
 
@@ -287,23 +321,38 @@
    # encode streams
    if [ $mkstream -eq 1 ]; then
       # start mplayer
-      mplayer -noframedrop -vo yuv4mpeg -ao pcm -waveheader -benchmark \
-              -v -osdlevel 0 $sub $params &
-
+      command="mplayer -noframedrop -vo yuv4mpeg -ao pcm -waveheader -v -osdlevel 0 $sub $params"
+      echo "$command"
+      $command &
+      
       # mjpegtools
       ($denoise < $VIDEO | \
          yuvscaler -v 0 $wide -O $norm $size $yuvin | \
-         mpeg2enc -v 0 -s $mpegnorm -S $max -g 6 -G 15 -r 16 \
+         mpeg2enc -v 0 -s $mpegnorm -S $CDMAXSIZE -g 6 -G 15 -r 16 \
 	          $framerate $yuvin -4 2 -2 1 -o $NAME.mpv) &
    
       # wait for finishing the subprocesses
       wait
 
-      if [ $mp3 -eq 0 ]; then
+      # do resampling with sox
+      if [ $sox -ne 0 ]; then
+	echo "wait, do resampling with sox..."
+	sox $AUDIO -v $volume -r $asr $NAME.wav resample -qs
+	mv -f $NAME.wav $AUDIO
+      fi
+
+      if [ $toolame -ne 0 -a $mp3 -eq 0 ]; then
+	# do mp2 encoding with toolame
+	echo "wait, encoding to mp2 audio with toolame..."
+	toolame -b $abr $AUDIO
+	mv -f `basename $AUDIO .wav`.mp2 $NAME.mpa
+      elif [ $toolame -eq 0 -a $mp3 -eq 0 ]; then 
         # mp2enc/lame can't read audiodump.wav directly from named pipe,
         # we have to read the whole file.
+	echo "wait, encoding to mp2 audio with mp2enc..."
         mp2enc -b $abr -r $asr -o $NAME.mpa < $AUDIO
-      else
+      elif [ $mp3 -ne 0 ]; then
+	echo "wait, encoding to mp3 audio with lame..."
         lame -b $abr --resample $kasr - $NAME.mpa < $AUDIO
       fi
    fi




More information about the MPlayer-cvslog mailing list