logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).


L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT → ODT PDF Export

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
Prochaine révision Les deux révisions suivantes
utilisateurs:slyfox:scripts:accueil [31/07/2018 13:50]
Slyfox [Sylmedia]
utilisateurs:slyfox:scripts:accueil [14/08/2018 17:23]
Slyfox créée
Ligne 1: Ligne 1:
- 
 ====== Sylmedia ====== ====== Sylmedia ======
  
Ligne 6: Ligne 5:
   * Commentaires : -   * Commentaires : -
   * Débutant, à savoir : [[:​doc:​systeme:​commandes:​le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-)   * Débutant, à savoir : [[:​doc:​systeme:​commandes:​le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-)
-  * Suivi : {{tag>en chantier}}+  * Suivi : 
     * Création par [[user>​Slyfox]] 31/07/2018     * Création par [[user>​Slyfox]] 31/07/2018
   * Commentaires sur le forum :    * Commentaires sur le forum : 
Ligne 33: Ligne 32:
  
  
-<​note>​Version du 31.07.2018</​note>​+<​note>​**Version du 02.08.2018**</​note>​ 
 + 
 +===== Script =====
  
 <code user>#! /bin/bash <code user>#! /bin/bash
- +
 # Paquets à installer: ffmpeg yad flac vorbis-tools eyed3 kid3-cli # Paquets à installer: ffmpeg yad flac vorbis-tools eyed3 kid3-cli
- +# Version: 20180802 
 #​=========================================================================================================== #​===========================================================================================================
 function YADMAIN() function YADMAIN()
Ligne 57: Ligne 59:
 --field="​ ":LBL " " \ --field="​ ":LBL " " \
 --field="":​LBL ""​ \ --field="":​LBL ""​ \
 +--field="<​b>​Source</​b>":​LBL " " \
 --field="​ ":LBL " " \ --field="​ ":LBL " " \
 --button="​Quitter!gtk-quit!:​1"​ \ --button="​Quitter!gtk-quit!:​1"​ \
Ligne 64: Ligne 67:
 --button="​Lancer conversion!gtk-convert!:​0"​ \ --button="​Lancer conversion!gtk-convert!:​0"​ \
 "​${cdeYadStream[@]}"​) "​${cdeYadStream[@]}"​)
- +
 # Status de sortie Yad # Status de sortie Yad
 status="​$?"​ status="​$?"​
- +
 # Récupération variables # Récupération variables
 profile=$(awk -F [\|] '​{print $2}' <<<​ "​${yadMain}"​) profile=$(awk -F [\|] '​{print $2}' <<<​ "​${yadMain}"​)
Ligne 105: Ligne 108:
 --button="​gtk-cancel:​2"​ \ --button="​gtk-cancel:​2"​ \
 --button="​gtk-ok:​0"​) --button="​gtk-ok:​0"​)
- +
 # Status de sortie Yad # Status de sortie Yad
 status="​$?"​ status="​$?"​
- +
 # Récupération variables # Récupération variables
 definition=$(awk -F [\|] '​{print $2}' <<<​ "​${yadPreference}"​) definition=$(awk -F [\|] '​{print $2}' <<<​ "​${yadPreference}"​)
Ligne 117: Ligne 120:
 nocopy=$(awk -F [\|] '​{print $20}' <<<​ "​${yadPreference}"​) nocopy=$(awk -F [\|] '​{print $20}' <<<​ "​${yadPreference}"​)
 dirIn=$(awk -F [\|] '​{print $21}' <<<​ "​${yadPreference}"​) dirIn=$(awk -F [\|] '​{print $21}' <<<​ "​${yadPreference}"​)
-  + 
- +
 } }
 #​=========================================================================================================== #​===========================================================================================================
Ligne 124: Ligne 127:
 { {
 IFS=$"​|"​ IFS=$"​|"​
- +
 yadSource=$(yad --list \ yadSource=$(yad --list \
 --radiolist \ --radiolist \
Ligne 142: Ligne 145:
 "​FALSE"​ "​CD"​ \ "​FALSE"​ "​CD"​ \
 "​FALSE"​ "​DDL"​) "​FALSE"​ "​DDL"​)
- +
 # Status de sortie Yad # Status de sortie Yad
 status="​$?"​ status="​$?"​
- +
 # Récupération variables # Récupération variables
 source=$(awk -F [\|] '/​TRUE/​ {print $2}' <<<​ "​${yadSource}"​) source=$(awk -F [\|] '/​TRUE/​ {print $2}' <<<​ "​${yadSource}"​)
Ligne 166: Ligne 169:
 --button="​gtk-cancel:​2"​ \ --button="​gtk-cancel:​2"​ \
 --button="​gtk-ok:​0"​) --button="​gtk-ok:​0"​)
- +
 # Status de sortie Yad # Status de sortie Yad
 status="​$?"​ status="​$?"​
Ligne 176: Ligne 179:
 dirSylmedia="/​home/​$USER/​.slymedia"​ dirSylmedia="/​home/​$USER/​.slymedia"​
 [[ ! -d "​${dirSylmedia}"​ ]] && mkdir "​${dirSylmedia}"​ [[ ! -d "​${dirSylmedia}"​ ]] && mkdir "​${dirSylmedia}"​
- +
 # Suppression des anciens dossiers temporaires # Suppression des anciens dossiers temporaires
 rm -rf "​${dirSylmedia}"/​tmp* rm -rf "​${dirSylmedia}"/​tmp*
- +
 # Création du dossier temporaire # Création du dossier temporaire
 dossierTmp="​$(mktemp -d "​${dirSylmedia}/​tmp-XXXXXXXXXXX"​)"​ dossierTmp="​$(mktemp -d "​${dirSylmedia}/​tmp-XXXXXXXXXXX"​)"​
- +
 # Création du fichier de configurations # Création du fichier de configurations
 fileConfig="​${dirSylmedia}/​config.txt"​ fileConfig="​${dirSylmedia}/​config.txt"​
- +
 [[ ! -f "​${fileConfig}"​ ]] && CONFIGDEFAUT [[ ! -f "​${fileConfig}"​ ]] && CONFIGDEFAUT
 } }
Ligne 199: Ligne 202:
 # Sauvegarde variables dans fichier de configuaration utilisateur # Sauvegarde variables dans fichier de configuaration utilisateur
 echo -e "​profile=\"​${profile}\"​\nquality=\"​${quality}\"​\ndirOut=\"​${dirOut}\"​\ndefinition=\"​${definition}\"​\nlangAudio=\"​${langAudio}\"​\ntypeRate=\"​${typeRate}\"​\nlangSub=\"​${langSub}\"​\nmetadata=\"​${metadata}\"​\nnocopy=\"​${nocopy}\"​\ndirIn=\"​${dirIn}\""​ > "​${fileConfig}"​ echo -e "​profile=\"​${profile}\"​\nquality=\"​${quality}\"​\ndirOut=\"​${dirOut}\"​\ndefinition=\"​${definition}\"​\nlangAudio=\"​${langAudio}\"​\ntypeRate=\"​${typeRate}\"​\nlangSub=\"​${langSub}\"​\nmetadata=\"​${metadata}\"​\nnocopy=\"​${nocopy}\"​\ndirIn=\"​${dirIn}\""​ > "​${fileConfig}"​
- +
 echo "​profile:​ ${profile}"​ echo "​profile:​ ${profile}"​
 echo "​quality:​ ${quality}"​ echo "​quality:​ ${quality}"​
Ligne 218: Ligne 221:
  language="​Français"​  language="​Français"​
  languageISO="​fre"​  languageISO="​fre"​
- +
  elif [[ "​${lang}"​ == "​gre"​ ]] || [[ "​${lang}"​ == "​deu"​ ]] || [[ "​${lang}"​ == "​de"​ ]]; then  elif [[ "​${lang}"​ == "​gre"​ ]] || [[ "​${lang}"​ == "​deu"​ ]] || [[ "​${lang}"​ == "​de"​ ]]; then
  language="​Allemand"​  language="​Allemand"​
  languageISO="​deu"​  languageISO="​deu"​
- +
  elif [[ "​${lang}"​ == "​eng"​ ]] || [[ "​${lang}"​ == "​en"​ ]]; then  elif [[ "​${lang}"​ == "​eng"​ ]] || [[ "​${lang}"​ == "​en"​ ]]; then
  language="​Anglais"​  language="​Anglais"​
  languageISO="​eng"​  languageISO="​eng"​
-  +  
- +
  elif [[ "​${lang}"​ == "​ara"​ ]] || [[ "​${lang}"​ == "​ar"​ ]]; then  elif [[ "​${lang}"​ == "​ara"​ ]] || [[ "​${lang}"​ == "​ar"​ ]]; then
  language="​Arabe"​  language="​Arabe"​
  languageISO="​ara"​  languageISO="​ara"​
- +
  elif [[ "​${lang}"​ == "​bre"​ ]] || [[ "​${lang}"​ == "​br"​ ]]; then  elif [[ "​${lang}"​ == "​bre"​ ]] || [[ "​${lang}"​ == "​br"​ ]]; then
  language="​Breton"​  language="​Breton"​
  languageISO="​bre"​   languageISO="​bre"​
- +
  elif [[ "​${lang}"​ == "​cat"​ ]] || [[ "​${lang}"​ == "​ca"​ ]]; then  elif [[ "​${lang}"​ == "​cat"​ ]] || [[ "​${lang}"​ == "​ca"​ ]]; then
  language="​Catalan"​  language="​Catalan"​
  languageISO="​cat"​  languageISO="​cat"​
- +
  elif [[ "​${lang}"​ == "​chi"​ ]] || [[ "​${lang}"​ == "​zho"​ ]] || [[ "​${lang}"​ == "​zh"​ ]]; then  elif [[ "​${lang}"​ == "​chi"​ ]] || [[ "​${lang}"​ == "​zho"​ ]] || [[ "​${lang}"​ == "​zh"​ ]]; then
  language="​Chinois"​  language="​Chinois"​
  languageISO="​chi"​  languageISO="​chi"​
- +
  elif [[ "​${lang}"​ == "​kor"​ ]] || [[ "​${lang}"​ == "​ko"​ ]]; then  elif [[ "​${lang}"​ == "​kor"​ ]] || [[ "​${lang}"​ == "​ko"​ ]]; then
  language="​Coréen"​  language="​Coréen"​
  languageISO="​kor"​  languageISO="​kor"​
- +
  elif [[ "​${lang}"​ == "​cos"​ ]] || [[ "​${lang}"​ == "​co"​ ]]; then  elif [[ "​${lang}"​ == "​cos"​ ]] || [[ "​${lang}"​ == "​co"​ ]]; then
  language="​Corse"​  language="​Corse"​
  languageISO="​cos"​  languageISO="​cos"​
- +
  elif [[ "​${lang}"​ == "​hat"​ ]] || [[ "​${lang}"​ == "​ht"​ ]]; then  elif [[ "​${lang}"​ == "​hat"​ ]] || [[ "​${lang}"​ == "​ht"​ ]]; then
  language="​Créole_haïtien"​  language="​Créole_haïtien"​
  languageISO="​hat"​  languageISO="​hat"​
- +
  elif [[ "​${lang}"​ == "​hat"​ ]] || [[ "​${lang}"​ == "​ht"​ ]]; then  elif [[ "​${lang}"​ == "​hat"​ ]] || [[ "​${lang}"​ == "​ht"​ ]]; then
  language="​Créole_haïtien"​  language="​Créole_haïtien"​
  languageISO="​hat"​  languageISO="​hat"​
- +
  elif [[ "​${lang}"​ == "​rcf"​ ]] || [[ "​${lang}"​ == "​rc"​ ]]; then  elif [[ "​${lang}"​ == "​rcf"​ ]] || [[ "​${lang}"​ == "​rc"​ ]]; then
  language="​Créole_Réunionnais"​  language="​Créole_Réunionnais"​
  languageISO="​rcf"​  languageISO="​rcf"​
- +
  elif [[ "​${lang}"​ == "​gla"​ ]] || [[ "​${lang}"​ == "​gd"​ ]]; then  elif [[ "​${lang}"​ == "​gla"​ ]] || [[ "​${lang}"​ == "​gd"​ ]]; then
  language="​Écossais"​  language="​Écossais"​
  languageISO="​gla"​  languageISO="​gla"​
- +
  elif [[ "​${lang}"​ == "​spa"​ ]] || [[ "​${lang}"​ == "​es"​ ]]; then  elif [[ "​${lang}"​ == "​spa"​ ]] || [[ "​${lang}"​ == "​es"​ ]]; then
  language="​Espagnol"​  language="​Espagnol"​
  languageISO="​spa"​  languageISO="​spa"​
- +
  elif [[ "​${lang}"​ == "​epo"​ ]] || [[ "​${lang}"​ == "​eo"​ ]]; then  elif [[ "​${lang}"​ == "​epo"​ ]] || [[ "​${lang}"​ == "​eo"​ ]]; then
  language="​Espéranto"​  language="​Espéranto"​
  languageISO="​epo"​  languageISO="​epo"​
- +
  elif [[ "​${lang}"​ == "​fin"​ ]] || [[ "​${lang}"​ == "​fi"​ ]]; then  elif [[ "​${lang}"​ == "​fin"​ ]] || [[ "​${lang}"​ == "​fi"​ ]]; then
  language="​Finnois"​  language="​Finnois"​
  languageISO="​fin"​  languageISO="​fin"​
- +
  elif [[ "​${lang}"​ == "​glg"​ ]] || [[ "​${lang}"​ == "​gl"​ ]]; then  elif [[ "​${lang}"​ == "​glg"​ ]] || [[ "​${lang}"​ == "​gl"​ ]]; then
  language="​Galicien"​  language="​Galicien"​
  languageISO="​glg"​  languageISO="​glg"​
-  +  
- +
  elif [[ "​${lang}"​ == "​wel"​ ]] || [[ "​${lang}"​ == "​cym"​ ]] || [[ "​${lang}"​ == "​cy"​ ]]; then  elif [[ "​${lang}"​ == "​wel"​ ]] || [[ "​${lang}"​ == "​cym"​ ]] || [[ "​${lang}"​ == "​cy"​ ]]; then
  language="​Gallois"​  language="​Gallois"​
  languageISO="​wel"​  languageISO="​wel"​
- +
  elif [[ "​${lang}"​ == "​gre"​ ]] || [[ "​${lang}"​ == "​ell"​ ]] || [[ "​${lang}"​ == "​el"​ ]]; then  elif [[ "​${lang}"​ == "​gre"​ ]] || [[ "​${lang}"​ == "​ell"​ ]] || [[ "​${lang}"​ == "​el"​ ]]; then
  language="​Grec"​  language="​Grec"​
  languageISO="​gre"​  languageISO="​gre"​
- +
  elif [[ "​${lang}"​ == "​heb"​ ]] || [[ "​${lang}"​ == "​he"​ ]]; then  elif [[ "​${lang}"​ == "​heb"​ ]] || [[ "​${lang}"​ == "​he"​ ]]; then
  language="​Hébreu"​  language="​Hébreu"​
  languageISO="​heb"​  languageISO="​heb"​
- +
  elif [[ "​${lang}"​ == "​hin"​ ]] || [[ "​${lang}"​ == "​hi"​ ]]; then  elif [[ "​${lang}"​ == "​hin"​ ]] || [[ "​${lang}"​ == "​hi"​ ]]; then
  language="​Hindi"​  language="​Hindi"​
  languageISO="​hin"​  languageISO="​hin"​
- +
  elif [[ "​${lang}"​ == "​hun"​ ]] || [[ "​${lang}"​ == "​hu"​ ]]; then  elif [[ "​${lang}"​ == "​hun"​ ]] || [[ "​${lang}"​ == "​hu"​ ]]; then
  language="​Hongrois"​  language="​Hongrois"​
  languageISO="​hun"​  languageISO="​hun"​
- +
  elif [[ "​${lang}"​ == "​gle"​ ]] || [[ "​${lang}"​ == "​ga"​ ]]; then  elif [[ "​${lang}"​ == "​gle"​ ]] || [[ "​${lang}"​ == "​ga"​ ]]; then
  language="​Irlandais"​  language="​Irlandais"​
  languageISO="​gle"​  languageISO="​gle"​
- +
  elif [[ "​${lang}"​ == "​ice"​ ]] || [[ "​${lang}"​ == "​isl"​ ]] || [[ "​${lang}"​ == "​is"​ ]]; then  elif [[ "​${lang}"​ == "​ice"​ ]] || [[ "​${lang}"​ == "​isl"​ ]] || [[ "​${lang}"​ == "​is"​ ]]; then
  language="​Islandais"​  language="​Islandais"​
  languageISO="​ice"​   languageISO="​ice"​
- +
  elif [[ "​${lang}"​ == "​ita"​ ]] || [[ "​${lang}"​ == "​it"​ ]]; then  elif [[ "​${lang}"​ == "​ita"​ ]] || [[ "​${lang}"​ == "​it"​ ]]; then
  language="​Italien"​  language="​Italien"​
  languageISO="​ita"​  languageISO="​ita"​
- +
  elif [[ "​${lang}"​ == "​jpn"​ ]] || [[ "​${lang}"​ == "​jp"​ ]]; then  elif [[ "​${lang}"​ == "​jpn"​ ]] || [[ "​${lang}"​ == "​jp"​ ]]; then
  language="​Japonais"​  language="​Japonais"​
  languageISO="​jpn"​  languageISO="​jpn"​
- +
  elif [[ "​${lang}"​ == "​lat"​ ]] || [[ "​${lang}"​ == "​la"​ ]]; then  elif [[ "​${lang}"​ == "​lat"​ ]] || [[ "​${lang}"​ == "​la"​ ]]; then
  language="​Latin"​  language="​Latin"​
  languageISO="​lat"​  languageISO="​lat"​
- +
  elif [[ "​${lang}"​ == "​ltz"​ ]] || [[ "​${lang}"​ == "​la"​ ]]; then  elif [[ "​${lang}"​ == "​ltz"​ ]] || [[ "​${lang}"​ == "​la"​ ]]; then
  language="​Luxembourgeois"​  language="​Luxembourgeois"​
  languageISO="​ltz"​  languageISO="​ltz"​
- +
  elif [[ "​${lang}"​ == "​dut"​ ]] || [[ "​${lang}"​ == "​nld"​ ]] || [[ "​${lang}"​ == "​lb"​ ]]; then  elif [[ "​${lang}"​ == "​dut"​ ]] || [[ "​${lang}"​ == "​nld"​ ]] || [[ "​${lang}"​ == "​lb"​ ]]; then
  language="​Néerlandais"​  language="​Néerlandais"​
  languageISO="​dut"​  languageISO="​dut"​
- +
  elif [[ "​${lang}"​ == "​nor"​ ]] || [[ "​${lang}"​ == "​no"​ ]]; then  elif [[ "​${lang}"​ == "​nor"​ ]] || [[ "​${lang}"​ == "​no"​ ]]; then
  language="​Norvégien"​  language="​Norvégien"​
  languageISO="​nor"​  languageISO="​nor"​
- +
  elif [[ "​${lang}"​ == "​por"​ ]] || [[ "​${lang}"​ == "​pt"​ ]]; then  elif [[ "​${lang}"​ == "​por"​ ]] || [[ "​${lang}"​ == "​pt"​ ]]; then
  language="​Portugais"​  language="​Portugais"​
  languageISO="​por"​  languageISO="​por"​
- +
  elif [[ "​${lang}"​ == "​roh"​ ]] || [[ "​${lang}"​ == "​rm"​ ]]; then  elif [[ "​${lang}"​ == "​roh"​ ]] || [[ "​${lang}"​ == "​rm"​ ]]; then
  language="​Romanche"​  language="​Romanche"​
  languageISO="​roh"​  languageISO="​roh"​
- +
  elif [[ "​${lang}"​ == "​rus"​ ]] || [[ "​${lang}"​ == "​ru"​ ]]; then  elif [[ "​${lang}"​ == "​rus"​ ]] || [[ "​${lang}"​ == "​ru"​ ]]; then
  language="​Russe"​  language="​Russe"​
  languageISO="​rus"​  languageISO="​rus"​
- +
  elif [[ "​${lang}"​ == "​swe"​ ]] || [[ "​${lang}"​ == "​sv"​ ]]; then  elif [[ "​${lang}"​ == "​swe"​ ]] || [[ "​${lang}"​ == "​sv"​ ]]; then
  language="​Suédois"​  language="​Suédois"​
  languageISO="​swe"​  languageISO="​swe"​
- +
  else  else
  language="​Inconnu"​  language="​Inconnu"​
Ligne 363: Ligne 366:
 [[ -f "​${dossierTmp}/​stream.txt"​ ]] && rm "​${dossierTmp}/​stream.txt"​ [[ -f "​${dossierTmp}/​stream.txt"​ ]] && rm "​${dossierTmp}/​stream.txt"​
 cdeYadStream=() cdeYadStream=()
- +
 IFS=$'​\n'​ IFS=$'​\n'​
- +
 for i in ${fileIn}; do for i in ${fileIn}; do
-  
- #ffprobe -i  "​${i}"​ -hide_banner -v quiet -show_streams 
  STREAMTITLE  STREAMTITLE
  STREAMVIDEO  STREAMVIDEO
Ligne 374: Ligne 375:
  STREAMSUBTITLE  STREAMSUBTITLE
  cdeYadStream=(${cdeYadStream[@]} --field="​ ":LBL " ")  cdeYadStream=(${cdeYadStream[@]} --field="​ ":LBL " ")
 +
 done done
 } }
Ligne 380: Ligne 382:
 { {
 # Titre et durée # Titre et durée
-streamFormat=$(ffprobe -i  "​${i}"​ -hide_banner -v quiet -show_entries format=duration,​bit_rate -of csv=s="​|"​) +streamFormat=$(ffprobe -i "​${i}"​ -hide_banner -v quiet -show_entries format=duration,​bit_rate -of csv=s="​|"​) 
- +
 durationS=$(awk -F [\|] '​{print $2}' <<<​ "​${streamFormat}"​) durationS=$(awk -F [\|] '​{print $2}' <<<​ "​${streamFormat}"​)
 durationHMS=$(date -d@"​${durationS}"​ -u +%H:%M:%S) durationHMS=$(date -d@"​${durationS}"​ -u +%H:%M:%S)
 rateTotal=$(awk -F [\|] '​{printf "%d kb/s" ,​($3/​1000)}'​ <<<​ "​${streamFormat}"​) rateTotal=$(awk -F [\|] '​{printf "%d kb/s" ,​($3/​1000)}'​ <<<​ "​${streamFormat}"​)
- +
 # Mise en mémoire dans tableau cdeYadStream # Mise en mémoire dans tableau cdeYadStream
 cdeYadStream=(${cdeYadStream[@]} --field="<​b>​TITRE:​ $(basename "​${i}"​) - ${durationHMS} - ${rateTotal}</​b>":​LBL " ") cdeYadStream=(${cdeYadStream[@]} --field="<​b>​TITRE:​ $(basename "​${i}"​) - ${durationHMS} - ${rateTotal}</​b>":​LBL " ")
Ligne 393: Ligne 395:
 { {
 streamVideo=$(ffprobe -i  "​${i}"​ -hide_banner -v quiet -select_streams v -show_entries stream=index,​codec_name,​width,​height,​r_frame_rate -of csv=s="​|"​) streamVideo=$(ffprobe -i  "​${i}"​ -hide_banner -v quiet -select_streams v -show_entries stream=index,​codec_name,​width,​height,​r_frame_rate -of csv=s="​|"​)
- +
 while read line; do while read line; do
- +
  index=$(awk -F [\|] '​{print $2}' <<<​ "​${line}"​)  index=$(awk -F [\|] '​{print $2}' <<<​ "​${line}"​)
  codec=$(awk -F [\|] '​{print $3}' <<<​ "​${line}"​)  codec=$(awk -F [\|] '​{print $3}' <<<​ "​${line}"​)
Ligne 402: Ligne 404:
  fps1=$(awk -F [\|] '​{print $6}' <<<​ "​${line}"​ | awk -F [\/] '​{print $1}')  fps1=$(awk -F [\|] '​{print $6}' <<<​ "​${line}"​ | awk -F [\/] '​{print $1}')
  fps2=$(awk -F [\|] '​{print $6}' <<<​ "​${line}"​ | awk -F [\/] '​{print $2}')  fps2=$(awk -F [\|] '​{print $6}' <<<​ "​${line}"​ | awk -F [\/] '​{print $2}')
- +
  # Vérifiction si fps1 et fps2 sont des valeurs numériques  # Vérifiction si fps1 et fps2 sont des valeurs numériques
- +
  if [[ "​${fps1}"​ = +([0-9]) ]] && [[ "​${fps2}"​ = +([0-9]) ]]; then  if [[ "​${fps1}"​ = +([0-9]) ]] && [[ "​${fps2}"​ = +([0-9]) ]]; then
  fps=$(echo "​${fps1} / ${fps2}"​ | bc -l | awk '​{printf "​%.3f"​ ,$1}')  fps=$(echo "​${fps1} / ${fps2}"​ | bc -l | awk '​{printf "​%.3f"​ ,$1}')
- +
  elif [[ "​${fps1}"​ = +([0-9]) ]] && [[ "​${fps2}"​ != +([0-9]) ]]; then  elif [[ "​${fps1}"​ = +([0-9]) ]] && [[ "​${fps2}"​ != +([0-9]) ]]; then
  fps=$(awk '​{printf "​%d"​ ,$1}' <<<​ "​${fps1}"​)  fps=$(awk '​{printf "​%d"​ ,$1}' <<<​ "​${fps1}"​)
- +
  else  else
  fps="​N/​A"​  fps="​N/​A"​
  fi  fi
-  +  
- # Mise en forme piste vidéo (envoi vers fichier tmp et envoi dans tableau cdeYadStream) + # Type d'​image (Front, back, other) 
- if [[ "​${index}"​ != ""​ ]]; then + if [[ "​${codec}"​ == "​mjpeg"​ ]] || [[ "​${codec}"​ == "​png"​ ]]; then 
- printf "​|${i}|0:​${index}|VIDEO|${codec}|${width}|${height}|${fps}|\n" >> "​${dossierTmp}/​stream.txt"​ +  
- cdeYadStream=(${cdeYadStream[@]} --field="​0:​${index} | VIDEO | ${codec} ${width}x${height} ${fps}":​CHK "​TRUE"​) + # Recherche numéro id depuis la map 
- + id=$(awk -F [\:] '​{print $2}' <<<​ "​0:​${index}"​) 
 + typeImage=$(ffprobe -i  "​${i}"​ -hide_banner -v quiet -select_streams ${id} -show_entries stream_tags=comment -of csv=s="​|"​ | awk -F [\|] '​{print $2}') 
 + 
 + 
 + # Mise en forme piste vidéo (envoi vers fichier tmp et envoi dans tableau cdeYadStream) 
 + if [[ "​${index}"​ != ""​ ]]; then 
 + printf "​|${i}|0:​${index}|VIDEO|${typeImage}|${codec}|${width}|${height}\n"​ >> "​${dossierTmp}/​stream.txt"​ 
 + cdeYadStream=(${cdeYadStream[@]} --field="​0:​${index} | VIDEO |${typeImage} ${codec} ${width}x${height}":​CHK "​TRUE"​) 
 +  
 + fi 
 +  
 + else 
 +  
 + # Mise en forme piste vidéo (envoi vers fichier tmp et envoi dans tableau cdeYadStream) 
 + if [[ "​${index}"​ != ""​ ]]; then 
 + printf "​|${i}|0:​${index}|VIDEO|${codec}|${width}|${height}|${fps}\n"​ >> "​${dossierTmp}/​stream.txt"​ 
 + cdeYadStream=(${cdeYadStream[@]} --field="​0:​${index} | VIDEO |${codec} ${width}x${height} ${fps} ​fps":CHK "​TRUE"​) 
 +  
 + fi
  fi  fi
- +  
 + 
 +
 done <<<​ "​${streamVideo}"​ done <<<​ "​${streamVideo}"​
 } }
Ligne 428: Ligne 450:
 { {
 streamAudio=$(ffprobe -i  "​${i}"​ -hide_banner -v quiet -select_streams a -show_entries stream=index,​codec_name,​sample_rate,​channel_layout,​bit_rate -show_entries stream_tags=language -of csv=s="​|"​) streamAudio=$(ffprobe -i  "​${i}"​ -hide_banner -v quiet -select_streams a -show_entries stream=index,​codec_name,​sample_rate,​channel_layout,​bit_rate -show_entries stream_tags=language -of csv=s="​|"​)
- +
  while read line; do  while read line; do
- +
  index=$(awk -F [\|] '​{print $2}' <<<​ "​${line}"​)  index=$(awk -F [\|] '​{print $2}' <<<​ "​${line}"​)
  codec=$(awk -F [\|] '​{print $3}' <<<​ "​${line}"​)  codec=$(awk -F [\|] '​{print $3}' <<<​ "​${line}"​)
Ligne 437: Ligne 459:
  lang=$(awk -F [\|] '​{print $NF}' <<<​ "​${line}"​)  lang=$(awk -F [\|] '​{print $NF}' <<<​ "​${line}"​)
  #​debitAudio=$(awk -F [\|] '​{print $6}' <<<​ "​${line}"​)  #​debitAudio=$(awk -F [\|] '​{print $6}' <<<​ "​${line}"​)
- +
  LANGUE  LANGUE
-  +
- # Calcul du débit audio +
- #if [[ "​${debitAudio}"​ = +([0-9]) ]] ; then +
- #​ debitAudio=$(echo "​${debitAudio} / 1000" | bc) +
- #else +
- #​ debitAudio="​N/​A"​ +
- #fi +
- +
  # Affectation TRUE ou FALSE  # Affectation TRUE ou FALSE
  if [[ "​${language}"​ == "​${langAudio}"​ ]] || [[ "​${language}"​ == "​Inconnu"​ ]] || [[ "​${langAudio}"​ == "​Toutes les langues"​ ]]; then  if [[ "​${language}"​ == "​${langAudio}"​ ]] || [[ "​${language}"​ == "​Inconnu"​ ]] || [[ "​${langAudio}"​ == "​Toutes les langues"​ ]]; then
  bol="​TRUE"​  bol="​TRUE"​
- +
  else  else
  bol="​FALSE"​  bol="​FALSE"​
  fi  fi
- +
  # Mise en forme piste audio (envoi vers fichier tmp et envoi dans tableau cdeYadStream)  # Mise en forme piste audio (envoi vers fichier tmp et envoi dans tableau cdeYadStream)
  if [[ "​${index}"​ != ""​ ]]; then  if [[ "​${index}"​ != ""​ ]]; then
  printf "​|${i}|0:​${index}|AUDIO|${codec}|${language}|${languageISO}|${rate}|${channelOut}|\n"​ >> "​${dossierTmp}/​stream.txt"​  printf "​|${i}|0:​${index}|AUDIO|${codec}|${language}|${languageISO}|${rate}|${channelOut}|\n"​ >> "​${dossierTmp}/​stream.txt"​
  cdeYadStream=(${cdeYadStream[@]} --field="​0:​${index}| AUDIO | ${language} ${codec} ${rate} Hz ${channelOut}":​CHK "​${bol}"​)  cdeYadStream=(${cdeYadStream[@]} --field="​0:​${index}| AUDIO | ${language} ${codec} ${rate} Hz ${channelOut}":​CHK "​${bol}"​)
- +
  fi  fi
- +
  done <<<​ "​${streamAudio}"​   done <<<​ "​${streamAudio}"​
 } }
Ligne 468: Ligne 483:
 { {
 streamSub=$(ffprobe -i  "​${i}"​ -hide_banner -v quiet -select_streams s -show_entries stream=index,​codec_name -show_entries stream_tags=language -of csv=s="​|"​) streamSub=$(ffprobe -i  "​${i}"​ -hide_banner -v quiet -select_streams s -show_entries stream=index,​codec_name -show_entries stream_tags=language -of csv=s="​|"​)
- +
 while read line; do while read line; do
- +
  index=$(awk -F [\|] '​{print $2}' <<<​ "​${line}"​)  index=$(awk -F [\|] '​{print $2}' <<<​ "​${line}"​)
  codec=$(awk -F [\|] '​{print $3}' <<<​ "​${line}"​)  codec=$(awk -F [\|] '​{print $3}' <<<​ "​${line}"​)
  lang=$(awk -F [\|] '​{print $NF}' <<<​ "​${line}"​)  lang=$(awk -F [\|] '​{print $NF}' <<<​ "​${line}"​)
- +
  LANGUE  LANGUE
- +
  # Affectation TRUE ou FALSE  # Affectation TRUE ou FALSE
  if [[ "​${language}"​ == "​${langSub}"​ ]] || [[ "​${language}"​ == "​Inconnu"​ ]] || [[ "​${langSub}"​ == "​Toutes les langues"​ ]]; then  if [[ "​${language}"​ == "​${langSub}"​ ]] || [[ "​${language}"​ == "​Inconnu"​ ]] || [[ "​${langSub}"​ == "​Toutes les langues"​ ]]; then
  bol="​TRUE"​  bol="​TRUE"​
- +
  else  else
  bol="​FALSE"​  bol="​FALSE"​
  fi  fi
- +
  # Mise en forme piste audio (envoi vers fichier tmp et envoi dans tableau cdeYadStream)  # Mise en forme piste audio (envoi vers fichier tmp et envoi dans tableau cdeYadStream)
- +
  if [[ "​${index}"​ != ""​ ]]; then   if [[ "​${index}"​ != ""​ ]]; then
  printf "​|${i}|0:​${index}|SUBTITLE|${codec}|${language}|${languageISO}|\n"​ >> "​${dossierTmp}/​stream.txt"​  printf "​|${i}|0:​${index}|SUBTITLE|${codec}|${language}|${languageISO}|\n"​ >> "​${dossierTmp}/​stream.txt"​
  cdeYadStream=(${cdeYadStream[@]} --field="​0:​${index} | SUBTITLE | ${language} ${codec}":​CHK "​${bol}"​)  cdeYadStream=(${cdeYadStream[@]} --field="​0:​${index} | SUBTITLE | ${language} ${codec}":​CHK "​${bol}"​)
- +
  fi  fi
- +
 done <<<​ "​${streamSub}"​ done <<<​ "​${streamSub}"​
 } }
 #​=========================================================================================================== #​===========================================================================================================
- +
 function PROFIL() function PROFIL()
 { {
Ligne 502: Ligne 517:
  FLAC  FLAC
  conteneur="​flac"​  conteneur="​flac"​
- +
 elif [[ "​${profile}"​ = "Audio vorbis"​ ]]; then elif [[ "​${profile}"​ = "Audio vorbis"​ ]]; then
  VORBIS  VORBIS
  conteneur="​ogg"​  conteneur="​ogg"​
- +
 elif [[ "​${profile}"​ = "Audio aac" ]]; then elif [[ "​${profile}"​ = "Audio aac" ]]; then
  AAC  AAC
  conteneur="​m4a"​  conteneur="​m4a"​
- +
 elif [[ "​${profile}"​ = "Audio mp3" ]]; then elif [[ "​${profile}"​ = "Audio mp3" ]]; then
  MP3  MP3
  conteneur="​mp3"​  conteneur="​mp3"​
- +
 elif [[ "​${profile}"​ = "​Vidéo mkv - x264 - vorbis"​ ]]; then elif [[ "​${profile}"​ = "​Vidéo mkv - x264 - vorbis"​ ]]; then
  X264  X264
  VORBIS  VORBIS
  conteneur="​mkv"​  conteneur="​mkv"​
- +
 elif [[ "​${profile}"​ = "​Vidéo mkv - x264 - aac" ]]; then elif [[ "​${profile}"​ = "​Vidéo mkv - x264 - aac" ]]; then
  X264  X264
  AAC  AAC
  conteneur="​mkv"​  conteneur="​mkv"​
- +
 elif [[ "​${profile}"​ = "​Vidéo mkv - x264 - mp3" ]]; then elif [[ "​${profile}"​ = "​Vidéo mkv - x264 - mp3" ]]; then
  X264  X264
  MP3  MP3
  conteneur="​mkv"​  conteneur="​mkv"​
- +
 elif [[ "​${profile}"​ = "​Vidéo mkv - x265 - aac" ]]; then elif [[ "​${profile}"​ = "​Vidéo mkv - x265 - aac" ]]; then
  X265  X265
  AAC  AAC
  conteneur="​mkv"​  conteneur="​mkv"​
- +
 elif [[ "​${profile}"​ = "​Vidéo mkv - x265 - mp3" ]]; then elif [[ "​${profile}"​ = "​Vidéo mkv - x265 - mp3" ]]; then
  X265  X265
Ligne 547: Ligne 562:
 if [[ "​${quality}"​ == "​Excellente"​ ]]; then if [[ "​${quality}"​ == "​Excellente"​ ]]; then
  cdeQualityVideo=(${qVideo1[@]})  cdeQualityVideo=(${qVideo1[@]})
- +
 elif [[ "​${quality}"​ == "​Elevée"​ ]]; then elif [[ "​${quality}"​ == "​Elevée"​ ]]; then
  cdeQualityVideo=(${qVideo2[@]})  cdeQualityVideo=(${qVideo2[@]})
- +
 elif [[ "​${quality}"​ == "​Moyenne"​ ]]; then elif [[ "​${quality}"​ == "​Moyenne"​ ]]; then
  cdeQualityVideo=(${qVideo3[@]})  cdeQualityVideo=(${qVideo3[@]})
- +
 elif [[ "​${quality}"​ == "​Minimum"​ ]]; then elif [[ "​${quality}"​ == "​Minimum"​ ]]; then
  cdeQualityVideo=(${qVideo4[@]})  cdeQualityVideo=(${qVideo4[@]})
- +
 elif [[ "​${quality}"​ == "​Faible"​ ]]; then elif [[ "​${quality}"​ == "​Faible"​ ]]; then
  cdeQualityVideo=(${qVideo5[@]})  cdeQualityVideo=(${qVideo5[@]})
- +
 fi fi
 } }
Ligne 567: Ligne 582:
 # Recherche debit total maximum du fichier source # Recherche debit total maximum du fichier source
 rateTotal=$(ffprobe -i  "​${i}"​ -hide_banner -v quiet -show_entries format=bit_rate -of csv=s="​|"​ | awk -F [\|] '​{printf "​%d"​ ,​($2/​1000)}'​) rateTotal=$(ffprobe -i  "​${i}"​ -hide_banner -v quiet -show_entries format=bit_rate -of csv=s="​|"​ | awk -F [\|] '​{printf "​%d"​ ,​($2/​1000)}'​)
- +
 # Commande selon la qualité # Commande selon la qualité
 if [[ "​${cAudio}"​ = "​copy"​ ]] || [[ "​${cAudio}"​ == "​flac"​ ]]; then if [[ "​${cAudio}"​ = "​copy"​ ]] || [[ "​${cAudio}"​ == "​flac"​ ]]; then
  cdeQualityAudio=()  cdeQualityAudio=()
- +
 elif [[ "​${typeRate}"​ == "​CBR"​ ]]; then elif [[ "​${typeRate}"​ == "​CBR"​ ]]; then
- +
  if [[ "​${quality}"​ == "​Excellente"​ ]] && [[ "​${rateTotal}"​ -ge "​320"​ ]]; then  if [[ "​${quality}"​ == "​Excellente"​ ]] && [[ "​${rateTotal}"​ -ge "​320"​ ]]; then
  cdeQualityAudio=(${qAudio1[@]})  cdeQualityAudio=(${qAudio1[@]})
- +
  elif [[ "​${quality}"​ == "​Elevée"​ ]] && [[ "​${rateTotal}"​ -ge "​256"​ ]]; then  elif [[ "​${quality}"​ == "​Elevée"​ ]] && [[ "​${rateTotal}"​ -ge "​256"​ ]]; then
  cdeQualityAudio=(${qAudio2[@]})  cdeQualityAudio=(${qAudio2[@]})
- +
  elif [[ "​${quality}"​ == "​Moyenne"​ ]] && [[ "​${rateTotal}"​ -ge "​192"​ ]]; then  elif [[ "​${quality}"​ == "​Moyenne"​ ]] && [[ "​${rateTotal}"​ -ge "​192"​ ]]; then
  cdeQualityAudio=(${qAudio3[@]})  cdeQualityAudio=(${qAudio3[@]})
- +
  elif [[ "​${quality}"​ == "​Minimum"​ ]] && [[ "​${rateTotal}"​ -ge "​128"​ ]]; then  elif [[ "​${quality}"​ == "​Minimum"​ ]] && [[ "​${rateTotal}"​ -ge "​128"​ ]]; then
  cdeQualityAudio=(${qAudio4[@]})  cdeQualityAudio=(${qAudio4[@]})
- +
  elif [[ "​${quality}"​ == "​Faible"​ ]] && [[ "​${rateTotal}"​ -ge "​64"​ ]]; then  elif [[ "​${quality}"​ == "​Faible"​ ]] && [[ "​${rateTotal}"​ -ge "​64"​ ]]; then
  cdeQualityAudio=(${qAudio5[@]})  cdeQualityAudio=(${qAudio5[@]})
- +
  else  else
- +
  if [[ "​${codecAudioIn}"​ == "​${codecAudioOut}"​ ]]; then  if [[ "​${codecAudioIn}"​ == "​${codecAudioOut}"​ ]]; then
  cAudio="​copy"​  cAudio="​copy"​
  cdeQualityAudio=()  cdeQualityAudio=()
- +
  else  else
  cdeQualityAudio=(-b:​a "​${rateTotal}k"​)  cdeQualityAudio=(-b:​a "​${rateTotal}k"​)
- +
  fi  fi
- +
  fi  fi
- +
 elif [[ "​${typeRate}"​ == "​VBR"​ ]]; then elif [[ "​${typeRate}"​ == "​VBR"​ ]]; then
- +
  if [[ "​${quality}"​ == "​Excellente"​ ]]; then  if [[ "​${quality}"​ == "​Excellente"​ ]]; then
  cdeQualityAudio=(${qAudio1[@]})  cdeQualityAudio=(${qAudio1[@]})
- +
  elif [[ "​${quality}"​ == "​Elevée"​ ]]; then  elif [[ "​${quality}"​ == "​Elevée"​ ]]; then
  cdeQualityAudio=(${qAudio2[@]})  cdeQualityAudio=(${qAudio2[@]})
- +
  elif [[ "​${quality}"​ == "​Moyenne"​ ]]; then  elif [[ "​${quality}"​ == "​Moyenne"​ ]]; then
  cdeQualityAudio=(${qAudio3[@]})  cdeQualityAudio=(${qAudio3[@]})
- +
  elif [[ "​${quality}"​ == "​Minimum"​ ]]; then  elif [[ "​${quality}"​ == "​Minimum"​ ]]; then
  cdeQualityAudio=(${qAudio4[@]})  cdeQualityAudio=(${qAudio4[@]})
- +
  elif [[ "​${quality}"​ == "​Faible"​ ]]; then  elif [[ "​${quality}"​ == "​Faible"​ ]]; then
  cdeQualityAudio=(${qAudio5[@]})  cdeQualityAudio=(${qAudio5[@]})
- +
  fi  fi
 fi fi
Ligne 629: Ligne 644:
 else else
  cVideo="​libx265"​  cVideo="​libx265"​
 +
 + qVideo1=(-crf 18 -preset slow)
 + qVideo2=(-crf 24 -preset slow)
 + qVideo3=(-crf 30 -preset medium)
 + qVideo4=(-crf 36 -preset veryfast)
 + qVideo5=(-crf 42 -preset ultrafast)
 fi fi
-  + 
-qVideo1=(-crf 18 -preset slow) +
-qVideo2=(-crf 24 -preset slow) +
-qVideo3=(-crf 30 -preset medium) +
-qVideo4=(-crf 36 -preset veryfast) +
-qVideo5=(-crf 42 -preset ultrafast) +
 } }
 #​=========================================================================================================== #​===========================================================================================================
Ligne 644: Ligne 661:
 else else
  cVideo="​libx264"​  cVideo="​libx264"​
-fi + 
-  + qVideo1=(-crf 18 -preset slow) 
-qVideo1=(-crf 18 -preset slow) + qVideo2=(-crf 24 -preset slow) 
-qVideo2=(-crf 24 -preset slow) + qVideo3=(-crf 30 -preset medium) 
-qVideo3=(-crf 30 -preset medium) + qVideo4=(-crf 36 -preset veryfast) 
-qVideo4=(-crf 36 -preset veryfast) + qVideo5=(-crf 42 -preset ultrafast) 
-qVideo5=(-crf 42 -preset ultrafast) + 
 +fi
 } }
 #​=========================================================================================================== #​===========================================================================================================
Ligne 657: Ligne 675:
 if [[ "​${codecAudioIn}"​ = "​flac"​ ]] && [[ "​${nocopy}"​ = "​TRUE"​ ]]; then if [[ "​${codecAudioIn}"​ = "​flac"​ ]] && [[ "​${nocopy}"​ = "​TRUE"​ ]]; then
  cAudio="​copy"​  cAudio="​copy"​
- +
 else else
  cAudio="​flac"​  cAudio="​flac"​
Ligne 667: Ligne 685:
 if [[ "​${codecAudioIn}"​ = "​vorbis"​ ]] && [[ "​${nocopy}"​ = "​TRUE"​ ]]; then if [[ "​${codecAudioIn}"​ = "​vorbis"​ ]] && [[ "​${nocopy}"​ = "​TRUE"​ ]]; then
  cAudio="​copy"​  cAudio="​copy"​
- +
 else else
  codecAudioOut="​vorbis"​  codecAudioOut="​vorbis"​
  cAudio="​libvorbis"​  cAudio="​libvorbis"​
- +  
 + if [[ "​${typeRate}"​ == "​VBR"​ ]]; then 
 + qAudio1=(-qscale:​a 10) 
 + qAudio2=(-qscale:​a 8) 
 + qAudio3=(-qscale:​a 5) 
 + qAudio4=(-qscale:​a 4) 
 + qAudio5=(-qscale:​a 0) 
 + 
 + elif [[ "​${typeRate}"​ == "​CBR"​ ]]; then 
 + qAudio1=(-b:​a 320k) 
 + qAudio2=(-b:​a 256k) 
 + qAudio3=(-b:​a 192k) 
 + qAudio4=(-b:​a 128k) 
 + qAudio5=(-b:​a 64k) 
 + fi 
 fi  fi
-  
-if [[ "​${typeRate}"​ == "​VBR"​ ]]; then 
- qAudio1=(-qscale:​a 10) 
- qAudio2=(-qscale:​a 8) 
- qAudio3=(-qscale:​a 5) 
- qAudio4=(-qscale:​a 4) 
- qAudio5=(-qscale:​a 0) 
-  
-elif [[ "​${typeRate}"​ == "​CBR"​ ]]; then 
- qAudio1=(-b:​a 320k) 
- qAudio2=(-b:​a 256k) 
- qAudio3=(-b:​a 192k) 
- qAudio4=(-b:​a 128k) 
- qAudio5=(-b:​a 64k) 
-fi 
 } }
 #​=========================================================================================================== #​===========================================================================================================
Ligne 694: Ligne 712:
 if [[ "​${codecAudioIn}"​ = "​aac"​ ]] && [[ "​${nocopy}"​ = "​TRUE"​ ]]; then if [[ "​${codecAudioIn}"​ = "​aac"​ ]] && [[ "​${nocopy}"​ = "​TRUE"​ ]]; then
  cAudio="​copy"​  cAudio="​copy"​
- +
 else else
  codecAudioOut="​aac"​  codecAudioOut="​aac"​
  cAudio="​aac"​  cAudio="​aac"​
-  + 
-fi + if [[ "​${typeRate}"​ == "​VBR"​ ]]; then 
-  + qAudio1=(-q:​a 0) 
-if [[ "​${typeRate}"​ == "​VBR"​ ]]; then + qAudio2=(-q:​a 2) 
- qAudio1=(-q:​a 0) + qAudio3=(-q:​a 5) 
- qAudio2=(-q:​a 2) + qAudio4=(-q:​a 7) 
- qAudio3=(-q:​a 5) + qAudio5=(-q:​a 9) 
- qAudio4=(-q:​a 7) + 
- qAudio5=(-q:​a 9) + elif [[ "​${typeRate}"​ == "​CBR"​ ]]; then 
-  + qAudio1=(-b:​a 320k) 
-elif [[ "​${typeRate}"​ == "​CBR"​ ]]; then + qAudio2=(-b:​a 256k) 
- qAudio1=(-b:​a 320k) + qAudio3=(-b:​a 192k) 
- qAudio2=(-b:​a 256k) + qAudio4=(-b:​a 128k) 
- qAudio3=(-b:​a 192k) + qAudio5=(-b:​a 64k) 
- qAudio4=(-b:​a 128k) + fi 
- qAudio5=(-b:​a 64k)+
 fi fi
 } }
Ligne 721: Ligne 739:
 if [[ "​${codecAudioIn}"​ = "​mp3"​ ]] && [[ "​${nocopy}"​ = "​TRUE"​ ]]; then if [[ "​${codecAudioIn}"​ = "​mp3"​ ]] && [[ "​${nocopy}"​ = "​TRUE"​ ]]; then
  cAudio="​copy"​  cAudio="​copy"​
- +
 else else
  codecAudioOut="​mp3"​  codecAudioOut="​mp3"​
  cAudio="​libmp3lame"​  cAudio="​libmp3lame"​
-  + 
-fi + if [[ "​${typeRate}"​ == "​VBR"​ ]]; then 
-  + qAudio1=(-q:​a 0) 
-if [[ "​${typeRate}"​ == "​VBR"​ ]]; then + qAudio2=(-q:​a 2) 
- qAudio1=(-q:​a 0) + qAudio3=(-q:​a 5) 
- qAudio2=(-q:​a 2) + qAudio4=(-q:​a 7) 
- qAudio3=(-q:​a 5) + qAudio5=(-q:​a 9) 
- qAudio4=(-q:​a 7) +  
- qAudio5=(-q:​a 9) + elif [[ "​${typeRate}"​ == "​CBR"​ ]]; then 
-  + qAudio1=(-b:​a 320k) 
-elif [[ "​${typeRate}"​ == "​CBR"​ ]]; then + qAudio2=(-b:​a 256k) 
- qAudio1=(-b:​a 320k) + qAudio3=(-b:​a 192k) 
- qAudio2=(-b:​a 256k) + qAudio4=(-b:​a 128k) 
- qAudio3=(-b:​a 192k) + qAudio5=(-b:​a 64k) 
- qAudio4=(-b:​a 128k) + fi
- qAudio5=(-b:​a 64k)+
 fi fi
 } }
Ligne 747: Ligne 764:
 { {
 IFS=$'​\n'​ IFS=$'​\n'​
- +
 for iFileIn in ${fileIn}; do for iFileIn in ${fileIn}; do
- +
  # Initialisation commandes  # Initialisation commandes
  cdeVideo=()  cdeVideo=()
  cdeAudio=()  cdeAudio=()
  cdeSub=()  cdeSub=()
-  +  
- # Nom fichier + # Nom fichier ​source 
- fileNameExt=$(basename "​${iFileIn}"​) + fileNameExtension=$(basename "​${iFileIn}"​) 
- fileName="​${fileNameExt%.*}"​ + fileName="​${fileNameExtension%.*}"​ 
- + extension="​${fileNameExtension##​*.}"​ 
 +
  # Recherche map  # Recherche map
  mapVideo=$(awk -F [\|] '{if ($4 ~ /VIDEO/ && /'​${fileName}'/​) {printf "​%s\n"​ ,$3}}' <<<​ "​${stream}"​)  mapVideo=$(awk -F [\|] '{if ($4 ~ /VIDEO/ && /'​${fileName}'/​) {printf "​%s\n"​ ,$3}}' <<<​ "​${stream}"​)
  mapAudio=$(awk -F [\|] '{if ($4 ~ /AUDIO/ && /'​${fileName}'/​) {printf "​%s\n"​ ,$3}}' <<<​ "​${stream}"​)  mapAudio=$(awk -F [\|] '{if ($4 ~ /AUDIO/ && /'​${fileName}'/​) {printf "​%s\n"​ ,$3}}' <<<​ "​${stream}"​)
  mapSub=$(awk -F [\|] '{if ($4 ~ /SUBTITLE/ && /'​${fileName}'/​) {printf "​%s\n"​ ,$3}}' <<<​ "​${stream}"​)  mapSub=$(awk -F [\|] '{if ($4 ~ /SUBTITLE/ && /'​${fileName}'/​) {printf "​%s\n"​ ,$3}}' <<<​ "​${stream}"​)
- +
  echo "​=============================================="​  echo "​=============================================="​
  echo " ​ iFileIn: ${iFileIn}"​  echo " ​ iFileIn: ${iFileIn}"​
Ligne 770: Ligne 788:
  echo " mapAudio: ${mapAudio}"​  echo " mapAudio: ${mapAudio}"​
  echo " ​  ​mapSub:​ ${mapSub}"​  echo " ​  ​mapSub:​ ${mapSub}"​
- +
  # Metadonnée  # Metadonnée
  if [[ "​${metadata}"​ == "​TRUE"​ ]]; then  if [[ "​${metadata}"​ == "​TRUE"​ ]]; then
Ligne 777: Ligne 795:
  cdeMetadata=()  cdeMetadata=()
  fi  fi
- +
  FFMPEG_VIDEO  FFMPEG_VIDEO
  FFMPEG_AUDIO  FFMPEG_AUDIO
- + FFMPEG_OUT 
 +  
 +  
 +
  # Conversion fichier  # Conversion fichier
  ffmpeg -y -i "​${iFileIn}"​ -loglevel debug "​${cdeMetadata[@]}"​ "​${cdeVideo[@]}"​ "​${cdeAudio[@]}"​ "​${dirOut}/​${fileName}.${conteneur}"​  ffmpeg -y -i "​${iFileIn}"​ -loglevel debug "​${cdeMetadata[@]}"​ "​${cdeVideo[@]}"​ "​${cdeAudio[@]}"​ "​${dirOut}/​${fileName}.${conteneur}"​
- +
  ffmpeg -i "​${dirOut}/​${fileName}.${conteneur}"​ ## TEST ##  ffmpeg -i "​${dirOut}/​${fileName}.${conteneur}"​ ## TEST ##
  echo "​ffmpeg -y -i "​${iFileIn}"​ "​${cdeMetadata[@]}"​ "​${cdeVideo[@]}"​ "​${cdeAudio[@]}"​ "​${dirOut}/​${fileName}.${conteneur}""​ ## TEST ##  echo "​ffmpeg -y -i "​${iFileIn}"​ "​${cdeMetadata[@]}"​ "​${cdeVideo[@]}"​ "​${cdeAudio[@]}"​ "​${dirOut}/​${fileName}.${conteneur}""​ ## TEST ##
-  +  
-Cover fichier +Image cover fichier ​audio
- numImage="​1"​ +
- +
  for iMapVideo in ${mapVideo};​ do  for iMapVideo in ${mapVideo};​ do
-  +  
- # Recherche codec vidéo ​map vidéo+ numImage="​1"​ 
 + 
 + # Recherche codec vidéo ​(image)
  codecVideoIn=$(awk -F [\|] '{if ($4 ~ /VIDEO/ && /'​${iMapVideo}'/​ && /'​${fileName}'/​) {printf "​%s"​ ,$5}}' <<<​ "​${stream}"​)  codecVideoIn=$(awk -F [\|] '{if ($4 ~ /VIDEO/ && /'​${iMapVideo}'/​ && /'​${fileName}'/​) {printf "​%s"​ ,$5}}' <<<​ "​${stream}"​)
- +
  if [[ "​${codecVideoIn}"​ == "​mjpeg"​ ]] || [[ "​${codecVideoIn}"​ == "​png"​ ]]; then  if [[ "​${codecVideoIn}"​ == "​mjpeg"​ ]] || [[ "​${codecVideoIn}"​ == "​png"​ ]]; then
 +
  COVER  COVER
-  
  fi  fi
- +
  done  done
- +
 done done
 } }
- +
 #​=========================================================================================================== #​===========================================================================================================
 function FFMPEG_VIDEO() function FFMPEG_VIDEO()
 { {
 numFile=""​ numFile=""​
- +
 for iMapVideo in ${mapVideo};​ do for iMapVideo in ${mapVideo};​ do
- +
  codecVideoIn=$(awk -F [\|] '{if ($4 ~ /VIDEO/ && /'​${iMapVideo}'/​ && /'​${fileName}'/​) {printf "​%s"​ ,$5}}' <<<​ "​${stream}"​)  codecVideoIn=$(awk -F [\|] '{if ($4 ~ /VIDEO/ && /'​${iMapVideo}'/​ && /'​${fileName}'/​) {printf "​%s"​ ,$5}}' <<<​ "​${stream}"​)
- +
  PROFIL  PROFIL
  QUALITY_VIDEO  QUALITY_VIDEO
- +
  if [[ "​${profile}"​ = "Audio FLAC" ]] || [[ "​${profile}"​ = "Audio vorbis"​ ]] || [[ "​${profile}"​ = "Audio aac" ]] || [[ "​${profile}"​ = "Audio mp3" ]]; then  if [[ "​${profile}"​ = "Audio FLAC" ]] || [[ "​${profile}"​ = "Audio vorbis"​ ]] || [[ "​${profile}"​ = "Audio aac" ]] || [[ "​${profile}"​ = "Audio mp3" ]]; then
  cdeVideo=(-vn)  cdeVideo=(-vn)
- +
  else  else
  cdeVideo=(${cdeVideo[@]} -map ${iMapVideo} -c:v ${cVideo} ${cdeQualityVideo[@]})  cdeVideo=(${cdeVideo[@]} -map ${iMapVideo} -c:v ${cVideo} ${cdeQualityVideo[@]})
- +
  fi  fi
- +
  echo "​cdeVideo:​ ${cdeVideo[@]}"​  echo "​cdeVideo:​ ${cdeVideo[@]}"​
- +
 done done
 } }
Ligne 833: Ligne 854:
 { {
 numAudio="​0"​ numAudio="​0"​
- +
 for iMapAudio in ${mapAudio};​ do for iMapAudio in ${mapAudio};​ do
- +
  codecAudioIn=$(awk -F [\|] '{if ($4 ~ /AUDIO/ && /'​${iMapAudio}'/​ && /'​${fileName}'/​) {printf "​%s"​ ,$5}}' <<<​ "​${stream}"​)  codecAudioIn=$(awk -F [\|] '{if ($4 ~ /AUDIO/ && /'​${iMapAudio}'/​ && /'​${fileName}'/​) {printf "​%s"​ ,$5}}' <<<​ "​${stream}"​)
  languageISO=$(awk -F [\|] '{if ($4 ~ /AUDIO/ && $3 ~ /'​${iMapAudio}'/​ && /'​${fileName}'/​) {printf "​%s"​ ,$7}}' <<<​ "​${stream}"​)  languageISO=$(awk -F [\|] '{if ($4 ~ /AUDIO/ && $3 ~ /'​${iMapAudio}'/​ && /'​${fileName}'/​) {printf "​%s"​ ,$7}}' <<<​ "​${stream}"​)
- +
  PROFIL  PROFIL
  QUALITY_AUDIO  QUALITY_AUDIO
- +
  cdeAudio=(${cdeAudio[@]} -map ${iMapAudio} -metadata:​s:​a:​${numAudio} language="​${languageISO}"​ -c:a ${cAudio} ${cdeQualityAudio[@]} ${channel[@]} -cutoff 20000)  cdeAudio=(${cdeAudio[@]} -map ${iMapAudio} -metadata:​s:​a:​${numAudio} language="​${languageISO}"​ -c:a ${cAudio} ${cdeQualityAudio[@]} ${channel[@]} -cutoff 20000)
  ((numAudio+=1))  ((numAudio+=1))
- +
 done done
 } }
 +#​===========================================================================================================
 +function FFMPEG_OUT()
 +{
 +
 +
 +# Si fichier exsite déjà ajoute "​copie"​ et numéro de la copie
 +nbrCopie="​1"​
 +
 +while [[ -f "​${dirOut}/​${fileName}.${conteneur}"​ ]]; do
 + fileName=$(awk '​{gsub(/​ - copie.*/, ""​);​ printf "%s - copie '​$nbrCopie'"​ ,$0}' <<<​ "​${fileName}"​)
 + ((nbrCopie+=1))
 +done
 +}
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 #​=========================================================================================================== #​===========================================================================================================
 function COVER() function COVER()
Ligne 852: Ligne 897:
 # Si codecVideoIn = mjpeg --> jpeg # Si codecVideoIn = mjpeg --> jpeg
 [[ "​${codecVideoIn}"​ == "​mjpeg"​ ]] && codecVideoIn="​jpeg"​ [[ "​${codecVideoIn}"​ == "​mjpeg"​ ]] && codecVideoIn="​jpeg"​
- +
 # Recherche numéro id depuis la map # Recherche numéro id depuis la map
 id=$(awk -F [\:] '​{print $2}' <<<​ "​${iMapVideo}"​) id=$(awk -F [\:] '​{print $2}' <<<​ "​${iMapVideo}"​)
- +
 # Type d'​image (Front, back, other) # Type d'​image (Front, back, other)
 typeImage=$(ffprobe -i  "​${i}"​ -hide_banner -v quiet -select_streams ${id} -show_entries stream_tags=comment -of csv=s="​|"​ | awk -F [\|] '​{print $2}') typeImage=$(ffprobe -i  "​${i}"​ -hide_banner -v quiet -select_streams ${id} -show_entries stream_tags=comment -of csv=s="​|"​ | awk -F [\|] '​{print $2}')
- +
 # Nom image cover # Nom image cover
 nameImage=$(ffprobe -i  "​${i}"​ -hide_banner -v quiet -select_streams ${id} -show_entries stream_tags=title -of csv=s="​|"​ | awk -F [\|] '​{print $2}') nameImage=$(ffprobe -i  "​${i}"​ -hide_banner -v quiet -select_streams ${id} -show_entries stream_tags=title -of csv=s="​|"​ | awk -F [\|] '​{print $2}')
- +
 if [[ "​${nameImage}"​ == ""​ ]]; then  if [[ "​${nameImage}"​ == ""​ ]]; then 
- nameImage="​cover_${typeImage}"​ + #nameImage="​cover_${typeImage}"​ 
- +  
 +  
 + if [[ "​${typeImage}"​ == "Cover (front)"​ ]]; then 
 + nameImage="​Cover front"​ 
 + 
 + elif [[ "​${typeImage}"​ == "Cover (back)"​ ]]; then 
 + nameImage="​Cover back"​ 
 + 
 + else [[ "​${typeImage}"​ == "​Other"​ ]] 
 + nameImage="​Other"​ 
 +  
 + fi 
 elif [[ "​${nameImage}"​ == "​${nameImageSave}"​ ]]; then elif [[ "​${nameImage}"​ == "​${nameImageSave}"​ ]]; then
  nameImage="​${nameImage}_${numImage}"​  nameImage="​${nameImage}_${numImage}"​
- +
 fi fi
- +
 # Sauvegarde du nom de l'​image # Sauvegarde du nom de l'​image
 nameImageSave="​${numImage}"​ nameImageSave="​${numImage}"​
 ((numImage+=1)) ((numImage+=1))
- +
 # Extraction image du fichier source # Extraction image du fichier source
 ffmpeg -y -i "​${iFileIn}"​ -map ${iMapVideo} -an "​${dossierTmp}/​${nameImage}.${codecVideoIn}"​ ffmpeg -y -i "​${iFileIn}"​ -map ${iMapVideo} -an "​${dossierTmp}/​${nameImage}.${codecVideoIn}"​
- +
 # Image cover pour fichier audio flac # Image cover pour fichier audio flac
 if [[ "​${profile}"​ = "Audio FLAC" ]]; then if [[ "​${profile}"​ = "Audio FLAC" ]]; then
  COVER_FLAC  COVER_FLAC
- +
 # Image cover pour fichier audio vorbis # Image cover pour fichier audio vorbis
 elif [[ "​${profile}"​ = "Audio vorbis"​ ]]; then elif [[ "​${profile}"​ = "Audio vorbis"​ ]]; then
  COVER_OGG  COVER_OGG
- +
 # Image cover pour fichier audio mp3 # Image cover pour fichier audio mp3
 elif [[ "​${profile}"​ = "Audio mp3" ]]; then elif [[ "​${profile}"​ = "Audio mp3" ]]; then
  COVER_MP3  COVER_MP3
- +
 # Image cover pour fichier audio aac # Image cover pour fichier audio aac
 elif [[ "​${profile}"​ = "Audio aac" ]]; then elif [[ "​${profile}"​ = "Audio aac" ]]; then
  COVER_OTHER  COVER_OTHER
 fi fi
-  + 
- +
 echo "=== COVER ===" echo "=== COVER ==="
 echo "id: ${id}" echo "id: ${id}"
Ligne 903: Ligne 960:
 function COVER_FLAC() function COVER_FLAC()
 { {
- +
 if [[ "​${typeImage}"​ == "Cover (front)"​ ]]; then if [[ "​${typeImage}"​ == "Cover (front)"​ ]]; then
  typeImage="​3"​  typeImage="​3"​
- +
 elif [[ "​${typeImage}"​ == "Cover (back)"​ ]]; then elif [[ "​${typeImage}"​ == "Cover (back)"​ ]]; then
  typeImage="​4"​  typeImage="​4"​
-  + 
-  + 
-elif [[ "​${typeImage}"​ == "​Other"​ ]]; then+else [[ "​${typeImage}"​ == "​Other"​ ]]
  typeImage="​0"​  typeImage="​0"​
-  + 
-else + 
- typeImage="​3"​ +
- +
 fi fi
- +
 # Ajout de l'​image au fichier audio # Ajout de l'​image au fichier audio
 metaflac --import-picture-from="​${typeImage}||${nameImage}||${dossierTmp}/​${nameImage}.${codecVideoIn}"​ "​${dirOut}/​${fileName}.${conteneur}"​ metaflac --import-picture-from="​${typeImage}||${nameImage}||${dossierTmp}/​${nameImage}.${codecVideoIn}"​ "​${dirOut}/​${fileName}.${conteneur}"​
- +
 } }
 #​=========================================================================================================== #​===========================================================================================================
 function COVER_OGG() function COVER_OGG()
 { {
- +
 # Type d'​image (Front, back, other) # Type d'​image (Front, back, other)
 typeImage=$(ffprobe -i  "​${i}"​ -hide_banner -v quiet -select_streams ${id} -show_entries stream_tags=comment -of csv=s="​|"​ | awk -F [\|] '​{print $2}') typeImage=$(ffprobe -i  "​${i}"​ -hide_banner -v quiet -select_streams ${id} -show_entries stream_tags=comment -of csv=s="​|"​ | awk -F [\|] '​{print $2}')
- +
 if [[ "​${typeImage}"​ == "Cover (front)"​ ]]; then if [[ "​${typeImage}"​ == "Cover (front)"​ ]]; then
  typeImage="​3"​  typeImage="​3"​
- +
 elif [[ "​${typeImage}"​ == "Cover (back)"​ ]]; then elif [[ "​${typeImage}"​ == "Cover (back)"​ ]]; then
  typeImage="​4"​  typeImage="​4"​
- +
 elif [[ "​${typeImage}"​ == "​Artist/​performer"​ ]]; then elif [[ "​${typeImage}"​ == "​Artist/​performer"​ ]]; then
  typeImage="​8"​  typeImage="​8"​
- +
 elif [[ "​${typeImage}"​ == "​Other"​ ]]; then elif [[ "​${typeImage}"​ == "​Other"​ ]]; then
  typeImage="​0"​   typeImage="​0"​
- +
 else else
  typeImage="​3"​  typeImage="​3"​
- +
 fi fi
- +
 # Sauvegarde données exsistantes du fichier source # Sauvegarde données exsistantes du fichier source
 vorbiscomment --list --raw "​${dirOut}/​out.${conteneur}"​ > "​${dossierTmp}/​fileSaveOgg.txt"​ vorbiscomment --list --raw "​${dirOut}/​out.${conteneur}"​ > "​${dossierTmp}/​fileSaveOgg.txt"​
- +
 #​Suppression image exsistante #​Suppression image exsistante
 #sed -i -e '/​^metadata_block_picture/​d'​ "​${dossierTmp}/​fileSaveOgg.txt"​ #sed -i -e '/​^metadata_block_picture/​d'​ "​${dossierTmp}/​fileSaveOgg.txt"​
- +
 # Metadata_block_picture format # Metadata_block_picture format
 #Lien: https://​xiph.org/​flac/​format.html#​metadata_block_picture #Lien: https://​xiph.org/​flac/​format.html#​metadata_block_picture
 imageMimeType=$(file -b --mime-type "​${dossierTmp}/​${nameImage}.${codecVideoIn}"​) imageMimeType=$(file -b --mime-type "​${dossierTmp}/​${nameImage}.${codecVideoIn}"​)
- +
 printf "0: %.8x" "​${typeImage}"​ | xxd -r -g0 >> "​${dossierTmp}/​dataImage.txt"​ printf "0: %.8x" "​${typeImage}"​ | xxd -r -g0 >> "​${dossierTmp}/​dataImage.txt"​
 printf "0: %.8x" $(echo -n "​${imageMimeType}"​ | wc -c) | xxd -r -g0 >> "​${dossierTmp}/​dataImage.txt"​ printf "0: %.8x" $(echo -n "​${imageMimeType}"​ | wc -c) | xxd -r -g0 >> "​${dossierTmp}/​dataImage.txt"​
Ligne 967: Ligne 1023:
 printf "0: %.8x" 0 | xxd -r -g0 >> "​${dossierTmp}/​dataImage.txt"​ printf "0: %.8x" 0 | xxd -r -g0 >> "​${dossierTmp}/​dataImage.txt"​
 printf "0: %.8x" $(wc -c "​${dossierTmp}/​cover.${codecVideoIn}"​ | cut --delimiter='​ ' --fields=1) | xxd -r -g0 >> "​${dossierTmp}/​dataImage.txt"​ printf "0: %.8x" $(wc -c "​${dossierTmp}/​cover.${codecVideoIn}"​ | cut --delimiter='​ ' --fields=1) | xxd -r -g0 >> "​${dossierTmp}/​dataImage.txt"​
- +
 #Image file #Image file
 cat "​${dossierTmp}/​cover.${codecVideoIn}"​ >> "​${dossierTmp}/​dataImage.txt"​ cat "​${dossierTmp}/​cover.${codecVideoIn}"​ >> "​${dossierTmp}/​dataImage.txt"​
- +
 echo "​metadata_block_picture=$(base64 --wrap=0 < "​${dossierTmp}/​dataImage.txt"​)"​ >> "​${dossierTmp}/​fileSaveOgg.txt"​ echo "​metadata_block_picture=$(base64 --wrap=0 < "​${dossierTmp}/​dataImage.txt"​)"​ >> "​${dossierTmp}/​fileSaveOgg.txt"​
- +
 #Update vorbis file comments #Update vorbis file comments
 vorbiscomment --write --raw --commentfile "​${dossierTmp}/​fileSaveOgg.txt"​ "​${dirOut}/​${fileName}.${conteneur}"​ vorbiscomment --write --raw --commentfile "​${dossierTmp}/​fileSaveOgg.txt"​ "​${dirOut}/​${fileName}.${conteneur}"​
- +
 #Delete temp files #Delete temp files
 rm "​${dossierTmp}/​dataImage.txt"​ rm "​${dossierTmp}/​dataImage.txt"​
Ligne 983: Ligne 1039:
 function COVER_MP3() function COVER_MP3()
 { {
-  
-  
 if [[ "​${typeImage}"​ == "Cover (front)"​ ]]; then if [[ "​${typeImage}"​ == "Cover (front)"​ ]]; then
  typeImage="​FRONT_COVER"​  typeImage="​FRONT_COVER"​
- +
 elif [[ "​${typeImage}"​ == "Cover (back)"​ ]]; then elif [[ "​${typeImage}"​ == "Cover (back)"​ ]]; then
  typeImage="​BACK_COVER"​  typeImage="​BACK_COVER"​
- +
 elif [[ "​${typeImage}"​ == "​Artist/​performer"​ ]]; then elif [[ "​${typeImage}"​ == "​Artist/​performer"​ ]]; then
  typeImage="​ARTIST"​  typeImage="​ARTIST"​
- +
 elif [[ "​${typeImage}"​ == "​Other"​ ]]; then elif [[ "​${typeImage}"​ == "​Other"​ ]]; then
  typeImage="​OTHER"​  typeImage="​OTHER"​
-  +
- +
 else else
  typeImage="​FRONT_COVER"​  typeImage="​FRONT_COVER"​
- +
 fi fi
- +
 # Ajout de l'​image au fichier audio # Ajout de l'​image au fichier audio
 eyeD3 --add-image="​${dossierTmp}/​${nameImage}.${codecVideoIn}":"​${typeImage}":"​${nameImage}"​ "​${dirOut}/​${fileName}.${conteneur}"​ eyeD3 --add-image="​${dossierTmp}/​${nameImage}.${codecVideoIn}":"​${typeImage}":"​${nameImage}"​ "​${dirOut}/​${fileName}.${conteneur}"​
Ligne 1009: Ligne 1062:
 function COVER_OTHER() function COVER_OTHER()
 { {
-# renommage image cover en "​cover"​ +if [[ "​${typeImage}"​ == "Cover \(back\)"​ ]]; then 
-mv "​${dossierTmp}/​${nameImage}.${codecVideoIn}"​ "​${dossierTmp}/​cover.${codecVideoIn}"​ + 
-  + # renommage image cover en "​cover"​ 
-# Ajout de l'​image au fichier audio + mv "​${dossierTmp}/​${nameImage}.${codecVideoIn}"​ "​${dossierTmp}/​cover.${codecVideoIn}"​ 
-kid3-cli -c "set picture:"​${dossierTmp}/​cover.${codecVideoIn}"​ ''"​ "​${dirOut}/​${fileName}.${conteneur}"​+ 
 + # Ajout de l'​image au fichier audio 
 + kid3-cli -c "set picture:"​${dossierTmp}/​cover.${codecVideoIn}"​ ''"​ "​${dirOut}/​${fileName}.${conteneur}"​ 
 + 
 +fi
 } }
- +
 #​=========================================================================================================== #​===========================================================================================================
 function MAIN() function MAIN()
Ligne 1021: Ligne 1078:
 # Chargement fichier de configurations # Chargement fichier de configurations
 . "​${fileConfig}"​ . "​${fileConfig}"​
- +
 YADMAIN YADMAIN
- +
 # Si aucune source sélectionnée # Si aucune source sélectionnée
 if [[ "​${status}"​ -eq "​0"​ ]] && [[ "​${fileIn}"​ == ""​ ]]; then if [[ "​${status}"​ -eq "​0"​ ]] && [[ "​${fileIn}"​ == ""​ ]]; then
  status="​4"​  status="​4"​
 fi fi
- +
 # YADMAIN Bouton "​Quitter"​ ou "Croix fenêtre"​ # YADMAIN Bouton "​Quitter"​ ou "Croix fenêtre"​
 if [[ "​${status}"​ -eq "​1"​ ]] || [[ "​${status}"​ -eq "​252"​ ]]; then if [[ "​${status}"​ -eq "​1"​ ]] || [[ "​${status}"​ -eq "​252"​ ]]; then
  rm -rf "​${dossierTmp}"​  rm -rf "​${dossierTmp}"​
  exit  exit
- +
 # YADMAIN Bouton "​Configuration par défaut"​ # YADMAIN Bouton "​Configuration par défaut"​
 elif [[ "​${status}"​ -eq "​3"​ ]]; then elif [[ "​${status}"​ -eq "​3"​ ]]; then
Ligne 1039: Ligne 1096:
  CONFIGDEFAUT  CONFIGDEFAUT
  MAIN  MAIN
- +
 # YADMAIN Bouton "​Préférences"​ # YADMAIN Bouton "​Préférences"​
 elif [[ "​${status}"​ -eq "​2"​ ]]; then elif [[ "​${status}"​ -eq "​2"​ ]]; then
  SAVE  SAVE
  YADPREFERENCE  YADPREFERENCE
- +
  # YADPREFERENCE Bouton "​Quitter"​ ou "Croix fenêtre"​  # YADPREFERENCE Bouton "​Quitter"​ ou "Croix fenêtre"​
  if [[ "​${status}"​ -eq "​1"​ ]] || [[ "​${status}"​ -eq "​252"​ ]]; then  if [[ "​${status}"​ -eq "​1"​ ]] || [[ "​${status}"​ -eq "​252"​ ]]; then
  rm -rf "​${dossierTmp}"​  rm -rf "​${dossierTmp}"​
  exit  exit
- +
  # YADPREFERENCE Bouton "​Annuler"​  # YADPREFERENCE Bouton "​Annuler"​
  elif [[ "​${status}"​ -eq "​2"​ ]]; then  elif [[ "​${status}"​ -eq "​2"​ ]]; then
  MAIN  MAIN
- +
  # YADPREFERENCE Bouton "​Valider"​  # YADPREFERENCE Bouton "​Valider"​
  elif [[ "​${status}"​ -eq "​0"​ ]]; then  elif [[ "​${status}"​ -eq "​0"​ ]]; then
Ligne 1059: Ligne 1116:
  #STREAM  #STREAM
  MAIN  MAIN
- +
  fi  fi
- +
 # YADMAIN Bouton "​Source"​ ou aucune source sélectionnée # YADMAIN Bouton "​Source"​ ou aucune source sélectionnée
 elif [[ "​${status}"​ -eq "​4"​ ]]; then elif [[ "​${status}"​ -eq "​4"​ ]]; then
  SAVE  SAVE
- YADFILE + YADSOURCE 
- +  
-YADFILE ​Bouton "​Quitter"​ ou "Croix fenêtre"​+YADSOURCE ​Bouton "​Quitter"​ ou "Croix fenêtre"​
  if [[ "​${status}"​ -eq "​1"​ ]] || [[ "​${status}"​ -eq "​252"​ ]]; then  if [[ "​${status}"​ -eq "​1"​ ]] || [[ "​${status}"​ -eq "​252"​ ]]; then
  rm -rf "​${dossierTmp}"​  rm -rf "​${dossierTmp}"​
  exit  exit
- +  
-YADFILE ​Bouton "​Annuler"​+YADSOURCE ​Bouton "​Annuler"​
  elif [[ "​${status}"​ -eq "​2"​ ]]; then  elif [[ "​${status}"​ -eq "​2"​ ]]; then
  MAIN  MAIN
 +
 + # YADSOURCE choix "​Fichier"​
 + elif [[ "​${source}"​ == "​Fichier"​ ]]; then
 + YADFILE
 +
 + # YADFILE Bouton "​Quitter"​ ou "Croix fenêtre"​
 + if [[ "​${status}"​ -eq "​1"​ ]] || [[ "​${status}"​ -eq "​252"​ ]]; then
 + rm -rf "​${dossierTmp}"​
 + exit
 +
 + # YADFILE Bouton "​Annuler"​
 + elif [[ "​${status}"​ -eq "​2"​ ]]; then
 + MAIN
 +
 + # YADFILE Bouton "​Valider"​
 + elif [[ "​${status}"​ -eq "​0"​ ]]; then
 + STREAM
 + MAIN
 + fi
 +
 + # YADSOURCE choix "​DVD"​
 + elif [[ "​${source}"​ == "​DVD"​ ]]; then
 + echo "​Source DVD à finir"
 +
 + # YADSOURCE choix "​CD"​
 + elif [[ "​${source}"​ == "​CD"​ ]]; then
 + echo "​Source CD à finir"
 +
 + # YADSOURCE choix "​DDL"​
 + elif [[ "​${source}"​ == "​DDL"​ ]]; then
 + echo "​Source DDL à finir"
  
- # YADFILE Bouton "​Valider"​ 
- elif [[ "​${status}"​ -eq "​0"​ ]]; then 
- STREAM 
- MAIN 
  fi  fi
- +
 # YADMAIN Bouton "​Lancer conversion"​ # YADMAIN Bouton "​Lancer conversion"​
 elif [[ "​${status}"​ -eq "​0"​ ]]; then elif [[ "​${status}"​ -eq "​0"​ ]]; then
  SAVE  SAVE
- +
  # Récupération de la valeur TRUE et FALSE depuis YADMAIN et fusion avec les données du fichier stream.txt  # Récupération de la valeur TRUE et FALSE depuis YADMAIN et fusion avec les données du fichier stream.txt
  IFS=$"​|"​  IFS=$"​|"​
Ligne 1095: Ligne 1179:
  ((numLine+=1))  ((numLine+=1))
  done <<<​ $(cat "​${dossierTmp}/​stream.txt"​) | awk -F [\|] '{if ($1 ~ /TRUE/) {print $0}}')  done <<<​ $(cat "​${dossierTmp}/​stream.txt"​) | awk -F [\|] '{if ($1 ~ /TRUE/) {print $0}}')
- +
  SAVE  SAVE
  FFMPEG  FFMPEG
  MAIN  MAIN
- +
 fi fi
 } }
Ligne 1105: Ligne 1189:
 CONFIGURATION CONFIGURATION
 MAIN MAIN
- 
  
 </​code>​ </​code>​
 +
 +
  

Pied de page des forums

Propulsé par FluxBB