vendredi 25 février 2011

Conversion MKV DTS vers AC3 : script automatisation

Encore un petit script maison bourrin :)
Edit du 1er mai 2011 : Support de la détection auto de la piste DTS FR

#!/bin/bash
SRC_FILE=$1
PISTEDTS=$2

function usage() {
    echo "Usage : mkv2ac3 source [PISTEDTS]"
    echo "Converti le fichier MKV-DTS en MKV-AC3-DTS"
    echo " Syntaxe :"
    echo "    source"
    echo "        le fichier MKV contenant a minima une piste DTS FR"
    echo "    PISTEDTS (optionnel) "
    echo "        le numéro de la piste DTS à convertir en AC3"
    echo " Dépendances :"
    echo "    libdca-utils    -    decoding library for DTS Coherent Acoustics streams (utilities)"
    echo "    aften        -    encodeur audio AC3"
    echo "    mediainfo    -    Informe du contenu d'une vidéo"
}


if [ -z "$SRC_FILE" ]; then
    usage
    exit 0
else
    if [ ! -f "$SRC_FILE" ]; then
        echo "Fichier $SRC_FILE introuvable"
        exit 0
    fi
fi

DTS=`echo "$SRC_FILE"|sed 's/\(.*\)mkv/\1dts/'`
AC3=`echo "$SRC_FILE"|sed 's/\(.*\)mkv/\1ac3/'`
DEST_FILE=`echo "$SRC_FILE"|sed 's/\(.*\)mkv/\1ac3.mkv/'`

#extraction du numéro de la piste DTS
if [ -z $PISTEDTS ]; then
    #INFO_MAX_LINE=`mkvinfo "$SRC" | grep -n Chapters | cut -d: -f1`
    #SUMMARY=head -n $INFO_MAX_LINE `mkvinfo --summary "$SRC"`
    mediainfo --Inform="Audio;Piste #2 %ID% (%Format%) -> %Language%\n" $SRC_FILE
    PISTEDTS=`mediainfo --Inform="Audio;%ID% %Format% %Language%\n" $SRC_FILE | grep "DTS" | grep "fr" | awk '{print $1}'`
    echo "Piste DTS FR détectée : #$PISTEDTS"
    read -p"Appuyer sur entrée pour continuer, ou spécifiez un n° de piste choisie : " reponse
    if [ "$reponse" != "" ]; then
        PISTEDTS=$reponse;
    fi
fi

echo "Extraction de la piste DTS #$PISTEDTS"
mkvextract tracks "$SRC_FILE" $PISTEDTS:"$DTS"

echo "Conversion de la piste DTS en AC3 $AC3"
dcadec -o wavall "$DTS" | aften -b 640 - "$AC3"

echo "Création du nouveau fichier MKV AC3/DTS $DEST_FILE"
mkvmerge -o "$DEST_FILE" \
--default-track 1:no --forced-track 1:yes -d 1 -s 4 -A -T --no-global-tags "$SRC_FILE" \
--language 0:fre --default-track 0:yes --forced-track 0:yes -a 0 -D -S -T --no-global-tags --no-chapters "$AC3" \
--language 0:fre --forced-track 0:no -a 0 -D -S -T --no-global-tags --no-chapters "$DTS" \
--track-order 0:1,1:0,2:0,0:4

Iphone : sonnerie personnalisée

Petit script bourrin maison.
#!/bin/bash
if [ ! -z "$1" ]; then
    echo "Fichier à transformer introuvable"
    echo "Usage : $0 [fichier.mp3]"
    exit 0
fi
echo Démarrage de la conversion MP3->M4R

mplayer -ao pcm $1 -ao pcm:file="$1.wav"
faac $1.wav -o $1.m4r
rm $1.wav
rename 's/\.mp3//' $1.m4r