Différences
Ci-dessous, les différences entre deux révisions de la page.
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:45] alban.f.j.martel [Script ts2srt] |
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}} |
- | ====== Script d'extraction des sous-titres d'une vidéo en SRT====== | + | ====== Extraction des sous-titres d'une vidéo ====== |
- | Script bash permettant de convertir un groupe de fichiers vidéos de même extension contenu dans un même répertoire et d'extraire ses sous-titre en fichier srt. | + | Scripts bash permettant de convertir plusieurs pistes de sous-titre vobsub d'une vidéo enregistrer sur la TNT par exemple et de les convertir en sous-titres texte .srt. |
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; | ||
- | } | + | } |