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édentesRévision précédente
Prochaine révision
Révision précédente
sous-titrage [Le 15/12/2011, 15:17] – modification externe 127.0.0.1sous-titrage [Le 31/01/2026, 18:32] (Version actuelle) – un wiki n'est pas adpaté à l'hébergement de code (utiliser une forge git) : https://doc.ubuntu-fr.org/wiki/recommandations#ligne_editoriale / pas de je krodelabestiole
Ligne 1: Ligne 1:
-{{tag>portail multimédia vidéo sous-titrage}}+{{tag>portail multimédia vidéo}}
  
----- +====== Sous-titrage de vidéos ======
- +
-======Sous-titrage de vidéos======+
  
 Cette page recense les logiciels et méthodes permettant de visualiser une vidéo sous-titrée, et de sous-titrer une vidéo. Cette page recense les logiciels et méthodes permettant de visualiser une vidéo sous-titrée, et de sous-titrer une vidéo.
  
-=====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, 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).   * [[: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+  * [[: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-titres =====
  
-  * [[: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 subtitle 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 | 
-  * [[:Aegisub]] : éditeur de sous-titres pour vidéos, spécialisé dans le fansub d'anime.+| [[:Gnome-subtitles]]    | Installable via la logithèque Ubuntu (Sauf [[bionic|ubuntu 18.04]])      | Oui                       | Non | 
 +| **[[apt>subtitleeditor|Subtitle editor]]**    | Installable via la logithèque Ubuntu     | Oui                       | Oui |
  
-=====Extraction de sous-titres=====+(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.
  
-  * [[:Avidemux]] pour extraire les sous-titres d'un DVD. (Menu Outils : VOB > .srt , etc...)+(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]]   * les [[:matroska|outils mkv]] (mkvmerge, mkvextract) ou l'interface graphique [[:mkv_extractor_gui_v4]]
  
-=====Intégration de sous-titres=====+===== Intégration de sous-titres =====
  
   * [[:avidemux#incruster_des_sous-titres|Avidemux]]   * [[:avidemux#incruster_des_sous-titres|Avidemux]]
   * [[:mencoder#integration_sous_titres_srt_dans_une_video|Mencoder]], en ligne de commande   * [[:mencoder#integration_sous_titres_srt_dans_une_video|Mencoder]], en ligne de commande
-  * [[:mmg|MkvMerge Gui]] ou [[mkvmerge|]], pour le format [[matroska|mkv]].+  * [[:mmg|MkvMerge Gui]] ou [[:mkvtoolnix]], pour le format [[matroska|mkv]]. 
 +  * [[:handbrake#choisir_la_langue_et_les_sous-titres|Handbrake]], tous formats, 
  
-=====Téléchargement de sous-titres=====+===== Téléchargement de sous-titres =====
  
   * [[:Subdownloader]] : installable via la logithèque Ubuntu   * [[: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)
 +  * [[:Subliminal]] : un script qui permet de télécharger les sous-titres depuis plusieurs sources. Il existe un plugin pour //Nautilus/Fichiers//.
  
-=====Conversion de 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.+ 
 +  * **[[apt>subtitleeditor]]**: 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)   * [[: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)
 +  * [[ffmpeg|FFmpeg]] : cet outil à tout faire, en ligne de commande, permet également de  [[https://ffmpeg.org/general.html#Subtitle-Formats|convertir certains formats de sous-titres]]: dvbn dvd, ass/ssa, srt, webvtt...
  
-=====Spécial : Sous titres simultanés===== +===== 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/^SUB: Added 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 path, please 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,+
-Style: lang2style,Arial,64,15724527,15724527,15724527,4144959,0,0,1,1,2,2,5,5,30,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 -d "\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 en ligne existe mais n'est pas open-source, nous sommes tributaires de son fonctionnement et d'avoir accès à internet : http://dblsubs.com/ +
  
-Mots clés : second sous titre, simultané, merge, fusionner, double subtitle, different langue, language, apprendre une langue+Une solution open-source permet de visualiser 2 sous titres simultanément : **[[https://www.submerge.ovh/|submerge]]** ([[https://github.com/dnbn/submerge/|GitHub]]).
  
-=====Liens=====+===== Voir aussi =====
  
-  * Discussion "[[http://forum.ubuntu-fr.org/viewtopic.php?id=363195|Sous-titrage de vidéo pour karaoke]]" sur le forum ubuntu-fr+  * Discussion "[[https://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]]   * [[:tutoriel:vobsub_srt|Tutoriel de conversion de sous-titres VobSub en SRT]]