Ginko Guru


Joined: 01 May 2002 Posts: 371 Location: nearby my linux laptop
|
Posted: Wed Oct 22, 2003 12:47 pm Post subject: [TIP] Masterizzare un SVCD con gentoo |
|
|
Ciao,
come da oggetto. Avete bisogno di
media-video/transcode
media-video/mjpegtools
media-video/vcdimager
app-cdr/cdrdao
media-video/mplayer
Lo script per rendere l'operazione piu' semplice e' :
Code: | #!/bin/sh
#
######################################################################
#
# __ ___ __ ______ ____________
# / |/ /___ _/ /_____ / ___/ | / / ____/ __ \
# / /|_/ / __ `/ //_/ _ \ \__ \| | / / / / / / /
# / / / / /_/ / ,< / __/ ___/ /| |/ / /___/ /_/ /
# /_/ /_/\__,_/_/|_|\___/____/____/ |___/\____/_____/
# /_____/
#
# Created on: Thu Oct 16 22:32:16
# Author: Gianluca rotoni, Software Engineer
#
# Copyright (C) 2003 Gianluca Rotoni <gianluca@rotoni.com>
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
#
######################################################################
#
# Create, burn and play an SVCD out of a mpeg file
#
# Binaries locations
#
ECHO=/bin/echo
RM=/bin/rm
MKDIR=/bin/mkdir
#
# Print header
#
$ECHO "Make_SVCD (c) Rotoni Gianluca"
$ECHO "A GPL script to create, burn and play SVCD"
$ECHO
#
# Check whether all required software is installed
#
err=0
for bin in transcode mplex vcdimager cdrdao mplayer mpeg2enc; do
type $bin >/dev/null 2>&1
if [ $? -ne 0 ]; then
err=1
$ECHO "$bin not found"
fi
done
if [ $err -eq 1 ]; then
$ECHO "Missing vital software, please install before continuing"
exit 1
fi
#
# Read autoconfig, if exist
#
if [ ! -z $HOME -a -f $HOME/.makesvcdrc ]; then
source $HOME/.makesvcdrc
fi
#
# Read user settings
#
$ECHO -n "Enter location of source movie file [$src_prev]: "
read src
if [ -z $src ]; then
src=$src_prev
fi
if [ -z $src ]; then
$ECHO "Must specify a source file"
exit 1
fi
if [ ! -f $src ]; then
$ECHO "$src no such file or directory"
exit 1
fi
$ECHO -n "Enter destination directory [$destdir_prev]: "
read destdir
if [ -z $destdir ]; then
destdir=$destdir_prev
fi
if [ -z $destdir ]; then
destdir=.
fi
if [ ! -d $destdir ]; then
$ECHO -n "$destdir not found, creating... "
$MKDIR $destdir 2>/dev/null
if [ $? -ne 0 ]; then
$ECHO "nok!"
exit 1
else
$ECHO "done!"
fi
fi
$ECHO -n "Enter output base filename [$filename_prev]: "
read filename
if [ -z $filename ]; then
filename=$filename_prev
fi
if [ -z $filename ]; then
$ECHO "Must specify a file name!"
exit 1
fi
$ECHO -n "Enter movie title [$filename] : "
read title
if [ -z "$title" ]; then
title=$filename
fi
$ECHO -n "Shall I delete all working files after the creation process (y/N)? "
read delete
if [ -z $delete ]; then
delete="N"
fi
$ECHO -n "Shall I burn the SVCD right after the creation process (y/N)? "
read burn
if [ -z $burn ]; then
burn="N"
else
if [ $burn == "y" -o $burn == "Y" ]; then
$ECHO "Remember to put a fresh CD-R into the CD writer before proceeding"
$ECHO
$ECHO -n "Enter burning device [$device_prev] : "
read device
if [ -z $device ]; then
device=$device_prev
fi
if [ -z $device ]; then
$ECHO "Device $device not found"
exit 1
fi
if [ ! -r $device ]; then
$ECHO "Device $device not found"
exit 1
fi
$ECHO -n "Shall I play the SVCD right after the burning process (y/N)? "
read play
if [ -z $play ]; then
play="N"
fi
fi
fi
#
# Write the autoconfig file
#
if [ ! -z $HOME ]; then
$ECHO "src_prev=$src; export src_prev" > $HOME/.makesvcdrc
$ECHO "destdir_prev=$destdir; export destdir_prev" >> $HOME/.makesvcdrc
$ECHO "filename_prev=$filename; export filename_prev" >> $HOME/.makesvcdrc
$ECHO "device_prev=$device; export device_prev" >> $HOME/.makesvcdrc
fi
#
# Transform the MPEG file into SVCD format, extract audio onto MPA file
#
transcode -N 0x50 -V -i $src -y mpeg2enc,mp2enc -F 5 -E 44100 -b 224 -o $destdir/$filename
#
# Merge audio and video files
#
if [ -f $destdir/$filename.m2v -a $destdir/$filename.mpa ]; then
mplex -V -f 5 -o $destdir/$filename.mpg $destdir/$filename.m2v $destdir/$filename.mpa
else
$ECHO "transcode didn't produce expected output, exiting"
exit 1
fi
#
# Produce a SVCD file set (cue + bin files)
#
if [ -f $destdir/$filename.mpg ]; then
vcdimager -t svcd -l "$title" -c $destdir/$filename.cue -b $destdir/$filename.bin $destdir/$filename.mpg
else
$ECHO "mplex didn't produce expected output, exiting"
exit 1
fi
#
# Brun SVCD if required
#
if [ -f $destdir/$filename.cue -a $destdir/$filename.bin ]; then
if [ $burn == "y" -o $burn == "Y" ]; then
cdrdao write --device $device $destdir/$filename.cue
#
# Play SVCD if required
#
if [ $play == "y" -o $play == "Y" ]; then
mplayer vcd://2 -cdrom-device $device
fi
fi
else
$ECHO "vcdimager didn't produce expected output, exiting"
exit 1
fi
#
# Deletes working files if required
#
if [ $delete == "y" -o $delete == "Y" ]; then
$RM -f $destdir/$filename.m2v
$RM -f $destdir/$filename.mpa
$RM -f $destdir/$filename.mpg
fi
|
Saluti
--Gianluca |
|