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:05]
Slyfox [Sylmedia]
utilisateurs:slyfox:scripts:accueil [14/08/2018 17:22]
Slyfox supprimée
Ligne 6: Ligne 6:
   * 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 : 
  
-<note warning>​Script en cours d’écriture!</​note>​+<note warning>__**Script en cours d’écriture!**__</​note>​
  
-Copier le script ci-desous dans un fichier et le nommer slymedia.sh +Installation des paquets: 
-Ouvrir un terminal graphique (gnome terminal, terminal mate...) +<code root>apt-get update 
-Taper le chemin du fichier du script "​slymedia.sh)+apt-get install ffmpeg yad flac vorbis-tools eyed3 kid3-cli</​code>​
  
-<​note>​Version du 31.07.2018</​note>​+Copier le script ci-dessous dans un fichier et le nommer **slymedia.sh** \\ 
 +Déplacer le fichier **slymedia.sh** dans le dossier **/home** ou a convenance.\\ 
 +Avant le premier lancement il faut que le fichier soit exécutable (adapter si nécessaire le chemin du fichier).\\ 
 +<code user>​chmod u+x /​$HOME/​slymedia.sh</​code>​ 
 + 
 +Pour lancer le script:\\ 
 + 
 +  * Ouvrir un terminal graphique (gnome terminal, terminal mate...) et taper le chemin du fichier **slymedia.sh** (adapter si nécessaire le chemin du fichier).\\ 
 + 
 +<code user>/​$HOME/​slymedia.sh</​code>​ 
 + 
 +ou\\ 
 + 
 +  * Faire un double clic sur le fichier. 
 + 
 + 
 + 
 +<​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
  
 #​=========================================================================================================== #​===========================================================================================================
Ligne 40: Ligne 60:
 --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 350: Ligne 371:
  
 for i in ${fileIn}; do for i in ${fileIn}; do
- 
- #ffprobe -i  "​${i}"​ -hide_banner -v quiet -show_streams 
  STREAMTITLE  STREAMTITLE
  STREAMVIDEO  STREAMVIDEO
Ligne 357: Ligne 376:
  STREAMSUBTITLE  STREAMSUBTITLE
  cdeYadStream=(${cdeYadStream[@]} --field="​ ":LBL " ")  cdeYadStream=(${cdeYadStream[@]} --field="​ ":LBL " ")
 +
 done done
 } }
Ligne 363: Ligne 383:
 { {
 # 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}"​)
Ligne 398: Ligne 418:
  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 422: Ligne 462:
  
  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
Ligne 612: Ligne 645:
 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 627: Ligne 662:
 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 655: Ligne 691:
  cAudio="​libvorbis"​  cAudio="​libvorbis"​
   
-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)
  
-if [[ "​${typeRate}"​ == "VBR" ]]; then + elif [[ "​${typeRate}"​ == "CBR" ]]; then 
- qAudio1=(-qscale:a 10+ qAudio1=(-b:a 320k
- qAudio2=(-qscale:a 8+ qAudio2=(-b:a 256k
- qAudio3=(-qscale:a 5+ qAudio3=(-b:a 192k
- qAudio4=(-qscale:a 4+ qAudio4=(-b:a 128k
- qAudio5=(-qscale:a 0)+ qAudio5=(-b:a 64k) 
 + fi
  
-elif [[ "​${typeRate}"​ == "​CBR"​ ]]; then +fi
- qAudio1=(-b:​a 320k) +
- qAudio2=(-b:​a 256k) +
- qAudio3=(-b:​a 192k) +
- qAudio4=(-b:​a 128k) +
- qAudio5=(-b:​a 64k) +
-fi+
 } }
 #​=========================================================================================================== #​===========================================================================================================
Ligne 682: Ligne 718:
  cAudio="​aac"​  cAudio="​aac"​
  
-fi+ if [[ "​${typeRate}"​ == "​VBR"​ ]]; then 
 + qAudio1=(-q:​a 0) 
 + qAudio2=(-q:​a 2) 
 + qAudio3=(-q:​a 5) 
 + qAudio4=(-q:​a 7) 
 + qAudio5=(-q:​a 9)
  
-if [[ "​${typeRate}"​ == "VBR" ]]; then + elif [[ "​${typeRate}"​ == "CBR" ]]; then 
- qAudio1=(-q:a 0+ qAudio1=(-b:a 320k
- qAudio2=(-q:a 2+ qAudio2=(-b:a 256k
- qAudio3=(-q:a 5+ qAudio3=(-b:a 192k
- qAudio4=(-q:a 7+ qAudio4=(-b:a 128k
- qAudio5=(-q:a 9)+ qAudio5=(-b:a 64k) 
 + fi
  
-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
 } }
Ligne 709: Ligne 745:
  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 738: Ligne 773:
  cdeSub=()  cdeSub=()
   
- # Nom fichier + # Nom fichier ​source 
- fileNameExt=$(basename "​${iFileIn}"​) + fileNameExtension=$(basename "​${iFileIn}"​) 
- fileName="​${fileNameExt%.*}"+ fileName="​${fileNameExtension%.*}" 
 + extension="​${fileNameExtension##​*.}"
   
  # Recherche map  # Recherche map
Ligne 763: Ligne 799:
  FFMPEG_VIDEO  FFMPEG_VIDEO
  FFMPEG_AUDIO  FFMPEG_AUDIO
 + FFMPEG_OUT
 +
 +
   
  # Conversion fichier  # Conversion fichier
Ligne 770: Ligne 809:
  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
 +
 + numImage="​1"​
  
- # Recherche codec vidéo ​map vidéo+ # 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
   
Ligne 830: Ligne 869:
 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 846: Ligne 909:
  
 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}"​
Ligne 894: Ligne 969:
  
  
-elif [[ "​${typeImage}"​ == "​Other"​ ]]; then+else [[ "​${typeImage}"​ == "​Other"​ ]]
  typeImage="​0"​  typeImage="​0"​
  
-else +
- typeImage="​3"​+
  
 fi fi
Ligne 966: Ligne 1040:
 function COVER_MP3() function COVER_MP3()
 { {
- 
- 
 if [[ "​${typeImage}"​ == "Cover (front)"​ ]]; then if [[ "​${typeImage}"​ == "Cover (front)"​ ]]; then
  typeImage="​FRONT_COVER"​  typeImage="​FRONT_COVER"​
Ligne 979: Ligne 1051:
 elif [[ "​${typeImage}"​ == "​Other"​ ]]; then elif [[ "​${typeImage}"​ == "​Other"​ ]]; then
  typeImage="​OTHER"​  typeImage="​OTHER"​
-  
  
 else else
Ligne 992: Ligne 1063:
 function COVER_OTHER() function COVER_OTHER()
 { {
-# renommage image cover en "​cover"​ +if [[ "${typeImage}" ​== "Cover \(back\)" ​]]; then
-mv "${dossierTmp}/​${nameImage}.${codecVideoIn}" "${dossierTmp}/​cover.${codecVideoIn}"+
  
-# Ajout de l'​image au fichier audio + # renommage image cover en "​cover"​ 
-kid3-cli -c "set picture:"​${dossierTmp}/​cover.${codecVideoIn}"​ ''"​ "​${dirOut}/​${fileName}.${conteneur}"​+ mv "​${dossierTmp}/​${nameImage}.${codecVideoIn}"​ "​${dossierTmp}/​cover.${codecVideoIn}"​ 
 + 
 + # Ajout de l'​image au fichier audio 
 + kid3-cli -c "set picture:"​${dossierTmp}/​cover.${codecVideoIn}"​ ''"​ "​${dirOut}/​${fileName}.${conteneur}"​ 
 + 
 +fi
 } }
  

Pied de page des forums

Propulsé par FluxBB