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
sous-titrage [Le 03/12/2009, 13:55]
YannUbuntu créée
sous-titrage [Le 12/04/2018, 09:50] (Version actuelle)
LRDP [Intégration de sous-titres]
Ligne 1: Ligne 1:
-{{tag>​portail multimédia vidéo ​BROUILLON}}+{{tag>​portail multimédia vidéo ​sous-titrage}}
  
 ---- ----
Ligne 9: Ligne 9:
 =====Visualisation de sous-titres===== =====Visualisation de sous-titres=====
  
-  * [[Totem]] : lecteur multimédia permettant de visualiser les sous-titres (menu Visualisation -> Sous-titres) +  * [[:Totem]] : lecteur multimédia permettant de visualiser les sous-titres (menu Visualisation -> Sous-titres) 
-  * [[VLC]] : lecteur multimédia permettant de visualiser les sous-titres (menu Vidéo -> Piste de sous-titres)+  * [[:VLC]] : lecteur multimédia permettant de visualiser les sous-titres (menu Vidéo -> Piste de sous-titres, ou automatiquement si le fichier de sous-titres a le même nom que le fichier vidéo -extension exceptée-, et se situe dans le même répertoire)
 +  * [[:​mplayer]] : lecteur multimédia permettant de visualiser les sous-titres 
 +  * [[:xine]] : lecteur multimédia permettant de visualiser les sous-titres
  
 =====Création de sous-titrages===== =====Création de sous-titrages=====
  
-  ​* [[Gnome-subtitles]] ​: logiciel ​de sous-titrage de Gnome +^ Logiciel ​        ^ Remarques ​          ^ Affiche le nombre de caractères par ligne  (a) ^ Affiche une visualisation des ondes audio (b) ^  
-  * [[Gaupol subdtitle editor]] : installable via la logithèque Ubuntu +| [[:​Aegisub]] ​   | spécialisé dans le fansub d'​anime. Installable via la logithèque Ubuntu | Non                     | Oui | 
-  * [[Subtitle editor]] : installable via la logithèque Ubuntu +**Gaupol subtitle editor** ​  | Installable via la logithèque Ubuntu ??  | Oui | Non | 
-  * [[http://blog.aegisub.org/|Aegisub]] : éditeur de sous-titres pour vidéosspécialisé dans le fansub ​d'anime.+[[:Gnome-subtitles]] ​   | Installable via la logithèque Ubuntu ​     | Oui                       | Non | 
 +| **[[apt>​subtitleeditor|Subtitle editor]]** ​   | Installable via la logithèque Ubuntu ​    | Oui                       | Oui | 
 + 
 +(a)  Pratique pour savoir si la lecture du sous-titre sera trop difficile car le ratio nbre de caractère / temps est trop élevé. [[wpfr>​Sous-titrage| L'​article de Wikipedia sur le sous-titrage]] recommande 1s pour 15 caractères. 
 + 
 +(b) Pratique pour caler facilement et précisément le début et la fin d'un sous-titre. 
 + 
 +=====Extraction ​de sous-titres===== 
 + 
 +  * [[:Avidemux]] pour extraire les sous-titres d'un DVD. (Menu Outils : VOB > .srt , etc...) 
 +  * les [[:​matroska|outils mkv]] (mkvmerge, mkvextract) ou l'​interface graphique [[:​mkv_extractor_gui_v4]] 
 + 
 +=====Intégration de sous-titres===== 
 + 
 +  * [[:​avidemux#​incruster_des_sous-titres|Avidemux]] 
 +  * [[:​mencoder#​integration_sous_titres_srt_dans_une_video|Mencoder]],​ en ligne de commande 
 +  * [[:​mmg|MkvMerge Gui]] ou [[:​mkvtoolnix]],​ pour le format [[matroska|mkv]]. 
 +  * [[:​handbrake#​choisir_la_langue_et_les_sous-titres|Handbrake]],​ tous formats,  
 + 
 +* Nécessite d'​être en super-utilisateur pour Avidemux 
 +=====Téléchargement de sous-titres===== 
 + 
 +  * [[:​Subdownloader]] : installable via la logithèque Ubuntu 
 +  * [[http://​code.google.com/​p/​gcap/​|Gcap]] : un logiciel en ligne de commande pour télécharger les sous-titres de YouTube (présent dans les dépôts depuis Ubuntu 11.10) 
 +  * [[https://​www.webeev.fr/​top/​top-10-des-meilleurs-sites-de-sous-titres-de-films-et-series-tv/​|Webeev]] : le classement des meilleurs sites pour télécharger des sous-titres 
 + 
 +=====Conversion de sous-titres===== 
 +  * **Subtitle editor**: logiciel avec interface graphique ​installable via la logithèque Ubuntu. Supporte 11 formats différents,​ dont SubRip, MicroDVD et Advanced Sub Station Alpha. 
 +  * [[:srt2ass]] : script python permettant de convertir en ligne de commande une grande quantité de fichiers SubRip (srt) vers le format Advanced Sub Station Alpha (ass/ssa) 
 + 
 +=====Spécial : Sous titres simultanés===== 
 + 
 +J'​ajoute personnellement cette astuce permettant de visualiser 2 sous titres simultanément après avoir très longuement cherché sur internet. 
 +Ceci est un script (corrigé) trouvé sur internet ayant comme nom : merge2ass.sh. Le script convertit 2 fichiers sous titre en 1 .ass (équivalent au .ssa). Votre lecteur vidéo doit être en mesure de lire ce fichier sous titre (VLC l'​accepte) 
 + 
 +La commande est la suivante : 
 +<​code>​merge2ass.sh [--help] [movie subtitle1 subtitle2] [-pm|--play-movie]</​code>​ 
 + 
 +<​note>​subtitle1 est le sous titre positionné en haut de la vidéo 
 + 
 +subtitle2 est le sous titre positionné en bas de la vidéo</​note>​ 
 + 
 +<file bash merge2ass.sh>​ 
 +#​!/​bin/​bash 
 +# merge2ass.sh - script for merging two text-subtitles into an ass subtitle file 
 +# version 0.9, 8-august-2007 
 +# comments/​criticism/​praise to jose1711-gmail-com 
 + 
 +# dependencies:​ mplayer (if your subtitle files need to be converted to srt), gnu utils 
 + 
 +# thanks to: 
 +#  - d.watzke for comments 
 +#  - belisarivs for testing 
 +#  - boris dušek <boris (dot) dusek - gmail - com> for testing/​ideas 
 +
 +# $1 is a movie file 
 +# $2 is a subtitle1 
 +# $3 is a subtitle2 
 +# $4 is optional and could be "​-pm"​ or "​--play-movie"​ for instant watching of the movie 
 + 
 +# example: 
 +# merge2ass.sh movie.avi english.srt slovak.sub 
 +# mplayer -noautosub -ass movie.avi -sub movie-bilingual.ass -subcp utf8 
 +
 +# or just 
 +# merge2ass.sh movie.avi english.srt slovak.sub -pm 
 +
 +# or even only 
 +# merge2ass.sh --detect movie.avi -pm 
 +
 +# ;-) 
 +
 +# release history: 
 +# 0.8a (29. 7. 2007) 
 +#  - initial public release 
 +# 0.8.1a (30. 7. 2007) 
 +#  - check_syntax fixed (d.watzke) 
 +#  - multiline echo -> cat (d.watzke) 
 +#  - removes temp files after conversion 
 +# 0.8.2 (1. 8. 2007) 
 +#  - check whether the input files exist prior to running MPlayer 
 +#  - check for MPlayer binary 
 +#  - help page added 
 +#  - new optional CLI parameters: -pm (plays movie after conversion),​ --help 
 +# 0.8.2.1 (2. 8. 2007) 
 +#  - timestamp in output more compatible (reported by belisarivs) 
 +# 0.9 (8. 8. 2007) 
 +#  - performs a check for writable output 
 +#  - check for MPlayer'​s support of ass/ssa if -pm is used 
 +#  - pointers to subtitle files stored as arrays 
 +#  - autorecognition of subtitles based on MPlayer'​s -sub-fuzziness feature (--detect) 
 +#  - output filename based on movie filename (+bilingual.ass) 
 +#  - bash now mandatory (non-POSIX syntax used) 
 +#  - flag -pm has a long alias (--play-movie) 
 + 
 +
 +# some future thoughts: 
 +#   - more optional flags (do_not_remove_temp_files,​ play_but_dont_delete_output_afterwards,​dont_do 
 +#     ​the_conversion_just_merging,​output_file..) 
 +#   - cleaner sed/awk code 
 +#   - support for other players (xine, totem, kmplayer, vlc..) 
 +#   - subtitle encoding detection based on enca (if present) - boris? 
 +
 +# docs: 
 +#   ​- ​http://en.wikipedia.org/wiki/​SubStation_Alpha 
 +#   - http://​www.perlfu.co.uk/​projects/​asa/​ass-specs.doc 
 +
 +# THE STORY ENDS HERE 
 +# set -x 
 + 
 +# normally you do not want to see mplayer'​s error output 
 +#​mplayer_err=/​dev/​stderr 
 +mplayer_err=/​dev/​null 
 + 
 +arg_count="​$#"​ 
 +movie="​$1"​ 
 +sub[1]="​$2"​ 
 +sub[2]="​$3"​ 
 + 
 + 
 +show_help(){ 
 +cat << EOF 
 + ​---------------------------------------------------------------------------------- 
 +                                                                                 | 
 +|  Merge2ass - a script for merging two text subtitles into ass/ssa subtitle file  | 
 +|                                         ​author:​ jose1711 - gmail - com, 2007/​08 ​ | 
 + ​---------------------------------------------------------------------------------- 
 + 
 +  Usage: merge2ass.sh [--help[movie subtitle1 subtitle2[-pm|--play-movie] 
 + 
 +         or 
 + 
 +         ​merge2ass.sh --detect movie [-pm|--play-movie] 
 + 
 +--help ​       show this help page and exit 
 + 
 +--detect ​     try to detect subtitles using MPlayer'​s sub-fuzziness=1 flag 
 + 
 +movie         movie file (anything that MPlayer recognizes) 
 +subtitle[12] ​ file(s) containing text subtitles that MPlayer recognizes  
 + 
 +-pm           play movie immediately and remove the output after finishing 
 +--play-movie 
 + 
 +EOF 
 +
 + 
 +detect_subtitles(){ 
 +        while read -r line; do 
 +                sub[++i]="​$line"​ 
 +        done < <​(mplayer -sub-fuzziness 1 -frames 0 "​$movie"​ 2>/​dev/​null | sed -n "​s/​^SUBAdded subtitle file ([0-9]*): \(.*\)$/​\1/​p"​) 
 +        echo "$i subtitles were detected in total."​ 
 +        echo "These two will be used:"​ 
 +        echo "​${sub[1]}"​ 
 +        echo "​${sub[2]}"​ 
 +
 + 
 +convert_subs(){ 
 +type mplayer || { echo "​MPlayer not installed or binary not in pathplease investigate. Exiting..";​ exit 1; }  
 + 
 +echo "​Converting the 1st subtitle file (${sub[1]}) to a time-based format..."​ 
 +# slower but does not require the video file for conversion 
 +# mplayer /dev/zero -rawvideo pal:fps=25 -demuxer rawvideo -vc null -vo null -noframedrop -benchmark -sub "​$movie"​ -dumpsrtsub 
 +mplayer -dumpsrtsub -noautosub -really-quiet -frames 0 -sub "​${sub[1]}"​ "​$movie"​ 2>>"​$mplayer_err"​ && echo "​Done"​ 
 +mv dumpsub.srt "​${sub[1]}-temp"​ 
 +echo "​Converting the 2nd subtitle file (${sub[2]}) to a time-based format..."​ 
 +mplayer -dumpsrtsub -noautosub -really-quiet -frames 0 -sub "​${sub[2]}"​ "​$movie"​ 2>>"​$mplayer_err"​ && echo "​Done"​ 
 +mv dumpsub.srt "​${sub[2]}-temp"​ 
 +
 + 
 +generate_ssa_header(){ 
 +cat > "​$output"​ << EOF 
 +[Script Info] 
 +Title: 
 +Original Script:  
 +Original Translation:​ 
 +Original Editing:  
 +Original Timing:  
 +Original Script Checking: 
 +ScriptType: v4.00 
 +Collisions: Normal 
 +PlayResY: 1024 
 +PlayDepth: 0 
 +Timer: 100,0000 
 + 
 +[V4 Styles] 
 +Format: Name, Fontname, Fontsize, PrimaryColour,​ SecondaryColour,​ TertiaryColour,​ BackColour, Bold, Italic, BorderStyle,​ Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding 
 +Style: lang1style,​Arial,​64,​65535,​65535,​65535,​-2147483640,​-1,​0,​1,​3,​0,​6,​30,​30,​30,​0,​0 
 +Style: lang2style,​Arial,​64,​15724527,​15724527,​15724527,​4144959,​0,​0,​1,​1,​2,​2,​5,​5,​30,​0,​0 
 + 
 +[Events] 
 +Format: Marked, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text  
 +EOF 
 +
 + 
 +generate_ssa_dialogs(){ 
 +sed -e "/ --> /​s/,/​./​g"​ "​${sub[1]}-temp"​ | tr -"​\r"​ | awk 'BEGIN{ORS="";​print " "} / --> /,/^$/ {ORS=" ";​print} /^$/{print "​\n"​}'​ | sed -e "s/ --> /,/g" -e "s/^ \([^ ]*\) \(.*\)/​Dialogue:​ Marked=0,​\1,​lang1style,​Cher,​0000,​0000,​0000,,​\2/"​ -e "​s/,​00:/,​0:/​g"​ -e "​s/​\([:,​]\)0\([0-9]\)/​\1\2/​g"​ -e "​s/​\([0-9]\)\(.\)\([0-9]\)\([0-9]\)0\(,​\)/​\1\2\3\4\5/​g"​ >>"​$output"​ 
 +sed -e "/ --> /​s/,/​./​g"​ "​${sub[2]}-temp"​ | tr -d "​\r"​ | awk '​BEGIN{ORS="";​print " "} / --> /,/^$/ {ORS=" ";​print} /^$/{print "​\n"​}'​ | sed -e "s/ --> /,/g" -e "s/^ \([^ ]*\) \(.*\)/​Dialogue:​ Marked=0,​\1,​lang2style,​Cher,​0000,​0000,​0000,,​\2/"​ -e "​s/,​00:/,​0:/​g"​ -e "s/^ *//g" -e "​s/​\([:,​]\)0\([0-9]\)/​\1\2/​g"​ -e "​s/​\([0-9]\)\(.\)\([0-9]\)\([0-9]\)0\(,​\)/​\1\2\3\4\5/​g"​ >>"​$output"​ 
 +
 + 
 +remove_temp_files(){ 
 +rm "​${sub[1]}-temp"​ "​${sub[2]}-temp"​ 
 +
 + 
 +play_movie(){ 
 +        mplayer -ass 2>/​dev/​null >/​dev/​null || { echo "Too old MPlayer version, can't understand ASS/SSA subs. Install a newer version.";​ exit 1; } 
 +        mplayer -really-quiet -fs "​$movie"​ -sub "​$output"​ -ass -subcp utf8 -noautosub 
 +
 + 
 +delete_output(){ 
 +        rm "​$output"​ 
 +
 + 
 +eval last_arg='​$'​${arg_count} 
 + 
 +if [ $arg_count -eq 0 ]; then 
 +        show_help 
 +        exit 0 
 +fi 
 + 
 +for param in $* 
 +do 
 +        if [ $param = "​--help"​ ]; then show_help; exit 0; fi 
 +done 
 + 
 +if [ "​$movie"​ = "​--detect"​ ]; then 
 +        movie="​${sub[1]}"​ 
 +        output="​${movie%.*}-bilingual.ass"​ 
 +        > "​$output"​ #|| { echo "​Can'​t write here! Exiting.."​ && echo 1; } 
 +        detect_subtitles 
 +fi 
 + 
 +if [ ! -f "​$movie"​ ]; then echo "Movie file ($movie) does not exist. Going back to shell..";​ exit 1; fi 
 +if [ ! -f "​${sub[1]}"​ ]; then echo "​Subtitle1 file (${sub[1]}) does not exist. Going back to shell..";​ exit 1; fi 
 +if [ ! -f "​${sub[2]}"​ ]; then echo "​Subtitle2 file (${sub[2]}) does not exist. Going back to shell..";​ exit 1; fi 
 + 
 +echo "​Processing.."​ 
 +# reset output 
 +output="​${movie%.*}-bilingual.ass"​ 
 +> "​$output"​ #|| { echo "​Can'​t write here! Exiting.."​ && echo 1; } 
 + 
 +convert_subs 
 +generate_ssa_header 
 +generate_ssa_dialogs 
 +remove_temp_files 
 + 
 +if [ "​$last_arg"​ = "​-pm"​ -o "​$last_arg"​ = "​--play-movie"​ ]; then 
 +        play_movie 
 +        delete_output 
 +fi 
 + 
 +exit 0 
 + 
 +# set +x 
 +</​file>​ 
 + 
 +Une solution open-source existe en ligne (également distribuée sous forme de jar exécutable) : [[https://​www.submerge.ovh/​|site]],​ [[https://​github.com/​dnbn/​submerge/​|github]]
  
 =====Liens===== =====Liens=====
  
   * Discussion "​[[http://​forum.ubuntu-fr.org/​viewtopic.php?​id=363195|Sous-titrage de vidéo pour karaoke]]"​ sur le forum ubuntu-fr   * Discussion "​[[http://​forum.ubuntu-fr.org/​viewtopic.php?​id=363195|Sous-titrage de vidéo pour karaoke]]"​ sur le forum ubuntu-fr
 +  * [[:​tutoriel:​vobsub_srt|Tutoriel de conversion de sous-titres VobSub en SRT]]
  • sous-titrage.1259844947.txt.gz
  • Dernière modification: Le 18/04/2011, 14:58
  • (modification externe)