bisol | Salut à tous,
Je suis en train de programmer un script pour encoder des vidéos via Handbrake. J'ai un problème car mon script ne fonctionne pas lorsque j'appelle l'application avec les paramètres en variable.
Exemple :
- si je lance l'application avec cette ligne, les paramètres ne sont pas pris en compte (ou pas tous en tout cas, c'est assez bizarre)
- /Applications/HandBrakeCLI $config_video_defaut $config_video_x264 --audio $audio --aencoder $aencoder --mixdown $mixdown -i "$i" -o "${i%.*}.m4v"
- si je fais un echo de la ligne de lancement de l'application et que je la copie / colle dans un shell, l'application de lance correctement (en rajoutant des backslashs pour les -i et -0
J'avoue avoir chercher un moment et ne trouve vraiment pas de pistes... Votre aide est la bienvenue.
Merci d'avance ;-)
Code :
- #!/bin/bash
- #
- # Liste des presets : https://trac.handbrake.fr/wiki/BuiltInPresets
- #
- type=$1
- dossiersource=$2
- IFS=$'\n'
- readonly config_video_defaut=" -t 1 -e x264 -q 19.25 -B 160,160 -f mp4 -R Auto,Auto -D 0.0,0.0 -m -2 --turbo --subtitle scan,1-9 --subtitle-burn --subtitle-forced scan --native-language fre "
- if [ "$type" == "film" ]; then
- readonly config_video_x264=" --detelecine --decomb --loose-anamorphic -x b-adapt=2:rc-lookahead=50 "
- elif [ "$type" == "anime" ]; then
- readonly config_video_x264=" --strict-anamorphic -x ref=1:weightp=1:subq=2:rc-lookahead=10:trellis=0:8x8dct=0 "
- fi
- for i in `find "$2" -type f -name "*.mkv"`
- do
- #Nombre de piste audio + type (vérification seulement si 5.1)
- AUDIO_TRACKS=`/Applications/HandBrakeCLI -t 0 -i "$i" 2>&1|grep "Audio:"|wc -l`
- if [ "$AUDIO_TRACKS" -eq "1" ]; then
- audio="1"
- elif [ "$AUDIO_TRACKS" -eq "2" ]; then
- audio="1,2"
- elif [ "$AUDIO_TRACKS" -eq "3" ]; then
- audio="1,2,3"
- fi
- #Si pas de 5.1, converti sinon copie
- AUDIO_TYPE=`/Applications/HandBrakeCLI -t 0 -i "$i" 2>&1|grep "5.1 ch"|wc -l`
- if [ "$AUDIO_TYPE" -eq "0" ]; then
- aencoder="ca_aac"
- AUDIO_TYPE_CH=`/Applications/HandBrakeCLI -t 0 -i "$i" 2>&1|grep "1.0 ch"|wc -l`
- if [ "$AUDIO_TYPE_CH" -eq "0" ]; then
- mixdown="stereo"
- else
- mixdown="mono"
- fi
- else
- aencoder="copy"
- mixdown="auto"
- fi
- #Lancement de handbrake
- /Applications/HandBrakeCLI $config_video_defaut $config_video_x264 --audio $audio --aencoder $aencoder --mixdown $mixdown -i "$i" -o "${i%.*}.m4v"
- done
|
Message édité par bisol le 08-03-2013 à 21:37:05
|