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
extraire_sous-titres_video [Le 21/12/2020, 23:49]
alban.f.j.martel [Script d'extraction des sous-titres d'une vidéo en SRT]
extraire_sous-titres_video [Le 11/09/2022, 12:17] (Version actuelle)
moths-art Suppression des espaces en fin de ligne (détecté et corrigé via le bot wiki-corrector (https://forum.ubuntu-fr.org/viewtopic.php?id=2067892)
Ligne 1: Ligne 1:
-{{tag>​vidéo}} {{tag>sous-titres}} {{tag>​srt}}+{{tag>​vidéo}} {{tag>ffmpeg}} {{tag>​srt}} {{tag>​Sous-titrage}}{{tag>​vobsub2srt}} {{tag>​mkvtoolnix}}
  
 ====== Extraction des sous-titres d'une vidéo ====== ====== Extraction des sous-titres d'une vidéo ======
Ligne 12: Ligne 12:
  
 Inspiré de l'​algorithme ​ : [[tutoriel:​vobsub_srt|Conversion de sous-titres VobSub en SRT]] Inspiré de l'​algorithme ​ : [[tutoriel:​vobsub_srt|Conversion de sous-titres VobSub en SRT]]
 +
 +<note warning>​Les 3 dernières étapes peuvent être réalisées avec vobsub2srt</​note>​
  
   * Repérer les canaux de sous-titres d'un fichier vidéo avec ffmpeg   * Repérer les canaux de sous-titres d'un fichier vidéo avec ffmpeg
Ligne 18: Ligne 20:
   * convertir fichier .sub et .idx en tiff;   * convertir fichier .sub et .idx en tiff;
   * reconnaissance de caractère de chaque tiff avec cunéiform   * reconnaissance de caractère de chaque tiff avec cunéiform
-  * création d'un fichier srt +  * création d'un fichier srt
  
 ====  Script bash correspondant à l'​algorithme ==== ====  Script bash correspondant à l'​algorithme ====
 +
 +[[https://​raw.githubusercontent.com/​albanmartel/​dvsub2srt.bash/​main/​dvsub2srt.bash | dvsub2srt.bash]]
  
 <file bash> <file bash>
Ligne 31: Ligne 35:
  
 # Dépendances : ffmpeg, ​ mkvtoolnix, vobsub2srt # Dépendances : ffmpeg, ​ mkvtoolnix, vobsub2srt
 +# Signale quel programme l'on exécute
 +# puis la composition du répertoire où le script s'​exécute
 +echo -e "​programme pour extraire des canaux de sous-titres d'une vidéo\n
 +Composition du répertoire courant :\n
 +$(ls)"
 +
 +# Invite de commande pour entrer le fichier vidéo à traiter
 +echo -n "​Entrer le fichier vidéo choisi :";
 +read film_a_traiter;​
 +
 +# Message pour informer l'​utilisateur de son choix
 +echo -e "Le fichier vidéo choisi est : \n $film_a_traiter"​
  
 +# Exemple film_a_traiter="​RetourVersLeFutur2.mp4"​
 # film_a_traiter="​RetourVersLeFutur2.mp4"​ # film_a_traiter="​RetourVersLeFutur2.mp4"​
-film_a_traiter="​RetourVersLeFutur2.mp4"​ 
  
 # soustitres_array= ("​4|fra"​ "​5|fra"​) # soustitres_array= ("​4|fra"​ "​5|fra"​)
Ligne 39: Ligne 55:
  
 # metadata_sub="​-map 0:4 -metadata:​s:​s:​1 language=fra -map 0:5 -metadata:​s:​s:​2 language=fra"​ # metadata_sub="​-map 0:4 -metadata:​s:​s:​1 language=fra -map 0:5 -metadata:​s:​s:​2 language=fra"​
-metadata_sub=$(for (( c=0; c<​${#​soustitres_array[@]};​ c++)); ​ do  echo -map 0:$(echo ${soustitres_array[$c]} | cut -d "​|"​ -f1) -metadata:​s:​s:​$(($c + 1)) language=$(echo ${soustitres_array[$c]} | cut -d "​|"​ -f2) ; done)+metadata_sub=$(for (( c=0; c<​${#​soustitres_array[@]};​ c++)); do  echo -map 0:$(echo ${soustitres_array[$c]} | cut -d "​|"​ -f1) -metadata:​s:​s:​$(($c + 1)) language=$(echo ${soustitres_array[$c]} | cut -d "​|"​ -f2) ; done)
  
 # command1="​ffmpeg -i RetourVersLeFutur2.mp4 -map 0:4 -metadata:​s:​s:​1 language=fra -map 0:5 -metadata:​s:​s:​2 language=fra -c:s dvdsub sous_titres_RetourVersLeFutur2.mp4.mk"​ # command1="​ffmpeg -i RetourVersLeFutur2.mp4 -map 0:4 -metadata:​s:​s:​1 language=fra -map 0:5 -metadata:​s:​s:​2 language=fra -c:s dvdsub sous_titres_RetourVersLeFutur2.mp4.mk"​
Ligne 48: Ligne 64:
  
 # vobsub_piste="​0:​0_ 1:1_" # vobsub_piste="​0:​0_ 1:1_"
-vobsub_piste=$(for (( c=0; c<​${#​soustitres_array[@]};​ c++)); do echo $c:​$c"​_";​ done)+vobsub_piste=$(for (( c=0; c<​${#​soustitres_array[@]};​ c++));do echo $c:​$c"​_";​ done)
  
 #​command2="​mkvextract tracks sous_titres_RetourVersLeFutur2.mp4.mkv -c ISO8859-1 0:0_ 1:1_" #​command2="​mkvextract tracks sous_titres_RetourVersLeFutur2.mp4.mkv -c ISO8859-1 0:0_ 1:1_"
Ligne 58: Ligne 74:
 # Exécution Roc des fichiers de sous-titres # Exécution Roc des fichiers de sous-titres
 #vobsub2srt 0_; vobsub2srt 1_;" #vobsub2srt 0_; vobsub2srt 1_;"
-for (( c=0; c<​${#​soustitres_array[@]};​ c++)); ​+for (( c=0; c<​${#​soustitres_array[@]};​ c++));
 do do
  ​vobsub2srt $c"​_";​  ​vobsub2srt $c"​_";​
 done done
 +exit 0;
 </​file>​ </​file>​
  
Ligne 79: Ligne 96:
 </​file>​ </​file>​
  
-====  Exemple de conversion de fichier TS en MKV avec FFMPEG ​ ====  +====  Exemple de conversion de fichier TS en MKV avec FFMPEG ​ ====
  
 La commande suivante permet d'​obtenir l'info : <​code>​ffmpeg -i <vidéos étudiée>​ </​code>​ La commande suivante permet d'​obtenir l'info : <​code>​ffmpeg -i <vidéos étudiée>​ </​code>​
Ligne 106: Ligne 123:
 </​code>​ </​code>​
  
-<​note>//​-threads//​ pour pouvoir utiliser un traitement multiprocesseurs ​+<​note>//​-threads//​ pour pouvoir utiliser un traitement multiprocesseurs
  
 -// map// pour spécifier toutes les pistes à utilisables -// map// pour spécifier toutes les pistes à utilisables
Ligne 112: Ligne 129:
 //-acodec// suivi de //​copy// ​ pour le traitements des pistes audio //-acodec// suivi de //​copy// ​ pour le traitements des pistes audio
  
-//-vcodec// suivi de //copy// pour le traitement de la piste vidéo ​ +//-vcodec// suivi de //copy// pour le traitement de la piste vidéo
 // //
--scodec// suivi de //dvdsub// pour le traitement des sous-titres ​+-scodec// suivi de //dvdsub// pour le traitement des sous-titres
  
 </​note>​ </​note>​
Ligne 123: Ligne 140:
 **[[apt>​ffmpeg]]** - une collection de logiciels libres destinés au traitement de flux audio ou vidéo **[[apt>​ffmpeg]]** - une collection de logiciels libres destinés au traitement de flux audio ou vidéo
  
-**[[apt>​mkvtoolnix]]** éventuellement aussi **[[apt>​mkvtoolnix-gui]]** -  un ensemble d'​outils permettant de créer, de modifier et d'​inspecter des fichiers Matroska ​+**[[apt>​mkvtoolnix]]** éventuellement aussi **[[apt>​mkvtoolnix-gui]]** -  un ensemble d'​outils permettant de créer, de modifier et d'​inspecter des fichiers Matroska
  
-**[[apt>​vobsub2srt]]** - Commande de reconnaissance optique de caractères multi-langue pour extraire des sous-titres ​+**[[apt>​vobsub2srt]]** - Commande de reconnaissance optique de caractères multi-langue pour extraire des sous-titres
  
 **[[apt>​cuneiform]]** - Système de reconnaissance optique de caractères multi-langue **[[apt>​cuneiform]]** - Système de reconnaissance optique de caractères multi-langue
Ligne 146: Ligne 163:
 # Courriel : albanmartel(POINT)developpeur(AT)gmail(POINT)com # Courriel : albanmartel(POINT)developpeur(AT)gmail(POINT)com
 # Utilisant comme base de travail le script de beguam # Utilisant comme base de travail le script de beguam
-http://​doc.ubuntu-fr.org/​tutoriel/​vobsub_srt+https://​doc.ubuntu-fr.org/​tutoriel/​vobsub_srt
 # License : GNU GPL # License : GNU GPL
 # Ce script permet d'​extraire les sous-titres d'une video TS et de les transformer en SRT éditable. # Ce script permet d'​extraire les sous-titres d'une video TS et de les transformer en SRT éditable.
 # #
-# Depends : +# Depends :
 # ffmpeg est une collection de logiciels libres destinés au traitement de flux audio ou vidéo # ffmpeg est une collection de logiciels libres destinés au traitement de flux audio ou vidéo
-# mkvToolnix (interface graphique pour mkvmerge) est un ensemble d'​outils permettant de créer, de modifier et d'​inspecter des fichiers Matroska ​+# mkvToolnix (interface graphique pour mkvmerge) est un ensemble d'​outils permettant de créer, de modifier et d'​inspecter des fichiers Matroska
 # cuneiform - Système de reconnaissance optique de caractères multi-langue # cuneiform - Système de reconnaissance optique de caractères multi-langue
 # ogmrip - Application pour extraire et encoder des DVDs # ogmrip - Application pour extraire et encoder des DVDs
Ligne 158: Ligne 175:
 # Date : 26/08/2015 # Date : 26/08/2015
 # version : 0.1 # version : 0.1
-# Mise-à-jour : +# Mise-à-jour :
 # ---------------------------------------------------- # ----------------------------------------------------
  
Ligne 220: Ligne 237:
   videoFiles=($( ls *.$extension ));   videoFiles=($( ls *.$extension ));
   cd $courant_directory;​   cd $courant_directory;​
- +}
  
  
  • extraire_sous-titres_video.1608590957.txt.gz
  • Dernière modification: Le 21/12/2020, 23:49
  • par alban.f.j.martel