Affichage des articles dont le libellé est conversion mkv dts ac3. Afficher tous les articles
Affichage des articles dont le libellé est conversion mkv dts ac3. Afficher tous les articles

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