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 .
Comment gérer le téléciné et le désentrelacement avec les DVDs NTSCIntroduction
Je vous suggère de visiter cette page si vous ne comprenez pas la plupart
de ce qui est écrit dans ce document:
Cette adresse mène à une description compréhensible et simple de ce qu'est le
téléciné.
Pour des raisons techniques imputables aux limitations des premiers postes
de télévision, toute vidéo destinée à être joué sur un poste de télévision NTSC
doit être en 59.94 champs par seconde. les téléfilms et les émissions sont souvent
filmés directement en 59.94 champs par seconde, alors que la majorité du
cinéma est filmé à 24 ou 23.976 trames par seconde. Quand le DVD d'un film est
masterisé, la vidéo est convertie pour la télévision en utilisant un procédé appelé
téléciné.
Sur un DVD, la vidéo n'est en fait jamais stockée en 59.94 champs par seconde.
Pour une vidéo qui était à l'origine en 59.94, chaque paire de champs est combinée
pour former une trame, donnant ainsi 29.97 trames par seconde. Les lecteurs DVD
lisent ensuite un flag contenu dans le flux vidéo pour déterminer si les lignes paires
-ou impaires- doivent former le premier champ.
En général, le contenu à 23.976 trames par seconde reste tel quel quand il est
encodé pour un DVD, et le lecteur DVD doit "téléciner" à la volée.
Parfois, cependant, la vidéo est téléciné avant d'être
stockée sur le DVD; même si elle était à l'origine en 23.976 trames par seconde,
elle passe en 59.94 champs par seconde, et est stockée sur le disque en 29.97
trames par seconde.
Quand on regarde des trames individuelles formées à partir d'une vidéo en
59.94 champs par seconde, téléciné ou similaire, l'entrelacement est clairement
visible partout où il y a du mouvement, car un champ (disons, les lignes paires)
représente un temps 1/59.94 de seconde plus loin que le suivant. La lecture de
vidéo entrelaçée sur un ordinateur est horrible parce que le moniteur a une
résolution supérieure et parce que la vidéo est affichée trame-après-trame plutôt
que champ-après-champ.
Notes:
Cette section ne s'applique qu'aux DVDs NTSC, et non PAL.
Les lignes d'exemple de MEncoder utilisées dans
ce document ne sont pas destinées à un
usage tel-quel. Ce sont juste le minimum requis pour encoder des vidéos de
cette catégorie. Comment faire des bons rips DVD ou paramétrer
libavcodec pour la meilleur qualité
possible est en dehors du cadre de ce document.
Il y a deux notes de bas de page spécifiques à ce guide, notée ainsi:
[1]
Comment trouver quel type de vidéo vous avezProgressive
La vidéo progressive est filmé à l'origine en 23.976 fps, et stockée sur le DVD
sans modification.
Quand vous jouez un DVD progressif avec MPlayer,
MPlayer affiche la ligne suivante dès le début de la
lecture du film:
demux_mpg: 24fps progressive NTSC content detected, switching framerate.
À partir de maintenant, demux_mpg ne devrait jamais dire qu'il trouve du
"30fps NTSC content."
Quand vous regardez une vidéo progressive, vous ne devriez jamais voir
l'entrelacement. Attention, cependant, car parfois il y a un petit peu de téléciné
mélangé, où vous ne vous y attendriez pas. J'ai rencontré des DVDs de show
TV qui ont une seconde de téléciné à chaque changement de scène, ou dans des
endroits apparemment aléatoires. J'ai vu une fois un DVD qui était en progressive
dans la première moitié, et téléciné dans la seconde. Si vous voulez être
vraiment certain, vous pouvez scanner tout le film:
mplayer dvd://1 -nosound -vo null -benchmark
L'utilisation de indique à
MPlayer de jouer le film aussi rapidement qu'il le
peut; cependant, suivant votre matériel, cela peut prendre un certain temps.
Chaque fois que demux_mpg signale un changement de débit, la ligne suivante
indiquera l'heure à laquelle le changement s'est produit.
Parfois la vidéo progressive est appelé "soft-telecine"
parce qu'elle est destinée à être téléciné par le lecteur DVD.
Télécinée
La vidéo télécinée a été filmée en 23.976, mais a été téléciné
avant d'être gravée sur DVD.
MPlayer ne signale pas (encore) les
changements de débit quand il joue de la vidéo téléciné.
En regardant de la vidéo téléciné, vous vourez des artéfacts d'entrelacement
qui semblent "clignoter": ils apparaissent et disparaissent rapidement.
Vous pouvez les regarder plus attentivement avec par exemple
mplayer dvd://1 -speed 0.1
Sauter à une partie avec du mouvement.
En regardant les trames entrelacées et progressives. Si le motif que vous
voyez est PPPII,PPPII,PPPII,... alors la vidéo est téléciné. Si vous voyez
un autre motif, alors la vidéo a été téléciné en utiliisant une méthode non-standard
et MEncoder ne peut pas la convertir en
progressive sans perte. Si vous ne voyez aucun motif, c'est certainement que la
vidéo est entrelaçé.
Parfois la vidéo téléciné est appelé "hard-telecine".
Entrelaçée
La vidéo entrelaçée a été filmé en 59.94 champs par seconde, et stockée sur DVD
en 29.97 trames par seconde. L'entrelacement est le résultat de la combinaison
des paires de champs dans des trames, car dans chaque trame, chaque champ
est séparé du suivant par 1/59.94 secondes.
Comme pour la vidéo téléciné, MPlayer ne
devrait pas encore signaler les changements de débit pendant la lecture de
contenu entrelaçé.
Quand vous regardez de près une vidéo entrelaçée avec , vous voyez que chaque trame est entrelaçée.
Progressive et télécinée mélangées
Toute la vidéo "progressive et téléciné mélangées" était à l'origine
en 23.976 trames par seconde, mais certaines parties ont fini en téléciné.
Quand MPlayer joue cette catégorie, il oscillera (de
manière répetée) entre "30fps NTSC" et "24fps progressive NTSC". Regardez la sortie texte de MPlayer
pour voir ses messages.
Vous devriez regarder les sections "30fps NTSC" pour vérifier que
c'est effectivement du téléciné, et pas juste de l'entrelaçé.
Progressive et entrelacée mélangées
Dans le contenu "progressive et entrelaçée", la vidéo progressive
et entrelaçée ont été entremélées.
Cette catégorie ressemble tout à fait à "progressive et télécinée mélangées", jusqu'à ce que vous examiniez les sections 30fps et voyez qu'elles
n'ont pas de motif de téléciné.
Comment encoder chaque catégorie
Comme mentionné au début, les lignes d'exemple de MEncoder ne sont pas destinées a être utilisé directement; elles démontrent juste les paramètres minimum pour encoder chaque catégorie.
Progressive
La vidéo progressive ne requiert aucun filtrage spécial pour l'encodage. Le seul
paramètre que vous devez utiliser est
. Sinon, MEncoder
essaira d'encoder en 29.97 fps et dupliquera des trames.
mencoder dvd://1 -nosound -ovc lavc -ofps 23.976Télécinée
Le téléciné peut être inversé pour retrouver le contenu original en 23.976,
en utilisant un procédé appelé inverse-téléciné.
MPlayer contient deux filtres pour accomplir cela:
et . Vous pouvez lire la page de man
pour voir leur différences, mais pour les DVDs je n'ai jamais eu de problèmes
avec . Notez que vous devriez
toujours appliquer l'inverse-telecine avant
tout redimensionnement; à mois que vous ne sachiez vraiment ce que vous
faites, appliquez l'inverse-téléciné également avant tout découpage
[1]. De nouveau,
est également requis.
mencoder dvd://1 -nosound -vf ivtc=1 -ovc lavc -ofps 23.976Entrelaçée
Dans la plupart des cas, en pratique, il n'est pas possible de retrouver
une vidéo progressive complète à partir de contenu entrelaçé. La seule
manière d'y parvenir sans perdre la moitié de la résolution verticale est de
doubler le débit et d'essayer de "deviner" ce qui est destiné a constituer
les lignes correspondantes pour chaque champ (cela a des inconvenients - voir
la méthode 3).
Encodez la vidéo sous forme entrelaçée. Normalement, l'entrelacement entre en
conflit avec la qualité de compression de l'encodeur, mais
libavcodec a deux paramètres
spécifiques pour gérer un peut mieux le stockage de la vidéo entrelaçée:
et . De plus,
utiliser est fortement recommandé
[2] car il encodera les
macroblocs en tant que non-entrelaçé là où il n'y a pas de mouvement.
Notez que n'est PAS requis ici.
mencoder dvd://1 -nosound -ovc lavc -lavcopts ildct:ilme:mbd=2
Utilisez un filtre de désentrelacement avant l'encodage. Il y a beaucoup de ces filtres
disponibles au choix, chacun avec ses avantages et ses inconvénients. Consultez
pour voir ce qui est disponible (recherche sur "deint"), et cherchez sur les
listes de diffusion de MPlayer pour trouver des discussions à propos des
divers filtres. De nouveau, le débit ne change pas, donc il n'y a pas de
. De même, le désentrelacement devrait être appliqué
après le découpage [1] et
avant le redimensionnement.
mencoder dvd://1 -nosound -vf pp=lb -ovc lavc
Malheureusement, cette option est boguée avec
MEncoder; elle est destinée a bien fonctionner avec
MEncoder G2, mais il n'est pas encore là. Vous
pourrez avoir des plantages. De toute façon, le but de est de créer des trames pleines à partir de chaque champ, ce
qui aboutit à un débit de 59.94. L'avantage de cette approche est qu'aucune donnée
n'est perdue; par contre, puisque chaque trame provient d'un seul champ, les lignes
manquantes doivent être remplies d'une manière ou d'une autre. Il n'y a pas de
vraiment de bonne méthode pour générer les données manquantes, et donc le
résultat sera similaire à celui obtenu en utilisant certains filtres de désentrelacement.
Générer les lignes manquantes créé d'autres problèmes, également, simplement
parce que la quantité de données double. Donc, un débit d'encodage supérieur
est requis pour maintenir la qualité, et plus de puissance CPU est utilisé pour
l'encodage et le décodage. tflields a de nombreuses options différentes pour
la création des lignes manquantes de chaque trame. Si vous utilisez cette méthode,
alors référez vous à la page de man, et choisissez l'option qui rends le mieux avec
votre matériel. Notez qu'en utilisant vous
devez spécifier et en indiquant un débit double de celui de la source.
mencoder dvd://1 -nosound -vf tfields=2 -ovc lavc -fps 59.94 -ofps 59.94
Si vous comptez réduire énormément, vous pouvez extraire et encoder
uniquement l'un des deux champs. Bien sûr, vous allez perdre la moitié de la
résolution verticale, mais si vous prévoyez de réduire d'au plus 1/2 de
l'original, la perte ne se vera pas trop. Le résultat sera un fichier progressif à
29.97 trames par seconde. La procédure est d'utiliser
, et ensuite couper
[1] et dimmensionner
correctement. Rappelez-vous que vous n'avez qu'à ajuster le redimmensionment pour compenser la division par deux de la résolution verticale.
mencoder dvd://1 -nosound -vf field=0 -ovc lavcProgressive et téléciné mélangées
De façon à transformer la vidéo progressive et télécinée mélangée en
vidéo entièrement progressive, l'inverse-telecine doit être appliqué sur les parties
télécinées. Il y a deux filtres qui accomplissent nativement cette tâche, mais la
plupart du temps la meilleure solution est d'utiliser deux filtres en conjonction (lire
la suite pour plus de détails).
Actuellement la méthode la plus fiable de traiter ce type de vidéo est, plutôt que
d'appliquer un inverse-téléciné sur les parties télécinées, de téléciner les parties
non-télécinées et d'ensuite appliquer l'inverse-téléciné sur la vidéo entière.
Cela vous semble confus ? softpulldown est un filtre qui parcoure une vidéo
et la rend entièrement télécinée. Si vous faites suivre softpulldown de soit
, soit , le résultat final sera
entièrement progressif. Le découpage et le redimmensionnement devrait être fait
après les opérations d'inverse-téléciné, et est
requis.
mencoder dvd://1 -nosound -vf softpulldown,ivtc=1 -ovc lavc -ofps 23.976
est conçu pour appliquer un inverse-telecine sur le
matériel téléciné tout en laissant les données progressives intacts. Pullup ne
fonctionne pas vraiment avec l'actuel
MEncoder, cependant, il est vraiment prévu
pour l'utilisation avec MEncoder G2 (quand
celui-ci sera prêt). Il fonctionne bien sans , mais
est requit pour empécher un affichage brouillé. Avec
, cela échoue parfois. Le problème provient du
comportement de
MEncoder qui saute des trames pour maintenir
la synchronisation entre l'audio et la vidéo: il saute des trames avant de les
envoyer dans la chaine de filtres, plutôt qu'après. Résultat,
est parfois privé des données dont il a besoin.
Si MEncoder saute trop de trames dans une
rangée, il vide les tampons de et le conduit à planter.
Même si MEncoder ne saute qu'une seule trame,
ne pourra toujours pas la voir, et finira par opérer sur
une séquence incorrecte de trames. Même si cela ne provoque pas de plantage,
ne sera pas capable de prendre les bonnes décisions pour
ré-assembler les trames progressives, et va soit mal faire correspondre les
champs, soit sauter plusieurs champs pour compenser.
Je n'ai jamais utilisé moi-même, mais voici ce qu'en dit
D Richard Felker III:
C'est bon, mais AMA il essaie de désentrelacer plutôt que
de faire de l'inverse-téléciné trop souvent (tout comme les lecteurs DVD &
et les TVs progressives), ce qui donne un scintillement horrible et d'autres artéfacts.
Si vous voulez l'utiliser, vous devrez au moins passer un peu de temps à régler
les options et à regarder le résultat pour vous assurer que tout va bien.
Progressive et entrelaçée mélangées
Il y a deux options pour gérer cette catégorie, chacune d'elle étant un
compromis. Vous devriez décider suivant la durée/position de chaque type.
Traitez-la en tant que progressive. Les parties entrelaçées apparaitront
comme entrelaçées, et certains champs devront être sautés, donnant une
lecture un peu sacadée. Vous pouvez utiliser un filtre de postprocessing si vous
le voulez, mais celui-ci pourrait légérement dégrader les parties progressives.
Cette option ne devrait vraiment pas être utilisée si vous voulez finalement
afficher la vidéo sur un périphérique entrelaçé (avec une carte TV, par exemple).
Si vous avez des trames entrelaçées dans une vidéo de 23.976 trames par
secondes, elles seront télécinées avec les trames progressives. La moitié des
"trames" sera affichée durant trois champs (3/59.94 secondes),
provoquant un effet tremblotant "saut dans le temps" qui rends
particulièrement mauvais. Si vous essayez cela, vous devez utiliser un filtre de désentrelacement comme
ou .
Cela peut être aussi une mauvaise idée pour l'affichage progressif. Des paires
de champs consécutifs seront sautés, provoquant une discontinuité qui peut
être plus visible avec la seconde méthode, qui montre certaines trames
progressives deux fois. La vidéo en 29.97 trames par seconde est déjà un
peu brouillée car elle devrait être lue en 59.94 champs par seconde, donc les
trames dupliquées ne se voient pas trop.
D'un autre coté, il vaut mieux considérer votre contenu et comment vous comptez
l'afficher. Si votre vidéo est 90% progressive et que vous ne comptez pas l'afficher
sur une TV, vous devriez préférer une approche progressive. Si c'est seulement
à moitié progressif, vous voudrez probablement l'encoder comme si elle était
complétement entrelaçée.
Traitez-la comme entrelaçée. Certaines trames des parties progressives
devront être dupliquées, causant des saccades irrégulières. De nouveau,
les filtres de désentrelacement peuvent légèrement dégrader les parties
progressives.
Notes de bas-de-pageÀ propos du découpage:
Les données vidéo des DVDs sont stockées dans un format appelé YUV 4:2:0.
Dans la vidéo YUV, luma ("luminosité") et chroma ("couleur")
sont stockés séparemment. Dans une image YUV 4:2:0 il n'y a qu'un pixel chroma
pour quatre pixels luma, car l'oeil humain est plus sensible à la couleur qu'à la
luminosité. Dans une image progressive, chaque carré de quatre pixels luma
(deux de chaque coté) a un pixel chroma en commun. Vous devez couper l'YUV
progressive dans une résolution paire, et utiliser des offsets pairs. Par exemple,
est correct mais
ne l'est pas.
Quand vous traitez de l'YUV 4:2:0 entrelaçé, la situation est un peu plus compliquée.
Au lieu de quatre pixels luma dans une trame partageant
un pixel chroma, chaque ensemble de quatre pixels luma dans un
champs partage un pixel chroma. Quand les champs
sont entrelaçés pour former une trame, chaque scanline est haute de un pixel.
Maintenant, au lieu d'avoir quatre pixels dans un carré, il y a deux pixels cote-à-cote,
et les deux autres pixels sont cote-à-cote deux scanlines plus bas. Les deux pixels
luma des scanlines intérmédiaires proviennent de l'autre champ, et donc partagent
un pixel chroma différent avec deux pixels luma deux scanlines après. Toute
cette confusion fait qu'il est nécessaire d'avoir des dimensions de découpage
et des offsets multiples de quatre. L'horizontal peut rester pair.
Pour la vidéo télécinée, je recommande de découper après le procédé
d'inverse-téléciné. Une fois la vidéo en progressive, vous n'aurez plus
qu'à découper par nombres pairs. Si vous voulez vraiment profiter du léger
gain de temps qu'offre le découpage en premier, vous devez couper verticalement
par multiples de quatre ou sinon le fitre d'inverse-téléciné n'aura pas suffisemment
de données.
Pour la vidéo entrelaçée (non télécinée), vous devez toujours découper verticalement
par multiples de quatre à moins d'utiliser avant le
découpage.
À propos des paramètres d'encodage et de la qualité:
Le fait que je recommande ici ne signifie pas qu'il doit
être utilisé ailleurs. Avec , est une
des deux options de libavcodec qui
augmentent le plus la qualité, et vous devriez toujours au moins les utiliser toutes les
deux à moins que la vitesse d'encodage soit primordiale (par ex. encodage
temps-réel). Il y a beaucoup d'autres options qui augmentent la qualité (et diminuent
la vitesse d'encodage) mais c'est en dehors du cadre de ce document.