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:07]
Slyfox [Sylmedia]
utilisateurs:slyfox:scripts:accueil [14/08/2018 17:24]
Slyfox
Ligne 1: Ligne 1:
- +====== Sylmedia ​======
-====== Sylmedia ======+
  
   * Objet :    * Objet : 
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 : 
  
-<note warning>​Script en cours d’écriture!</​note>​+<note warning>__**Script en cours d’écriture!**__</​note>​ 
 Installation des paquets: Installation des paquets:
 <code root>​apt-get update <code root>​apt-get update
 apt-get install ffmpeg yad flac vorbis-tools eyed3 kid3-cli</​code>​ apt-get install ffmpeg yad flac vorbis-tools eyed3 kid3-cli</​code>​
 +
 +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.
 +
  
  
-  ​Copier le script ci-dessous dans un fichier et le nommer slymedia.sh +<​note>​**Version ​du 02.08.2018**</​note>​
-  ​Pour lancer le script, taper le chemin ​du fichier du script "​slymedia.sh" dans le terminal graphique (gnome terminal, terminal mate...)+
  
-<​note>​Version du 31.07.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 43: 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 353: Ligne 370:
  
 for i in ${fileIn}; do for i in ${fileIn}; do
- 
- #ffprobe -i  "​${i}"​ -hide_banner -v quiet -show_streams 
  STREAMTITLE  STREAMTITLE
  STREAMVIDEO  STREAMVIDEO
Ligne 360: Ligne 375:
  STREAMSUBTITLE  STREAMSUBTITLE
  cdeYadStream=(${cdeYadStream[@]} --field="​ ":LBL " ")  cdeYadStream=(${cdeYadStream[@]} --field="​ ":LBL " ")
 +
 done done
 } }
Ligne 366: 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}"​)
Ligne 401: Ligne 417:
  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 425: Ligne 461:
  
  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 615: 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 630: 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 658: Ligne 690:
  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 685: Ligne 717:
  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 712: Ligne 744:
  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 741: Ligne 772:
  cdeSub=()  cdeSub=()
   
- # Nom fichier + # Nom fichier ​source 
- fileNameExt=$(basename "​${iFileIn}"​) + fileNameExtension=$(basename "​${iFileIn}"​) 
- fileName="​${fileNameExt%.*}"+ fileName="​${fileNameExtension%.*}" 
 + extension="​${fileNameExtension##​*.}"
   
  # Recherche map  # Recherche map
Ligne 766: Ligne 798:
  FFMPEG_VIDEO  FFMPEG_VIDEO
  FFMPEG_AUDIO  FFMPEG_AUDIO
 + FFMPEG_OUT
 +
 +
   
  # Conversion fichier  # Conversion fichier
Ligne 773: Ligne 808:
  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 833: Ligne 868:
 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 849: Ligne 908:
  
 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 897: Ligne 968:
  
  
-elif [[ "​${typeImage}"​ == "​Other"​ ]]; then+else [[ "​${typeImage}"​ == "​Other"​ ]]
  typeImage="​0"​  typeImage="​0"​
  
-else +
- typeImage="​3"​+
  
 fi fi
Ligne 969: Ligne 1039:
 function COVER_MP3() function COVER_MP3()
 { {
- 
- 
 if [[ "​${typeImage}"​ == "Cover (front)"​ ]]; then if [[ "​${typeImage}"​ == "Cover (front)"​ ]]; then
  typeImage="​FRONT_COVER"​  typeImage="​FRONT_COVER"​
Ligne 982: Ligne 1050:
 elif [[ "​${typeImage}"​ == "​Other"​ ]]; then elif [[ "​${typeImage}"​ == "​Other"​ ]]; then
  typeImage="​OTHER"​  typeImage="​OTHER"​
-  
  
 else else
Ligne 995: 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}"+
  
-# 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
 } }
  
Ligne 1120: Ligne 1191:
  
 </​code>​ </​code>​
 +
 +
  

Pied de page des forums

Propulsé par FluxBB