summaryrefslogtreecommitdiffstats
path: root/TOOLS/mencvcd.sh
diff options
context:
space:
mode:
Diffstat (limited to 'TOOLS/mencvcd.sh')
-rwxr-xr-xTOOLS/mencvcd.sh440
1 files changed, 0 insertions, 440 deletions
diff --git a/TOOLS/mencvcd.sh b/TOOLS/mencvcd.sh
deleted file mode 100755
index 6e2650f85a..0000000000
--- a/TOOLS/mencvcd.sh
+++ /dev/null
@@ -1,440 +0,0 @@
-#!/bin/bash
-#
-# Version: 0.2.2
-#
-# Licence: GPL
-#
-# 2002/09/21 Jürgen Hammelmann <juergen.hammelmann@gmx.de>
-#
-# Script: MPlayer Sources (DVD) to (S)VCD ripping and burning
-#
-# requires: mplayer
-# mjpegtools
-# vcdimager
-# cdrdao
-# lame (optionally)
-# toolame (optionally)
-# sox (optionally)
-
-for exe in mplayer mpeg2enc mp2enc mplex yuvscaler ; do
- if [ -z "`which $exe`" ]; then
- echo "ERROR: $exe must be in your path $PATH!"
- exit 1
- fi
-done
-for exe in vcdimager lame cdrdao yuvdenoise sox toolame normalize; do
- if [ -z "`which $exe`" ]; then
- echo "WARNING: $exe is not found in your path $PATH!"
- fi
-done
-
-################################################################################
-#
-# 2002/04/11 v0.1.0: first version
-# 2002/04/12 v0.1.1:
-# 2002/04/14 v0.1.2:
-# - handles now multiple vcd's
-# - support's mp3 audio as option
-# - use of mp2enc/lame instead of toolame because of support
-# of resampling and mp3
-# 2002/04/16 v0.1.3:
-# - new option "-burnonly"
-# - new option "-vbr"
-# - removes mpg file after mastering cd image
-# (mplayer can read bin images!)
-# - bugfixes
-# 2002/04/22 v0.1.4
-# - bugfixes / changes
-# - more options
-# 2002/05/06 v0.1.5
-# - new option "-norm"
-# 2002/05/08 v0.1.6
-# - bugfixes
-# - new option "-vfr"
-# - "-norm" renamed to "-vnorm"
-# 2002/05/15 v0.1.7
-# - bugfixes
-# - more help
-# 2002/05/26 v0.1.8
-# - new option "-sync"
-# 2002/06/19 v0.1.9
-# - new option "-mpgonly"
-# 2002/09/21 v0.1.10
-# - 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
-# 2002/11/18 v0.2.1
-# - aspect ratio for vcd's, too
-# - pulldown mode...
-# 2002/12/01 v0.2.2
-# - -normalize
-#
-################################################################################
-#
-# global config section, change them to your needs!
-
-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
-CDMAXSIZE=800
-
-################################################################################
-AUDIO="audiodump.wav"
-VIDEO="stream.yuv"
-VCDMODE=2
-SVCDMODE=5
-################################################################################
-
-usage() {
- echo "Usage: $HOWCALLED <basename> [$HOWCALLED options] [mplayer options]"
- echo
- echo " <basename> is used as basename of the resulting mpg/bin files."
- echo
- echo "For mplayer options see mplayer help and manual."
- echo
- echo "$HOWCALLED options:"
- echo
- 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 "-normalize use 'normalize'."
- echo "-overburn enables overburning a cd."
- echo "-pulldown enable pulldown mode in output."
- 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 "'$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"
- echo "and output frame rate 23.98 fps because of the 3:2 pulldown method in NTSC."
- echo
- echo "'$HOWCALLED bj -size 640x272 -vf expand=640:480:0:104:0 \\"
- echo " -cdsize 645 -noburn bj.avi'"
- echo "this example above shows you, how to deal with movies which are not"
- echo "created with aspect ratios of 4:3 or 16:9."
-}
-
-HOWCALLED=`basename $0`
-if [ $# -le 1 ]; then
- usage
- exit 1
-fi
-case $1 in
- -*)
- usage
- exit 1
- ;;
- *)
- NAME=$1
- shift 1
- ;;
-esac
-
-cd $TMPDIR
-rm -f $VIDEO
-rm -f $AUDIO
-# create a named pipe for video stream
-mkfifo -m 660 $VIDEO
-
-# some inits
-sub=""
-size=""
-aratio=""
-ratio=""
-params=""
-wide=""
-blank=0
-burn=1
-burnonly=0
-mp3=0
-mpgonly=0
-mkstream=1
-abr=224
-abrset=0
-asr=44100
-vbr=1152
-vbrset=0
-denoise="cat -"
-vnorm="VCD"
-mplexnorm="-f $VCDMODE -m 1 -V -b 46"
-imaget="-t vcd2"
-yuvin=""
-framerate=""
-sync=""
-sox=0
-toolame=0
-volume="1.0"
-overburn=""
-pd=""
-norm=0
-
-while [ "$1"x != "x" ]; do
- case $1 in
- -a)
- aratio="-a $2"
- shift 1
- ;;
- -w)
- wide="-M WIDE2STD"
- ;;
- -h|-?)
- usage
- exit 0
- ;;
- -abr)
- abr=$2
- abrset=1
- shift 1
- ;;
- -asr)
- asr=$2
- shift 1
- ;;
- -cdsize)
- CDMAXSIZE=$2
- shift 1
- ;;
- -blank)
- blank=1
- ;;
- -noburn)
- burn=0
- ;;
- -burnonly)
- burnonly=1
- burn=1
- ;;
- -overburn)
- overburn="--overburn"
- ;;
- -pulldown)
- pd="-p"
- ;;
- -vfr)
- framerate="-F $2"
- shift 1
- ;;
- -mp3)
- mp3=1
- ;;
- -mpegsrc)
- mkstream=0
- ;;
- -mpgonly)
- mpgonly=1
- ;;
- -normalize)
- norm=1
- ;;
- -vnorm)
- yuvin="-n $2"
- shift 1
- ;;
- -volume)
- volume="$2"
- shift 1
- ;;
- -denoise)
- denoise="yuvdenoise"
- ;;
- -ratio)
- ratio=$2
- shift 1
- ;;
- -sid) # mplayer option: have to set vf expand, too!!!
- sub="-vf pp,expand=-1:-1:-1:-1:1 -sid $2"
- shift 1
- ;;
- -size)
- size=$2
- shift 1
- ;;
- -svcdout)
- vnorm="SVCD"
- ;;
- -sync)
- sync="-O $2"
- shift 1
- ;;
- -sox)
- sox=1
- ;;
- -toolame)
- toolame=1
- ;;
- -vbr)
- vbr=$2
- vbrset=1
- shift 1
- ;;
- *)
- params="$params $1"
- ;;
- esac
- shift 1
-done
-
-# some configs
-mpegnorm="-f $VCDMODE -b $vbr -B 260 -V 46"
-if [ "$vnorm" = "SVCD" ]; then
- [ $vbrset -eq 0 ] && vbr=2500
- mplexnorm="-f $SVCDMODE -m 2 -V -b 230"
- mpegnorm="-f $SVCDMODE -b $vbr -B 260 -V 230"
- imaget="-t svcd"
-fi
-
-# ratio overwrites wide sizing, size overwrites default frame size
-[ -n "$ratio" ] && wide="-M $ratio"
-[ -n "$size" ] && size="-O SIZE_$size"
-
-# with mp3 audio set the default audio bitrate to 128 kbs
-[ $mp3 -eq 1 -a $abrset -eq 0 ] && abr=128
-
-# audio sample rate in kHz
-a=$(($a=$asr / 1000))
-b=$(($b=$asr % 1000))
-[ $b -le 9 ] && b="00$b00"
-[ $b -le 99 ] && b="0$b00"
-kasr="$a.$b"
-
-# start de-/encoding
-if [ $burnonly -eq 0 ]; then
- # encode streams
- if [ $mkstream -eq 1 ]; then
- # start mplayer
- command="mplayer -noframedrop -vo yuv4mpeg -ao pcm:waveheader -v -osdlevel 0 $sub $params"
- echo "$command"
- $command &
-
- # mjpegtools
- ($denoise < $VIDEO | \
- yuvscaler -v 0 $wide -O $vnorm $size $yuvin | \
- mpeg2enc -v 0 -s $mpegnorm $aratio -S $CDMAXSIZE -g 6 -G 15 -r 16 \
- $pd $framerate $yuvin -4 2 -2 1 -o $NAME.mpv) &
-
- # wait for finishing the subprocesses
- wait
-
- # normalize sound
- [ $norm -eq 1 ] && (echo "normalizing sound..."; normalize $AUDIO)
-
- # 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
- elif [ $mp3 -ne 0 ]; then
- echo "wait, encoding to mp3 audio with lame..."
- lame -b $abr --resample $kasr - $NAME.mpa < $AUDIO
- fi
- fi
-
- # remove wav file, won't need anymore!
- rm -f $AUDIO
-
- # multiplex streams
- [ -f $NAME.mpv -a -f $NAME.mpa ] || exit 1
- rm -f ${NAME}*.mpg
- mplex $mplexnorm $sync $NAME.mpv $NAME.mpa -o ${NAME}%d.mpg
-
- # remove pipe, won't need anymore!
- rm -f $VIDEO
-
- # should i create only the mpeg file?
- [ $mpgonly -eq 1 ] && exit 0
-
- # create cd images
- for mpg in ${NAME}*.mpg; do
- [ -f $mpg ] || exit 1
- cue="`basename $mpg .mpg`.cue"
- bin="`basename $mpg .mpg`.bin"
- rm -f $cue $bin
- vcdimager $imaget -c $cue -b $bin $mpg
- [ -f $bin -a -f $cue ] && rm -f $mpg
- done
-
-# end of streaming/mastering
-fi
-
-# burn the (s)vcd's
-[ $burn -eq 0 ] && exit 0
-
-for cue in ${NAME}*.cue; do
- bin="`basename $cue .cue`.bin"
- [ -f $bin -a -f $cue ] || exit 1
-
- echo "please insert a cd in your cdwriter, after a keypress we start:"
- read -n 1 i
-
- if [ $blank -eq 1 ]; then
- cdrdao blank --reload $CDDEV --driver $CDDRV --blank-mode minimal
- fi
- cdrdao write $overburn --reload $CDDEV --driver $CDDRV $cue
-done
-exit 0