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 | ||
| sous-titrage [Le 02/02/2011, 14:38] – lien vers mkv_extractor_gui_v4 Hizoka | sous-titrage [Le 19/11/2020, 23:24] (Version actuelle) – [Conversion de sous-titres] mavosaure | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| + | {{tag> | ||
| + | ---- | ||
| + | |||
| + | ======Sous-titrage de vidéos====== | ||
| + | |||
| + | Cette page recense les logiciels et méthodes permettant de visualiser une vidéo sous-titrée, | ||
| + | |||
| + | =====Visualisation de 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, | ||
| + | * [[: | ||
| + | * [[:xine]] : lecteur multimédia permettant de visualiser les sous-titres | ||
| + | |||
| + | =====Création de sous-titrages===== | ||
| + | |||
| + | ^ Logiciel | ||
| + | | [[: | ||
| + | | **Gaupol subtitle editor** | ||
| + | | [[: | ||
| + | | **[[apt> | ||
| + | |||
| + | (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> | ||
| + | |||
| + | (b) Pratique pour caler facilement et précisément le début et la fin d'un sous-titre. | ||
| + | |||
| + | =====Extraction de sous-titres===== | ||
| + | |||
| + | * [[: | ||
| + | * les [[: | ||
| + | |||
| + | =====Intégration de sous-titres===== | ||
| + | |||
| + | * [[: | ||
| + | * [[: | ||
| + | * [[: | ||
| + | * [[: | ||
| + | |||
| + | * Nécessite d' | ||
| + | =====Téléchargement de sous-titres===== | ||
| + | |||
| + | * [[: | ||
| + | * [[http:// | ||
| + | * [[https:// | ||
| + | * [[: | ||
| + | |||
| + | =====Conversion de sous-titres===== | ||
| + | * **[[apt> | ||
| + | * [[: | ||
| + | * [[ffmpeg|FFmpeg]] : cet outil à tout faire, en ligne de commande, permet également de [[https:// | ||
| + | |||
| + | =====Spécial : Sous titres simultanés===== | ||
| + | |||
| + | J' | ||
| + | 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' | ||
| + | |||
| + | La commande est la suivante : | ||
| + | < | ||
| + | |||
| + | < | ||
| + | |||
| + | subtitle2 est le sous titre positionné en bas de la vidéo</ | ||
| + | |||
| + | <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/ | ||
| + | |||
| + | # dependencies: | ||
| + | |||
| + | # thanks to: | ||
| + | # - d.watzke for comments | ||
| + | # - belisarivs for testing | ||
| + | # - boris dušek <boris (dot) dusek - gmail - com> for testing/ | ||
| + | # | ||
| + | # $1 is a movie file | ||
| + | # $2 is a subtitle1 | ||
| + | # $3 is a subtitle2 | ||
| + | # $4 is optional and could be " | ||
| + | |||
| + | # 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), | ||
| + | # 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' | ||
| + | # - pointers to subtitle files stored as arrays | ||
| + | # - autorecognition of subtitles based on MPlayer' | ||
| + | # - 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, | ||
| + | # | ||
| + | # - cleaner sed/awk code | ||
| + | # - support for other players (xine, totem, kmplayer, vlc..) | ||
| + | # - subtitle encoding detection based on enca (if present) - boris? | ||
| + | # | ||
| + | # docs: | ||
| + | # - http:// | ||
| + | # - http:// | ||
| + | # | ||
| + | # THE STORY ENDS HERE | ||
| + | # set -x | ||
| + | |||
| + | # normally you do not want to see mplayer' | ||
| + | # | ||
| + | mplayer_err=/ | ||
| + | |||
| + | arg_count=" | ||
| + | movie=" | ||
| + | sub[1]=" | ||
| + | sub[2]=" | ||
| + | |||
| + | |||
| + | show_help(){ | ||
| + | cat << EOF | ||
| + | | ||
| + | | | | ||
| + | | Merge2ass - a script for merging two text subtitles into ass/ssa subtitle file | | ||
| + | | | ||
| + | | ||
| + | |||
| + | Usage: merge2ass.sh [--help] [movie subtitle1 subtitle2] [-pm|--play-movie] | ||
| + | |||
| + | or | ||
| + | |||
| + | | ||
| + | |||
| + | --help | ||
| + | |||
| + | --detect | ||
| + | |||
| + | movie movie file (anything that MPlayer recognizes) | ||
| + | subtitle[12] | ||
| + | |||
| + | -pm play movie immediately and remove the output after finishing | ||
| + | --play-movie | ||
| + | |||
| + | EOF | ||
| + | } | ||
| + | |||
| + | detect_subtitles(){ | ||
| + | while read -r line; do | ||
| + | sub[++i]=" | ||
| + | done < < | ||
| + | echo "$i subtitles were detected in total." | ||
| + | echo "These two will be used:" | ||
| + | echo " | ||
| + | echo " | ||
| + | } | ||
| + | |||
| + | convert_subs(){ | ||
| + | type mplayer || { echo " | ||
| + | |||
| + | echo " | ||
| + | # 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 " | ||
| + | mplayer -dumpsrtsub -noautosub -really-quiet -frames 0 -sub " | ||
| + | mv dumpsub.srt " | ||
| + | echo " | ||
| + | mplayer -dumpsrtsub -noautosub -really-quiet -frames 0 -sub " | ||
| + | mv dumpsub.srt " | ||
| + | } | ||
| + | |||
| + | generate_ssa_header(){ | ||
| + | cat > " | ||
| + | [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, | ||
| + | Style: lang1style, | ||
| + | Style: lang2style, | ||
| + | |||
| + | [Events] | ||
| + | Format: Marked, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text | ||
| + | EOF | ||
| + | } | ||
| + | |||
| + | generate_ssa_dialogs(){ | ||
| + | sed -e "/ --> / | ||
| + | sed -e "/ --> / | ||
| + | } | ||
| + | |||
| + | remove_temp_files(){ | ||
| + | rm " | ||
| + | } | ||
| + | |||
| + | play_movie(){ | ||
| + | mplayer -ass 2>/ | ||
| + | mplayer -really-quiet -fs " | ||
| + | } | ||
| + | |||
| + | delete_output(){ | ||
| + | rm " | ||
| + | } | ||
| + | |||
| + | eval last_arg=' | ||
| + | |||
| + | if [ $arg_count -eq 0 ]; then | ||
| + | show_help | ||
| + | exit 0 | ||
| + | fi | ||
| + | |||
| + | for param in $* | ||
| + | do | ||
| + | if [ $param = " | ||
| + | done | ||
| + | |||
| + | if [ " | ||
| + | movie=" | ||
| + | output=" | ||
| + | > " | ||
| + | detect_subtitles | ||
| + | fi | ||
| + | |||
| + | if [ ! -f " | ||
| + | if [ ! -f " | ||
| + | if [ ! -f " | ||
| + | |||
| + | echo " | ||
| + | # reset output | ||
| + | output=" | ||
| + | > " | ||
| + | |||
| + | convert_subs | ||
| + | generate_ssa_header | ||
| + | generate_ssa_dialogs | ||
| + | remove_temp_files | ||
| + | |||
| + | if [ " | ||
| + | play_movie | ||
| + | delete_output | ||
| + | fi | ||
| + | |||
| + | exit 0 | ||
| + | |||
| + | # set +x | ||
| + | </ | ||
| + | |||
| + | Une solution open-source existe en ligne (également distribuée sous forme de jar exécutable) : [[https:// | ||
| + | |||
| + | =====Liens===== | ||
| + | |||
| + | * Discussion " | ||
| + | * [[: | ||
