L'encodage avec <application>MEncoder</application> Créer un rip MPEG-4 ("DivX") de haute qualité à partir d'un DVD Une question fréquemment posée est "Comment faire le meilleur rip DVD possible ? Une autre question est "Comment dois-je faire pour avoir un rip de la meilleure qualité possible ?" Peu importe la taille du fichier, je veux simplement la meilleure qualité." Cette question est peut être un peu mal posée. Après tout, si vous ne vous souciez pas de la taille du fichier, pourquoi ne pas simplement copier le flux MPEG-2 du DVD entier ? Bien sûr, votre AVI finira par faire 5Go, mais si vous voulez la meilleure qualité et ne vous souciez pas de la taille, ceci est probablement votre meilleure option. En fait, la raison pour laquelle vous voulez convertir un DVD en MPEG-4 est que vous tenez réellement compte de la taille du fichier. Il est difficile de proposer une recette sur la façon de créer des rips DVD de très haute qualité. Il y a de nombreux facteurs à prendre en compte, et vous devriez comprendre ces détails, ou vous serez déçus par les résultats. Ci-dessous nous allons examiner quelques-uns de ces problèmes, et voir un exemple. Nous supposerons que vous utilisez libavcodec pour encoder la vidéo, bien que cette exemple théorique s'applique également à d'autres codecs. Si cela vous semble un peu trop pour vous, vous devriez utiliser une des interfaces graphiques listées dans Section MEncoder sur la page de notre projet. Avec ceci, vous serez suffisamment armé pour produire des rips de bonne qualité sans trop réfléchir car ces outils utilisent des réglages astucieux à votre place. Préparation à l'encodage : identification des sources, du matériel et du framerate Avant même de penser à encoder un film, il est nécessaire de passer par quelques étapes préliminaires. La première et plus importante étape avant l'encodage sera la détermination du type de contenu utilisé. Si la source physique provient d'un DVD ou bien d'un média de diffusion comme la télé par câble ou le satellite, elle sera stockée sous deux formats : NTSC pour l'Amérique du nord et le Japon, et PAL pour l'Europe et les autres pays... C'est important de la prendre en compte ce paramètre: ceci est juste le format de présentation à la télévision, ce n'est en aucun cas le format original du film. L'expérience montre que le NTSC est bien plus dur à encoder car il y a plus d'élément d'identification dans la source. Afin de produire l'encodage désiré, vous devez connaître le format original. Négliger cette étape aura pour conséquence des résultats hasardeux, des artefacts bizarroïdes, des trames en double ou ignorées. En plus d'avoir des résultats bizarres, le rendu global risque d'en souffrir avec une qualité médiocre par unité du bitrate. Identification du framerate de la source Voici une liste de types de sources matérielles, il est possible que vous trouviez la vôtre avec ces propriétés : Film standard: produit pour une diffusion cinématographique avec 24 images par secondes (fps). Vidéo PAL: Enregistré par une caméra à 50 trames par secondes. Une trame est, par exemple, l'ensemble des lignes paires ou des lignes impaires d'une image. La télévision a été créée pour afficher l'image de cette manière (en fait une version bas de gamme de compression analogique). L'oeil humain est censé compenser cette alternance de trames mais dès lors que vous comprenez ce fonctionnement, vous ne regarderez plus la télévision de la même façon. Deux trames ne font pas une image complète, car elles sont capturées avec un décalage de 1/50e de seconde, et donc, elles ne s'alignent pas parfaitement sauf s'il y a du mouvement Vidéo NTSC : Enregistré par une caméra à 60000/1001 trames par secondes, ou 60 trames par secondes dans l'ère noir/blanc. A part cela, c'est similaire au PAL. Animation: Habituellement dessiné pour du 24fps, mais on peut en trouver de toute sorte. Animation Graphique, Effets Spéciaux: il est possible d'en trouver avec n'importe quel framerate, mais en général, le NTSC utilise 24fps et 30fps, le PAL utilise plutôt 25fps. Vieux films: le framerate est généralement plus bas. Identification de la source matérielle (?)Les films composés de trames sont dits 'progressive', alors que ceux composés de champs indépendant sont appelés soit entrelacé soit vidéo - ce dernier terme est plutôt ambigu. Pour compliquer le tout, certains films utiliset un mélange de plusieurs des techniques vues ci-dessus. La distinction la plus importante qui doit être faire entre ces formats est que certains utilisent les trames alors que d'autres, les champs. Même si un film a été préparé pour être projeté sur une télévision (DVDs inclus), il est converti dans un format basé sur des champs. Les nombreuses méthodes peuvent être rassemblé sous le terme de redimensionnement comme l'infâme NTSC "3:2 telecine" qui en est une variété. Sauf si l'oeuvre originale est basée sur des champs (et avec le même fieldrate), le format d'image obtenu sera différent de celui d'origine. Plusieurs variétés communes de redimensionnement : Redimensionnement PAL 2:2 : Le meilleur de tous. Chaque image est affichée pendant la durée de deux trames, par extraction des lignes paires et impaires, puis en les affichant par alternance. Si l'original est à 24 images par secondes, ce redimensionnement augmentera la vitesse du film de 4%. Redimensionnement PAL 2:2:2:2:2:2:2:2:2:2:2:3: La douzième image est affiché pendant la durée de 3 frames au lieu de deux. Cela permet d'éviter le problème de l'accélération de 4% mais rend le processus trés difficile à inverser. Cette technique est généralement utilisé dans les productions musicales où l'accélération de 4% endommagerait sérieusement la qualité musicale. Télécine NTSC 3:2: Les images sont alternativement affichées pendant une durée de 3 ou 2 frames. Cela provoque un redimensionnement de 2,5 fois le ratio original. Le résultat est très légèrement ralenti de 60 frames par secondes à 60000/1001 frames par seconde pour maintenir le fieldrate NTSC Redimensionnement NTSC 2:2: Utilisé pour le NTSC avec une source en 30fps. Le rendu est correct, similaire au redimensionnement PAL 2:2 Il y aussi d'autres manière de convertir des vidéos NTSC et PAL mais ce sujet s'éloigne des limites de ce guide. Si vous désirez encoder un film par exemple, le mieux reste de trouver une copie de l'original. La conversion entre ces deux formats est hautement destructrice et il n'est pas possible de l'inverser proprement, donc l'encodage sera d'autant plus mauvais s'il est fait à partir d'une source déjà converti. Quand des vidéos sont stockées sur un DVD, des groupes de trames consécutives sont rassemblés en une image, même si elles ne sont pas censées être affichées au même moment. Le standard MPEG-2 utilisé dans les DVDs et la télévision numérique fournit un moyen d'encoder les images originales progressivement et de stocker le nombre de trames pour chaque image qui devra être affiché avant cette image. Si cette méthode autilisée, on dit que le film est "soft-telecined" ("contenu progressif"), car le processus de rendu est appliqué directement par le lecteur DVD et non pas en dégradant le film. Ce cas est de loin le mieux car il peut être tout aussi bien inversé (en fait, non pris en compte) par l'encodeur puisqu'il préserve la qualité maximale. Malgré cela, beaucoup de DVD et d'émissions studios diffusées n'utilisent pas des techniques d'encodage propres mais plutôt des films "hard telecine" ("contenu brut") dans lesquels les trames sont dupliquées puis encodées en MPEG-2. Les étapes pour gérer correctement ce genre de cas seront évoquées plus tard dans ce guide. Pour l'instant, nous allons vous donner quelques indices pour définir à quelle source vous avez à faire : Domaine du NTSC: Si MPlayer affiche que le nombre d'image a changé pour 24000/1001 quand vous regardez votre film, et qu'il ne change plus du tout, il est quasiment certain que c'est un contenu progressif qui a été "soft teleciné". Si MPlayer affiche un nombre d'images alternant entre 24000/1001 et 30000/1001 et que les bords de l'image affichent des espèces de "peignes", alors il y a plusieurs possibilités. Les segments à 24000/1001 fps ont très certainement un contenu progressif, "soft teleciné" mais les parties 30000/1001 fps ont pu être "hard-telecinées" depuis un contenu 24000/1001 fps ou 60000/1001 frames par secondes d'une vidéo NTSC. Utilisez les mêmes conseils que ceux pour les deux cas qui suivent. Si MPlayer montre un nombre d'images constant et que chacune des images avec des mouvements semble avoir un "peigne" sur les cotés, alors votre film est une vidéo NTSC à 60000/1001 images par seconde. Si MPlayer montre un nombre d'images constant et que deux images sur cinq apparaissent avec des "peignes", le film est "hard teleciné" avec un contenu à 24000/1001fps. Domaine du PAL: Si vous ne voyez pas de "peigne" sur les cotés, le film a un redimensionnement 2:2. Si vous voyez une alternance régulière d'effet "peigne", de pseudo-entrelacement toutes les demi-secondes, alors le film a subi une réduction 2:2:2:2:2:2:2:2:2:2:2:3. Si vous voyez une sorte d'entrelacement constant dans les scènes en mouvement, le film est en PAL avec 50 trames par secondes. Astuce: MPlayer peut lire un film très lentement en utilisant l'option -speed ou en le jouant image par image. Essayer d'utiliser l'option à 0.2 afin de regarder le film très doucement ou presser la touche "." pour avancer d'une frame à l'autre et ainsi identifier la "signature" d'un type de redimensionnement si celui-ci n'est pas visible à vitesse normale. Quantiseur constant contre deux passes Il est possible d'encoder votre film suivant une large gamme de qualités. Les compresseurs vidéo modernes et quelques pre-codec de compression (anti-bruit et redimensionnement) permettent d'obtenir un trés bon rendu pour un film grand écran de 90-110 minutes sur 700Mo. De plus, la plupart des films longs peuvent approcher un résultat parfait avec un fichier d'un taille de 1400Mo. Il y a trois approches possibles pour encoder une vidéo: débit constant (CBR), quantification constante, et deux-passes (ABR, ou débit moyen). La complexité des images d'un film et le nombre de bits utilisés pour cette compression fera varier grandement le résultat d'une scène à l'autre. Les encodeurs vidéo modernes savent s'ajuster en fonction des besoins par variation du débit vidéo (bitrate). Cependant, dans un mode simple comme le CBR, le compresseur ne connaît pas le besoin en débit vidéo pour les scènes à venir, donc il ne sait pas définir un bitrate moyen sur la longueur du film. Les modes avancés actuels, comme le mode 'multipass' (plusieurs passages), prennent en compte les statistiques des passes précédentes pour l'encodage, fixant le problème ci-dessus. Note: La plupart des codecs qui supportent la compression ABR supportent seulement deux passages alors que d'autres comme le x264, le XviD et libavcodec supportent des passes multiples qui permettent d'affiner à chaque fois les statistiques (ces améliorations seront cependant négligeables après la quatrième passe). Dans cette section, deux passages ou plus peuvent être utilisés indifféremment. Dans chacun de ces modes, libavcodec sépare les trames vidéos en macroblocs de 16x16 pixels et applique ensuite un quantificateur sur chaque macrobloc. Plus le quantificateur est bas, plus la qualité est bonne et le débit est gros. La méthode utilisée par libavcodec pour déterminer quel quantificateur utiliser varie et est configurable (ceci est une simplification à l'extrême du processus, mais il est utile de comprendre le principe de base). Lorsque vous spécifiez un débit constant, le compresseur vidéo codera la vidéo en laissant de côté les détails, et ceci, d'autant plus que le bitrate sera petit. Si la taille du fichier vous importe peu, vous pouvez fixer un débit contant et infini. (En pratique, cette valeur aura une limite haute dans les 10000Kbit). Sans réelle restriction de débit, libavcodec utilisera le plus bas quantificateur possible pour chaque macrobloc (tel que spécifié par , qui vaut 2 par défaut). Si vous spécifiez un débit si petit que libavcodec doit utiliser un quantificateur plus haut, alors vous êtes certainement en train de massacrer la qualité de votre vidéo. En général, vous devriez éviter le CBR si vous vous souciez de la qualité. Avec un quantificateur constant libavcodec utilise le même quantificateur, spécifié par l'option , sur chaque macrobloc. Si vous voulez un rip de la meilleure qualité possible, cette fois encore en ignorant le débit, vous pouvez utiliser . Cela donnera le même débit et le même PSNR (Peak Signal-to-Noise Ratio, rapport signal sur bruit de crête) que le CBR avec =infini et la valeur de par défaut (2). Le problème de la quantification constante est qu'elle utilise le quantificateur demandé même si le macrobloc n'en a pas besoin. En fait, il doit être possible d'utiliser un quantificateur plus haut sur un macrobloc sans sacrifier de la qualité visuelle. Pourquoi gaspiller des bits avec un quantificateur inutilement bas ? Votre microprocesseur a assez de ressources car il a le temps, mais votre disque lui a une taille fixée. Avec l'encodage deux-passes, la première passe va ripper le film comme en CBR, mais va garder un log des propriétés de chaque trame. Ces données sont ensuites utilisées pendant la seconde passe de façon à choisir intelligemment quels quantificateurs utiliser. Lors des scènes d'action rapide ou celles ayant beaucoup de détails, des quantificateurs plus élevés seront utilisés. Pendant les scènes avec peu de mouvements ou avec peu de détails, ce sera des quantificateurs plus bas. Si vous utilisez , alors vous gaspillerez des bits. Si vous utilisez , vous n'aurez pas la meilleur qualité de rip. Supposez que vous rippiez un DVD avec , et que le résultat soit 1800Kbit. Si vous faites un encodage en deux passes avec , la vidéo produite aura une meilleure qualité pour le même débit. Maintenant que vous êtes convaincu que l'encodage deux passes est la bonne méthode, la vraie question est maintenant de savoir quel débit utiliser. Il n'y a pas de réponse toute faite. Idéalement, vous devriez choisir un débit offrant un compromis entre qualité et taille de fichier. Cette valeur varie selon la source vidéo. Si la taille ne compte pas, un bon point de départ pour un rip de très haute qualité est environ 2000kbps, plus ou moins 200kbps. Pour les vidéos comportant beaucoup d'actions ou de détails, et/ou si vous avez de très bon yeux, vous pouvez choisir 2400 ou 2600. Pour certains DVDs, vous pourrez ne pas voir de différence à 1400kbps. C'est une bonne idée que d'essayer sur des scènes avec différents débits pour se rendre compte. Si vous avez fixé une taille limite, alors il faudra se livrer à un petit calcul pour obtenir le débit souhaité. Mais avant cela, il faudra définir l'espace que vous réserverez aux piste(s) audio et vous devrez les ripper en premier. Vous pourrez alors calculer le débit souhaité avec l'équation suivante : Débit = (taille_fichier_final_en_Mo - taille_fichier_son_en_Mo) * 1024 * 1024 / durée_en_secondes * 8 / 1000 Par exemple, pour ramener deux heures de films sur un cd de 702Mo avec une piste son de 60Mo, le débit vidéo sera alors de : (702 - 60) * 1024 * 1024 / (120*60) * 8 / 1000 = 740kbps Contraintes pour une compression efficace De par la nature intrinsèque de la compresssion MPEG, de nombreux paramètres entrent en jeu afin d'obtenir une qualité maximale. Le MPEG découpe la vidéo en carré de 16x16 appelé macroblocs. Chacun d'entre eux est composé de 4 petits (8x8) blocs contenant des informations sur la luminosité (intensité) ainsi que de 2 blocs (donc à résolution moitié) contenant des informations chromatiques (pour les teinte rouge-cyan et bleu-jaune). Même si la longueur et la largeur du film ne sont pas des multiples de 16, l'encodeur utilisera des macroblocs de 16x16 pour couvrir l'image entiere, l'espace restant sera alors perdu. Si votre intérêt est de conserver une très bonne qualité, utiliser des résolutions non multiples de 16 n'est pas une bonne idée. La plupart des DVDs ont aussi des bandes noires sur les bords. Négliger ces parties peut altérer la qualité de plusieurs manières. La compression MPEG est aussi dépendante du domaine de transformation des fréquences, en particulier du "Discrete Cosine Transform (DCT)" (une espèce de transformée de Fourier). Ce type d'encodage est efficace pour les formes et les transitions douces, mais fonctionne moins bien avec les contours acérés. Afin d'encoder correctement, il demandera plus de bits, sinon des artefacts de compression apparaitront, aussi connus sous le nom de "ringing". La transformation en fréquence (DCT) prend place séparément dans chaque macrobloc (en fait, dans chaque bloc), donc le problème n'apparaitra que si un bord franc se situe dans ce bloc. Si vos bordures noires commencent exactement sur un multiple de 16, ce ne sera pas un problème. En pratique, les bordures ne sont jamais bien alignées, et il sera certainement nécessaire de les couper pour éviter ces défauts. En plus des transformations au niveau des fréquences, la compression MPEG utilise des vecteurs de mouvements représentant les changements d'une image à la suivante. Ces vecteurs de mouvements voient leur utilité grandement réduite quand la prochaine image à un contenu totalement différent. Quand il y a un mouvement qui sort de la région encodée, cela ne pose pas de problème aux vecteurs. En revanche, cela peut poser des problèmes avec les bandes noires: Pour chaque macrobloc, la compression MPEG stocke un vecteur identifiant quelle partie de l'image précédente devrait être copiée dans les macroblocs de l'image suivante. Seules les différences devront alors être encodées. Si le macrobloc s'étend et prend en compte une des bordures noire de l'image, alors le vecteur de mouvement écrasera la bordure noire. Cela veut dire que de nombreux bits sont gaspillés pour renoircir la bande noire ou alors (plus probable) que le vecteur de mouvement ne sera pas du tout utilisé et que tout le macrobloc devra alors être ré-encodé. Dans tous les cas, l'efficacité de l'encodage en est grandement améliorée. Une fois encore, ce problème n'existe que si les lignes des bordures noires ne sont pas un multiple de 16. Enfin, supposons que l'on ait un macrobloc à l'intérieur d'une image et qu'un objet se déplace dans ce bloc proche d'un bord de l'image. Malheureusement, le MPEG ne sait pas faire "copier juste la partie qui dans l'image et laisser tomber la partie noire". Donc la partie noire sera alors aussi copiée, ce qui fait encore gaspiller beaucoup de bits pour compresser un morceau d'image qui n'est pas sensé être là. Si l'objet en mouvement parcourt depuis le bord noir jusque dans la zone encodée, le MPEG dispose d'optimisation spéciales pour copier en répétition des pixels depuis le bord de l'image lorsque celui vient de l'extérieur de la partie encodée. Ces optimisations deviennent inutiles quand le film à des bandes noires. Contrairement aux problèmes 1 et 2, même les bordures noires multiples de 16 n'aident pas dans ce cas. Malgré le fait que les bordures soient entièrement noires et quelles ne changent jamais, il y a toujours un minimun de macroblocs impliqués. Pour toutes ces raisons, il est préférable de couper entièrement ces bandes noires. Dans la même optique, s'il y a une partie contenant du bruit ou de la distorsion d'image prés d'une bordure, la coupure l'enlevera et permettra d'avoir une amélioration significative de la qualité de l'encodage. Les puristes parmi les vidéophiles souhaiteront préserver l'encodage le plus proche possible de l'original, à moins qu'ils n'encodent avec un quantificateur constant, la qualité gagnée après la suppression des bandes noires améliorera grandement la qualité finale de l'encodage au regard des quelques informations perdues. Découpage et Redimensionnement Rappel de la section prédécente, la taille de l'image finale devra être un multiple de 16 (en hauteur et largeur). Cela peut être réalisé par découpage (recadrage), redimensionnement ou les deux. Lors du recadrage, il y a quelques règles qui doivent être respectées sous peine d'endommager votre film. Le format normal YUV, 4:2:0 stocke l'information chromatique (couleur) de manière sous-échantillonnée, par exemple, la chrominance est échantillonée en moitié moins de temps que l'information de la luminance (intensité). Observez le schéma suivant, L indique un échantillon de luminance, et C pour la chrominance. L L L L L L L L C C C C L L L L L L L L L L L L L L L L C C C C L L L L L L L L Comme vous pouvez le voir, les lignes et colonnes de l'image naturelle viennent par deux. Ainsi, votre découpe devra absolument avoir des dimensions paires. Si ce n'est pas le cas, les informations chromatiques et de luminosité ne seront plus alignées. En théorie, il est possible de découper d'une dimension impaire, mais cela demandera alors un re-sampling des informations chromatique, ce qui, potentiellement, génère des pertes d'information et n'est pas supporté par le filtre de redimensionnement. Ensuite, la vidéo entrelacée est échantillonée de la façon suivante: Top field Bottom field L L L L L L L L C C C C L L L L L L L L L L L L L L L L C C C C L L L L L L L L L L L L L L L L C C C C L L L L L L L L L L L L L L L L C C C C L L L L L L L L Comme vous pouvez le voir, les répétitions n'apparaissent pas aprés 4 lignes. Donc pour la vidéo entrelacées, le décalage (offset) sur y et la hauteur pour le découpage doivent être un multiple de 4. La résolution native pour un DVD NTSC est 720x480 et 720x576 pour un PAL, mais il y a un indicateur d'aspect qui spécifie que le mode est plein-écran (full-screen 4:3) ou bien écran large (wide-screen 16:9). Un grand nombre (pas tous) des DVDs en wide-screen ne respectent pas strictement le format 16:9, mais plutôt du 1,85:1 ou 2,35:1 (cinémascope). Cela a pour conséquence des bandes noires sur la vidéo qu'il faudra enlever. MPlayer fournit un filtre de détection pour la découpe qui déterminera le rectangle de découpe (). Lancer l'application MPlayer avec l'option et il affichera les informations nécessaires pour faire une découpe propre afin d'enlever les bandes. Vous devez laisser le film assez longtemps avec une utilisation complète de l'image pour obtenir des valeurs précises. Ensuite, testez les valeurs avec MPlayer en utilisant les informations affichés par la ligne de commande , et éventuellement ajuster le rectangle de découpe. Ce filtre offre la possibilité de modifier sa position durant le film. Mais faites bien attention de suivre les recommendations précédentes en matières des dimensions multiples où sinon, l'information chromatique ne sera plus alignée. Dans certain cas, la réduction ne sera pas désiré. Ce redimensionnement vertical est difficile dès lors que la vidéo est entrelacée, si vous désirez la conserver ainsi, abstenez-vous d'appliquer un redimensionnement. Si vous ne voulez pas redimensionner mais que vous voulez toujours utiliser une dimension multiple de 16, il vous faudra couper au delà de la taille normale. Ne pas couper en deçà, les bandes noires ne profitent pas à la qualité de l'encodage. Le MPEG-4 utilisant des macroblos de 16x16, vérifiez bien que les dimensions de la vidéo que vous encodez est un multiple de 16, sinon vous dégraderez la qualité de la vidéo encodée, surtout sur les faibles débits. Le mieux est d'arrondir les dimensions du rectangle de découpe au multiple de 16 le plus proche. Dans l'état initial, durant le redimensionnement, vous devrez augmenter le décallage sur Y par la moitié de la différence entre l'ancienne et la nouvelle taille pour que le résultat sur la vidéo se situe au milieu de la frame. Et aussi, la vidéo DVD étant samplé, vérifiez bien que l'offset est un nombre pair (En fait, c'est une règle, ne jamais utiliser une valeur lors d'une découpe ou redimensionnement de video). Si vous ne vous faites pas à l'idée de jeter quelques pixels, vous préfèrerez redimensionner la vidéo par le zoom. Nous allons voir cela par l'example suivant. Vous pouvez laisser faire l'option du filtre qui fera tout cela pour vous, et un paramètre optionnel permet de le rendre égal à 16 par défaut. Faites bien aussi attention aux pixels à "demi-noir". Soyez sûr qu'ils seront enlevés lors de la découpe, sinon ils seront une source de gaspillage de bits alors qu'il pourrait être utiliser ailleurs. Aprés tout ceci, vous obtiendrez une vidéo avec des pixels ne s'approchant plus de 1,85:1 ou 2,35:1, mais quelque chose d'assez proche. Vous pouvez alors calculer le ratio à la main, mais MEncoder propose une option appelée pour libavcodec qui fera cela pour vous. Ne pas surdimensionner par le zoom cette vidéo afin d'obtenir des pixels carrés à part si vous avez de l'espace disque à revendre. Ce changement d'échelle se fera à la lecture, le lecteur utilisera les données stockés dans le fichier AVI pour retrouver la bonne résultante. Malheureusement, tous les lecteurs vidéos n'appliquent pas ce redimensionnement automatique, c'est peut-être pour cela que vous devrez faire ce changement d'échelle. Choix de la résolution et du débit Si vous ne voulez pas encoder dans un mode à quantificateur constant, vous devrez sélectionner un débit. Le concept de débit (bitrate) est assez simple. C'est un nombre (moyen) de bits qui sera utilisé pour stocker le film, exprimé en seconde. Normalement, le débit est mesuré en kilo-bits (1000 bits) par seconde. La taille de votre film sur le disque dur équivaut à ce débit pendant toute sa durée plus quelques entêtes (allez voir par exemple la section sur les conteneurs AVI). D'autres paramètres comme le redimensionnement, la découpe, etc.. n'engendreront pas de modification du fichier sauf si vous y touchez aussi. Le bitrate n'a pas d'influence proportionnelle sur la résolution. Par exemple, la qualité d'un film en 320x240 à 200kbit/sec ne sera pas pareil qu'un film en 640x480 à 800kbit/sec ! A cela, deux raisons: Visuellement : vous allez remarqué d'autant plus les artefacts de compression MPEG qui vous agrandissent l'image. Les artefacts apparaissent sur des zooms de bloc (8x8). Vos yeux ne verront pas d'erreurs sur 4800 petits blocs mais les verront trés facilement sur seulement 1200 plus gros blocs (dans le cas que vous regardez les deux en plein écran). Théoriquement : quand vous réduisez une image, vous continuez d'utiliser les mêmes tailles de bloc (8x8) pour la transformation de la zone de fréquence, alors vous déplacez plus de données vers ces hautes fréquences. Pour rester simple, chaque pixel contient alors plus de détails qu'avant. Même en diminuant l'image contenant 1/4 des informations dans le domaine spatial, elle pourra contenir une large part des informations dans le domaine fréquentiel (en partant du fait que les hautes fréquences soient peu utilisées dans le fichier original en 640x480). Les anciens guides recommandaient de choisir un débit et une résolution basé sur "1 bit par pixel", mais ce n'est que peu valide d'aprés les raisons précédentes. Une meilleur estimation reste que le débit augmente proportionellement à la racine carré par rapport à la résolution, donc une image 320x240 à 400kbit/sec sera comparable à celle en 640x480 à 800 kbit/sec. Cela n'a pas été strictement vérifié par la théorie ou quelconque méthode empirique. De plus, pour un film donné, le résultat variera en fonction du bruit, des détails, du degré de mouvement, etc.. Il est futil de donner des recommendations générales du style: un nombre de bits par longeur de diagonale (similaire au bit par pixel, en utilisant la racine carré). Nous discuterons plus tard en détail la difficulté de choisir le débit et la résolution. Calcul de la résolution Les étapes qui suivent vous guideront dans le calcul de la résolution de votre encodage sans trop distordre la vidéo, en prenant compte des différents types d'information de la source vidéo. En premier lieu, il faut calculer le ratio d'aspect de l'encodage: ARc = (Wc x (ARa / PRdvd )) / Hc Où : Wc et Hc sont la largeur et la hauteur de la vidéo redimensionnée, ARa est le ratio affiché, généralement, 4/3 ou 16/9, PRdvd est le ratio des pixels du DVD qui normalement est égal à 1,25 = 720/576 pour le PAL et 1,5 pour le NTSC (720/480), Ensuite, vous pouvez calculer la résolution X et Y en tenant compte du facteur de Qualité de Compression (CQ): ResY = INT(SQRT( 1000*Bitrate/25/ARc/CQ )/16) * 16 et ResX = INT( ResY * ARc / 16) * 16 D'accord, mais c'est quoi ce CQ ? le CQ représente le nombre de bit par pixel et par image encodée. Grosso modo, plus le CQ est grand, moins il y aura de chances de voir apparaître des artefacts de compression. Dans certain cas, vous êtes limité par la taille finale du film (1 ou 2 CDs par exemple), il y a donc une limite totale du nombre de bits pour cette compression et la qualité. Le CQ dépends du débit, de la qualité intrinséque du codec vidéo et de la résolution du film. Une manière d'augmenter le CQ, c'est de réduire la résolution du film puisque le débit est calculé en fonction de la taille final désiré et la longeur du final, ce qui est constant. Avec les codecs ASP MPEG-4 comme le XviD ou le libavcodec, un CQ en dessous de 0,18 donne généralement une image type mosaïque car il n'y pas assez de bits pour coder les informations de chaque macroblocs (le MPEG-4, comme les autres codecs, groupe les pixels compressés par blocs pour compresser l'image, s'il n'y a pas assez de bits, les bords de ce macrobloc deviennent alors visible). Donc il est raisonnable de prendre un CQ entre 0,20 et 0,22 pour un rip tenant sur 1 CD, et entre 0,26 et 0,28 pour un rip de 2 CDs pour des options d'encodage standard. Des options plus avancé pour l'encodate sont disponinble ici pour le libavcodec et le XviD afin d'obtenir une qualité similaire avec un CQ se situant maintenant entre 0,18 et 0,20 pour un rip 1 CD et 0,24 à 0,26 pour un rip 2 CDs. Avec les codecs ASP MPEG-4 comme le x264, vous pouvez utiliser un CQ se situant entre 0,14 et 0,16 avec des options standards d'encodage, et même descendre entre 0,10 et 0,12 avec des options avancées x264. Merci de bien prendre note que le CQ n'est qu'un indicateur, il dépend directement du contenu encodé, un CQ de 0,18 sera suffisant pour un film comme Bergman, mais trop petit pour un film comme The Matrix contenant beaucoup de scènes d'actions. A l'opposé, il est inutile d'aller au delà de 0,30 pour le CQ, ce ne sera qu'une perte de bits inutilisés sans que la qualité globale soit franchement meilleure. Enfin, noter aussi, comme je l'ai mentionné plutôt dans ce guide, les vidéos en plus petites résolutions auront besoin d'un plus gros CQ (comparé à la résolution d'un DVD par exemple) pour avoir un rendu correct. Les filtres Apprendre à utiliser les filtres vidéos de MEncoder est essentiel afin de créer des fichiers bien encodés. Toutes les calculs vidéos sont exécutés à traces ces filtres, comme la découpe, le redimensionnement, l'ajustement de couleur, l'effacement du bruit, l'ajustement de la netteté, le désentrelacement, le téléciné, le téléciné inverse, ou l'effacement des macroblocs trop visible, pour n'en nommer que quelques un. En rapport du grand nombre de formats d'entrées connus, et de la variété de filtres disponibles pour MEncoder, cela en fait son principal avantage comparé à d'autres programmes similaires. Les filtres sont chargés dans la chaine grâce à l'option -vf : -vf filtre1=options,filtre2=options,... La plupart des filtres prennent en compte plusieurs options numériques, mais la synthaxe varie d'un filtre à l'autre, alors lisez plutôt la page man pour les filtres que vous utilisez. Les filtres agissent sur la vidéo dans l'ordre de leur chargement, par exemple, la chaine suivante : -vf crop=688:464:12:4,scale=640:464 découpera d'abord une zone de 688x464 depuis le bord haut gauche mais avec un décallage de (12;4), puis redimensionnera la vidéo pour obtenir sur 640x480. Certains filtres ont besoin d'être chargé proche du début de la chaine, car ils doivent prendre des informations importantes auprès de l'encodeur vidéo avant que d'autres filtres ne les altèrent. Les principaux exemples sont le (postprocessing, seulement dans le cas d'un estompage des macroblocs ou des enlèvements des artefacts de compression), le (un autre post processus pour enlever les artefacts MPEG), le (téléciné inverse), et (convertion du soft telecine en hard telecine). En général, vous devriez appliquer le moins possible de filtre afin de conserver l'encodage le plus proche possible du DVD source. Le découpage est souvent nécessaires (expliquer au dessus), mais éviter le redimensionnement de l'image par le zoom. Par contre, le redimensionnement par un dé-zoom est parfois utilisé pour des quantificateurs plus grand, mais nous désirons éliminer ces deux choses : depuis le départ, nous souhaitons que les bits soient utilisés pour la qualité de l'image. De plus, n'ajustez pas le gamma, le contrast, la luminosité, etc. Ces réglages peuvent être bon chez vous mais pas sur un autre écran. Ils doivent être exclusivement fait lors du processus de lecture. Une chose conseillé de faire, passez la vidéo à travers un filtre trés léger anti-bruit, comme par exemple avec l'option . Une fois de plus, c'est afin d'optimiser l'utilisation des bits, pourquoi gaspiller des bits à encoder du noir parasité alors que le rendu sera du noir pur à l'écran ? L'augmentation du paramètre pourra augmenter la compression globale, mais si vous l'augmentez trop, l'image sera alors dégradée. La valeur suggèrée ci-dessus () est plutot conservatrice, n'hésitez pas à l'augmenter et constater le dégradation par vous même. Interlacing et Télécine La plupart des films sont tournés en 24 fps. Puisque NTSC est en 30000/1001 fps, certains traitements doivent être appliqués pour l'adapter au débit NTSC. Ce procédé est appelé 3:2 pulldown, plus communément appelé téléciné (car le pulldown est souvent appliqué durant la phase de conversion en téléciné), et de façon simpliste, il fonctionne en ralentissant le film à 24000/1001 fps, et en répétant chaque quatrième trame. Aucun traitement spécifique, n'est cependant appliqué pour la vidéo des DVDs PAL, qui tournent à 25 fps (techniquement, PAL peut être téléciné, ce qui est appelé 2:2 pulldown, mais ceci n'est pas un problème en pratique). Le film 24 fps est simplement lu en 25 fps. Le résultat est que la vidéo tourne légèrement plus vite, mais à moins d'être un extra-terrestre, vous ne verrez pas la différence. La plupart des DVDs ont de l'audio dont le ton a été corrigé, donc quand elle est joué à 25 fps cela sonne correctement, même si la piste audio (et donc le film entier) a une durée 4% plus courte que les DVDs NTSC. Puisque la vidéo d'un DVD PAL n'a pas été altérée, vous n'avez pas à vous soucier du débit. La source est en 25 fps, et votre rip sera en 25 fps. Par contre, si vous rippez un film d'un DVD NTSC, vous pourriez avoir besoin d'appliquer du téléciné inverse. Pour les films tournés en 24fps, la vidéo du DVD NTSC est soit en 30000/1001 fps téléciné, soit en 24000/1001 fps progressif et prévu pour être téléciné à la volée par le lecteur DVD. D'un autre coté, les séries TV sont généralement seulement entrelacées, pas télécinées. Ce n'est pas une règle absolue: certaines séries TV sont entrelacées (comme Buffy contre les vampires) alors que d'autres sont un mélange de progressif et d'entrelacé (comme Dark Angel, ou 24 heures chrono). Il est fortement recommandé de lire la section Comment gérer le téléciné et le désentrelacement avec les DVDs NTSC pour apprendre à gérer les différentes possibilités. De toute façon, si vous rippez surtout des films, vous rencontrerez soit de la vidéo 24 fps progressive, soit télécinée, et dans ce cas vous pouvez utiliser le filtre . Encodage de vidéo intrelacées Si la vidéo que vous désirez encoder est entrelacé (NTSC ou PAL), il vous fraudra alors choisir de la désentrelacé ou pas. D'un coté, si vous la passer en désentrelacé, votre film sera utilisable en progressive scan pour les écrans d'ordinateurs ou les projecteurs vidéos, mais cela a un prix : le fieldrate de 50 ou 60000/1001 trames par seconde passera à 25 ou 30000/1001 trames par seconde, et en gros, vous perdrez la moitié des informations durant les scènes en relatif mouvement. Donc, si vous encodez pour des archives haute qualitées, il n'est pas recommandé de désentrelacer. Vous pouvez toujours desentrelacé le film au moment de la lecture avec des appareils en progressive scan, ou les futurs lecteurs qui pourront désentrelacer toutes les trames, en interpolant les 50 ou 60000/1001 frames par seconde depuis la video entrelacé. Des précautions spéciales sont à adopté lors d'un travail sur des vidéos entrelacés: Les découpes sur la hauteur et l'offset sur Y doivent être des multiples de 4 N'importe quel type de zoom/aggrandissement de l'image devra être fait en mode entrelacé Les filtres de postprocessing et d'anti-bruit ne marcheront surement pas comme prévu, sauf si vous faites bien attention qu'il travaille sur une frame à la fois, mais ils peuvent endommagé la qualité finale s'ils sont utilisés. En tenant compte de ces recommandations, voici notre premier exemple : mencoder capture.avi -mc 0 -oac lavc -ovc lavc -lavcopts \ vcodec=mpeg2video:vbitrate=6000:ilme:ildct:acodec=mp2:abitrate=224 Remarquez l'option et . Commentaires sur le synchronisation Audio/Vidéo Le système de synchronisation audio/vidéo de MEncoder a été créé dans l'intention de retrouver les synchronisations abimées. Il arrive que dans certain cas, qu'il y ait des sauts ou des frames en double, ce qui provoque une désynchronisation A/V, quand vous utilisez des entrées propres (bien sûr, les problèmes de synchro A/V ne s'appliquent que si vous avez copié ou rippé le son en meme temps que l'encodage de la vidéo). Vous pouvez ensuite activer l'option de synchronisation , ou la mettre dans votre fichier de config ~/.mplayer/mencoder. Elle ne sera utilisée qu'avec les bonnes sources vidéos (DVD, capture Télé, bon rip MPEG-4, etc) mais pas pour des fichiers ASF/RM/MOV détériorés. Si vous désirez une protection plus efficace contre les sauts ou multiplications de frames, utilisez ces deux options : et . Cela empêchera toutes synchronisation A/V, ou la copie de frames à frames, donc vous ne pouvez l'utiliser avec aucun autre filtre qui pourrait produire aléatoirement des ajouts ou saut de frames, ou si votre source à une variation de frame! C'est pour cela que l'option n'est que peu recommandée. L'endodage audio si bien nommé "3 passes" que MEncoder supporte est reconnu pour provoquer des désynchronisations A/V Ceci arrive généralement lors qu'il rentre en conjonction avec certains filtres, donc il n'est pas recommandé d'utiliser ce mode "3 passes". Cette fonctionnalité est conservée seulement pour une question de compatibilité et pour certains utilisateurs experts qui savent quand il est bon de l'utiliser ou non. Si vous n'avez jamais entendu parler de ce mode "3 passes", oubliez le maintenant. Il a aussi été reporté des désynchronisation A/V lors d'un encodage depuis stbin avec MEncoder. Ne l'utilisez pas, utilisez toujours un fichier ou une source prise depuis un CD/DVD/etc. Audio L'audio est un problème bien plus simple à résoudre : si vous faite attention à la qualité, laissez-le juste tel quel. Même les flux AC3 5.1 sont au plus en 448Kbit/s, dont chaque bit est utile. Vous pouvez être tenté de convertir l'audio en Ogg Vorbis de haute qualité, mais ne pas avoir de décodeur AC3 aujourd'hui ne veut pas dire que vous n'en aurez pas demain. Préparez le futur de vos rips DVDs en gardant le flux AC3. Vous pouvez conserver le flux AC3 en le copiant directement dans le flux vidéo pendant l'encodage. On peut aussi extraire le flux AC3 pour le mixer dans des conteneurs comme NUT ou Matroska. mplayer fichier_source.vob -aid 129 -dumpaudio -dumpfile son.ac3 mettra dans ce fichier sond.ac3 la piste audio numéro 129 du fichier source fichier_source.vob (NB : les fichiers VOB d'un DVD utilise normalement une autre systeme de numéro pour l'audio, ce qui pourrait dire que le fichier 129 serait la seconde piste de ce fichier VOB). Parfois, il arrivera que vous n'aurez pas d'autre choix que de compresser le son pour laisser plus de place à la vidéo. La plupart des gens optent alors pour le codec MP3 ou le Vorbis. Malgré que le codec Mp3 soit moyennement efficace, il est de mieux en mieux accepter par les lecteurs de salon, bien que cette tendance change. Ne pas utiliser l'option quand vous encodez un fichier avec de l'audio, même si vous voulez encoder puis mixer l'audio dans un deuxième temps. Cela devrait pourtant marcher dans la plupart des cas, mais l'option cache certains problèmes dans les réglages en ligne de commande. En d'autres mots, avoir une piste audio pendant l'encodage vous permettra de ne pas avoir ce type de messages comme Trop de paquets audio dans la mémoire tampon , et vous aurez ainsi une synchronisation propre. Vous aurez besion de MEncoder pour travailler le son. Vous pouvez copier la bande son original pendant l'encodage avec l'option ou le convertir pour un "lèger" 4kHz mono WAV PCM avec l'option . Sinon, dans la plupart des cas, cela générera un fichier son désynchronisé de l'audio. Cela arrive quand le nombre de frames vidéo dans le fichier source ne correspond pas exactement à la longeur total des frames audios ou bien qu'il y ait une discontinuitée ou des frames audio audio sont en trop ou manquantes. La meilleur façon de traiter ces soucis est d'inserer un silence ou bien de couper l'audio sur ces point précis. Cependant, MPlayer ne sait pas faire cela, si vous avez démultiplexé l'AC3, vous pourrez l'encoder avec une application externe (ou le transformer en PCM avec MPlayer), les supperpositions de son seront mises de coté, et la seule manière de corriger cela au niveau de la vidéo, sera de la couper pendant des erreurs. Du moment que MEncoder voit l'audio pendant qu'il encode la vidéo, il pourrait faire ces découpes (généralement sans soucis, car elles se produisent lors d'un changement de scène avec fondu au noir) mais si MEncoder ne voit pas l'audio, il encodera toutes les frames mais elles ne tiendront pas dans le fichier audio final comme si par exemple, vous mélangez la piste video et sonore dans un fichier Matroska. Dans un premier temps, il faudra convertir le son du DVD vers en fichier WAV, ainsi, le codec audio pour l'utiliser en entrée. Par exemple : mplayer fichier_source.vob -ao pcm:file=fichier_destination_son.wav -vc dummy -aid 1 -vo null aura pour effet de prendre la seconde piste du fichier source_file.vob pour le placer vers le fichier destination_sound.wav. Vous devriez ensuite normaliser le son avec l'encodage, car les pistes audio des DVDs sont généralement enregistrés avec un volume bas. Vous pouvez utiliser l'outil normalize qui est normalement disponible dans toutes les distributions. Si vous utilisez Windows, un outil comme BeSweet donnera le même résultat. Il faudra ensuite l'encoder en Vorbis ou MP3. Par exemple : oggenc -q1 fichier_destination_son.wav encodera fichier_destination_son.wav avec une qualité de 1, ce qui est équivalent à environ 80Kb/s, soit le strict minimum en terme de qualité. Prenez en considération que MEncoder ne sait pas encore multiplexé des pistes audio Vorbis car il ne supporte que des conteneurs en sortie du type AVI ou MPEG, ce qui signifie qu'il y aura des problèmes de synchronisation lors de la lecture avec quelques lecteurs vidéo avec l'AVI contenant un flux audio VBR en Vorbis. Soyez sans crainte, ce document vous montrera comment y arriver avec un programme tiers. Le multiplexage Maintenant que vous avez encodé votre vidéo, vous désirez très certainement la multiplexer avec une ou plusieurs pistes audio vers un conteneur comme l'AVI, le MPEG, le Matroska ou le NUT. MEncoder ne supporte nativement que des conteneurs AVI ou MPEG. Par exemple : mencoder -oac copy -ovc copy -o sortie_film.avi -audiofile entrée_audio.mp2 entrée_video.avi Cela aura pour effet de fusionner le fichier vidéo entrée_video.avi et le fichier audio entrée_audio.mp2 vers un seul fichier AVI sortie_film.avi. Cette commande marche avec le MPEG-1 layer I, II, ou III (plus connu sous le nom de MP3), WAV et quelques autres formats audio. Une des caractéristiques expérimentale de MEncoder est le support de libavformat, étant une librairie extraite du projet FFmpeg, supportant le multiplexage et démultiplexage vers une grande variété de conteneurs. Par exemple : mencoder -oac copy -ovc copy -o sortie_film.avi -audiofile entrée_audio.mp2 entrée_video.avi -of lavf -lavfopts format=asf Cela fera strictement la meme chose que l'exemple d'avant, mais le conteneur de sortie sera alors de l'ASF. Prenez note : ce support est à l'état expérimental (mais s'améliorant jour aprés jour), et ne marchera que si vous compilez MPlayer avec l'option activé libavformat (ce qu'il veut dire que les binaires en package ne marcheront certainement pas). Amélioration de la fiabilité lors du multiplexage A/V Vous avez pu sûrement expérimenté des problèmes de désynchonisation A/V quand vous multiplexiez des pistes vidéos et audio A/V, même en ajustant le délai de décalage du son, il y avait toujours un décalage. Ceci est dû à l'utilisation de filtre qui élèvent ou ajoutent des images, comme le filtre téléciné inverse. Il est vivement conseillé d'utiliser le filtre vidéo à la chaine des filtres pour éviter ce problème. Sans l'option , si MEncoder veut dupliquer une image, il va demander au multiplexeur de mettre en place une marque sur le conteneur, ainsi la dernière image sera affiché pour maintenir la synchronisation sans avoir à écrire une nouvelle image. Avec l'option , MEncoder affichera encore l'image dans le filtre au lieu de pousser la frame précédente. Ce qui veut dire que l'encodeur recevra exactement les mêmes frames plusieurs fois, puis les compressera. Cela donnera un fichier légèrement plus grand, mais cela ne posera plus de problèmes quand vous démultiplexerez ou multiplexerez vers un autre conteneur. Vous n'aurez pas d'autre choix que d'utiliser avec certains formats de conteneur peu lié à MEncoder comme ceux supporté par libavformat, qui ne supporterai pas la duplication de frame au niveau du conteneur. Limitations du conteneur AVI Bien que c'est le format soit le mieux supporté aprés le MPEG-1, l'AVI a pourtant quelques inconvénients. Le pire sûrement est l'entête du fichier. Pour chaque partie du fichier AVI, 24 octets sont gaspillés pour l'entête et l'index. Cela se transforme à environ 5Mo par heure, soit à peu près 1-2,5% d'entête sur un fichier de 700Mo. Cela ne semble pas énorme, mais cela peut quand même faire une différence dans un fichier qui utilise 700 kbits/sec et 714 kbits/sec, pour la qualité, chaque bits comptent. En plus de cette grosse inefficacité, l'AVI a aussi d'autres grosses limitations : Seulement des contenus à fps constant peuvent être stocké. Ce qui est particulièrement limité quand vous voulez encoder des fichiers éclectiques, comme un mélange de NTSC et d'un fils matériel. En fait, il existe un modification qui permet de stocker des contenus à fps variables dans un AVI, mais ils augmentent la taille des entêtes (déjà grosse) par 5 environ voir plus en pratique. l'Audio dans un fichier AVI doit aussi avoir un débit constant (CBR) ou une taille de 'frames' constante (par exemple : toutes les frames décodent le même nombre d'échantillons). Malheureusement, le meilleur codec, Vorbis, ne rentre pas dans ces critères. Donc, si vous envisagez de stocker un fichier en AVI, vous devrez utiliser un codec moins performant comme le MP3 ou l'AC3. Aprés avoir dit tout cela, MEncoder ne supporte pas actuellement l'encodage avec des fps variables ou le Vorbis; Donc vous n'allez pas voir de limitation de MEncoder si vous n'utilisez que cet outil pour produire vos encodages. Pourtant, il est possible d'utiliser MEncoder que pour l'encodage vidéo, utiliser des outils externes pour l'encodage de l'audio et multiplexer le tout vers un conteneur différent. Le multiplexage avec le conteneur Matroska Matroska est un conteneur libre, ouvert, qui offre de nombreuses options avancées que, par exemple, l'AVI ne peut pas supporter. Par exemple, le Matroska supporte le débit vidéo variable (VBR), un framerate variable (VFR), chapitres, attachement de fichiers, code de détection d'erreur (EDC) et des codecs A/V modernes comme le "Advanced Audio Coding" (AAC), le "Vorbis" ou le "MPEG-4 AVC" (H.264) et d'autres choses non supporté par l'AVI. Les outils nécessaires à la création de fichier Matroska sont appelés mkvtoolnix, et sont disponibles dans la plupart des systèmes Unix mais aussi sous Windows. Puisque Matroska est un standart ouvert, vous trouverez sûrement d'autres outils qui vous conviendront parfaitement, mais comme mkvtoolnix est le plus connu, et qu'il est supporté par Matroska lui même, nous allons parlé de son utilisation. La façon la plus simple assurément de démarrer avec Matroska, est d'utiliser MMG, une interface graphique livrée avec mkvtoolnix, et suivre le guide sur l'interface mkvmerge (mmg). Vous pouvez multiplexer des fichiers vidéo et audio avec utilisant la commande : mkvmerge -o sortie.mkv entree_video.avi entre_son1.mp3 entree_son2.ac3 Ceci aura pour effet de multiplexer le fichier vidéo entree_video.avi avec les deux fichiers audio entre_son1.mp3 et entree_son2.ac3 dans un fichier Matroska sortie.mkv. Matroska, comme mentionné plutot, est capable de faire bien plus, comme plusieurs pistes audio (avec un réglage précis de la synchronisation audio/video), chapitres, sous titres, coupures, etc... Merci de bien vouloir se référer à la documentation de cette application pour plus d'informations. Comment gérer le téléciné et l'entrelacement des DVDs NTSC Introduction Qu'est ce que le télécine ? Je vous suggere de visiter la page suivante sous peine de ne rien comprendre au document suivant : http://www.divx.com/support/guides/guide.php?gid=10 Ce lien point vers une documentation raisonablement compréhensible sur le format télécine. Une note à propos des chiffres Beaucoup de documents, entre autre le guide proposé ci-dessus, renvoie à un nombre de trames par secondes pour la vidéo NTSC de 59.94 ce qui correspond à 29.97 images par secondes (pour le télécine entrelacé à et 23.976 fps pour le progressive. Pour des raisons de simplicité, des documents utilisent les chiffres arrondis de 60, 30 et 24. En toute rigueur, ces nombres sont des approximations. Des vidéos Noire/Blanche sont à 60 trames par secondes exactement, puis 60000/1001 a été choisi plus tard pour la couleur mais aussi pour garder une retro-compatibilité avec les télévisions en N/B. La vidéo numérique NTSC (comme le DVD) est aussi en 60000/1001 trames par seconde. A partir de cela, la vidéo entrelacé et téléciné sont dérivées vers 30000/1001 images par seconde ou pour les vidéos progressives en 24000/1001 images par secondes. De plus anciennes versions de la documentation MEncoder et plusieurs posts archivé provenant de liste de diffusion se référent encor à 59.94, 29.97, et 23.976. Toute la documentation de MEncoder a été mise à jour pour utiliser les valeurs fractionées, et vous devriez aussi les utilisées. est incorrect. doit être utilisé à la place. Comment le téléciné est-il utilisé Toutes les vidéos qui sont censé être affiché sur des télévision en NTSC doivent être en 60000/1001 trames par secondes. Les téléfilms sont souvent filmé directement à 60000/1001 trames par secondes, alors que la majorité des films au cinéma sont en 24000/1001 images par seconde. Quand les séquences cinématique pour le DVD sont masterisés, la vidéo est alors convertie pour la télévision par un processus appelé le téléciné. Sur un DVD, la vidéo n'est jamais vraiment stocké à 60000/1001 trames par seconde. Si la vidéo est d'origine en 60000/1001, chaque paire de trames est alors combinée pour former une image, ce qui donne 30000/1001 images par seconde. Les lecteurs de DVD de salon lisent alors les drapeaux embarqués sur le flux vidéo pour déterminer si la première ligne à afficher serait paire ou impaire. Normalement, les contenus à 24000/1001 images par seconde restent comme cela lorsqu'ils sont encodés pour un DVD, alors, les lecteurs DVD doivent faire la conversion téléciné à la volée. Parfois, la vidéo est téléciné avant d'être stocké sur le DVD, même si c'était originalement du 24000/1001 images par seconde, cela devient 60000/1001 trames par seconde. Quand c'est stocké sur le DVD, les trames sont combinées par pairs pour former 30000/1001 images par seconde. Quand on regarde les trames formées individuellement à partir de la vidéo en 60000/10001 champs par seconde, téléciné ou autre, l'entrelacement est clairement visible qu'il y ait un mouvement ou non, parcequ'un champs (dit, les lignes impaires) représente un moment dans le temps 1/(60000/1001) seconde plutard que les autres. Jouer une vidéo entrelacé sur un ordinateur semble dans les deux cas moches parceque l'écran a une résolution plus élévée et parceque la vidéo se déroule trame après trame à la place de champs après champs. Notes : Cette section est seulement destinés aux DVDs NTSC, pas au PAL. Les lignes d'exemple de MEncoder présenté dans ce document ne sont pas à utiliser tel quel. Elles sont juste là pour montrer le minimum à faire en relation avec ce chapitre. Comment faire un bon rip DVD et des réglages finement étudiés avec libavcodec afin d'obtenir une qualité maximale n'est pas l'objectif de ce document. Quelques notes spéficiques à ce guide sont disponibles aux pieds de ce documents, et sont liées comme ceci : [1] Comment trouver le type de votre vidéo ? Progressive Les vidéos progressives sont filmées initialement à 24000/1001 fps et stockées sur le DVD sans altération. Quand vous lisez un DVD progressive dans MPlayer, il affiche la ligne suivante avant de commencer la lecture : demux_mpg: 24000/1001 fps progressive NTSC content detected, switching framerate. Dans l'état actuel des choses, demux_mpg ne devrait jamais être trouvé pour "une vidéo NTSC à 30000/1001 fps." Quand vous regardez une vidéo progressive, vous ne devrez voir aucun entrelacement. Mais soyez attentif, il arrive parfois que du téléciné se glisse sans prévenir. Il m'est arrivé de tomber sur des émissions de télévisions en DVD avec une seconde de téléciné à chaque changement de scène, voir de temps en temps à une zone totalement aléatoire. Une autre fois, la moitié du DVD était en progressif et l'autre moitié en téléciné. Si vous n'êtes pas vraiment sûr, vous pouvez toujours scanner le film entier : mplayer dvd://1 -nosound -vo null -benchmark L'utilisation de l'option fait lire MPlayer aussi vite qu'il peut et en fonction du matériel, cela peut prendre un certain temps. Chaque fois que demux_mpg génére une ligne, celle-ci vous donnera immédiatement la valeur du changement . Parfois, la vidéo progressive sur des DVDs considérés comme un "soft-telecine" car il devrait être téléciné par le lecteur DVD. Téléciné Les vidéos téléciné sont d'abord filmées à 24000/1001 et seront télécinées avant d'être gravé sur DVD. MPlayer ne doit (jamais) détecter une changement de fps quand une vidéo téléciné est lue. Au visionnage d'une vidéo téléciné, vous verrer des artefacts d'entrelacement donnant l'impression de "clignotement": apparaissant et disparaissant rapidement. Vous pouvez le voir plus précisement avec : mplayer dvd://1 Chercher une partie en mouvement. Utiliser la touche . pour avancer image par image. Observer la forme donnée par l'entrelacement et les images progressives. Si la forme que vous voyez semble comme PPPII,PPPII,PPPII,... alors la vidéo est téléciné. Si ce n'est pas le cas, la vidéo a peut-être été téléciné selon des règles non standard, MEncoder ne sait pas convertir un téléciné non-standart vers du progressive sans dégradation. Si aucune forme n'est visible, c'est alors sûrement une vidéo entrelacée. Parfois, les vidéos télécinées sur les DVD sont "hard-teleciné". Le hard-teleciné étant à 60000/1001 images par seconde, les lecteurs de DVD liront la vidéo sans modification. Une autre façon de savoir si la source est télécinée ou non, est de la lire avec l'option et depuis une ligne de commande et de voir comment l'option voit d'images. Si la source est téléciné, vous devriez voir sur la console une forme 3:2 avec des alternances de 0+.1.+2 et 0++1. L'avantage de cette technique et que vous n'avez pas besoin de visionner la source pour l'identifier, donc utile pour automatiser l'encodage de vidéo, ou bien effectuer ces procedures à distance même grâce à une connection internet lente. Entrelacée Les vidéos entrelacées sont d'abord filmées en 60000/1001 frames par seconde, puis stockées sur le DVD à 30000/1001 frames par secondes. L'effet d'entrelacement (souvent appelé "combing") est le résultat d'une combinaison de paires de trames dans chaque frames. Chaque frame est supposée être caché 1/(60000/1001) d'une seconde, quand elles sont affichées en même temps, la différence devient visible. Comme pour la vidéo télécinée, MPlayer ne devrait jamais signaler un changement de framerate à la lecture de la vidéo entrelacée. Si vous regardez une vidéo entrelacée de plus près, image par image avec la touche ., vous pourrez voir l'entrelacement de chaque frame. Mélange de vidéo progressive et télécinée Toutes les vidéos qui "mélangent progressif et téléciné" ont été au départ en 24000/1001 frames par seconde, et certaines parties ont été téléciné. Quand MPlayer joue ce type de fichier, il jonglerai (souvent rapidement) entre "30000/1001 fps NTSC" et "24000/1001 fps NTSC progressif". Regardez la sortie des messages de MPlayer. Vous devriez aller voir la section "30000/1001 fps NTSC" afin d'être sûr que c'est vraiment téléciné, et pas seulement entrelacé. Mélange de progressif et d'entrelacement Dans les vidéos qui "mélangent progressif et téléciné", les flux vidéos progressifs et entrelacés sont réunis ensemble. Cette catégorie ressemble à du "mélange progressif et téléciné" jusqu'à ce que vous examiniez la partie 30000/1001 fps et que vous vous apperceviez qu'il n'y a pas de trace de téléciné. Comment encoder chaque catégorie ? Comme mentionné au départ, ces prochaines lignes de "HowTo" MEncoder ne sont pas là pour être strictement utilisé tel quel, mais pour informer des paramètres minimum d'encodages pour chaque catégorie. Le progressif La vidéo progressive ne nécessite pas de filtre spécial pour l'encodage. Pourtant, un paramètre ne doit pas omettre : . Sinon, MEncoder essayera d'encoder à 30000/1001 fps et produira des images en double. mencoder dvd://1 -oac copy -ovc lavc -ofps 24000/1001 Il n'est pas rare de se trouver avec une vidéo qui semble progressive mais qui contient en fait quelques petites parties en téléciné. A moins d'être vraiment sûr l'état de la vidéo, il sera préférable de traiter la vidéo comme progressif et téléciné mélangés. La perte de qualité est négligeable [3]. Téléciné Les vidéos télécinés peuvent redonner le contenu original à 24000/1001 avec un processus appelé inverse-téléciné. MPlayer a plusieurs filtres disponibles pour ceci, mais le meilleur, , est abordé à la section mélange de progressif et téléciné. L'entrelacé Pour des raisons pratique, il n'est pas possible de retrouver entièrement une vidéo progressive depuis une entrelacée. La seule manière de faire cela sans perdre la moitié de la résolution verticale est de doubler le framerate et essayer de "deviner" les lignes correspondantes pour chaque frame (cela a des inconvénients, voir la méthode 3). Encodez la vidéo sous une forme entrelacée. Normalement, l'enterlacement détériore l'habilité de l'encodeur à bien compresser, mais libavcodec possède deux paramètres spécifiquement fait pour stocker la vidéo entrelacé un peu mieux: et . Aussi, l'utilisation de est fortement recommandé [2] parceque cela encodera les macroblocs non-entrelacé à des endroits où il n'y a pas de mouvements. Notez que n'est pas nécessaire ici. mencoder dvd://1 -oac copy -ovc lavc -lavcopts ildct:ilme:mbd=2 Utilisez un filtre de désentrelacement avant l'encodage. Il y a plusieurs de ces filtres disponibles aux choix, chacun avec ces propres avantages et désavantages. Consultez pour voir quels sont ceux disponible (grep pour "deint"), et cherchez les listes de diffusion MPlayer pour trouver plusieurs discussions sur les différents filtres. Encor une fois, le framerate ne change pas, donc pas de . Aussi, le désentrelacement devra être fait après découpage [1] et avant dimensionnement. mencoder dvd://1 -oac copy -vf pp=lb -ovc lavc Malheureusement, cette option est un bogué avec MEncoder; cela devrait bien marché avec MEncoder G2, mais on en est pas encor là. Vous pourriez faire l'expérience de crash. Qu'importe, le but de est de créer une frame complète à partir de chaque champs, ce qui donne le framerate 60000/1001. L'avantage de cette approche est qu'aucune donnée n'est jamais perdue; Cependant, vu que chaque frame viens avec seulement un champs, les lignes manquantes doivent être interpolé d'une façon ou d'une autre. Il n'y a pas de très bonne méthodes générant les données manquantes, et donc le résultat sera un peu similaire à quand on utilise certains filtres de désentrelacement. Générer les lignes manquantes créée d'autres problèmes, aussi bien, simplement parceque le montant de donnée double. Donc, de plus haut bitrates d'encodage sont requis pour maintenir la qualité, et plus de puissance CPU est utilisé pour l'encodage et le décodage. tfields ont plusieurs différentes options pour comment créer les lignes manquantes de chaque frame. Si vous utilisez cette méthode, alors Référencez le manuel, et prenez n'importe quelle option qui semble le mieux pour votre matériel. Notez que lors de l'utilisation de vous devez spécifier les deux options et à deux fois le framerate de votre source originale. mencoder dvd://1 -oac copy -vf tfields=2 -ovc lavc -fps 60000/1001 -ofps 60000/1001 Si vous avez décidé de réduire la taille de façon dramatique, vous pouvez extraire et encoder seulement un des deux champs. Bien sûr, vous perdrez la moitié de la résolution verticale, mais si vous pensez la réduire au plus de moitié par rapport à l'original, la perte ne sera pas trop grande. Le résultat sera un fichier progressif à 30000/1001 frames par seconde. La procédure est d'utiliser , puis de découper [1] et de dimensionner de manière approprié. Souvenez-vous que vous devrez ajuster la dimension pour compenser la résolution verticale ayant été réduite de moitié. mencoder dvd://1 -oac copy -vf field=0 -ovc lavc Progessif et téléciné mélangé Afin de rendre une vidéo de progressive et téléciné mélangé à entièrement progressive, les parties téléciné doivent être inverse-téléciné. Il y a trois façons d'accomplir cela, comme décrit ci-dessous. Notez que vous devrez toujours inverse-téléciné avant tout redimensionnement; à moins que vous sachiez vraiment ce que vous faites, inverse-téléciné avant aussi tout découpage, [1]. est nécessaire ici parceque la sortie vidéo sera 24000/1001 frames par seconde. est faite pour inverse-téléciné le matériel téléciné tandis que les données progressives sont laissées intactes. Afin de bien fonctionner, doit être suivi par le filtre ou sinon MEncoder plantera. est, cependant, la méthode la plus propre et la plus précise disponible pour encoder le téléciné et le "progressif et téléciné mélangé". mencoder dvd://1 -oac copy -vf pullup,softskip -ovc lavc -ofps 24000/1001 Une plus vieille méthode est de, plutot que inverse-téléciné les parties téléciné, téléciner les parties non-télécinées et ensuite inverse-téléciné la vidéo tout entière. Cela semble confus? softpulldown est un filtre qui parcours une vidéo et rend téléciné le fichier entier. Si nous faisons suivre softpulldown avec soit ou soit , le résultat final sera entièrement progressif. est nécessaire. mencoder dvd://1 -oac copy -vf softpulldown,ivtc=1 -ovc lavc -ofps 24000/1001 Je n'ai pas moi-même utilisé , mais voilà ce que D Richard Felker III a dit:
Il est Correct, mais IMO qu'il tente de désentrelacer plutôt que de faire l'inverse-téléciné trop souvent (tout comme les lecteurs de settop DVD & les TVs progressive) ce qui donne des clignotements affreux et d'autre artefacts. Si vous allez l'employer, vous devez au moins passer un peu de temps pour affiner les options et observer la sortie premièrement pour être sûr que cela ne mettent pas le bazar.
Progressif et entrelacé mélangé Il y a deux options pour s'occuper de cette catégorie, chacune étant un compromis. Vous devez prendre une décision basée sur la durée/localisation de chaque type. Traitez-la comme progressive. Les parties entrelacées sembleront entrelacées, et certains des champs entrelacés devront être jeté, ayant pour résultat un peu de sautillement inégal. Vous pouvez utiliser un filtre post-traitement si vous le voulez, mais cela peut sensiblement dégrader les parties progressives. Cette option devrait définitivement ne pas être utilisé si vous voulez éventuellement afficher la vidéo sur un appareil entrelacé (avec une carte TV, par exemple). Si vous avez entrelacé les frames dans une vidéo à 24000/1001 frames par seconde, ils seront téléciné en même temps que les frames progressive. La moitié des "frames" entrelacées seront affichées pour une durée de trois champs (3/(60000/1001) secondes), ce qui a pour résultat un effet pichenette de "retour en arrière" ce qui semble tout à fait mauvais. Si vous tentez quand même ceci, vous devez utiliser un filtre désentrelaçant comme ou . Cela peut tout aussi bien être une mauvaise idée pour l'affichage progressive. Cela laissera tomber les paires consécutives de champs entrelacées, ayant pour résultat une discontinuité qui peut être plus visible qu'avec la seconde méthode, ce qui montre certaines frames progressive en double. Une vidéo entrelacé à 30000/1001 frames par seconde est déjà un peu variable parceque cela devrait vraiment être montré à 60000/1001 champs par seconde, donc les frames dupliquées ne tiennent pas. Qu'importe la façon, il est recommandé de considérer votre contenu et comment vous voulez l'afficher. Si votre vidéo est à 90% progressive et que vous ne pensez pas la regarder sur une TV, vous devriez favoriser une approche progressive. Si elle est seulement à moitié progressive, vous voudrez probablement l'encoder comme si elle était entièrement entrelacée. Traitez-la comme entrelacé. Certaines frames des parties progressive auront besoin d'être dupliqué, ce qui résultera en un sautillement inégal. Encor une fois, les filtres désentrelaçant peuvent passiblement dégrader les parties progressives.
Notes de pied A propos de découpage: Les données video d'un DVD sont stockées dans un format appelé YUV 4:2:0. Dans la vidéo YUV, la luma ("luminosité") et le chroma ("couleur") sont stockés séparément. Parceque l'oeil humain est somme toute moins sensible à la couleur qu'il ne l'est à la luminosité, dans une image YUV 4:2:0 il y a seulement un pixel de chroma pour 4 pixels de luma. Dans une image progressive, chaque carré de quatre pixels de luma (deux sur chaque coté) ont un pixel de chroma commun. Vous devez découper un YUV 4:2:0 progressif à des résolutions paires, et utiliser un décalage pairs. Par exemple, est correct mais ne l'est pas. Quand vous avez à faire à un YUV 4:2:0 entrelacé, la situation est un peu plus compliqué. Au lieu que chaque série de quatres pixels de luma partage un pixel de chroma dans une frame, tous les quatres pixels de luma dans chaque champs partage un pixel de chroma. Quand les champs sont entrelacés pour former une frame, chaque ligne de scan est de un pixel de haut. Maintenant, au lieu que tout les quatres pixels de luma soient dans un carré, ils sont deux pixels côte à côte, et les deux autres pixels sont côte à côte deux lignes de scan plus bas. Les deux pixels de luma dans la ligne de scan intermédiaire sont à partir de l'autre champs, et donc partage un pixel de chroma différent avec deux pixels de luma deux lignes de scan plus loin. Toute cette confusion rend nécessaire d'avoir des dimensions de découpe verticales et des décalages en multiple de quatre. L'horizontal peut rester égal. POur la vidéo téléciné, Je recommande que le découpage prenne place après l'inverse téléciné. Une fois la vidéo progressive vous avez seulement besoin de découper par nombre pairs. Si vous voulez vraiment gagner la légère accélération que la découpe premièrement peut offrir, vous devez découper verticallement par multiples de quatre ou bien le filtre inverse-téléciné n'aura pas les bonnes données. Pour la vidéo entrelacé (pas téléciné), vous devez toujours découper verticallement par multiples de quatre à moins que vous utilisiez avant de découper. A propos des paramètres d'encodage et de la qualité: Juste parceque Je recommande ici ne veut pas dire que cela ne devrait pas être utilisé autre part. Avec , est l'une des deux options de libavcodec qui augmente le mieux la qualité, et vous devriez toujours utiliser au moins une des deux à moins que la baisse de vitesse d'encodage ne soit prohibitive (e.g. encodage temps-réel). Il y a plusieurs autres options libavcodec qui augmentent la qualité d'encodage (et réduisent la vitesse d'encodage) mais ceci est au delà de la portée de ce document. A propos de la performance de pullup: Il est sûr d'employer (avec ) sur une vidéo progressive, et est habituellement une bonne idée à moins que la source ait été définitivement vérifiée pour être enitèrement progressive. La perte de performance est petite pour la plupart des cas. Sur une bare-minimum d'encodage, ralenti MEncoder de 50%. L'ajout du traitement du son et de avancé éclipsent cette différence, ramenant vers le bas la baisse de performance d'utilisation de à 2%.
Encodage avec la famille de codec <systemitem class="library">libavcodec</systemitem> libavcodec fourni un simple encodage à pas mal de formats vidéo et audio intéressant. Vous pouvez encoder vers les codecs suivant (plus ou moins à jour): codecs vidéo de <systemitem class="library">libavcodec</systemitem> Nom du codec vidéoDescription mjpeg Motion JPEG ljpeg JPEG sans perte h261 H.261 h263 H.263 h263p H.263+ mpeg4 ISO standard MPEG-4 (DivX 5, compatible XviD) msmpeg4 pre-standard MPEG-4 variant par MS, v3 (AKA DivX3) msmpeg4v2 pre-standard MPEG-4 by MS, v2 (utilisé dans les vieux fichiers ASF) wmv1 Windows Media Video, version 1 (AKA WMV7) wmv2 Windows Media Video, version 2 (AKA WMV8) rv10 RealVideo 1.0 rv20 RealVideo 2.0 mpeg1video MPEG-1 video mpeg2video MPEG-2 video huffyuv compression sans perte asv1 ASUS Video v1 asv2 ASUS Video v2 ffv1 codec vidéo sans perte de FFmpeg svq1 Sorenson video 1 flv Sorenson H.263 utilisé dans Vidéo Flash dvvideo Vidéo Numérique Sony snow codec basé sur l'ondelette expérimentale de FFmpeg La première colonne contient les noms de codec qui devraient être passé après la config de vcodec, comme ceci: Un exemple avec la compression MJPEG: mencoder dvd://2 -o title2.avi -ovc lavc -lavcopts vcodec=mjpeg -oac copy Codecs audio de <systemitem class="library">libavcodec</systemitem>= Nom de codec audioDescription mp2 MPEG Layer 2 ac3 AC3, AKA Dolby Digital adpcm_ima_wav IMA adaptatif PCM (4 bits par échantillon, compression 4:1) sonic codec avec/sans perte expérimental La première colonne contient les noms de codec qui devra être passé après l'option acodec, comme ceci: Un exemple avec compression AC3: mencoder dvd://2 -o title2.avi -oac lavc -lavcopts acodec=ac3 -ovc copy Contrairement aux codecs vidéo de libavcodec, ces codecs audio ne font pas un usage sage des bits qu'on leur donne vu qu'ils manquent de certain modèle psychoacoustic minimal (le cas échéant) ce que la plupart des autres implémentations de codec comportent. Cependant, notez que tous ces codecs audio sont très rapide et fonctionne en dehors de leur environnement à partir du moment où MEncoder a été compilé avec libavcodec (ce qui est le cas la plupart du temps), et ne dépend pas de librairies externes. Options d'encodage de libavcodec Idéalement, vous voudriez probablement juste dire à mencoder de passer en mode "haute qualité" et passer à autre chose. Ce serait sûrement sympa, mais malheureusement dur à implémenter vu que les différentes options d'encodage donnent différents résultats de qualité dépendamment de la source matériel. C'est parceque la compression dépend des propriétés visuelles de la vidéo en question. Par exemple, une animation et un film d'action ont des propriétés très différentes et nécessitent des options différentes pour obtenir un encodage optimal. La bonne nouvelle, c'est que certaines options ne devraient jamais être mise à part, comme , , et . Voir ci-dessous pour une description détaillée des options d'encodage commune. Options à ajuster: vmax_b_frames: 1 ou 2 est bon, dépendamment du film. Notez que si vous nécessitez d'avoir votre encodeur décodable par DivX5, vous avez besoin d'activer le support closed GOP, en utilisant l'option de libavcodec, mais vous aurez besoin de désactiver la détection de scène, ce qui n'est pas une bonne idée étant donné que cela affectera un peu l'efficacité d'encodage. vb_strategy=1: aide aux scènes avec de rapide mouvements. Sur certaines vidéos, vmax_b_frames peut affecter la qualité, mais vmax_b_frames=2 avec vb_strategy=1 aideront. dia: portée de recherche de mouvement. Le plus large est l'écart, le mieux ce sera mais aussi plus lent. Des valeurs négative sont une échelle complètement différente. De bonne valeurs sont -1 pour un encodage rapide, ou 2-4 pour un plus lent. predia: pre-passage de recherche de mouvement. Pas aussi important que dia. De bonnes valeurs sont 1 (par défaut) à 4. Cela demande preme=2 pour être vraiment utile. cmp, subcmp, precmp: Fonction de comparaison pour l'estimation de mouvement. Testez avec des valeurs de 0 (défaut), 2 (hadamard), 3 (dct), et 6 (taux de distorsion). 0 est le plus rapide, et suffisant pour precmp. Pour cmp et subcmp, 2 est bonne pour les animations, et 3 est bonne pour les actions en directe. 6 peut-être ou non un peu mieux, mais c'est lent. last_pred: Nombre de prédicateurs de mouvement à prendre depuis la frame précédente. 1-3 ou autre aide avec peu de frais en matière de vitesse. De plus haute valeurs sont lente sans avoir de réel intérêt. cbp, mv0: Contrôle la sélection de macroblocs. Un petit coût en vitesse pour un petit gain en qualité. qprd: quantification adaptative basée sur la complexité du macrobloc. Peut aider ou agraver la situation ceci dépend de la vidéo et des autres options. Cela peut causer des artefacts à moins que vous paramètriez vqmax à certaine valeur raisonnablement petite (6 c'est bien, peut-être aussi lent que 4); vqmin=1 devrait aussi aider. qns: très lente, spécialement quand combinée avec qprd. Cette option amènera l'encodeur à minimiser le bruit dû à la compression d'artefact au lieu de faire strictement ressembler la vidéo encodé à la source. Ne pas utilisez ceci à moins d'avoir déjà bidouillé tout ce qui fut possible de faire et que les résultats ne sont pas encor assez bon. vqcomp: Bidouille du contrôle de taux. Quelles sont les bonnes valeurs dépend du film. Vous pouvez de manière sûr laisser cela de côté si vous le voulez. Réduire vqcomp met plus de bits sur les scènes de basse complexité, l'augmenter les met sur les scènes de haute complexité (défaut: 0.5, portée: 0-1. portée recommandé: 0.5-0.7). vlelim, vcelim: Paramètre le seuil du seul coefficent d'élimination pour les plans de luminance et de chroma. Ceux-là sont encodés séparément dans tous les algorithmes de style MPEG. L'idée derrière tout ceci est d'utiliser certaines bonnes approches heuristics pour déterminer quand le changement dans un bloc est inférieur au seuil que vous avez spécifié, et dans ce cas, de juste encoder le bloc comme étant "sans changement". Cela épargnera des bits et peut-être accélèrera l'encodage. vlelim=-4 et vcelim=9 semblent être de bonnes valeurs pour les films en direct, mais semblent ne pas aider avec les animations; quand on veut encoder une animation, vous devriez probablement les laisser inchangé. qpel: Estimation de mouvement de quart de pixel. MPEG-4 utilise la précision de moitié de pixel pour sa recherche de mouvement par défaut, donc cette option vient avec un surplus car plus d'information seront stockée dans le fichier encodé. La compression gain/perte dépend du film, mais n'est habituellement pas très efficace sur les animations. qpel induit toujours un coût significatif dans le temps de décodage du CPU (+25% en pratique). psnr: n'affecte pas l'encodage courant, mais écrit un fichier log donnant le type/taille/qualité de chaque frame, et imprime un résumé du PSNR (rapport maximal du signal sur le bruit) à la fin. Options non-recommandé de jouer avec: vme: La valeur par défaut est la mieux. lumi_mask, dark_mask: Quantification adaptative psychovisuelle. Vous ne voudriez pas jouer avec ces options si vous tenez à la qualité. Des valeurs raisonnable peuvent être efficace dans votre cas, mais soyez prévenu que ceci est très subjectif. scplx_mask: Essaye de prévenir l'apparition d'artefacts carré, mais le post-traitement est le mieux. Exemples de paramètres d'encodage Les paramètres suivant sont des exemples de combinaisons d'option de différent encodage qui affectent la vitesse contre la différence de qualité pour la même cible de bitrate. Tous les paramètres d'encodage sont testés sur un échantillon de vidéo de 720x448 @30000/1001 fps, le bitrate ciblé était 900kbps, et la machine était un AMD-64 3400+ à 2400 Mhz en mode 64 bits. Chaque paramètre d'encodage comporte la mesure de vitesse d'encodage (en frames par seconde) et la perte PSNR (en dB) comparé au paramètre de "très haute qualité". Veuillez comprendre que dépendamment de votre source, de votre type de machine et des avancements en développement, vous pouvez obtenir des résultats très différent. DescriptionOptions d'encodagevitesse (en fps)perte PSNR relative (en dB) Très haute qualité 6fps 0dB Haute qualité 15fps -0.5dB Rapide 42fps -0.74dB Temps-Réel 54fps -1.21dB Matrices inter/intra customisées Avec cette fonctionnalité de libavcodec vous êtes à même de règler des matrices inter (I-frames/frames clé) et intra (P-frames/frames prévu) customisées. Cela est supporté par la plupart des codecs: mpeg1video et mpeg2video sont rapportés comme fonctionnant. Un usage typique de cette fonctionnalité est de règler les matrices préférées grâce aux spécifications KVCD. La Matrice de Quantification KVCD "Notch" : 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 Usage: $ mencoder input.avi -o output.avi -oac copy -ovc lavc -lavcopts inter_matrix=...:intra_matrix=... $ mencoder input.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.mpg Exemple Voilà, vous venez tout juste d'acheter votre exemplaire de Harry Potter et la Chambre des Secrets (édition écran large, bien sûr), et vous voulez ripper ce DVD ceci afin de pouvoir l'ajouter à votre PC Home Cinéma. C'est un DVD de région 1, donc c'est du NTSC. L'exemple ci-dessous s'accorde quand même au PAL, excepté que vous devrez omettre (parceque le framerate de sortie est le même que celui en entrée), et bien sûr les dimensions de découpage seront différentes. Après lancement de , nous suivons le processus détailé dans la section Comment traiter le téléciné et l'entrelacement dans les DVDs NTSC et découvrer que c'est une vidéo progressive en 24000/1001 fps, ce qui signifie que nous n'aurons pas besoin d'utiliser un filtre inverse téléciné, comme ou . Ensuite, nous voulons déterminer le rectangle de découpage approprié, donc nous utilisons le filtre cropdetect: mplayer dvd://1 -vf cropdetect Soyez sûr que vous recherchez une frame complètement remplie (comme une scène lumineuse), et vous verez dans la console de sortie de MPlayer: crop area: X: 0..719 Y: 57..419 (-vf crop=720:362:0:58) Nous rejouons ensuite le film avec le filtre pour tester son exactitude: mplayer dvd://1 -vf crop=720:362:0:58 Et nous nous apercevons que tout est parfait. Ensuite, nous nous assurons que le hauteur et la largeur sont des multiples de 16. La largeur est bonne, cependant la hauteur ne l'est pas. Vu que nous n'avons pas échoué notre brevet à cause des maths, nous savons que le plus proche multiple de 16 inférieur à 362 est 352. Nous pourrions juste utiliser , mais ce serait mieux d'enlèver un peu du haut et un peu du bas ceci afin de garder le centre. Nous avons rétréci la hauteur de 10 pixels, mais nous ne voulons pas augmenter le décalage y de 5 pixels vu que c'est un nombre impair et affectera défavorablement la qualité. A la place, nous augmenterons le décalage y de 4 pixels: mplayer dvd://1 -vf crop=720:352:0:62 Une autre raison pour tailler les pixels du haut et du bas est que nous nous assurons que nous avons éliminé n'importe quels pixels à moitié noir si ils existent. Notez que si votre vidéo est téléciné, assurez-vous que le filtre (ou quelque soit le filtre inverse téléciné que vous avez décidé d'utiliser) apparaissent dans la chaîne de filtre avant que vous découpiez. Si il est entrelacé, désentrelacez-le avant découpage. (Si vous choisissez de préserver la vidéo entrelacé, alors soyez certain que votre décalage de découpage vertical est un multiple de 4.) Si vous vous sentez vraiment concerné par la perte de ces 10 pixels, vous pourriez à la place de réduire les dimensions préférer le plus proche multiple de 16. La chaîne de filtre ressemblerait à ceci: -vf crop=720:362:0:58,scale=720:352 Réduire la vidéo comme cela signifierai qu'un petit montant de détails soit perdu, pensant que cela ne serait probablement pas perceptible. Augmenter la taille résultera en une plus basse qualité (à moins que vous augmentiez le bitrate). Le découpage épargne ces pixels tout ensemble. C'est une différence que vous voudriez prendre en compte à chaque circonstance. Par exemple, si le DVD vidéo était fait pour la télévision, vous pourriez avoir intérêt à éviter le redimensionnement vertical, étant donné que la ligne d'échantillon correspond à la façon d'origine avec laquelle le contenu a été enregistré. Après inspection, nous voyons que notre film a un peu d'action et beaucoup de détails, donc nous prenons 2400Kbit pour notre bitrate. Nous sommes maintenant prêt à faire les deux passes d'encodage. Passe une: mencoder dvd://1 -ofps 24000/1001 -oac copy -vf crop=720:352:0:62,hqdn3d=2:1:2 -ovc lavc \ -lavcopts vcodec=mpeg4:vbitrate=2400:v4mv:mbd=2:trell:cmp=3:subcmp=3:mbcmp=3:autoaspect:vpass=1 \ -o Harry_Potter_2.avi Et passe deux est la même, excepté que nous spécifions : mencoder dvd://1 -ofps 24000/1001 -oac copy -vf crop=720:352:0:62,hqdn3d=2:1:2 -ovc lavc \ -lavcopts vcodec=mpeg4:vbitrate=2400:v4mv:mbd=2:trell:cmp=3:subcmp=3:mbcmp=3:autoaspect:vpass=2 \ -o Harry_Potter_2.avi Les options augmenterons considérablement la qualité au dépend de la durée d'encodage. Il y a peu de raison de ne pas prendre en compte ces options quand le but premier est la qualité. Les options séléctionnent une fonction de comparaison qui rend une plus haute qualité que celle par défaut. Vous pourriez tenter de tester avec ces paramètre (référez-vous à la page de man pour les valeurs possible) étant donné que différentes fonctions peuvent avoir un large impact sur la qualité dépendamment du matériel source. Par exemple, si vous trouvez que libavcodec produit trop d'artefacts carré, vous pouvez essayer de séléctionner le NSSE expérimental comme fonction de comparaison via . Pour ce film, le AVI résultant sera de 138 minutes long et à peu près 3GB. Et parceque vous disiez que la taille du fichier n'était pas importante, c'est une taille parfaitement acceptable. Cependant, si vous la désiriez plus petite, vous pouvez essayer un bitrate inférieur. L'augmentation de bitrates ont des retours amoindri, ainsi tandis que nous pourrions clairement voir une amélioration à partir de 1800Kbit jusqu'à 2000Kbit, cela ne semblerai pas autant notable au-dessus de 2000Kbit. Libre à vous de l'expérimenter jusqu'à en être totalement satisfait. Parceque nous avons passé la source vidéo au travers d'un filtre anti-bruit, vous voudriez en rajouter un peu pendant la lecture. Ceci, avec le filtre de post-traitement , améliore de façon radicale la perception de qualité et aide à éliminer les artefacts carré de la vidéo. Avec l'option de MPlayer, vous pouvez faire varier le montant de post-traitement achevé par le filtre spp dépendamment du CPU disponible. Aussi, à ce point, vous pourriez vouloir demander une correction gamma et/ou couleur pour mieux convenir à l'affichage. Par exemple: mplayer Harry_Potter_2.avi -vf spp,noise=9ah:5ah,eq2=1.2 -autoq 3 Encodé avec le codec <systemitem class="library">XviD</systemitem> XviD est une librairie libre pour encoder les flux vidéo de MPEG-4 ASP. Avant de commencer à encoder, vous avez besoin de paramètrer MEncoder pour son support. Ce guide a pour principal objectif de fournir le même genre d'information que le guide d'encodage de x264. Par consèquent, commencez par lire la première partie de ce guide. QUelles options devrais-je utiliser pour avoir les meilleurs résultats? Commencez par passer en revue la page man de la section XviD de MPlayer. Cette section est prévue pour être un supplément à la page man. Les paramètres XviD par défaut font déjà une bonne distinction entre la vitesse et la qualité, donc vous pouvez sans risque vous en tenir à eux si la section suivante vous laisse perplexe. Options d'encodage de <systemitem class="library">XviD</systemitem> vhq Ce paramètre affecte l'algorithme de décision de macrobloc, où plus la valeur du paramètre est élevée, plus sage sera la décision. Le paramètre par défaut peut être de façon sûr utilisé pour tout les encodages, alors que des paramètrages plus élevés aident toujours le PSNR mais sont de façon signifiante plus lente. Veuillez noter que un meilleur PSNR ne veut pas forcement dire que l'image sera mieux, mais vous informe qu'elle est proche de l'original. L'enlevé accélèrera de façon notable l'encodage; si la vitesse est un point critique pour vous, la différence peut valoir le coup. bvhq C'est pareil que vhq, mais cela agit sur les B-frames. Cela a un impact négligeable sur la vitesse, et amélior un peu la qualité (environ +0.1dB PSNR). max_bframes Un plus grand nombre de B-frames permise consécutive améliore habituellement la compressibilité, bien qu'il puisse également mener à plus d'artefacts carré. Le paramètrage par défaut est un bon compromis entre compressibilité et qualité, mais vous pouvez l'augmenter jusqu'à 3 si vous êtes omnibulé par le bitrate. Vous pouvez aussi le réduire à 1 ou 0 si vous avez pour seul but la qualité parfaite, cependant dans votre cas vous devriez vous être sûr que votre bitrate cible est assez élevé pour s'assurer que l'encodeur n'ait pas à augmenter le quantificateur pour l'atteindre. bf_threshold Ceci contrôle la sensibilité de l'encodeur pour les B-frames, où une plus haute valeur amène à ce que plus de B-frames soit utilisé (et vice versa). Ce paramètre doit être utilisé avec ; si vous êtes omnibulé par le bitrate, vous devrez augmenter et , tandis que vous devriez augmenter et réduire ainsi donc l'encodeur peut utiliser plus de B-frames à des endroits qui seuls vraiment les nécessitent. Un nombre bas de et une valeur élevé de n'est probablement pas un choix avisé vu qu'il obligera l'encodeur à mettre des B-frames en des endroits qui n'en tireront pas de bénéfice, mais en plus réduiront la qualité visuelle. Cependant, si vous avez besoin d'être compatible avec des lecteurs qui supportent seulement de vieux profils DivX (qui revient à supporter jusqu'à 1 B-frame consécutive), ceci sera votre seul espoir d'augmenter la compressibilité en utilisant les B-frames. trellis Optimise la procèdure de quantification pour obtenir un compromis optimal entre le PSNR et le bitrate, ce qui permet de sauver de manière significative des bits. Ces bits seront en retour utilisé autre part sur la vidéo, augmentant l'ensemble de la qualité visuelle. Vous devriez toujours l'utiliser étant donné qu'il impacte énormement sur la qualité. Même si vous recherchez de la vitesse, ne le désactiver pas jusqu'à ce que vous réduisiez et toutes les autre options plus gourmande en CPU à leur minimum. hq_ac Active une meilleur méthode d'estimation du coût en coefficient, ce qui réduit passiblement la taille de fichier par environ 0.15 à 0.19% (ce qui correspond à moins de 0.01dB PSNR d'augmentation), tandis qu'elle a un impact négligeable sur la vitesse. Il est néanmoins recommandé de toujours la laisser activé. cartoon Faite pour un meilleur encodage de contenu dessin animé, et n'a pas d'impact sur la vitesse étant donné qu'il modifie juste le mode décision heuristics pour ce type de contenu. me_quality Ce paramètre contrôle la précision de l'estimation de mouvement. Le plus élevé est, le plus précis l'estimation du mouvement d'origine sera, et mieux le clip résultant capturera le mouvement d'origine. Le paramètre par défaut est le mieux dans tous les cas; bien qu'il ne soit pas recommandé de l'éteindre à moins que vous recherchiez vraiment la rapidité, vu que tout les bits sauvés par une bonne estimation du mouvement seront dépensés autre part, augmentant la qualité générale. Cependant, n'allez pas plus bas que 5, et même ceci doit être utilisé en dernier recours. chroma_me Améliore l'estimation de mouvement en prenant aussi en compte l'information de la chroma (couleur), alors que toute seule utilise seulement la luma (niveau de gris). Cela ralenti l'encodage de 5-10% mais améliore pas mal la qualité visuelle en réduisant les effets de bloc et réduis la taille de fichier d'environ 1.3%. Si vous cherchez de la vitesse, vous devriez désactiver cette option avant de commencer à considérer à la réduction de . chroma_opt A pour objectif d'augmenter la qualité du chroma de l'image vers des bords blanc/noirs pures, plutôt que d'améliorer la compression. Ceci peut aider à réduire l'effet "red stairs". lumi_mask Tente de donner moins de bitrate à une partie de l'image que l'oeil humain ne peut pas très bien voir, ce qui devrait permettre à l'encodeur de dépenser les bits sauvés sur des parties plus importantes de l'image. La qualité de l'encodage yielded by this option dépends grandement des préférences personnelles et des paramètres de type et moniteur utilisé pour le regarder (typiquement, cela ne semblera pas aussi bon si c'est plus lumineux ou si c'est un moniteur TFT). qpel Elève le nombre de vecteurs de mouvement candidat en augmentant la précision de l'estimation de mouvement de halfpel à quarterpel. L'idée est de trouver de meilleurs vecteurs de mouvement ce qui en retour réduira le bitrate (augmentant la qualité par la même occasion). Cependant, les vecteurs de mouvement avec une précision quarterpel requièrent quelques bits en plus à coder, mais les vecteurs candidats ne donnent pas toujours de (bien) meilleurs résultats. Assez souvent, le codec gaspille encor des bits sur la précision en plus, mais en retour peu ou aucune qualité en plus aura été gagné. Malheureusement, il n'y a aucune façon de prévoir les avantages possible de , donc vous avez précisément besoin de l'encoder avec et sans pour en être sûr. peut quasimment doublé la durée d'encodage, et requière pas moins de 25% en plus de puissance de traitement pour décoder. Cela n'est pas supporté par tout les lecteurs. gmc Essaye de sauver des bits sur des scènes panoramique en employant un vecteur simple de mouvement pour la frame entière. Cela augmente à peu près toujours le PSNR, mais de façon significative ralenti l'encodage (aussi bien que le décodage). Par conséquent, vous devriez seulement l'employer si vous avez augmenté au maximum. GMC de XviD est plus sophistiqué que celui de DivX, mais il est seulement supporté par quelques lecteurs. Profils d'encodage XviD supporte des profils d'encodage à travers l'option , ce qui est utilisé pour imposer des restrictions sur les propriétés du flux vidéo XviD comme cela il sera jouable sur n'importe quoi supportant le profil choisi. Les restrictions relient les résolutions, les bitrates et certaines fonctionnalités MPEG-4. La table suivante montre ce que chaque profil supporte. Simple Simple avancé DivX Nom de profil 0 1 2 3 0 1 2 3 4 5 Handheld NTSC Portable PAL Portable NTSC Home Cinéma PAL Home Cinéma TV Haute Définition Largeur [pixels] 176 176 352 352 176 176 352 352 352 720 176 352 352 720 720 1280 Hauteur [pixels] 144 144 288 288 144 144 288 288 576 576 144 240 288 480 576 720 Frame rate [fps] 15 15 15 15 30 30 15 30 30 30 15 30 25 30 25 30 Bitrate moyen maxi [kbps] 64 64 128 384 128 128 384 768 3000 8000 537.6 4854 4854 4854 4854 9708.4 Bitrate moyen maximal plus de 3 secs [kbps] 800 8000 8000 8000 8000 16000 B-frames maxi 0 0 0 0 0 1 1 1 1 2 Quantification MPEG X X X X X X Quantification adaptative X X X X X X X X X X X X Encodage entrelacé X X X X X X X X X Quaterpixel X X X X X X Compensation globale du mouvement X X X X X X Exemples de paramètres d'encodage Les paramètres suivant sont des exemples de différentes combinaisons d'option d'encodage qui affèctent la compensation entre la vitesse et la qualité pour le même bitrate cible. Tous les paramètres d'encodage sont testés sur un échantillon vidéo à 720x448 @30000/1001 fps, le bitrate cible était à 900kbps, et la machine était un AMD-64 3400+ à 2400 Mhz en mode 64 bits. Chaque paramètre d'encodage exploite la vitesse d'encodage mesuré (en frames par seconde) et la perte PSNR (en dB) en la comparant au paramètre de "très haute qualité". Veuillez comprendre que dépendemment de votre source, de votre type de machine et des avancements en développement, vous pouvez obtenir des résultats très différents. DescriptionOptions d'encodagevitesse (en fps)Perte PSNR relative (en dB) Très haute qualité 16fps 0dB Haute qualité 18fps -0.1dB Rapide 28fps -0.69dB Temps réel 38fps -1.48dB Encodage avec le codec <systemitem class="library">x264</systemitem> x264 est une librairie libre pour encoder des flux vidéo H.264/AVC. Avant de commencer à encoder, vous avez besoin de règler MEncoder pour le supporter. Options d'encodage de x264 Veuillez commencer par passer en revue la section x264 de la page man de MPlayer. Cette section a été prévu pour être un supplément à la page man. Ici vous trouverez rapidement des astuces sur quelles options sont le plus susceptible d'intéresser la plupart des gens. la page man est plus laconique, mais est aussi plus exhaustive, et cela offre parfois beaucoup plus de détail technique. Introduction Ce guide considère deux catégories majeurs d'options d'encodage: Options qui principalement compensent la durée d'encodage de la qualité Options qui peuvent être utile pour accomplir des préférences personnelles variées et des conditions spéciales Finalement, seul vous pouvez décider quelles options sont mieux pour vos buts. Le choix de la première classe d'options est la plus simple: vous devez seulement décider si vous pensez que les différences de qualité justifient les différences de vitesse. Pour la deuxième classe d'options, les préférences peuvent être bien plus subjectives, et plus de facteurs peuvent être impliqués. Notez sur que certaines des options de type "préférences personnelles et de conditions spéciales" peuvent encor avoir de larges impacts sur la vitesse ou la qualité, mais ce n'est pas ce pourquoi ils sont principalement utiles. Quelques une des options de "préférence personnelle" peuvent même causer des changements qui semblent mieux pour certaines personnes, mais semblent moins bon à d'autres. Avant de continuer, il vous est nécessaire de comprendre que ce guide utilise seulement une qualité métrique: le PSNR global. Pour une brève explication sur le PSNR, voir l'article Wikipedia sur le PSNR. PSNR global est le dernier nombre PSNR rapporté quand vous incluez l'option dans . Chaque fois que vous lisez une réclamation sur le PSNR, une des prétentions derrière la réclamation est que des bitrates égaux sont utilisés. A peu près tous les commentaires de ce guide présument que vous utilisez deux passages. Lors de la comparaison des options, il y a deux principales raisons pour l'utilisation d'un encodage à deux passages. Premièrement, utiliser deux passages permet souvent de gagner environ 1dB PSNR, ce qui est une très grosse différence. Deuxièmement, tester les options en faisant des comparaisons directes de qualité avec un encodage en un passage introduit un facteur confus important: bitrate varie souvent de façon significative avec chaque encodage. Il n'est pas toujours facile de dire si les changements de qualité sont principalement dûs aux changements d'options, ou si la plupart du temps ils reflètent essentiellement des différences aléatoires dans le bitrate réalisé. Options qui affectent principalement la vitesse et la qualité subq: Des options qui vous permettent de compenser la vitesse pour la qualité, et (voir ci-dessous) sont habituellement et de loin les plus importantes. Si vous êtes intéressé par le bidouillage soit de la vitesse soit de la qualité, ces options sont les premières que vous devriez prendre en considération. A propos de la dimension de la vitesse, les options et interagissent entre elles assez fortement. L'expérience montre que, avec une frame de référence, (le règlage par défaut) est environ 35% plus long que . Avec 6 frames de référence, la pénalité passe au dessus des 60%. L'effet de sur le PSNR semble assez constant indépendamment du nombre de frames de référence. Typiquement, résulte en un PSNR global plus haut de 0.2-0.5 dB en comparaison à . C'est habituellement assez pour être évident. est le plus lent, le plus élevé mode de qualité. En comparaison à , il gagne habituellement un PSNR global de 0.1-0.4 dB avec des coûts en vitesse variant entre 25% et 100%. A la différence des autres niveaux de , le comportement de ne dépend pas beaucoup de et . A la place, l'efficacité de dépend principalement du nombre de B-frames utilisé. Lors d'une utilisation normal, cela signifie que a un large impact sur la vitesse et la qualité dans le cas complexe, des scènes élevé en mouvement, mais il peut ne pas avoir beaucoup d'effet sur les scènes avec peu de mouvement. Notez que il est encore recommandé de toujours paramètrer les à autre chose que zéro (voir ci-dessous). frameref: est règlé à 1 par défaut, mais ceci ne devrait pas être pris en compte pour justifier qu'il est raisonnable de le mettre à 1. Simplement en augmentant à 2 permet un gain d'environ 0.15dB sur le PSNR avec une pénalité à 5-10% sur la vitesse; cela semble être un bon compromis. gagne environ 0.25dB de PSNR de mieux que , ce qui devrait être une différence visible. est d'environ 15% plus lent que . Malheureusement, des retours diminuant se mettent en place rapidement. peut être attendu de gagner seulement 0.05-0.1 dB de mieux que avec une pénalité additionelle de 15% sur la vitesse. Au dessus de , les gains en qualité sont habituellement très faible (bien que vous devriez garder à l'esprit à travers cette entière discussion que selon votre source cela peut varier énormément). Dans un cas assez typique, améliorera le PSNR global par un minuscule 0.02dB de mieux que , avec un coût sur la vitesse de 15%-20%. Avec des valeurs si élevé de , la seule vraie bonne chose qui peut être dîte est que de l'augmenter même un peu plus ne nuira à peu près certainement jamais le PSNR, mais les bénéfices sur la qualité additionnelle sont à peine mesurable, et encore moins perceptible. Note: Augmenter le à des valeurs non nécessairement élevées peut affecter et habituellement affecte l'efficacité d'encodage si vous arrêtez le CABAC. Avec le CABAC lancé (comportement par défaut), la possibilité de paramètrage de "trop élevé" actuellement semble trop distant pour même s'en inquiéter, et dans l'avenir, les optimisations peuvent enlever les possibilités complètement. Si vous vous inquiétez pour la vitesse, un compromis raisonnable est d'utiliser des valeurs et basses sur le premier passage, et ensuite les augmenter sur le second passage. Typiquement, cela a un effet négatif négligeable sur la qualité finale: Vous perdrez probablement bien en dessous de 0.1dB du PSNR, ce qui devrez être une différence beaucoup trop faible pour la voir. Cependant, des valeurs différentes de peuvent occasionnellement affecter le choix du frametype. Très probablement, ce sont des cas périphériques rares, mais si vous voulez en être complètement certain, considèrez que votre vidéo a soit des modèles plein écran, clignotants et répétitifs, soit des occlusions provisoires très grandes qui pourraient forcer une I-frame. Ajustez le de premier passage pour qu'il soit assez large pour contenir la durée du cycle de clignotement (ou occlusion). Par exemple, si la scène clignote dans les deux sens entre deux images au-dessus d'une durée de trois frames, règlez le de premier passage à 3 ou plus. Le problème est probablement extrêmement rare sur des matériaux vidéo de type action en directe, mais cela arrive quelque fois dans des captures de jeu vidéo. me: Cette option est pour choisir la méthode de recherche d'estimation de mouvement. Alterer cette option fourni une compensation franche entre qualité et vitesse. est seulement quelque pourcent plus rapide que la recherche par défaut, à un coût en dessous de 0.1dB du PSNR global. Le paramètre par défaut () est une compensation raisonnable entre vitesse et qualité. gagne un petit peu en dessous de 0.1dB du PSNR global, avec une pénalité sur la vitesse qui varie dépendamment du . A de haute valeurs du (e.g. 12 ou autre), est environ 40% plus lente que la valeur par défaut . Avec , la pénalité encouru sur la vitesse chute à 25%-30%. utilise une recherche exhaustive qui est trop lente pour une utilisation pratique. 4x4mv: Cette option active l'utilisation des sous-partitions 8x4, 4x8 et 4x4 dans les macroblocs prévu. L'activer résulte en une assez consistente perte de vitesse de 10%-15%. Cette option est plutôt inutile dans une source contenant seulement des mouvements bas, bien que dans certaine source de mouvement élevé, particulièrement des sources avec beaucoup de petits objets en mouvement, un gain d'environ 0.1dB peut être attendu. bframes: Si vous avez l'habitude d'encoder avec d'autre codecs, vous pourriez avoir trouvé que les B-frames ne sont pas toujours utile. Avec le H.264, ceci a changé: il y a de nouvelles techniques et types de bloc qui sont possible avec les B-frames. Habituellement, même un choix naïf d'algorithme de B-frame peut avoir un bénéfice significatif sur le PSNR. Il est intéressant de noter que l'utilisation de B-frames accélère habituellement le second passage de manière légère, et peut aussi accélèrer un encodage en un seul passage si le choix de B-frame adaptatif est stoppé. Avec le choix de B-frame adaptatif stoppé ( de ), la valeur optimal pour le paramètrage est habituellement pas plus que , ou bien les scènes élevé en mouvement peuvent en patir. Avec le choix de B-frame adaptatif activé (le comportement par défaut), il est sûr d'utiliser des valeurs plus élevées; l'encodeur réduira l'utilisation de B-frames dans les scènes où cela pourrait abîmer la compression. L'encodeur choisi rarement d'utiliser plus de 3 ou 4 B-frames; paramètrer cette option a une valeur plus élevée aura peu d'effet. b_adapt: Note: il est activé par défaut. Avec cette option activé, l'encodeur utilisera un traitement de choix raisonnablement rapide pour réduire le nombre de B-frames utilisé par les scènes qui ne pourraient pas en bénéficier autant qu'elles le voudraient. Vous pouvez utiliser pour bidouiller combien l'encodeur est heureux de ces B-frames. La pénalité sur la vitesse des B-frames adaptatives est actuellement plutôt modeste, mais il en est de même pour le gain potentiel en qualité. Cela n'endomage pas habituellement, cependant. Notez que cela affecte seulement le choix de vitesse et de frametype sur le premier passage. et n'ont aucun effet sur les passages suivants. b_pyramid: Vous devriez aussi bien activé cette option si vous utilisez >=2 B-frames; comme la page man le dit, vous obtiendrez une faible améliroration de la qualité avec aucun surcoût sur la vitesse. Notez que ces vidéos ne peuvent pas être lu sur des décodeurs basés sur une version de libavcodec datant d'avant le 5 Mars, 2005. weight_b: Dans des cas typiques, il n'y a pas assez de gain avec cette option. Cependant, dans des scènes crossfades ou fade-to-black, la prédiction de poids donne de plutôt large bénéfice en bitrate. Dans le MPEG-4 ASP, un fade-to-black est habituellement mieux codé comme une série de I-frames onéreuses; utiliser la prédiction de poids dans les B-frames rend possible la conversion d'un certain nombre en de beaucoup plus petites B-frames. Le coût sur la durée d'encodage est minimal, étant donné qu'aucun choix supplémentaire n'a besoin d'être fait. Aussi, contrairement à ce que les gens semble deviner, les requis en CPU par le décodeur ne sont pas énormement affecté par la prédiction de poids, tout le reste étant égal. Malheureusement, l'algorithme courant de choix de B-frame adaptative a une forte tendance à éviter les B-frames durant les fondus. Jusqu'à ce que cela change, il peut être une bonne idée d'ajouter à votre x264encopts, si vous vous attendiez à ce que le fondu ait un plus grand effet sur votre clip vidéo particulier. Options concernant des préférences diverses Encodage en deux passages: Ci-dessus, il a été suggèré de toujours utiliser un encodage en deux passages, mais il y a encor des raisons pour ne pas l'utiliser. Par exemple, si vous capturez la télévision en direct et l'encoder en temps réel, vous êtes forcé d'utiliser un encodage en un passage. Aussi, un passage est évidemment plus rapide que deux passages; si vous utilisez l'exact même jeu d'options sur les deux passages, deux passages d'encodage est à peu près deux fois plus lent. Encore, il y a de très bonne raisons pour utiliser l'encodage en deux passages. Pour une chose, taux de contrôle d'un seul passage n'est pas psychic, et il fait souvent des choix irraisonnable parce qu'il ne peut pas voir l'ensemble de l'image. Par exemple, supposez que vous avez une vidéo de dexu minute de long consistant en deux moitiés distinctes. La première moitié est une scène à mouvement élevé durant 60 secondes ce qui, en de manière isolée, demande environ 2500kbps afin d'avoir l'air correcte. Immédiatement suivi d'une scène de 60 secondes beaucoup moins demandante qui a l'air bien à 300kbps. Supposez que vous demandiez pour 1400kbps sur la théorie que ceci est suffisant pour accomoder les deux scènes. Un taux de contrôle en un seul passage fera quelques "fautes" dans un cas comme celui-là. Premièrement, il ciblera 1400kbps pour les deux segments. Le premier segment pourrait finir lourdement sur-quantifié, l'entraînant à ressembler à un bloc de façon inadmissible et irraisonable. le second segment serait lourdement sous-quantifié; cela pourrait avoir l'air parfait, mais le coût en bitrate de cette perfection sera complètement irraisonnable. Ce qui est d'autant plus dur à éviter que le problème est à la transition entre les deux scènes. Les premières secondes de moitié de mouvement lente sera grandement sur-quantifié, parce que le taux de contrôle prévoit encore le genre de conditions en bitrate qu'il rencontre dans la première moitié de la vidéo. Cette "période d'erreur" de grandement sur-quantifié mouvement faible aura l'air mauvais, et utilisera réellement moins que les 300kbps qu'il aurait pris pour le rendre un semblant correct. IL y a des façons pour atténuer les pièges de l'encodage en simple passage, mais ils peuvent tendre à augmenter la mauvaise prédiction de bitrate. Le taux de contrôle multiple passage peut offrir d'énormes avantages sur un encodage simple passage. En utilisant les statistiques récupérées depuis le premier passage d'encodage, l'encodeur peut estimer, avec une raisonnable exactitude, le "coût" (en bits) de l'encodage de n'importe quel frame donnée, à n'importe quel quantificateur donné. Cela permet une beaucoup plus rationnelle, mieux plannifiée allocation de bits entre les scènes onéreuses (mouvement élevé) et bon marché (mouvement faible). Voir ci-dessous pour quelques idées sur comment bidouiller cette allocation à vos besoins. D'ailleurs, deux passages n'ont pas besoin de prendre deux fois plus de temps qu'un seul passage. Vous pouvez bidouiller les options dans le premier passage pour une vitesse plus élevé et une qualité plus faible. Si vous choisissez bien vos options, vous pouvez obtenir un premier passage très rapide. La qualité résultante dans le second passage sera légèrement plus basse parce que la prédiction de taille est moins précise, mais la différence de qualité est normalement beaucoup trop petite pour être visible. Essayez, par exemple, d'ajouter au premier passage . Ensuite, sur le second passage, utilise des options plus lentes, de plus grandes qualités: Encodage en trois passages? x264 offre la capacité de faire un nombre arbitraire de passages consécutive. Si vous spécifiez sur le premier passage, alors utilisez sur un passage suivant, le passage suivant lira les statistiques depuis le passage précédent, et écrira ses propres statistiques. Un passage additionnel suivant celui-là aura une très bonne base depuis laquelle faire des prédictions hautement précise de framesizes à un quantificateur choisi. En pratique, les gains sur la qualité d'ensemble de ceci est habituellement proche de zéro, et tout à fait possiblement un troisième passage résultera en un PSNR global légèrement plus mauvais que le passage avant ça. Dans une utilisation typique, trois passages aident si vous obtenez soit une mauvaise prédiction de bitrate ou soit une mauvaise apparence des transitions de scènes lors de l'utilisation de seulement deux passages. Ceci peut se produire sur les clips extrêmement courts. Il y a aussi quelques cas spéciaux dans lequels trois (ou plus) passages sont pratique pour les utilisateurs avancés, mais par souci de brièveté, ce guide omet de traiter ces cas spéciaux. qcomp: compense le nombre de bits alloué entre les frames "onéreux" mouvement élevé et les frames "bon marché" mouvement bas. A une extrémité, vis pour le vrai bitrate constant. Typiquement cela rendrait des scènes élevées en mouvement complètement moche, tandis que les scènes basses en mouvement serait absoluement parfaite, mais utiliserait aussi beaucoup plus de bitrate qu'ils n'en auraient besoin dans le but de les rendre simplement excellente. A une autre extrèmité, réalise le paramètre de quantification (QP) presque constant. Un QP constant n'a pas l'air mauvais, mais la plupart des gens pense qu'il est plus raisonnable d'enlever quelque bitrate des scènes extrèmement onéreuses (où la perte de qualité ne sera pas aussi apparente) et les ré-allouer aux scènes qui sont plus facile à encoder à une excellente qualité. est règlé à 0.6 par défaut, ce qui pourrait être un peu faible pour les goûts de plein de gens (0.7-0.8 sont aussi communément utilisé). keyint: est seulement pour compenser l'habilité de recherche de fichier contre l'efficacité de codage. Par défaut, est paramètré à 250. Sur des matériaux à 25 fps, cela garanti l'habilité de faire une recherche avec une précision de 10 secondes. Si vous pensez qu'il serait important et utile d'être capable de faire une recherche dans les 5 secondes de précision, paramètrez ; cela endommagera un peu la qualité/bitrate. Si vous vous inquiétez seulement de la qualité et non de l'habilité à faire une recherche, vous pouvez le paramètrer à des valeurs beaucoup plus élevées (comprenant qu'il y a des retours diminuants qui peuvent devenir extrèmement bas, ou même zéro). Le flux vidéo aura encor des points recherchable aussi longtemps qu'il y aura des changements dans la scène. deblockalpha, deblockbeta: Ce sujet va être un peu controversé. H.264 défini une simple procédure de déblocage sur les I-blocs qui utilise des pré-règlages de forces et de seuils en dépendance avec le QP du bloc en question. Par défaut, des blocs QP élevés sont fortement filtrés, et des blocs QP bas ne sont pas débloqué du tout. Les pré-règlage de forces défini par les standard sont bien choisi et les chances sont très bonne pour qu'elles aient des PSNR optimal quelque soit la vidéo que vous essayez d'encoder. Les paramètres de et vous permettent de spécifier des décalages aux pré-règlage des seuils de déblocage. Plein de gens semble penser que c'est une bonne idée de baisser la force du filtre de déblocage par de large montants (disons, -3). Ce n'est cependant presque jamais une bonne idée, et dans la plupart des cas, les gens qui le font ne comprennent pas très bien comment le déblocage fonctionne par défaut. La première et plus importante chose à savoir à propos du filtre de déblocage in-loop est que les seuils par défaut sont à peu près toujours optimal PSNR. Dans les rares cas où ils ne sont pas optimal, le décalage idéal est plus ou moins 1. Ajustant les paramètres de déblocage par un montant plus large est à peu près garanti d'abimer le PSNR. Le renforcement du filtre enduira plus de détails; l'affaiblissement du filtre augmentera l'aspect du carré. C'est définitivement une mauvaise idée de baisser les seuils de déblocage si votre source est principalement basse en complexité spaciale (i.e., peu de détail ou bruit). Le filtre in-loop fait un travail plutôt excellent en cachant les artefacts qui se surviennent. Si la source est élevé en complexité spacial, cependant, les artefacts sont moins apparent. C'est parce que le déclencheur tend à ressembler à du détail ou du bruit. La perception visuelle humaine remarque facilement quand un détail est enlevé, mais elle ne remarque pas si facilement quand le bruit est faussement représenté. Quand on en vient à une qualité subjective, bruit et détail sont quelque peu interchangeable. En baissant la force du filtre de déblocage, vous aurez des erreurs croissantes le plus susceptible en ajoutant des artefacts qui donneront l'alerte, mais l'oeil ne les remarque pas parce qu'il confond les artefacts avec des détails. Ceci ne justifie toujours pas d'abaisser la force du filtre de déblocage, cependant. Vous pouvez généralement obtenir une meilleur qualité de bruit du post-traitement. Si votre encodage en H.264 est trop flou ou souillé, essayez de lui rajouter quand vous jouez votre film encodé. devrez cacher la plupart des simples artefacts. Cela aura l'air certainement mieux que les résultats que vous auriez obtenus juste en jouant du violon avec le filtre de déblocage. Exemples de paramètre d'encodage Les paramètres suivant sont des exemples de différentes combinaisons d'option d'encodage qui affèctent la compensation entre la vitesse et la qualité pour le même bitrate cible. Tous les paramètres d'encodage sont testés sur un échantillon vidéo à 720x448 @30000/1001 fps, le bitrate cible était à 900kbps, et la machine était un AMD-64 3400+ à 2400 Mhz en mode 64 bits. Chaque paramètre d'encodage exploite la vitesse d'encodage mesuré (en frames par seconde) et la perte PSNR (en dB) en la comparant au paramètre de "très haute qualité". Veuillez comprendre que dépendemment de votre source, de votre type de machine et des avancements en développement, vous pouvez obtenir des résultats très différents. DescriptionOptions d'encodagevitesse (en fps)Perte PSNR relative (en dB) Très haute qualité 6fps 0dB Haute qualité 13fps -0.89dB Rapide 17fps -1.48dB Utiliser MEncoder pour créer des fichiers conforme VCD/SVCD/DVD. Contraintes de Format MEncoder est capable de créer des fichiers MPEG au format VCD, SCVD et DVD en utilisant la librairie libavcodec. Ces fichiers peuvent ensuite être utilisé conjointement avec vcdimager ou dvdauthor pour créer des discs qui joueront sur une platine de salon standard. Les formats DVD, SVCD, et VCD sont sujet à des lourdes contraintes. Seule une petite sélection des tailles d'image encodé et taux d'aspect est disponible. Si votre film n'est pas déjà en accord avec ces conditions, vous pourriez avoir à dimensionner, découper ou ajouter des bords noirs à l'image pour la rendre conforme. Contraintes de Format Format Résolution V. Codec V. Bitrate Taux d'Echantillonnage A. Codec A. Bitrate FPS Aspect NTSC DVD 720x480, 704x480, 352x480, 352x240 MPEG-2 9800 kbps 48000 Hz AC3,PCM 1536 kbps (max) 30000/1001, 24000/1001 4:3, 16:9 (seulement pour 720x480) NTSC DVD 352x240 Ces résolutions sont rarement utilisé pour les DVDs parcequ'ils ont une assez basse qualité. MPEG-1 1856 kbps 48000 Hz AC3,PCM 1536 kbps (max) 30000/1001, 24000/1001 4:3, 16:9 NTSC SVCD 480x480 MPEG-2 2600 kbps 44100 Hz MP2 384 kbps (max) 30000/1001 4:3 NTSC VCD 352x240 MPEG-1 1150 kbps 44100 Hz MP2 224 kbps 24000/1001, 30000/1001 4:3 PAL DVD 720x576, 704x576, 352x576, 352x288 MPEG-2 9800 kbps 48000 Hz MP2,AC3,PCM 1536 kbps (max) 25 4:3, 16:9 (seulement pour 720x576) PAL DVD 352x288 MPEG-1 1856 kbps 48000 Hz MP2,AC3,PCM 1536 kbps (max) 25 4:3, 16:9 PAL SVCD 480x576 MPEG-2 2600 kbps 44100 Hz MP2 384 kbps (max) 25 4:3 PAL VCD 352x288 MPEG-1 1152 kbps 44100 Hz MP2 224 kbps 25 4:3 Si votre film a un aspect 2.35:1 (les plus récents films d'action), vous aurez à ajouter des bords noirs ou découper le film jusqu'à un aspect 16:9 pour faire un DVD ou un VCD. Si vous ajoutez des bords noirs, essayez de les aligner aux frontières de 16-pixels de façon à minimiser l'impact sur la performance d'encodage. Dieu merci le DVD a un bitrate suffisamment excéssif que vous n'avez pas trop à vous inquiéter pour l'efficacité de l'encodage, mais le SVCD et le VCD sont hautement gourmand en bitrate et demandent des efforts pour obtenir une qualité acceptable. Contraintes de Taille GOP DVD, VCD, et SVCD vous contraignent aussi à des tailles relativement basses de GOP (Group of Pictures ou "Groupe d'Images"). Pour des matériaux à 30 fps la plus large taille de GOP permise est 18. Pour 25 ou 24 fps, le maximum est 15. La taille du GOP est règlé en utilisant l'option . Contraintes de Bitrate Une vidéo VCD doit être nécessairement en CBR à 1152 kbps. Cette contrainte grandement limitante vient aussi avec une taille du buffer vbv de 327 kilobits extrèmement basse. SVCD permet de varié des bitrates vidéo jusqu'à 2500 kbps, et une légèrement moins restrictive taille du buffer vbv de 917 kilobits est permis. Les bitrates de vidéo DVD peuvent s'étendre de n'importe où jusqu'à 9800 kbps (bien que les bitrates typiques sont à peu près la moitié de ça), et la taille du buffer vbv est 1835 kilobits. Options de Sortie MEncoder a des options de contrôle du format de sortie. En utilisant ces options nous pouvons lui dire de créer le type correct de fichier. Les options pour le VCD et le SVCD sont appelé xvcd et xsvcd, parceque ce sont des formats étendus. Elles ne sont pas strictement conforme, principalement parceque la sortie ne contient pas des décalages de scan. Si vous avez besoin de générer une image SVCD, vous devriez passer le fichier de sortie à vcdimager. VCD: -of mpeg -mpegopts format=xvcd SVCD: -of mpeg -mpegopts format=xsvcd DVD: -of mpeg -mpegopts format=dvd DVD avec NTSC étiré: -of mpeg -mpegopts format=dvd:telecine -ofps 24000/1001 Ceci permet au contenu progressif à 24000/1001 fps d'être encodé à 30000/1001 fps tandis que la conformité DVD est maintenu. Rapport d'Aspect L'argument d'aspect est utilisé pour encoder le rapport d'aspect du fichier. Durant la lecture le rapport d'aspect est utilisé pour redonner à la vidéo la taille correcte. 16:9 ou "Ecran Large" -lavcopts aspect=16/9 4:3 ou "Plein Ecran" -lavcopts aspect=4/3 2.35:1 ou NTSC "Cinémascope" -vf scale=720:368,expand=720:480 -lavcopts aspect=16/9 Pour calculer la taille correcte de dimensionnement, utilisez la largeur étendu NTSC de 854/2.35 = 368 2.35:1 ou PAL "Cinémascope" -vf scale="720:432,expand=720:576 -lavcopts aspect=16/9 Pour calculer la taille correcte de dimensionnement, utilisez la largeur étendu PAL de 1024/2.35 = 432 Conversion du Taux d'Echantillonnage Si le taux d'échantillonnage de l'audio du fichier original n'est pas le même que celui requis par le format cible, la conversion du taux d'échantillonnage est requis. Ceci est réalisé en utilisant ensemble l'option et le filtre audio . DVD: -srate 48000 -af lavcresample=48000 VCD et SVCD: -srate 44100 -af lavcresample=44100 Utilisant libavcodec pour l'Encodage VCD/SVCD/DVD Introduction libavcodec peut être utilisé pour créer des vidéos conforme VCD/SVCD/DVD en utilisant les options appropriées. lavcopts Ceci est une liste de champs de que vous pourriez avoir besoin de changer dans le but de rendre un film conforme VCD, SVCD, ou DVD: acodec: pour le VCD, le SVCD, ou le DVD PAL; est plus communément utilisé pour le DVD. L'audio PCM peut aussi être utilisé pour le DVD, mais c'est principalement une grosse perte d'espace. Notez que l'audio MP3 n'est compatible pour aucun de ces formats, mais de toute façon les lecteurs n'ont souvent aucun problème pour les jouer. abitrate: 224 pour le VCD; jusqu'à 384 pour le SVCD; jusqu'à 1536 pour le DVD, mais utilise communément une gamme de valeurs de 192 kbps pour le stéréo à 384 kbps pour le son canaux 5.1. vcodec: pour le VCD; pour le SVCD; est habituellement utilisé pour le DVD mais peut aussi utiliser pour des résolutions CIF. keyint: Utilisé pour règler la taille du GOP. 18 pour les matériaux à 30 fps, ou 15 pour les matériaux à 25/24 fps. Les producteurs commerciaux semblent préférer des keyframe à des intervales de 12. Il est possible de l'avoir plus grand et et d'être encor compatible avec la plupart des lecteurs. Un de 25 ne devrait jamais causer de problèmes. vrc_buf_size: 327 pour le VCD, 917 pour le SVCD, et 1835 pour le DVD. vrc_minrate: 1152, pour le VCD. Pëut être laissé seul pour le SVCD et le DVD. vrc_maxrate: 1152 pour le VCD; 2500 pour le SVCD; 9800 pour le DVD. Pour le SVCD et le DVD, vous pourriez souhaiter utiliser des valeurs plus basse dépendamment de vos propres préférences et conditions personnelles . vbitrate: 1152 pour le VCD; jusqu'à 2500 pour le SVCD; jusqu'à 9800 pour le DVD. Pour les deux derniers formats, vbitrate devrait être règlé basé sur des préférences personnelles. Par exemple, si vous insistez à faire tenir 20 heures ou plus sur un DVD, vous pourriez utiliser vbitrate=400. La qualité vidéo résutlante sera probablement assez mauvaise. Si vous essayez d'avoir la qualité maximum possible sur un DVD, utilisez vbitrate=9800, mais soyez prévenu que cela pourrait vous contraindre à n'avoir que moins d'une heure de vidéo sur un DVD simple couche. Exemples Ceci est un paramètrage typique minimum de pour encoder une vidéo: VCD: -lavcopts vcodec=mpeg1video:vrc_buf_size=327:vrc_minrate=1152:\ vrc_maxrate=1152:vbitrate=1152:keyint=15:acodec=mp2 SVCD: -lavcopts vcodec=mpeg2video:vrc_buf_size=917:vrc_maxrate=2500:vbitrate=1800:\ keyint=15:acodec=mp2 DVD: -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=5000:\ keyint=15:acodec=ac3 Options Avancé Pour une qualité plus élevé d'encodage, vous pourriez aussi souhaiter ajouter des options d'amélioration de qualité à lavcopts, comme , , et autres. Notez que et , tandis que souvent utile avec le MPEG-4, ne sont pas utilisable avec MPEG-1 ou MPEG-2. Aussi, si vous essayez de créer un encodage DVD de très haute qualité, il peut être utile d'ajouter à lavcopts. Le faire peut aider à réduire l'apparition de blocs dans les zones plates colorées. Les mettre toute ensemble, ceci est un exemple d'un paramètrage de lavcopts pour un DVD de plus haute qualité: -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=8000:\ keyint=15:trell:mbd=2:precmp=2:subcmp=2:cmp=2:dia=-10:predia=-10:cbp:mv0:\ vqmin=1:lmin=1:dc=10 Encodage Audio VCD et SVCD supportent l'audio MPEG-1 layer II, en utilisant un des encodeurs MP2 toolame, twolame, ou libavcodec. Le MP2 libavcodec est loin d'être aussi bon que les deux autres librairies, cependant il devrait toujours être disponible en utilisation. VCD supporte seulement l'audio avec un bitrate constant (CBR) alorsque SVCD supporte aussi le bitrate variable (VBR). Soyez purdent lors de l'utilisation du VBR car certains mauvais lecteurs pourraient ne pas trop bien le supporter. Pour l'audio DVD, le codec AC3 de libavcodec est utilisé. toolame Pour le VCD et le SVCD: -oac toolame -toolameopts br=224 twolame Pour le VCD et le SVCD: -oac twolame -twolameopts br=224 libavcodec Pour le DVD avec le son 2 canaux: -oac lavc -lavcopts acodec=ac3:abitrate=192 Pour le DVD avec le son 5.1 canaux: -channels 6 -oac lavc -lavcopts acodec=ac3:abitrate=384 Pour le VCD et le SVCD: -oac lavc -lavcopts acodec=mp2:abitrate=224 Les mettre tous Ensemble Cette section montre certaines commandes complètes pour créer des vidéos compatible VCD/SVCD/DVD. DVD PAL mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=dvd -vf scale=720:576,\ harddup -srate 48000 -af lavcresample=48000 -lavcopts vcodec=mpeg2video:\ vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=5000:keyint=15:acodec=ac3:\ abitrate=192:aspect=16/9 -ofps 25 \ -o film.mpg film.avi DVD NTSC mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=dvd -vf scale=720:480,\ harddup -srate 48000 -af lavcresample=48000 -lavcopts vcodec=mpeg2video:\ vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=5000:keyint=18:acodec=ac3:\ abitrate=192:aspect=16/9 -ofps 30000/1001 \ -o film.mpg film.avi AVI PAL Contenant Audio AC3 vers DVD Si la source a déjà l'audio en AC3, utilise la copie -oac au lieu de la ré-encoder. mencoder -oac copy -ovc lavc -of mpeg -mpegopts format=dvd -vf scale=720:576,\ harddup -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:\ vbitrate=5000:keyint=15:aspect=16/9 -ofps 25 \ -o film.mpg film.avi AVI NTSC Contenant Audio AC3 vers DVD Si la source a déjà l'audio en AC3, et est en NTSC @ 24000/1001 fps: mencoder -oac copy -ovc lavc -of mpeg -mpegopts format=dvd:telecine \ -vf scale=720:480,harddup -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:\ vrc_maxrate=9800:vbitrate=5000:keyint=15:aspect=16/9 -ofps 24000/1001 \ -o film.mpg film.avi SVCD PAL mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=xsvcd -vf \ scale=480:576,harddup -srate 44100 -af lavcresample=44100 -lavcopts \ vcodec=mpeg2video:mbd=2:keyint=15:vrc_buf_size=917:vrc_minrate=600:\ vbitrate=2500:vrc_maxrate=2500:acodec=mp2:abitrate=224 -ofps 25 \ -o film.mpg film.avi SVCD NTSC mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=xsvcd -vf \ scale=480:480,harddup -srate 44100 -af lavcresample=44100 -lavcopts \ vcodec=mpeg2video:mbd=2:keyint=18:vrc_buf_size=917:vrc_minrate=600:\ vbitrate=2500:vrc_maxrate=2500:acodec=mp2:abitrate=224 -ofps 30000/1001 \ -o film.mpg film.avi VCD PAL mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=xvcd -vf \ scale=352:288,harddup -srate 44100 -af lavcresample=44100 -lavcopts \ vcodec=mpeg1video:keyint=15:vrc_buf_size=327:vrc_minrate=1152:vbitrate=1152:\ vrc_maxrate=1152:acodec=mp2:abitrate=224 -ofps 25 \ -o film.mpg film.avi VCD NTSC mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=xvcd -vf \ scale=352:240,harddup -srate 44100 -af lavcresample=44100 -lavcopts \ vcodec=mpeg1video:keyint=18:vrc_buf_size=327:vrc_minrate=1152:vbitrate=1152:\ vrc_maxrate=1152:acodec=mp2:abitrate=224 -ofps 30000/1001 \ -o film.mpg film.avi