#!/bin/bash # make-dvd # count_zero 2006 # Distributed under the GPLv2 # Converts any video file into DVD-compatible format # Usage: make-dvd # #### Configuration Section #### # Set aspect ratio (set '2' for 4:3 or '3' for 16:9) aspectratio=2 # Set the format and framerate (29.97 for NTSC or 25 for PAL) format=ntsc framerate=29.97 ############################### #### Set some important variables #### inputmovie=$1 movie=`echo $inputmovie | sed 's/\.[a-zA-Z0-9]*$//'` #### Convert the video to avi (if needed) and transcode to DVD-compatible audio and video #### if [[ `echo $movie | sed 's/^.*\.//'` = 'avi' ]] then transcode -i "$inputmovie" -y ffmpeg --export_prof dvd-$format --export_asr $aspectratio -o "[MAKE-DVD]$movie" -D0 -b224 -N 0x2000 -s2 -m "[MAKE-DVD]$movie-mono.ac3" -J modfps=clonetype=3 --export_fps $framerate else mencoder -o "[MAKE-DVD]$movie.avi" -ovc lavc -lavcopts vbitrate=5000:vhq -ffourcc DX50 -oac pcm -srate 48000 -ofps $framerate "$inputmovie" transcode -i "[MAKE-DVD]$movie.avi" -y ffmpeg --export_prof dvd-$format --export_asr $aspectratio -o "[MAKE-DVD]$movie" -D0 -b224 -N 0x2000 -s2 -m "[MAKE-DVD]$movie-mono.ac3" -J modfps=clonetype=3 --export_fps $framerate fi #### Does the movie have surround sound? If not, fake it #### if [[ `mplayer -vo dummy -identify "[MAKE-DVD]$movie.avi" 2> /dev/null | grep "5.1 ("` ]] then echo '***Audio stream is already 5.1 surround! Using existing stream.' tcextract -d2 -i "[MAKE-DVD]$movie.avi" -a0 -x ac3 | tcextract -d2 -x ac3 -t raw > "[MAKE-DVD]$movie-surround.ac3" else echo '***Audio stream is not surround. Faking 5.1 surround sound.' ffmpeg -i "[MAKE-DVD]$movie-mono.ac3" "[MAKE-DVD]$movie-mono.wav" sox -V "[MAKE-DVD]$movie-mono.wav" -r 48000 -c1 "[MAKE-DVD]$movie-left.wav" avg -l sox -V "[MAKE-DVD]$movie-mono.wav" -r 48000 -c1 "[MAKE-DVD]$movie-right.wav" avg -r cp "[MAKE-DVD]$movie-left.wav" "[MAKE-DVD]$movie-left_surround.wav" cp "[MAKE-DVD]$movie-right.wav" "[MAKE-DVD]$movie-right_surround.wav" soxmix -V "[MAKE-DVD]$movie-left.wav" "[MAKE-DVD]$movie-right.wav" -r 48000 -c1 "[MAKE-DVD]$movie-center.wav" sox -V -v 0.5 "[MAKE-DVD]$movie-center.wav" "[MAKE-DVD]$movie-lfe.wav" lowp 150 multimux -d 0,0,0,15,15,0 "[MAKE-DVD]$movie-left.wav" "[MAKE-DVD]$movie-center.wav" "[MAKE-DVD]$movie-right.wav" "[MAKE-DVD]$movie-left_surround.wav" "[MAKE-DVD]$movie-right_surround.wav" "[MAKE-DVD]$movie-lfe.wav" -o "[MAKE-DVD]$movie-surround.wav" ffmpeg -i "[MAKE-DVD]$movie-surround.wav" -ab 384 -ar 48000 -ac 6 "[MAKE-DVD]$movie-surround.ac3" fi #### Delete some temporary files to free up some space #### rm -f "[MAKE-DVD]$movie-mono.ac3" "[MAKE-DVD]$movie-mono.wav" "[MAKE-DVD]$movie-left.wav" "[MAKE-DVD]$movie-right.wav" "[MAKE-DVD]$movie-left_surround.wav" "[MAKE-DVD]$movie-right_surround.wav" "[MAKE-DVD]$movie-center.wav" "[MAKE-DVD]$movie-lfe.wav" "[MAKE-DVD]$movie.avi" #### Combine the audio and video into DVD-compatible mpeg2 #### mplex -f 8 -o "[DVD]$movie.mpg" "[MAKE-DVD]$movie.m2v" "[MAKE-DVD]$movie-surround.ac3" #### Remove the temporary files #### #rm -f "[MAKE-DVD]$movie*"