S'inscrire ! Pass oublié ?
Hyjoo
Portail Forums Jeux Flash Chat IRC Annuaire
Google

Incrustation de sous-titres dans un fichier AVI
Informatique


Actualiser  Hyjoo > Forums > Le village > Nouvelles technologies > [Tuto][MEncoder] Incrustation de sous-titres dans un fichier AVI

Incrustation de sous-titres dans un fichier AVI (Informatique) : Fiche / Article de la section Technologies de l'information, crée sur le forum Nouvelles technologies (informatique et high tech : Informations et discussions sur l'informatique, les gadgets, le web et le high tech en général.)

 
Rechercher dans la discussion
 Incrustation de sous-titres dans...
 Categorie : Informatique
 
 Rédaction : Trillian (24/05/2006)

Nom : Incrustation de sous-titres dans un fichier vidéo AVI avec MEncoder
Type : Traitement vidéo
Niveau : Débutant
Pré-requis : Aucun, si ce n'est avoir un peu de temps et de patience ^^
Objectifs : Le but de la manoeuvre est d'obtenir une vidéo au format AVI avec
des sous-titres proprement incrustés dans une bande noire sous l'image

Liens Connex :


Petite intro :

Il arrive souvent qu'on doive incruster soi-même des sous-titres, par exemple lorsqu'on travaille sur des vidéos personnelles (non ce n'est pas une légende urbaine, ça arrive ^^), il y a une solution très simple à cela grâce aux différents formats de containers vidéo, comme Matroska (mkv) ou Ogg, qui permettent d'englober plusieurs flux vidéos, audios, et des sous-titres.
Mais le problème qui se pose souvent, c'est que ces formats ne sont que rarement reconnus par les platines DVD/DivX, donc soit on garde le fichier vidéo et les sous-titres séparés, ce qui ne pose pas de problème pour une lecture sur PC, soit on incruste définitivement les sous-titres dans le fichier AVI.

C'est ce que va aborder ce tutoriel, et il est important de comprendre que c'est irréversible, on va 'brûler' les sous-titres dans l'image, le format AVI n'étant pas prévu pour contenir des sous-titres, et comme on va devoir réencoder la vidéo, il y aura inévitablement une perte de qualité, moindre mais notable.
Ca peut paraître compliqué expliqué comme ça, mais c'est en réalité très simple.


I/ Installation et configuration de MEncoder :

Que l'on soit sous Linux, Windows ou MacOS X, le même logiciel est disponible (pour MacOS je suis par contre dans l'incapacité d'expliquer la démarche, mais je suppose que mis à part la config des polices, ça revient au même). Il en existe surement certains plus 'user-friendly', mais c'est à mon avis le plus efficace et le plus simple, après 2/3 utilisations on réutilise presque toujours la même commande.

Ce logiciel s'appelle MEncoder, c'est un encodeur vidéo puissant associé au lecteur vidéo MPlayer, et il s'utilise en ligne de commande. Il existe des interfaces graphiques (qui pour la plupart nécessitent l'installation de GTK) que l'on pourra trouver et installer très facilement depuis leur site officiel, entre autres.

Il existe de très (très) nombreuses options, et si vous lisez le manuel (disponible ainsi que beaucoup de docs sur leur site) vous allez sans doute vous barrer en courant, mais en fait ici très peu sont nécessaires, et celles du manuel qui sont les plus effrayantes ne sont utiles que lors d'opérations vraiment très poussées..

Bon, avant toute chose, l'installation du logiciel en lui-même ne pose pas de problèmes, mais il faut absolument configurer l'utilisation de polices pour les sous-titres.
Si vous ne disposez pas de polices TrueType, vous pouvez en trouver sur leur site officiel.


  • 1er cas : sous Windows

Pour les binaires et les codecs:
Télécharger par exemple MPlayer-mingw32-1.0pre7.zip et le dézipper dans un répertoire quelconque, disons C:\MPlayer pour l'exemple.
Puis télécharger les codecs qui lui sont nécessaires et qui doivent s'appeler windows-all-20050412.zip par exemple, et les dézipper dans le répertoire C:\MPlayer\codecs

Ensuite la seule manipulation de configuration nécessaire est celle concernant le chemin vers la police de caractère: il faut modifier le fichier 'config' qui se trouve normalement dans le dossier C:\MPlayer\mplayer et remplacer la valeur 'font' par le chemin vers le répertoire 'Fonts' de Windows, par exemple mettre 'C:\Windows\fonts\arial.ttf'

Après, on copie une police TrueType de son choix du répertoire Fonts de Windows dans le répertoire C:\Mplayer\mplayer et on la renomme en 'subfont.ttf'

C'est tout ce qu'il y a à configurer, il n'y a rien du tout à installer, il suffit de dézipper les exécutables et les codecs et c'est bon.


  • 2ème cas : sous Linux

Les packages de mplayer et mencoder sont normalement disponibles sur toutes les distributions, sinon il suffit de l'installer depuis les sources en suivant le README, je suppose qu'il s'agit d'une install basique "./configure && make && make install".

Pour la gestion de la police utilisée pour les sous-titres, il faut choisir une police TrueType (extension .ttf) via la librairie FreeType, généralement on peut les trouver là : /usr/share/fonts/truetype/freefont/

Si vous ne voulez pas toujours utiliser la même, vous devrez spécifier à chaque fois le chemin de la police avec l'option : "-font /chemin/vers/la/police.ttf"

Sinon, il suffit de choisir celle qui vous convient et de créer un lien symbolique vers elle depuis le répertoire ".mplayer" de votre répertoire home sous le nom de "subfont.ttf" :
Code:
ln -s /chemin/vers/la/police.ttf ~/.mplayer/subfont.ttf



II/ Commande d'encodage :


Maintenant, pour tout le monde, la commande :

Code:
mencoder la_video.avi -oac copy -ovc lavc -lavcopts
vcodec=mpeg4:vbitrate=1000 -sub fichier_sous-titres.srt -ffactor 10
-subfont-autoscale 1 -subfont-encoding unicode -subcp latin1 -subpos 100
-vf expand=0:-120:-1:-1 -o video_subbed.avi


MEncoder gère d'autres formats de sous-titres (11 me semble, pas sûr), mais pour l'exemple et parce que c'est plus pratique, j'utilise le format srt.

Je vais expliquer un peu tout ça, mais vous trouverez plus d'informations dans le manuel ^^
Pour avoir la liste des valeurs que peut prendre une option : -option help

-oac (output audio codec) permet de spécifier avec quel codec audio on veut que ce soit encodé, ici on utilise 'copy' car on ne veut pas réencoder le flux audio, on a pas a le modifier, donc il sera simplement recopié tel quel.

-ovc (output video codec) permet de spécifier avec quel codec vidéo on veut que ce soit encodé, mon choix est 'lavc' (les codecs de la librairie ffmpeg), mais vous pouvez très bien en changer, en changeant alors "-lavcopts" et les options qui suivent d'après l'explication du manuel

-lavcopts permet de règler les options de libavcodec qui suivent (si on avait utilisé le codec xvid à la place de lavc par exemple, on aurait ici utilisé -xvidencopts) :

vcodec= (Vidéo codec) spécifie exactement quel codec utiliser, mpeg4 (divx 4/5) est le choix par défaut, là aussi on peut en changer

vbitrate= (Vidéo bitrate) spécifie quel bitrate utiliser pour l'encodage, 1000 est un bon choix pour une bonne qualité, si on veut une qualité moyenne on peut descendre à 920, et monter à 1200 pour de la haute qualité

-sub pour spécifier le nom (avec le chemin s'il n'est pas dans le répertoire courant) du fichier de sous-titres

-ffactor pour définir la transparence de la police (pas indispensable comme option), avec 10 on obtient une bordure noire épaisse, 1 une bordure noire fine, 0,75 une bordure noire très fine, et avec 0 les polices sont toutes blanches

-subfont-autoscale pour choisir le mode de redimensionnement automatique, avec 0 il y en a aucun, avec 1 le redimensionnement est proportionnel à la largeur de la vidéo (la taille des caracteres me va comme ça, à vous de faire des petits tests pour voir ce qui vous convient), avec 2 il est proportionnel à la hauteur de la vidéo et avec 3 à la diagonale de la vidéo

-subfont-encoding fixe l'encodage de la police, avec 'unicode' tous les signes du fichier de police seront affichés et unicode sera utilisé, c'est le choix par défaut

-subcp ne marchera que si votre système gère 'iconv' (une librairie de conversion d'encodages, libiconv que vous pouvez trouver à l'url en lien connex), ça permet de définir la page de code à utiliser pour les sous-titres, 'latin1' est un bon choix qui permet d'éviter que les accents ne passent pas

-subpos (dont l'intérêt principal est son utilisation avec -vf expand) permet de
définir la position des sous-titres sur l'écran, la valeur utilisée est la position verticale en % de la hauteur de l'écran, j'utilise 100 pour recentrer mon image après avoir étendue la résolution avec -vf expand, c'est le maximum, si chez vous ça rend mal, il suffit de modifier cette valeur

-vf expand=0:-120:-1:-1
(Video Filter) expand est un petit filtre vidéo sympa qui permet d'étendre la résolution de la vidéo (l'image n'est en rien modifiée) aux valeurs w,h fournies et de placer l'original non redimensionné aux coordonnées x,y

à la base on a : expand=w:h:x:y:o:a:r

o, a et r ne me sont pas utiles mais vous pouvez aller jeter un oeil au manuel si ça vous intrigue

w = width (largeur... ici ne sert pas vraiment on veut pas toucher à la largeur donc 0)

h = height (hauteur, que l'on veut étendre pour déplacer l'original et obtenir de belles bandes noires où placer les sous-titres, plus agréable que de les avoir sur l'image)
-120 me va plutôt bien, mais vous pouvez adapter

Les valeurs négatives pr w et h sont traitées comme offset de la taille originale, donc avec -120 vous devriez obtenir une bande de 60 pixels en haut et une de 60 pixels en bas

x = position sur l'axe horizontal (centrée par défaut, avec -1)
y = position sur l'axe vertical (centrée par défaut, avec -1)

-o (output) pour spécifier le nom de la vidéo encodée avec son extension

Une dernière petite chose, si vous voulez obtenir des infos (pour en avoir plus, utilisez le mode verbose avec "-v") sur votre vidéo, ce qui vous aidera sûrement pour le traitement, rien de plus simple, lancez mplayer en ligne de commande pour la lire et il vous donnera toutes les informations importantes sur celle-ci dans le terminal:
Code:
mplayer la_vidéo.avi


Voilà, vous obtiendrez (normalement ^^) un fichier avi lisible sur toutes les platines avec les sous-titres incrustés proprement dans la bande noire.

J'ai eu l'occasion de voir sur le net des personnes avoir chez eux de bons résultats avec des paramètres différents, donc n'hésitez pas à modifier la commande fournie en fonction des tests que vous ferez.

MEncoder est un encodeur puissant, on peut quasiment tout faire avec cette petite merveille, d'ailleurs pour simplifier ce genre d'opérations vous pouvez regrouper les options de la ligne de commande dans un fichier de configuration dans ~/.mplayer/mencoder.conf, ou dans un fichier qui ne soit spécifique qu'à une seul vidéo, par exemple "video.avi" en créant un fichier de config "video.avi.conf".
Vous pouvez aussi définir des profils dans les fichiers de config, par exemple pour les différents codecs, ou faire des profils en fonction du choix de qualité finale. Tout est très simple et clairement expliqué dans le manuel, pour ceux que ça intéresserait.

Je ne suis pas certaine que ce tutoriel intéressera beaucoup de monde, mais comme on m'avait déjà demandé de l'aide à ce sujet et que ma réponse s'apparentait à un tutoriel, j'en ai profité pour le faire.

Voilà, si je n'ai pas été claire sur un point ou si j'ai commis une erreur, n'hésitez pas à me le signaler ^^
Vous devez vous inscrire pour utiliser l'édition en mode Wiki
24/05/2006, 17h34 #2
maxiTortoise72 
Dieu supérieur

maxiTortoise72

maxiTortoise72 est classé dans la section Jeux-Flash (21 points)
Re : [Tuto][MEncoder] Incrustation de sous-titres dans un fichier AVI

Excellente initiative que ce tuto d'incrustation là c'est très précieux, un autre truc pas mal aussi et pas toujours évident, la synchro audio/video des divx....


A suivre

MaxiT
Leader de la WSL GUILD
maxiTortoise72 est déconnecté(e)
24/05/2006, 19h49 #3
Arckhangelos 
Dieu supérieur
Pape de la Rime

Arckhangelos

Re : [Tuto][MEncoder] Incrustation de sous-titres dans un fichier AVI

Je voudrais savoir comment on fait les karaokés, échos, notes.
Arckhangelos est déconnecté(e)
24/05/2006, 20h21 #4
maxiTortoise72 
Dieu supérieur

maxiTortoise72

maxiTortoise72 est classé dans la section Jeux-Flash (21 points)
Re : [Tuto][MEncoder] Incrustation de sous-titres dans un fichier AVI

Je sais que pour les désynchros faut utiliser nandub/virtualdub mais un bon tuto juste après les incrustations de sous-titres dans une AVI serait fort à propos

MaxiT
Leader de la WSL GUILD
maxiTortoise72 est déconnecté(e)
24/05/2006, 20h46 #5
Trillian 
Ombre

Trillian

Re : [Tuto][MEncoder] Incrustation de sous-titres dans un fichier AVI

Pour ça tu as des logiciels de traitement vidéo spécifiques sous Windows, et y'en a un paquet, même ceux qui ne sont pas spécifiques à cette utilisation peuvent aussi donner de bons résultats..
L'utilisation conjointe de Medusa (Chronosub now, mais bon..) et de VirtualDub est simple/efficace, même si certains ne jurent que par l'utilisation de VisualSubSync et de SubStation Alpha..

En fait, un éditeur de subs et un bon encodeur devraient suffire avec les filtres qui vont bien.

Mais si tu sais pas du tout comment t'y prendre, il vaut mieux un tutoriel qui t'explique pas à pas, non ?

Edit : (après le post de MaxIT que j'avais pas vu) ah oui, d'accord, c'est bien un tutoriel qu'il faudrait donc ^^

Dernière modification par Trillian : 24/05/2006 à 20h49.
Trillian est déconnecté(e)
24/05/2006, 20h59 #6
Graham 
Dieu supérieur

Graham

Re : [Tuto][MEncoder] Incrustation de sous-titres dans un fichier AVI

Et moi qui ne savait pas du tout faire ... Merci à toi pour cette explication !
Graham est déconnecté(e) Voir une photo de Graham sur son profil
26/05/2006, 13h35 #7
maxiTortoise72 
Dieu supérieur

maxiTortoise72

maxiTortoise72 est classé dans la section Jeux-Flash (21 points)
Re : [Tuto][MEncoder] Incrustation de sous-titres dans un fichier AVI

Merci merci Trill, précise et directe c'est parfait !
Je vais m'instruire comme d'hab

MaxiT
Leader de la WSL GUILD
maxiTortoise72 est déconnecté(e)

Navigation rapide:

« Discussion précédente | Discussion suivante »
Emplacement :
Actualiser  Hyjoo > Forums > Le village > Nouvelles technologies > [Tuto][MEncoder] Incrustation de sous-titres dans un fichier AVI

Utilisateurs regardant cette discussion : 0 ( membre(s) et 0 invité(s))

Discussions similaires 
Discussion Auteur Forum Réponses Dernier message
[Tuto] Pourquoi passer sous linux? Vidow Nouvelles technologies 57 21/12/2006 23h38
[Tuto] Enregistrer du transparent sous Photoshop Asali Nouvelles technologies 2 09/01/2006 16h23
[Recherche] Sous-titres Kudoz Manga et anime 3 01/10/2005 17h31
Qui met les commentaires sous les titres des forums? Kazuma Le comptoir 12 23/10/2003 20h22
Rechercher dans cette discussion 
Rechercher dans cette discussion:

Recherche avancée


Fuseau horaire GMT +2. Il est actuellement 16h06.

Edité par vBulletin - Copyright © 2000-2005 Jelsoft Enterprises Limited
Copyright © Hyjoo - Tous droits réservés