mirror of
https://github.com/mpv-player/mpv
synced 2024-12-19 13:21:13 +00:00
d7239cbacc
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@10203 b3059339-0415-0410-9bf9-f77b7e298cf2
316 lines
15 KiB
HTML
316 lines
15 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
|
<HTML>
|
|
|
|
<HEAD>
|
|
<TITLE>Encodage - MEncoder - L'encodeur vidéo pour Linux</TITLE>
|
|
<LINK REL="stylesheet" TYPE="text/css" HREF="../default.css">
|
|
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
|
|
</HEAD>
|
|
|
|
<BODY>
|
|
|
|
|
|
<H1><A NAME="encoding">7. Encodage avec MEncoder</A></H1>
|
|
|
|
<P>Pour avoir la liste complète des options disponibles de MEncoder et des exemples,
|
|
voir la page de man. Pour une série d'exemples pratiques et de guides détaillés
|
|
sur l'utilisation des nombreux paramètres d'encodage, lisez les
|
|
<A HREF="../tech/encoding-tips.txt">encoding-tips</A> (en anglais) qui ont
|
|
été collectés sur de nombreuses threads de la liste de diffusion
|
|
<A HREF="http://mplayerhq.hu/mailman/listinfo/mplayer-users">mplayer-users</A>.
|
|
Cherchez dans les <A HREF="http://mplayerhq.hu/pipermail/mplayer-users/">archives</A>
|
|
pour trouver les discussions à propos de tous les aspects et problèmes relatif
|
|
à l'encodage avec MEncoder.</P>
|
|
|
|
<H2><A NAME="2pass">7.1 Encodage MPEG-4 ("DivX") 2 ou 3-passes</A></H2>
|
|
|
|
<P><U><B>Encodage 2-passes:</B></U> le nom vient du fait que cette méthode encode
|
|
le fichier <I>deux fois</I>. Le premier encodage (<I>passe</I> doublée)
|
|
créé quelques fichiers temporaires (*.log) avec une taille de quelques méga-octets,
|
|
ne les détruisez pas tout de suite (vous pouvez effacer l'AVI). Dans la seconde
|
|
passe, la fichier de sortie 2-passes est créé, en utilisant les données bitrate des
|
|
fichiers temporaires. Le fichier résultant aura une image de bien meilleur qualité.
|
|
Si c'est la première fois que vous entendez parler de ça, vous devriez consulter les
|
|
guides disponibles sur le Net.</P>
|
|
|
|
<P>Cet exemple montre comment encoder un DVD en AVI MPEG-4 ("DIVX") AVI 2-passes.
|
|
Seules deux commandes sont requises:<BR>
|
|
<CODE> rm frameno.avi</CODE> - enlevez ce fichier, qui peut
|
|
provenir d'un encodage 3-passes précédent (il interfère avec l'actuel)<BR>
|
|
<CODE> mencoder dvd://2 -ovc lavc -lavcopts
|
|
vcodec=mpeg4:vpass=1 -oac copy -o film.avi<BR>
|
|
mencoder dvd://2 -ovc lavc -lavcopts
|
|
vcodec=mpeg4:vpass=2 -oac copy -o film.avi</CODE></P>
|
|
|
|
<P><U><B>Encodage 3-passes:</B></U> c'est une extension de l'encodage 2-passes,
|
|
où l'encodage audio prends place dans une passe séparée. Cette méthode permet
|
|
l'estimation du bitrate vidéo recommandé de façon à tenir sur un CD. De plus,
|
|
l'audio n'est encodé qu'une fois, au contraire du mode 2-passes. Le principe:</P>
|
|
|
|
<OL>
|
|
<LI>Supprimez les fichiers temporaires conflictuels:
|
|
<P><CODE>rm frameno.avi</CODE></P></LI>
|
|
<LI>Première passe:
|
|
<P><CODE>mencoder <fichier/DVD> -ovc frameno -oac mp3lame -lameopts vbr=3:more_options -o frameno.avi</CODE></P>
|
|
<P>Un fichier avi en lecture seule sera créé, contenant <B>uniquement</B>
|
|
le flux audio demandé. N'oubliez pas <CODE>-lameopts</CODE>,
|
|
si vous en avez besoin. Si vous encodez un long film, MEncoder
|
|
affiche le bitrate recommandé pour les tailles 650Mo, 700Mo, et 800Mo,
|
|
après la fin de cette passe.</P></LI>
|
|
<LI>Seconde passe:
|
|
<P><CODE>mencoder <fichier/DVD> -oac copy
|
|
-ovc lavc -lavcopts vcodec=mpeg4:vpass=1:vbitrate=<bitrate></CODE></P>
|
|
<P>Ceci est la première passe de l'encodage vidéo.
|
|
Éventuellement spécifiez le bitrate vidéo que MEncoder à affiché à la
|
|
fin de la passe précédente.</P></LI>
|
|
<LI>Troisième passe:
|
|
<P><CODE>mencoder <fichier/DVD> -oac copy
|
|
-ovc lavc -lavcopts vcodec=mpeg4:vpass=2:vbitrate=<bitrate></CODE></P>
|
|
<P>Ceci est la seconde passe de l'encodage vidéo.
|
|
Spécifiez le même bitrate vidéo que celui de la passe précédente à moins que vous
|
|
ne sachiez réellement ce que vous faites. Dans cette passe, l'audio de <CODE>frameno.avi</CODE>
|
|
sera inséré dans le fichier de destination.. et c'est tout prêt!</P></LI>
|
|
</OL>
|
|
|
|
<H4>Exemple d'encodage 3-passes:</H4>
|
|
|
|
<P><CODE> rm frameno.avi</CODE> - enlevez ce fichier, qui peut
|
|
provenir d'un encodage 3-passes précédent (il interfère avec l'actuel)<BR>
|
|
<CODE> mencoder dvd://2 -ovc frameno
|
|
-o frameno.avi -oac mp3lame -lameopts vbr=3<BR>
|
|
mencoder dvd://2 -ovc lavc
|
|
-lavcopts vcodec=mpeg4:vpass=1 -oac copy -o film.avi<BR>
|
|
mencoder dvd://2 -ovc lavc
|
|
-lavcopts vcodec=mpeg4:vpass=2 -oac copy -o film.avi</CODE></P>
|
|
|
|
|
|
<H2><A NAME="mpeg">7.2 Encodage au format MPEG</A></H2>
|
|
|
|
<P>MEncoder peut créer des fichier au format MPEG (MPEG-PS). Ceci n'est probablement
|
|
utile qu'avec le codec <I>mpeg1video</I> de libavcodec, car les lecteurs
|
|
- excepté MPlayer - attendent de la vidéo MPEG1, et de l'audio MPEG1 layer 2 (MP2)
|
|
dans les fichiers MPEG.</P>
|
|
|
|
<P>Cette fonction n'est pas vraiment utile actuellement, car elle a probablement
|
|
de nombreux bogues, mais plus important encore parce qu'actuellement MEncoder
|
|
ne peut pas encoder l'audio MPEG1 layer 2 (MP2), qui est attendu par tous
|
|
les autres lecteurs dans les fichiers MPEG.</P>
|
|
|
|
<P>Pour changer le format de sortie de MEncoder, utilisez l'option
|
|
<CODE>-of mpeg</CODE>.</P>
|
|
|
|
<P>Exemple:<BR>
|
|
<CODE>mencoder -of mpeg -ovc lavc -lavcopts vcodec=mpeg1video
|
|
-oac copy <other options> media.avi -o sortie.mpg</CODE></P>
|
|
|
|
|
|
<H2><A NAME="rescaling">7.3 Redimensionnement des films</A></H2>
|
|
|
|
<P>Souvent le besoin de redimensionner les images d'un film se fait sentir.
|
|
Les raisons peuvent être multiples: diminuer la taille du fichier, la bande passante
|
|
du réseau, etc. La plupart des gens redimensionnement même en convertissant des
|
|
DVDs ou SVCDs en AVI DivX. <B>C'est mauvais.</B> Plutôt que faire ça, lisez la
|
|
section <A HREF="#aspect">Préserver l'aspect ratio</A>.</P>
|
|
|
|
<P>Le processus de zoom est géré par le filtre vidéo <I>'scale'</I>:
|
|
<CODE>-vf scale=largeur:hauteur</CODE>. Sa qualité peut être réglée avec l'option
|
|
<CODE>-sws</CODE>. Si elle n'est pas spécifiée, MEncoder utilisera 0:
|
|
fast bilinear.</P>
|
|
|
|
<H4>Utilisation:</H4>
|
|
|
|
<P><CODE> mencoder entree.mpg -ovc lavc -lavcopts
|
|
vcodec=mpeg4 -vf scale=640:480 -oac copy -o
|
|
sortie.avi</CODE></P>
|
|
|
|
|
|
<H2><A NAME="copying">7.4 Copie de flux</A></H2>
|
|
|
|
<P>MEncoder peut gérer les flux entrant de deux façons: les <B>encoder</B>
|
|
ou les <B>copier</B>. Cette section parle de la <B>copie</B>.</P>
|
|
|
|
<UL>
|
|
<LI><B>Flux vidéo</B> (option <CODE>-ovc copy</CODE>): on peut faire
|
|
des choses sympa :)<BR>
|
|
Comme, placer (pas convertir) de la vidéo FLI ou VIVO ou MPEG1 dans
|
|
un fichier AVI. Bien sûr seul MPlayer peut lire de tels fichiers :) et
|
|
ça n'a probablement pas de valeur réelle du tout. Concrètement: copier des
|
|
flux vidéo peut être utile par exemple quand seul le flux audio doit être
|
|
encodé (comme du PCM non-compressé en MP3).</LI>
|
|
|
|
<LI><B>Flux audio</B> (option <CODE>-oac copy</CODE>): très simple.
|
|
Il est possible de prendre un fichier audio externe (MP3, Vorbis) et de le
|
|
muxer dans le flux sortant. Utilisez l'option <CODE>-audiofile <nomfichier></CODE>
|
|
pour cela.</LI>
|
|
</UL>
|
|
|
|
|
|
<H2><A NAME="fixing">7.5 Réparer les fichiers AVIs ayant un index défectueux</A></H2>
|
|
|
|
<P>Facile. Nous copions simplement les flux vidéo et audio, et
|
|
MEncoder génère l'index. Bien sûr cela ne peut pas réparer les bogues possibles
|
|
dans les flux vidéo et/ou audio. Il répare également les fichiers avec un
|
|
entrelacement endommagé, ainsi l'option <CODE>-ni</CODE> ne sera plus requise.</P>
|
|
|
|
<P>Commande: <CODE>mencoder -idx entree.avi -ovc copy -oac copy -o sortie.avi</CODE></P>
|
|
|
|
|
|
<H3><A NAME="appending">7.5.1 Assembler plusieurs fichiers AVI</A></H3>
|
|
|
|
<P>Un effet secondaire de la fonction de réparation d'AVI permet à MEncoder d'assembler
|
|
2 (ou plus) fichiers AVI:</P>
|
|
|
|
<P>Command: <CODE>cat 1.avi 2.avi | mencoder -noidx -ovc copy -oac copy -o sortie.avi -</CODE></P>
|
|
|
|
<P><B>Note:</B> Cela suppose que <CODE>1.avi</CODE> et <CODE>2.avi</CODE> utilisent
|
|
les même codecs, résolution, débit, etc et qu'au moins 1.avi ne soit pas endommagé.
|
|
Vous pouvez avoir besoin de réparer vos fichiers AVI d'entrée d'abord, comme décrit
|
|
<A HREF="#fixing">ci-dessus</A>.</P>
|
|
|
|
|
|
<H2><A NAME="libavcodec">7.6 Encodage avec la famille de codecs libavcodec</A></H2>
|
|
|
|
<P><A HREF="codecs.html#libavcodec">libavcodec</A> permet un encodage simple dans plein
|
|
formats audio et vidéo intéressants (actuellement ses codecs audio ne sont pas
|
|
supportés). Vous pouvez encoder avec les codecs suivants:</P>
|
|
|
|
<UL>
|
|
<LI>mjpeg - Motion JPEG</LI>
|
|
<LI>h263 - H263</LI>
|
|
<LI>h263p - H263 Plus</LI>
|
|
<LI>mpeg4 - standard ISO (compatible DivX 4/5, OpenDivX, XviD)</LI>
|
|
<LI>msmpeg4 - variante pré-standard de MPEG-4 par MS, v3 (alias DivX3)</LI>
|
|
<LI>msmpeg4v2 - MPEG-4 pré-standard de MS, v2 (utilisé dans les anciens fichiers asf)</LI>
|
|
<LI>wmv1 - Windows Media Video, version 1 (alias WMV7)</LI>
|
|
<LI>rv10 - un vieux codec RealVideo</LI>
|
|
<LI>mpeg1video - MPEG1 video :)</LI>
|
|
<LI>huffyuv - compression sans perte</LI>
|
|
</UL>
|
|
|
|
<P>La première colonne contient le nom du codec qui devrait être passé après la
|
|
config <CODE>vcodec</CODE>, comme: <CODE>-lavcopts vcodec=msmpeg4</CODE></P>
|
|
|
|
<P>Un exemple, avec compression MJPEG:<BR>
|
|
<CODE> mencoder dvd://2 -o titre2.avi -ovc lavc
|
|
-lavcopts vcodec=mjpeg -oac copy</CODE></P>
|
|
|
|
|
|
<H2><A NAME="image_files">7.7 Encodage à partir de multiples fichiers image (JPEGs, PNGs ou TGAs)</A></H2>
|
|
|
|
<P>MEncoder est capable de créer des fichiers à partir de un ou plusieurs fichiers JPEG,
|
|
PNG ou TGA. Avec une simple copie de trame il peut créer des fichiers
|
|
MJPEG (Motion JPEG), MPNG (Motion PNG) ou MTGA (Motion TGA).</P>
|
|
|
|
Explication du processus:
|
|
|
|
<OL>
|
|
<LI>MEncoder <I>décode</I> le(s) image(s) d'origine avec
|
|
<CODE>libjpeg</CODE> (pour encoder des PNGs, il utilisera <B>libpng</B>).</LI>
|
|
|
|
<LI>Mencoder envoie alors l'image décodée au compresseur vidéo choisi
|
|
(DivX4, XviD, ffmpeg msmpeg4, etc...).</LI>
|
|
</OL>
|
|
|
|
<H4>Exemples</H4>
|
|
|
|
<P>Une explication de l'option <CODE>-mf</CODE> peut être trouvée plus bas dans la section des
|
|
<A HREF="#options">options</A> globales et dans la page de man.</P>
|
|
|
|
<P><I>Créer un fichier DivX4 à partir de tous les fichiers JPEG du rép courant:</I><BR>
|
|
<CODE>mencoder -mf on:w=800:h=600:fps=25 -ovc divx4
|
|
-o sortie.avi \*.jpg</CODE></P>
|
|
|
|
<P><I>Créer un fichier DivX4 à partir de quelques fichiers JPEG du rép courant:</I><BR>
|
|
<CODE>mencoder -mf on:w=800:h=600:fps=25
|
|
-ovc divx4 -o sortie.avi trame001.jpg,trame002.jpg</CODE></P>
|
|
|
|
<P><I>Créer un fichier Motion JPEG (MJPEG) à partir de tous les fichiers JPEG du rép courant:</I><BR>
|
|
<CODE>mencoder -mf on:w=800:h=600:fps=25 -ovc copy
|
|
-o sortie.avi \*.jpg</CODE></P>
|
|
|
|
<P><I>Créer un fichier non-compressé à partir de tous les fichiers PNG du rép courant:</I><BR>
|
|
<CODE>mencoder -mf on:w=800:h=600:fps=25:type=png -ovc rawrgb
|
|
-o sortie.avi \*.png</CODE></P>
|
|
|
|
<P><B>Note:</B> La largeur doit être un entier multiple de 4, c'est une limitation
|
|
du format AVI RGB brut.</P>
|
|
|
|
<P><I>Créer un fichier Motion PNG (MPNG) à partir de tous les fichiers PNG du rép courant:</I><BR>
|
|
<CODE>mencoder -mf on:w=800:h=600:fps=25:type=png -ovc copy
|
|
-oac copy -o sortie.avi \*.png</CODE></P>
|
|
|
|
<P><I>Créer un fichier Motion TGA (MTGA) à partir de tous les fichiers TGA du rép courant:</I><BR>
|
|
<CODE>mencoder -mf on:w=800:h=600:fps=25:type=tga -ovc copy
|
|
-o sortie.avi \*.tga</CODE></P>
|
|
|
|
|
|
<H2><A NAME="vobsub">7.8 Extraction des sous-titres DVD dans un fichier Vobsub</A></H2>
|
|
|
|
<P>MEncoder est capable d'extraire les sous-titres d'un DVD dans des fichiers au format
|
|
VobSub. Ils consistent en une paire de fichiers terminant par <CODE>.idx</CODE> et
|
|
<CODE>.sub</CODE> et sont généralement compressés dans une seule archive <CODE>.rar</CODE>.
|
|
MPlayer peut les lire avec les options <CODE>-vobsub</CODE> et <CODE>-vobsubid</CODE>.</P>
|
|
|
|
<P>Vous spécifiez le nom de base (c-a-d sans l'extension <CODE>.idx</CODE> ou
|
|
<CODE>.sub</CODE>) des fichiers de sortie avec <CODE>-vobsubout</CODE> et
|
|
l'index pour ces sous-titres dans le fichier final avec <CODE>-vobsuboutindex</CODE>.</P>
|
|
|
|
<P>Si l'entrée n'est pas un DVD vous pouvez utiliser <CODE>-ifo</CODE> pour
|
|
indiquer le fichier <CODE>.ifo</CODE> requis pour construire le fichier
|
|
<CODE>.idx</CODE> final.</P>
|
|
|
|
<P>Si l'entrée n'est pas un DVD et que vous n'avez pas de fichier <CODE>.ifo</CODE>
|
|
vous aurez besoin d'utiliser l'option <CODE>-vobsubid</CODE> pour lui permettre
|
|
de savoir quel id langue placer dans le fichier <CODE>.idx</CODE>.</P>
|
|
|
|
<P>Chaque étape ajoutera les sous-titres actifs dans les fichiers <CODE>.idx</CODE>
|
|
et <CODE>.sub</CODE> dans les fichiers déjà existants. Vous devrez donc les
|
|
enlever avant de commencer.</P>
|
|
|
|
<H4>Exemples</H4>
|
|
|
|
<P><I>Copier deux sous-titres d'un DVD pendant l'encodage 3-passes</I><BR>
|
|
<CODE>rm soustitres.idx soustitres.sub</CODE><BR>
|
|
<CODE>mencoder dvd://1 -vobsubout soustitres -vobsuboutindex 0
|
|
-sid 2 -o frameno.avi -ovc frameno -oac mp3lame -lameopts vbr=3</CODE><BR>
|
|
<CODE>mencoder dvd://1 -oac copy -ovc divx4 -divx4opts pass=1</CODE><BR>
|
|
<CODE>mencoder dvd://1 -oac copy -ovc divx4 -divx4opts pass=2 -vobsubout
|
|
sous-titres -vobsuboutindex 1 -sid 5</CODE></P>
|
|
|
|
<P><I>Copier les sous-titres français depuis un fichier MPEG</I><BR>
|
|
<CODE>rm soustitres.idx soustitres.sub</CODE><BR>
|
|
<CODE>mencoder film.mpg -ifo film.ifo -vobsubout soustitres
|
|
-vobsuboutindex 0 -vobsuboutid fr -sid 1</CODE></P>
|
|
|
|
|
|
<H2><A NAME="aspect">7.9 Préserver l'aspect ratio</A></H2>
|
|
|
|
<P>Les fichiers des DVDs et des SVCDs (c-a-d MPEG1/2) contiennent une valeur
|
|
d'aspect ratio, qui décrit comment le lecteur devrait dimensionner le flux
|
|
vidéo, pour que les humains n'aient pas des "têtes d'oeuf" (ex. 480x480 + 4:3 = 640x480).
|
|
De toute façon, quand vous encodez un fichier AVI (DivX), vous devez être conscients
|
|
que les entêtes AVI ne stockent pas cette valeur. Redimensionner le film est
|
|
dégouttant et coûteux en temps, il doit y avoir une meilleur solution !</P>
|
|
|
|
<P>Il y en a une.</P>
|
|
|
|
<P>MPEG4 a une fonction unique: le flux vidéo peut contenir l'aspect ratio requis.
|
|
Oui, tout comme les fichiers MPEG1/2 (DVD, SVCD). Malheureusement, il n'y a pas
|
|
de lecteurs vidéo au dehors qui supportent cet attribut. Excepté MPlayer.</P>
|
|
|
|
<P>Cette fonction ne peut être utilisé qu'avec le codec <CODE>mpeg4</CODE>
|
|
de <B>libavcodec</B>. Gardez à l'esprit: bien que MPlayer lise correctement
|
|
le fichier créé, les autres lecteurs utiliseront un mauvais aspect ratio.</P>
|
|
|
|
<P>Vous devriez sérieusement couper les bandes noires au dessus et en dessous de l'image.
|
|
Voir la page de man pour l'utilisation des filtres <CODE>cropdetect</CODE> et
|
|
<CODE>crop</CODE>.</P>
|
|
|
|
<H4>Utilisation:</H4>
|
|
|
|
<P><CODE>$ mencoder sample-svcd.mpg -ovc lavc -lavcopts
|
|
vcodec=mpeg4:autoaspect -vf crop=714:548:0:14 -oac copy -o sortie.avi</CODE></P>
|
|
|
|
</BODY>
|
|
</HTML>
|