2009年07月04日 DVD-VIDEO焼きスクリプト on Libretto U100 [長年日記]
_ DVD-VIDEO焼きスクリプト on Libretto U100
念願のDVD-VIDEO焼きスクリプト完成。AUDIO_TSディレクトリ以下が空っぽは問題なかった。
dvd2dvd.sh
#! /bin/sh
if [ "X$1" = "X-h" -o "X$1" = "X--help" ]
then
echo "Usage : dvd2dvd.sh [-sp speed] [-rw] [-2] [-s hh:mm:ss] [ -e hh:mm:ss] [-t title] [-c chapter] [-a aspect] [-vb vbitrate] [-ab abitrate] [-f fps] [-al audio_lang] [-sl subtitle_lang]"
echo ""
echo " -sp speed : write power (default 4)"
echo " -rw : DVD-RW"
echo " -2 : 2-pass"
echo " -s start_time : start position time"
echo " -e end_time : pass time"
echo " -t title : title number (default 1)"
echo " -c chapter : chapter (default 1)"
echo " -a aspect : aspect 16/9 or 4/3 (default 16/9)"
echo " -vb vbitrate : video bitrate (kbit) (default 5000)"
echo " -ab abitrate : audio bitrate (kbit) (default 192)"
echo " -f fps : frame per second 30000/1001 or 24000/1001 (default 30000/1001)"
echo " -al audio_lang : audio language (default ja,en)"
echo " -ai audio_id : audio id"
echo " -sl subtitle_lang : subtitle language (default none)"
echo " -si subtitle_id : subtitle id "
exit 0
fi
#
speed="4"
rw=no
pass="1"
start=""
end=""
title="1"
chapter="1"
aspect=16/9
vbitrate=5000
abitrate=192
ofps=30000/1001
alang="ja"
aid=""
slang=""
sid=""
#
while [ $# != 0 ]
do
case $1 in
-sp )
shift
speed="$1"
;;
-rw )
rw=yes
;;
-2 )
pass=2
;;
-s )
shift
start="-ss $1"
;;
-e )
shift
end="-endpos $1"
;;
-t )
shift
title="$1"
;;
-c )
shift
chapter="$1"
;;
-a )
shift
aspect=$1
;;
-vb )
shift
vbitrate="$1"
;;
-ab )
shift
abitrate="$1"
;;
-f )
shift
ofps="$1"
;;
-al )
shift
alang="$1"
;;
-ai )
shift
aid="$1"
;;
-sl )
shift
slang="$1"
;;
-si )
shift
sid="$1"
;;
esac
shift
done
#
if [ "X${alang}" = "X" ]
then
alang_opt=""
else
alang_opt="-alang ${alang}"
fi
#
if [ "X${aid}" = "X" ]
then
aid_opt=""
else
aid_opt="-aid ${aid}"
fi
#
if [ "X${slang}" = "X" ]
then
slang_opt=""
else
slang_opt="-slang ${slang}"
fi
#
if [ "X${sid}" = "X" ]
then
sid_opt=""
else
sid_opt="-sid ${sid}"
fi
#
function menc() {
pass=$1
filename=$2
if [ "X${pass}" = "X0" ]
then
vpass=""
else
vpass="vpass=${pass}:"
fi
mencoder dvd://${title} -chapter ${chapter} \
${start} ${end} \
${alang_opt} ${aid_opt} \
${slang_opt} ${sid_opt} \
-oac lavc \
-ovc lavc \
-of mpeg \
-mpegopts format=dvd:tsaf \
-vf scale=720:480,harddup \
-srate 48000 \
-af lavcresample=48000 \
-lavcopts ${vpass}vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=${vbitrate}:keyint=18:vstrict=0:acodec=ac3:abitrate=${abitrate}:aspect=${aspect} \
-ofps ${ofps} \
-o ${filename}
}
#
if [ "X${pass}" = "X1" ]
then
menc 0 dvd2dvd.mpg.tmp
else
menc 1 /dev/null
menc 2 dvd2dvd.mpg.tmp
fi
#
cat >dvd2dvd.xml.tmp <<_EOF_
<dvdauthor>
<vmgm />
<titleset>
<titles>
<pgc>
<vob file="dvd2dvd.mpg.tmp" chapters="0,5:00,10:00,15:00,20:00,25:00,30:00,35:00,40:00,45:00,50:00,55:00,1:00:00,1:05:00,1:10:00,1:15:00,1:20:00,1:25:00,1:30:00,1:35:00,1:40:00,1:45:00,1:50:00,1:55:00,2:00:00,2:05:00,2:10:00,2:15:00,2:20:00,2:25:00,2:30:00,2:35:00,2:40:00,2:45:00,2:50:00,2:55:00,3:00:00" />
</pgc>
</titles>
</titleset>
</dvdauthor>
_EOF_
dvdauthor -o dvd2dvd.dir.tmp -x dvd2dvd.xml.tmp
#
mkisofs -o dvd2dvd.img.tmp -dvd-video dvd2dvd.dir.tmp/
#
eject /dev/dvd
echo ""
echo ================================================
echo Change to BLANK DVD-R and hit ENTER to continue.
echo ================================================
read
#
if [ "X${rw}" = "Xyes" ]
then
dvdrecord dev=2,0,0 speed=${speed} blank=fast
fi
dvdrecord -v dev=2,0,0 speed=${speed} -dao dvd2dvd.img.tmp
eject /dev/dvd
#
rm -fr dvd2dvd.*.tmp
参考 :
[ツッコミを入れる]