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

Prochaine révision
Révision précédente
Prochaine révision Les deux révisions suivantes
utilisateurs:slyfox:scripts:accueil [31/07/2018 12:50]
Slyfox créée
utilisateurs:slyfox:scripts:accueil [02/08/2018 23:08]
Slyfox [Sylmedia]
Ligne 1: Ligne 1:
 +
 ====== Sylmedia ====== ====== Sylmedia ======
  
-<note warning>​Script en cours d’écriture!</​note>​+  * Objet :  
 +  * Niveau requis : {{tag>​débutant}} 
 +  * Commentaires : - 
 +  * Débutant, à savoir : [[:​doc:​systeme:​commandes:​le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) 
 +  * Suivi : {{tag>en chantier}} 
 +    * Création par [[user>​Slyfox]] 31/​07/​2018 
 +  * Commentaires sur le forum :  
 + 
 +<note warning>__**Script en cours d’écriture!**__</​note>​ 
 + 
 +Installation des paquets: 
 +<code root>​apt-get update 
 +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. 
 + 
 + 
 + 
 +<​note>​**Version du 02.08.2018**</​note>​
  
-<​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 27: 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 337: 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 344: Ligne 376:
  STREAMSUBTITLE  STREAMSUBTITLE
  cdeYadStream=(${cdeYadStream[@]} --field="​ ":LBL " ")  cdeYadStream=(${cdeYadStream[@]} --field="​ ":LBL " ")
 +
 done done
 } }
Ligne 350: 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 385: 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 409: 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 599: 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 614: 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 642: 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 669: 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 696: 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 725: 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 750: Ligne 799:
  FFMPEG_VIDEO  FFMPEG_VIDEO
  FFMPEG_AUDIO  FFMPEG_AUDIO
 + FFMPEG_OUT
 +
 +
   
  # Conversion fichier  # Conversion fichier
Ligne 757: 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 817: 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 833: 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 881: Ligne 969:
  
  
-elif [[ "​${typeImage}"​ == "​Other"​ ]]; then+else [[ "​${typeImage}"​ == "​Other"​ ]]
  typeImage="​0"​  typeImage="​0"​
  
-else +
- typeImage="​3"​+
  
 fi fi
Ligne 953: 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 966: Ligne 1051:
 elif [[ "​${typeImage}"​ == "​Other"​ ]]; then elif [[ "​${typeImage}"​ == "​Other"​ ]]; then
  typeImage="​OTHER"​  typeImage="​OTHER"​
-  
  
 else else
Ligne 979: 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