Encodage avec MEncoder
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
encoding-tips (en anglais) qui ont
été collectés sur de nombreuses threads de la liste de diffusion
mplayer-users.
Cherchez dans les
archives pour trouver
les discussions à propos de tous les aspects et problèmes relatif à l'encodage avec
MEncoder.
Encodage MPEG-4 ("DivX") 2 ou 3-passesEncodage 2-passes
le nom vient du fait que cette méthode encode le fichier deux fois.
Le premier encodage (passe 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.
Cet exemple montre comment encoder un DVD en AVI MPEG-4 ("DIVX") AVI 2-passes.
Seules deux commandes sont requises:
rm frameno.avi
enlevez ce fichier, qui peut provenir d'un encodage 3-passes précédent (il interfère avec l'actuel)
mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 -oac copy -o film.avi
mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=2 -oac copy -o film.aviEncodage 3-passes
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:
Supprimez les fichiers temporaires conflictuels:
rm frameno.aviPremière passe:mencoder fichier/DVD -ovc frameno -oac mp3lame -lameopts vbr=3 -o frameno.avi
Un fichier avi audio sera créé, contenant
uniquement le flux audio demandé. N'oubliez pas
, 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.
Seconde passe:
mencoder fichier/DVD -oac copy -ovc lavc -lavcopts vcodec=mpeg4:vpass=1:vbitrate=bitrate
Ceci est la première passe de l'encodage vidéo. Éventuellement spécifiez le bitrate
vidéo que MEncoder a affiché à la fin de la passe précédente.
Troisième passe:
mencoder fichier/DVD -oac copy -ovc lavc -lavcopts vcodec=mpeg4:vpass=2:vbitrate=bitrate
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 frameno.avi sera inséré dans le
fichier de destination... et tout est prêt!
Exemple d'encodage 3-passesrm frameno.avi
enlevez ce fichier, qui peut provenir d'un encodage 3-passes précédent (il interfère
avec l'actuel)
mencoder dvd://2 -ovc frameno -o frameno.avi -oac mp3lame -lameopts vbr=3
mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 -oac copy -o film.avi
mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=2 -oac copy -o film.aviEncodage au format MPEGMEncoder peut créer des fichier au format MPEG (MPEG-PS).
Ceci n'est probablement utile qu'avec le codec mpeg1video
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.
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.
Pour changer le format de sortie de MEncoder, utilisez l'option .
Exemple:
mencoder -of mpeg -ovc lavc -lavcopts vcodec=mpeg1video -oac copy autres optionsmedia.avi -o sortie.mpgRedimensionnement des films
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. C'est mal. Plutôt que de faire ça, lisez la
section Préserver l'aspect ratio.
Le processus de zoom est géré par le filtre vidéo scale :
.
Sa qualité peut être réglée avec l'option .
Si elle n'est pas spécifiée, MEncoder utilisera 0: fast bilinear.
Utilisation:
mencoder entree.mpg -ovc lavc -lavcopts vcodec=mpeg4 -vf scale=640:480 -o sortie.aviCopie de fluxMEncoder peut gérer les flux entrant de deux façons: les
encoder ou les copier
Cette section parle de la copie.
Flux vidéo (option ):
on peut faire des choses sympa :) 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).
Flux audio (option ):
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
pour cela.
Réparer les fichiers AVIs ayant un index défectueux
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 ne sera plus requise.
Command:
mencoder -idx entree.avi -ovc copy -oac copy -o sortie.aviAssembler plusieurs fichiers AVI
Un effet secondaire de la fonction de réparation d'AVI permet à MEncoder d'assembler 2
(ou plus) fichiers AVI:
Commande:
cat 1.avi 2.avi | mencoder -noidx -ovc copy -oac copy -o sortie.avi -
Cela suppose que 1.avi et 2.avi utilisent les
mêmes 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 çi-dessus.
Encodage avec la famille de codecs libavcodeclibavcodec permet un encodage simple dans de nombreux formats audio et vidéo intéressants.
Vous pouvez encoder avec les codecs suivants (plus ou moins à jour):
Nom codecDescriptionmjpeg
Motion JPEG
ljpeg
Lossless JPEG (sans perte)
h263
H263
h263p
H263 Plus
mpeg4
standard MPEG-4 ISO (compatible DivX 5, XVID)
msmpeg4
variante pré-standard MPEG-4 de MS, v3 (alias DivX3)
msmpeg4v2
pré-standard MPEG-4 par MS, v2 (utilisé dans les anciens fichiers asf)
wmv1
Windows Media Video, version 1 (alias WMV7)
wmv2
Windows Media Video, version 2 (alias WMV8)
rv10
un vieux codec RealVideo
mpeg1video
video MPEG1
mpeg2video
video MPEG2
huffyuv
compression sans perte
asv1
ASUS Video v1
asv2
ASUS Video v2
ffv1
codec vidéo sans perte de FFmpeg
La première colonne contient le nom du codec qui devrait être passé après la config
vcodec, comme:
Un exemple, avec compression MJPEG:
mencoder dvd://2 -o titre2.avi -ovc lavc -lavcopts vcodec=mjpeg -oac copyEncodage à partir de multiples fichiers image (JPEGs, PNGs ou TGAs)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).
Explication du processus:MEncoderdécode le(s) image(s)
d'origine avec libjpeg (pour décoder
des PNGs, il utilisera libpng).
MEncoder envoie alors l'image décodée au compresseur
vidéo choisi (DivX4, XviD, ffmpeg msmpeg4, etc.).
Exemples
Une explication de l'option peut être trouvée dans la page de man.
Créer un fichier DivX4 à partir de tous les fichiers JPEG du rép courant:
mencoder -mf on:w=800:h=600:fps=25 -ovc divx4 -o sortie.avi \*.jpg
Créer un fichier DivX4 à partir de quelques fichiers JPEG du rép courant:
mencoder -mf on:w=800:h=600:fps=25 -ovc divx4 -o sortie.avi trame001.jpg,trame002.jpg
Créer un fichier Motion JPEG (MJPEG) à partir de tous les fichiers JPEG du rép courant:
mencoder -mf on:w=800:h=600:fps=25 -ovc copy -o sortie.avi \*.jpg
Créer un fichier non-compressé à partir de tous les fichiers PNG du rép courant:
mencoder -mf on:w=800:h=600:fps=25:type=png -ovc raw -o sortie.avi \*.png
La largeur doit être un entier multiple de 4, c'est une limitation du format AVI RGB brut.
Créer un fichier Motion PNG (MPNG) à partir de tous les fichiers PNG du rép courant:
mencoder -mf on:w=800:h=600:fps=25:type=png -ovc copy -o sortie.avi \*.png
Créer un fichier Motion TGA (MTGA) à partir de tous les fichiers TGA du rép courant:
mencoder -mf on:w=800:h=600:fps=25:type=tga -ovc copy -o sortie.avi \*.tgaExtraction des sous-titres DVD dans un fichier VobsubMEncoder 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 .idx et .sub et sont généralement compressés
dans une seule archive .rar. MPlayer
peut les lire avec les options et .
Vous spécifiez le nom de base (c-a-d sans extension .idx ou
.sub) des fichiers de sortie avec
et l'index pour ces sous-titres dans le fichier final avec .
Si l'entrée n'est pas un DVD vous pouvez utiliser pour indiquer le
fichier .ifo requis pour construire le fichier .idx final.
Si l'entrée n'est pas un DVD et que vous n'avez pas de fichier .ifo
vous aurez besoin d'utiliser l'option pour lui permettre de
savoir quel id langue placer dans le fichier .idx.
Chaque étape ajoutera les sous-titres actifs dans les fichiers .idx
et .sub déjà existants. Vous devrez donc les enlever avant de commencer.
Copier deux sous-titres d'un DVD pendant l'encodage 3-passes
rm soustitres.idxsoustitres.sub
mencoder dvd://1 -vobsubout soustitres -vobsuboutindex 0 -sid 2 -o frameno.avi -ovc frameno
mencoder dvd://1 -oac copy -ovc divx4 -pass 1
mencoder dvd://1 -oac copy -ovc divx4 -pass 2 -vobsubout soustitres -vobsuboutindex 1 -sid 5Copier les sous-titres français depuis un fichier MPEG
rm soustitres.idx soustitres.sub
mencoder film.mpg -ifo film.ifo -vobsubout soustitres -vobsuboutindex 0 -vobsuboutid fr -sid 1Préserver l'aspect ratio
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 !
Il y en a une.
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.
Cette fonction ne peut être utilisé qu'avec le codec mpeg4 de
libavcodec. Gardez à l'esprit: bien que
MPlayer lise correctement le fichier créé, les autres lecteurs
utiliseront un mauvais aspect ratio.
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 cropdetect
et crop.
Utilisationmencoder echantillon-svcd.mpg -ovc lavc -lavcopts vcodec=mpeg4:autoaspect -vf
crop=714:548:0:14 -oac copy -o sortie.aviInter/intra matrices personnalisées
Avec cette fonction de libavcodec vous pouvez
initialiser des matrices personnalisées inter (I-frames/trames-clé) et intra
(P-frames/trames prévues). Elle est supportée par de nombreux codecs:
mpeg1video et mpeg2video
fonctionnent.
Une utilisation typique de cette fonction est d'initialiser les matrices
recommandées par les spécifications KVCD.
La matrice de quantisation "Notch" de KVCD:
Intra:
8 9 12 22 26 27 29 34
9 10 14 26 27 29 34 37
12 14 18 27 29 34 37 38
22 26 27 31 36 37 38 40
26 27 29 36 39 38 40 48
27 29 34 37 38 40 48 58
29 34 37 38 40 48 58 69
34 37 38 40 48 58 69 79
Inter:
16 18 20 22 24 26 28 30
18 20 22 24 26 28 30 32
20 22 24 26 28 30 32 34
22 24 26 30 32 32 34 36
24 26 28 32 34 34 36 38
26 28 30 32 34 36 38 40
28 30 32 34 36 38 42 42
30 32 34 36 38 40 42 44
Utilisation:
$ mencoder entree.avi -o sortie.avi -oac copy -ovc lavc
-lavcopts inter_matrix=...:intra_matrix=...
$ mencoder entree.avi -ovc lavc -lavcopts
vcodec=mpeg2video:intra_matrix=8,9,12,22,26,27,29,34,9,10,14,26,27,29,34,37,
12,14,18,27,29,34,37,38,22,26,27,31,36,37,38,40,26,27,29,36,39,38,40,48,27,
29,34,37,38,40,48,58,29,34,37,38,40,48,58,69,34,37,38,40,48,58,69,79
:inter_matrix=16,18,20,22,24,26,28,30,18,20,22,24,26,28,30,32,20,22,24,26,
28,30,32,34,22,24,26,30,32,32,34,36,24,26,28,32,34,34,36,38,26,28,30,32,34,
36,38,40,28,30,32,34,36,38,42,42,30,32,34,36,38,40,42,44 -oac copy -o
svcd.mpgCréer un rip MPEG4 ("DivX") de haute qualité à partir d'un DVD
Ripper un titre DVD dans un fichier MPEG4 (DivX) de qualité maximale implique de
nombreuses considérations. Vous trouverez plus bas un exemple du processus quand il
n'y a pas de taille de fichier particulière à atteindre (à part peut être faire tenir
le résultat dans 2 Go). libavcodec
sera utilisé pour la vidéo, et l'audio sera copié sans aucun changement.
Découpage
Lisez le DVD et appliquez le filtre de détection de découpage
() dessus. Cela affiche un rectangle de découpage
à utiliser pour l'encodage. Les raisons du découpage sont que beaucoup de films ne sont
pas dans un aspect ratio standard (16/9 ou 4/3), ou, pour n'importe quelle raison,
l'image ne tient pas dans la trame. Vous pouvez aussi les bandes noires quand vous rippez.
Cela améliore la qualité du rip car le bord dur des bandes noires gaspille beaucoup de
bits. Un aspect courant est 2.35, ce qui corresponds au cinescope. La plupart des gros
blockbusters ont cet aspect ratio.
Niveau de qualité
Ensuite vous devez choisir le niveau de qualité désiré. Quand il n'y a pas besoin
de garder une certaine taille pour tenir sur des CDs ou autres, en utilisant une
quantisation constante, c-a-d. une qualité constante, est un bon choix. De cette
façon chaque trame reçoit autant de bits dont elle a besoin pour maintenir la
qualité au niveau désiré, mais les multiples passes d'encodage ne sont pas requises.
Avec libavcodec, vous pouvez obtenir une
qualité constante en utilisant
.
devrait vous donner un fichier de taille inférieure à 2Go,
suivant la longueur du film et le bruit de la vidéo (plus il y a de bruit, plus il est
difficile de comresser.)
Fichiers de plus de 2 Go
Si le fichier provenant d'un encodage à qualité constante fait plus de 2 Go,
vous devrez créer un index pour pouvoir le voir correctement.
Vous devez soit
lire le film avec pour créer un index à la volée,
utiliser pour écrire l'index dans un fichier une fois pour
toute et pour l'utiliser pour la lecture de ce fichier.
Si cela vous ennuie, vous préférez peut-être garder la taille du fichier inférieure à 2 Go.
Il y a trois façons d'éviter cela. Vous pouvez essayer de réencoder en utilisant
et voir si la taille et la qualité sont toutes deux
acceptables. Vous pouvez aussi utiliser
l'encodage 2 passes.
Puisque vous copiez la piste audio telle quelle et que donc vous connaissez
son débit, et que vous connaissez la durée du film, vous pouvez calculer
le débit requis à passer à l'option
en utilisant l'encodage 3 passes.
La troisième et peut-être la meilleure option serait de légèrement diminuer
la résolution. Le 'softening' léger et la perte de détails est visuellement
préférable à la pixélisation et autres artéfacts de la compression MPEG.
Diminuer la résolution réduit le bruit de l'image, ce qui est bénéfique, car
le bruit est difficile à compresser.
Désentrelacement
Si le film est entrelaçé, vous pouvez le désentrelaçer pendant le rip.
Le faire à cette étape est discutable. L'avantage est que le désentrelaçement
pendant la conversion en MPEG4 rends la compression meilleure, et le visionnage
plus facile et moins gourmand en CPU sur des moniteurs d'ordinateur car aucun
désentrelacement n'est requis.
Savoir si on désentrelace durant l'étape du rip dépends du DVD. Si le DVD est
un film, qui a été tourné en 24 fps, vous pouvez très bien désentrelacer pendant
le rip. Si, par contre, la vidéo originale est en 50/60 fps, la convertir en
vidéo 23.976/25 fps désentrelaçé perdra des informations. Si vous décidez tout de même de désentrelacer, vous pouvez essayer avec différents filtres de désentrelacement, voir
http://www.wieser-web.de/MPlayer/
pour des exemples. Un bon point de départ est .
Si vous découpez et désentrelacez en même temps, désentrelacez
avant de découper. En fait, cela n'est pas nécessaire
si l'offset de découpage vertical est un multiple de 2 pixels. De toute façon
avec certains autres filtres comme le dering vous devez toujours découper en dernier,
donc c'est une bonne habitude à prendre de mettre le filtre de découpage en dernier.
Telecine inversé
Si vous rippez un DVD PAL, qui est en 25 fps, vous n'avez pas à vous soucier
des fps. Utilisez juste 25 fps. D'un autre coté les DVDs NTSC sont en
29.97 fps (souvent arrondi à 30 fps, mais ce n'est pas la vitesse réelle).
Si le film à été enregistré pour la TV, vous n'avez encore une fois pas à
toucher les fps. Mais si le film a été enregistré sur pellicule, et donc à
(exactement) 24 fps, il a été converti en 29.97 fps pour le presser sur DVD.
La conversion où 12 champs sont ajoutés toutes les 24 trames est appelée telecine.
Pour plus d'infos sur telecine, faites
une recherche Google sur "telecine field 23.976".
Au cas où vous ayez un DVD teleciné, vous pouvez inverser le telecine, c-a-d.
convertir le film en 23.976 fps (29.97*4/5).
Sinon les panoramiques seront sales et horribles. Vous pouvez utiliser
pour cela. Tous ce qui est montré au cinéma
est enregistré sur pellicule et nécessite le telecine inverse, les programmes TV
n'en ont pas besoin.
Redimensionnement et aspect ratio
Pour une meilleur qualité, ne redimensionnez pas les films pendant le rip.
Le redimensionnement produit des artéfacts et un fichier plus gros. Les
pixels des films DVD ne sont pas carrés, donc ces films incluent des infos
sur l'aspect ratio correct. Il est possible d'insérer l'aspect ratio dans
l'entête MPEG4 du fichier de sortie. La plupart des lecteurs vidéos ignorent
cette info, mais MPlayer l'utilise. Donc si vous
comptez utiliser uniquement MPlayer pour lire le fichier
rippé, vous n'avez pas besoin de redimensionner le film, passez juste
à MEncoder
et tout sera fait automatiquement.
Si vous devez redimensionner le film, assurez-vous de garder une taille correcte,
surtout si vous découpez.
Résumons
Avec tout ce qui a été mentioné plus haut, une commande d'encodage convenable pourrait
être
mencoder dvd://1 -aid 128 -oac copy -ovc lavc -lavcopts vcodec=mpeg4:vqscale=3:vhq:v4mv:trell:autoaspect \
-ofps 23.976 -vf crop=720:364:0:56 -o Harry_Potter_2.avi
Ici indique le titre DVD à ripper. l'option
dit d'utiliser la piste audio 128, et
de la copier telle quelle. Vous devrez utiliser
MPlayer pour trouver les bonnes valeurs pour ces options.
Les options pour
améliorent la qualité vis-à-vis du débit, mais rends l'encodage
plus long. Surtout qui ralentit l'encodage mais augmente visiblement
la qualité. Si vous voulez désentrelacer, ajoutez un filtre à
, par exemple
(dans cet ordre). Si vous n'avez pas besoin
de telecine inverse, enlevez .