Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| extraire_sous-titres_video [Le 26/08/2015, 20:29] – [Script d'extraction des sous-titres d'une vidéo TS en SRT] albanmartel | extraire_sous-titres_video [Le 11/09/2022, 12:17] (Version actuelle) – 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) moths-art | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | {{tag>Subtitles TS mkvextract SRT vidéo}} | + | {{tag> |
| - | ====== | + | ====== |
| - | Script | + | Scripts |
| - | Inspiré du tutoriel : [[tutoriel: | ||
| + | < | ||
| + | </ | ||
| + | ===== Algorithme ===== | ||
| + | |||
| + | Inspiré de l' | ||
| + | |||
| + | <note warning> | ||
| + | |||
| + | * Repérer les canaux de sous-titres d'un fichier vidéo avec ffmpeg | ||
| + | * extraire sous-titres vobsub dans une vidéos mastroika | ||
| + | * extraire les sous-titres des vidéos mastroïka avec mkvextract | ||
| + | * convertir fichier .sub et .idx en tiff; | ||
| + | * reconnaissance de caractère de chaque tiff avec cunéiform | ||
| + | * création d'un fichier srt | ||
| + | |||
| + | ==== Script bash correspondant à l' | ||
| + | |||
| + | [[https:// | ||
| + | |||
| + | <file bash> | ||
| + | # !/bin/bash | ||
| + | # OUTPUT-COLORING | ||
| + | red=$( tput setaf 1 ) | ||
| + | green=$( tput setaf 2 ) | ||
| + | NC=$( tput sgr0 ) # or perhaps: tput sgr0 | ||
| + | #NC=$( tput setaf 0 ) # or perhaps: tput sgr0 | ||
| + | |||
| + | # Dépendances : ffmpeg, | ||
| + | # Signale quel programme l'on exécute | ||
| + | # puis la composition du répertoire où le script s' | ||
| + | echo -e " | ||
| + | Composition du répertoire courant :\n | ||
| + | $(ls)" | ||
| + | |||
| + | # Invite de commande pour entrer le fichier vidéo à traiter | ||
| + | echo -n " | ||
| + | read film_a_traiter; | ||
| + | |||
| + | # Message pour informer l' | ||
| + | echo -e "Le fichier vidéo choisi est : \n $film_a_traiter" | ||
| + | |||
| + | # Exemple film_a_traiter=" | ||
| + | # film_a_traiter=" | ||
| + | |||
| + | # soustitres_array= (" | ||
| + | soustitres_array=($(ffprobe $film_a_traiter -v quiet -show_entries stream=index: | ||
| + | |||
| + | # metadata_sub=" | ||
| + | metadata_sub=$(for (( c=0; c< | ||
| + | |||
| + | # command1=" | ||
| + | command1=$(echo " | ||
| + | |||
| + | # Execution commande n°1 $command1 | ||
| + | $command1 | ||
| + | |||
| + | # vobsub_piste=" | ||
| + | vobsub_piste=$(for (( c=0; c< | ||
| + | |||
| + | # | ||
| + | command2=$(echo " | ||
| + | |||
| + | # Execution commande n°2 $command2 | ||
| + | $command2 | ||
| + | |||
| + | # Exécution Roc des fichiers de sous-titres | ||
| + | #vobsub2srt 0_; vobsub2srt 1_;" | ||
| + | for (( c=0; c< | ||
| + | do | ||
| + | | ||
| + | done | ||
| + | exit 0; | ||
| + | </ | ||
| + | |||
| + | ==== Ancien Exemple de séquence bash correspondant à l' | ||
| + | |||
| + | <file bash> | ||
| + | ffmpeg -i data0003.ts 2>&1 | grep subtitle | ||
| + | mkdir data0003 | ||
| + | ffmpeg -i data0003.ts -map 0:4 -map 0:5 -vn -an -scodec dvdsub data0003.mkv | ||
| + | mkvextract tracks " | ||
| + | mkvextract tracks " | ||
| + | subp2tiff --sid=0 -n data0003/0_ | ||
| + | subp2tiff --sid=1 -n data0003/1_ | ||
| + | for eachTiff in data0003/ | ||
| + | subptools -s -w -t srt -i data0003/ | ||
| + | subptools -s -w -t srt -i data0003/ | ||
| + | </ | ||
| + | |||
| + | ==== Exemple de conversion de fichier TS en MKV avec FFMPEG | ||
| + | |||
| + | La commande suivante permet d' | ||
| + | |||
| + | |||
| + | 9 pistes : | ||
| + | |||
| + | 0:0 vidéo | ||
| + | |||
| + | 0:1 ne contenant pas de données | ||
| + | |||
| + | 0:2 Audio | ||
| + | |||
| + | 0:3 ne contenant pas de données | ||
| + | |||
| + | 0:5 Subtite | ||
| + | |||
| + | 0:6 subtitle | ||
| + | |||
| + | 0:7 piste non reconnue par ffmpeg | ||
| + | |||
| + | 0:8 piste non reconnue par ffmpeg | ||
| + | |||
| + | < | ||
| + | ffmpeg -threads 4 -i data0003.ts -map 0:0 -map 0:2 -map 0:5 -map 0:6 -acodec copy -vcodec copy -scodec dvdsub output.mkv | ||
| + | </ | ||
| + | |||
| + | < | ||
| + | |||
| + | -// map// pour spécifier toutes les pistes à utilisables | ||
| + | |||
| + | //-acodec// suivi de // | ||
| + | |||
| + | //-vcodec// suivi de //copy// pour le traitement de la piste vidéo | ||
| + | // | ||
| + | -scodec// suivi de //dvdsub// pour le traitement des sous-titres | ||
| + | |||
| + | </ | ||
| ===== dépendances à installer | ===== dépendances à installer | ||
| Ligne 14: | Ligne 140: | ||
| **[[apt> | **[[apt> | ||
| - | **[[apt> | + | **[[apt> |
| + | |||
| + | **[[apt> | ||
| **[[apt> | **[[apt> | ||
| Ligne 22: | Ligne 150: | ||
| ===== Script ts2srt | ===== Script ts2srt | ||
| + | |||
| + | <note warning> | ||
| [[https:// | [[https:// | ||
| Ligne 33: | 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:// | + | # https:// |
| # License : GNU GPL | # License : GNU GPL | ||
| # Ce script permet d' | # Ce script permet d' | ||
| # | # | ||
| - | # 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' | + | # mkvToolnix (interface graphique pour mkvmerge) est un ensemble d' |
| # 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 45: | Ligne 175: | ||
| # Date : 26/08/2015 | # Date : 26/08/2015 | ||
| # version : 0.1 | # version : 0.1 | ||
| - | # Mise-à-jour : | + | # Mise-à-jour : |
| # ---------------------------------------------------- | # ---------------------------------------------------- | ||
| Ligne 107: | Ligne 237: | ||
| videoFiles=($( ls *.$extension )); | videoFiles=($( ls *.$extension )); | ||
| cd $courant_directory; | cd $courant_directory; | ||
| - | } | + | } |
| Ligne 233: | Ligne 363: | ||
| </ | </ | ||
| - | //Contributeurs | + | ===== Contributeurs |
| + | [[: | ||
