la mia descrizione da un altro thread ...
Citazione:
|
Gli altri script che ho I'd love to get lavoro è quello che ho scritto di combinare una serie di file avi utilizzando avidemux. per fare ciò che ho scritto uno script che prende il file di input, come le argomentazioni, deduce il nome del file di output e poi a causa di avidemux argomento della procedura ho creare una serie di stringhe che ha bisogno di aggiungere alla chiamata alla avidemux per ogni file aggiunto per l'originale. Che cosa ho fatto con questo è l'eco che hanno richiesto di eseguire il comando che mi può quindi copia e incolla e funziona bene, ma sarebbe molto bello se potessi farlo effettivamente lanciare * * detto comando.
|
ecco il mio codice:
Codice:
#!/bin/bash
IFS=$'\n'
function OutputName() {
input=$1
echo $input
input=`echo "$input" | sed -e 's/.[Aa][Vv][Ii]//'`
input=`echo "$input".avi`
output_name=$input
}
if [[ -z "@ARGV" ]]; then
echo "arguements are files to combine"
exit
else
if [[ ! -e $1 ]]; then
echo "no such input video!"
exit
else
first=`find "$1" -printf "%f"`
echo "Input File Found!: $first"
shift
fi
OutputName $first
echo "Output video name will be: "$output_name""
echo
fi
options="--audio-map --force-b-frame --force-unpack --rebuild-index"
appendlist=""
until [ -z "$1" ]
do
# echo "$1"
# echo "$appendlist"
if [[ ! -e $1 ]]; then
echo "no such input video! $1"
exit
else
filename=`find "$1" -printf '"%f"'`
appendlist="$appendlist $options --append $filename"
fi
# echo "$appendlist"
# echo
shift
done
echo "avidemux2_cli --nogui $options --load \"$first\" $appendlist --force-smart --save \"$output_name\" --quit"