Utilisation basique de <application>MEncoder</application> Pour avoir la liste complète des options disponibles de MEncoder et des exemples, voir la page du man. Pour une série d'exemples pratiques et de guides détaillés sur l'utilisation des nombreux paramètres d'encodage, lisez les encoding-tips (en anglais) qui ont été collectés d'après de nombreux sujets de la liste de diffusion mplayer-users. Cherchez dans les archives pour trouver les discussions à propos de tous les aspects et problèmes relatifs à l'encodage avec MEncoder. Sélection des codecs et du format du container Les codecs sonores et vidéos sont sélectionnés respectivement avec l'option et l'option . Par exemple : mencoder -ovc help permettra de lister tous les codecs vidéo supportés par la version de MEncoder sur votre machine. Les choix disponibles sont : Codecs Audio: Noms des codecs AudioDescription mp3lame Encode en VBR, ABR ou CBR MP3 avec LAME lavc Utilise un des codecs audio libavcodec. faac L'encodeur audio AAC FAAC toolame Encodeur Audio MPEG Layer 2 twolame L'encodeur Audio MPEG Layer 2 basé sur tooLAME pcm Format PCM audio non compressé copy Ne réencode pas, copie simplement les trames (déjà) compressées Codecs Vidéo : Noms des codecs VidéoDescription lavc Utilise un des codecs vidéo libavcodec. xvid Le Xvid, un codec ASP MPEG-4 (Advanced Simple Profile) x264 Le x264, un codec MPEG-4 AVC (Advanced Video Coding), aussi connu sous le nom de H.264 nuv Le format vidéo nuppel, utilisé pour certaines applications temps réel. raw Frames vidéos non compressées copy Ne réencode pas, copie simplement les trames (déjà) compressées frameno Utilisé pour l'encodage en 3 passes, (non recommandé) Les options de sorties pour le type de container sont sélectionnées grâce à l'option . Tapez: mencoder -of help permettra de lister tous les codecs vidéo supportés par la version de MEncoder sur votre machine. Les choix disponibles sont : Container formats: Nom du format du ContainerDescription lavf Un des containers supporté par libavformat. avi Audio-Vidéo Interleaved mpeg MPEG-1 and MPEG-2 PS rawvideo Flux vidéo brut (un seul flux vidéo, pas de multiplexage) rawaudio Flux audio brut (un seul flux audio, pas de multiplexage) Le container AVI est le container natif de MEncoder, ce qui veut dire que c'est le mieux supporté et que MEncoder a été conçu pour cela. Comme mentionné ci-dessus, d'autres formats de containers sont utilisables, mais vous risquez d'avoir certains problèmes à les utiliser. Containers libavformat : Si vous avez sélectionné libavformat pour le multiplexage du fichier de sortie (en utilisant l'option ), le choix du format du container sera déterminé en fonction de l'extention du fichier de sortie. Mais vous pouvez toujours forcer le format du container avec les options du de libavformat. Container libavformat nameDescription mpg MPEG-1 and MPEG-2 PS asf Advanced Streaming Format : Format évolué pour le streaming avi Audio-Video Interleaved wav Pour l'Audio swf Macromedia Flash flv vidéo Macromedia Flash rm RealMedia au SUN AU nut le container libre NUT (expérimental et ne respectant pas encore les spécifications) mov QuickTime mp4 Format MPEG-4 dv Container numérique des vidéos Sony (Digital Video) Comme vous pouvez le voir, le libavformat permet à MEncoder de multiplexer un grand nombre de containers différents. Malheureusement, comme MEncoder n'a pas été originalement crée pour le support de format de containers autre que l'AVI, vous devez vérifier à deux fois que le résultat est correct. Pensez ben à vérifier la synchronisation de l'audio avec la vidéo et que le fichier est lisible par un autre lecteur que MPlayer. Encoder au format Macromedia Flash Exemple : Création d'une vidéo Macromedia Flash afin de la lire dans un navigateur internet ayant le plugin Macromedia Flash : mencoder input.avi -o output.flv -of lavf -oac mp3lame -lameopts abr:br=56 -ovc lavc \ -lavcopts vcodec=flv:vbitrate=500:mbd=2:mv0:trell:v4mv:cbp:last_pred=3 \ -srate 22050 Sélection d'un fichier d'entrée ou un périphérique MEncoder peut encoder depuis un fichier ou directement depuis un DVD ou VCD. Il suffit simplement d'inclure le nom du fichier dans la ligne de commande pour encoder depuis un fichier ou avec l'option numerochapitre ou numéropiste pour encoder depuis un chapitre DVD ou une piste VCD. Si vous avez déjà copié le DVD sur votre disque dur (en utilisant par exemple un logiciel comme dvdbackup, généralement disponible sur la plupart des systèmes), et que vous souhaitez encoder depuis cette copie, vous devrez quand même utiliser la syntaxe , avec l'option pointant vers la racine du répertoire où se trouve le DVD copié Les options et peuvent être aussi utilisées pour forcer le chemin vers le périphérique utilisé (ceux utilisés par défaut sont /dev/dvd et /dev/cdrom). Pour un encodage depuis un DVD, il est souvent préférable de selectionner un ou plusieurs chapitres à encoder. Vous pouvez utiliser l'option prévu à cet effet. Par exemple, 1-4 encodera seulement les chapitres 1 à 4 du DVD. Ceci est particulièrement utile si vous voulez faire un encodage sur 2 Cds soit 1400Mo. Ceci permettant de couper votre film sur un chapitre et non au milieu d'une scène. Si vous disposez d'une carte d'acquisition TV, vous pouvez sans soucis encoder le signal d'entrée. Utilisez l'option NuméroChaine comme nom de fichier et l'option afin de configurer les nombreux paramètres de captures. Les entrées DVB marchent sur le même principe. Encodage MPEG-4 deux passes ("DivX") Le nom vient du fait que cette méthode encode le fichier deux fois. Le premier encodage (du mode deux passes) crée quelques fichiers temporaires (*.log) avec une taille de quelques méga-octets, ne les détruisez pas tout de suite (vous pouvez effacer l'AVI ou rediriger le flux vidéo vers /dev/null). Lors de la seconde passe, le fichier de sortie est créé, en utilisant les données bitrate des fichiers temporaires. Le fichier résultant aura une image de bien meilleure qualité. Si c'est la première fois que vous entendez parler de ça, vous devriez consulter les guides disponibles sur Internet. Copie de la piste audio Encodage deux passes du second chapitre d'un DVD vers de l'AVI MPEG-4 ("DivX") avec la simple copie de la piste audio. mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 -oac copy -o sortie.avi mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell:vpass=2 \ -oac copy -o sortie.avi Encodage de la piste audio Encodage deux passes d'un DVD en AVI MPEG-4 ("DivX") avec la conversion de la piste audio en MP3. Soyez prudent en utilisant cette méthode car elle peut mener, dans certains cas, à des désynchronisation audio/vidéo. mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 \ -oac mp3lame -lameopts vbr=3 -o /dev/null mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell:vpass=2 \ -oac mp3lame -lameopts vbr=3 -o sortie.avi Encodage au format vidéo Sony PSP MEncoder supporte l'encodage au format Sony PSP. Cependant les contraintes peuvent différer suivant la version actuelle du logiciel PSP. Le respect des contraintes suivantes devrait vous permettre d'encoder sans problème : Débit vidéo: il ne devrait pas être supérieur à 1500kbps. Cependant, les dernières versions supportent presque tous les débits tant que l'en-tête rapporte une valeur raisonable. Dimensions: la largeur et la hauteur de la video PSP doivent être multiples de 16 et le produit largeur * hauteur doit être <= 64000. Dans certaines circonstances, la PSP est capable de lire des résolutions supérieures. Audio: le taux d'échantillonage doit être fixé à 24kHz pour les vidéos MPEG-4 et à 48kHz pour les H.264. Encodage pour PSP mencoder -ofps 30000/1001 -af lavcresample=24000 -vf harddup -of lavf \ -oac lavc -ovc lavc -lavcopts aglobal=1:vglobal=1:vcodec=mpeg4:acodec=aac \ -lavfopts format=psp \ entree.video -o sortie.psp Vous pouvez définir le titre de la vidéo avec . Encodage au format MPEG MEncoder peut créer des fichiers au format MPEG (MPEG-PS). Habituellement, vous utilisez des formats vidéos comme le MPEG-1 ou MPEG-2 pour l'encodage vers des formats avec des contraintes spécifiques comme le SVCD, VCD, ou encore le DVD. Les exigences particulières de ces formats sont expliqués dans la section du guide de création d'un VCD ou DVD. Pour changer le format du fichier final produit par MEncoder utilisez l'option . Exemple : mencoder input.avi -of mpeg -ovc lavc -lavcopts vcodec=mpeg1video -oac copy autres_options -o sortie.mpg Création d'un fichier MPEG-1 lisible sur un système basique comme peu l'être un MS Windows fraîchement installé : mencoder entree.avi -of mpeg -mpegopts format=mpeg1:tsaf:muxrate=2000 -o output.mpg -oac lavc -ovc lavc \ -lavcopts acodec=mp2:abitrate=224:vcodec=mpeg1video:vbitrate=1152:keyint=15:mbd=2:aspect=4/3 Le même encodage, mais en utilisant le multiplexeur MPEG libavformat : mencoder entree.avi -o VCD.mpg -ofps 25 -vf scale=352:288,harddup -of lavf \ -lavfopts format=mpg -oac lavc -lavcopts acodec=mp2:abitrate=224 -ovc lavc \ -lavcopts vcodec=mpeg1video:vrc_buf_size=327:keyint=15:vrc_maxrate=1152:vbitrate=1152:vmax_b_frames=0 Astuce: Si, pour quelques raisons, la qualité vidéo de la seconde passe n'est pas satisfaisante, vous pouvez recommencer l'encodage avec un débit cible différent, à condition que vous ayez sauvegardé le fichier de statistiques de la passe précédente. Ceci est possible car le rôle premier du fichier de statistiques est d'enregistrer la compléxité de chaque trame, ce qui ne dépend pas fortement du débit. Cependant, if faut noter que vous obtiendrez de meilleurs résultats si toutes les passes utilisent un débit cible similaire. Redimensionnement des films Souvent le besoin de redimensionner les images d'un film se fait sentir. Les raisons peuvent être multiples: diminuer la taille du fichier, la bande passante du réseau, etc. La plupart des gens redimensionnent même en convertissant des DVDs ou SVCDs en AVI DivX. Si vous désirez redimensionner, lisez la section Préserver le ratio d'aspect. Le processus de zoom est géré par le filtre vidéo scale: . Sa qualité peut être réglée avec l'option . Si elle n'est pas spécifiée, MEncoder utilisera 2: bicubique. Utilisation : mencoder entree.mpg -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell \ -vf scale=640:480 -o sortie.avi Copie de flux MEncoder peut gérer les flux entrant de deux façons: les encoder ou les copier Cette section parle de la copie. Flux vidéo (option ) : on peut faire des choses sympa :) comme, placer (pas convertir) de la vidéo FLI ou VIVO ou MPEG1 dans un fichier AVI ! Bien sûr seul MPlayer peut lire de tels fichiers :) et ça n'a probablement aucun intérêt. Concrètement: copier des flux vidéos peut être utile par exemple quand seul le flux audio doit être encodé (comme du PCM non-compressé en MP3). Flux audio (option ): très simple. Il est possible de prendre un fichier audio externe (MP3, WAV) et de le multiplexer dans le flux sortant. Utilisez l'option pour cela. En utilisant l'option pour copier d'un format de container vers un autre format, il faudrait utiliser l'option pour préserver les marqueurs originaux du format du fichier audio. Par exemple, si vous convertissez un fichier NSV avec de l'audio en ACC vers un container AVI, le format du marqueur audio sera incorrect et devra être changé. Pour visualiser la liste des marqueurs des formats audio, jetez un coup d'oeil à codecs.conf. Exemple: mencoder entree.nsv -oac copy -fafmttag 0x706D \ -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell -o sortie.avi Encodage à partir de nombreux fichiers Image (JPEG, PNG, TGA, SGI) MEncoder est capable de créer des fichiers à partir de un ou plusieurs fichiers JPEG, PNG ou TGA. Avec une simple copie de trame il peut créer des fichiers MJPEG (Motion JPEG), MPNG (Motion PNG) ou MTGA (Motion TGA). Explication du fonctionnement : MEncoder décode le(s) image(s) d'origine(s) avec libjpeg (pour décoder des PNGs, il utilisera libpng). MEncoder envoie alors l'image décodée au compresseur vidéo choisi (DivX4, Xvid, ffmpeg msmpeg4, etc.). Exemples Une explication de l'option peut être trouvée dans la page de man. Créer un fichier Mpeg-4 à partir de tous les fichiers JPEG du répertoire courant: mencoder -mf://*.jpg -mf w=800:h=600:fps=25:type=jpg -ovc lavc -lavcopts vcodec=mpeg4 -oac copy -o sortie.avi Créer un fichier MPEG-4 à partir de quelques fichiers JPEG du répertoire courant: mencoder mf://trame001.jpg,trame002.jpg -mf w=800:h=600:fps=25:type=jpg -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell -oac copy -o sortie.avi Création d'un fichier MPEG4 depuis une liste de fichiers JPEG (le fichier list.txt contenu dans le répertoire courant, liste les fichiers utilisés comme source, un par ligne): mencoder mf://@list.txt -mf w=800:h=600:fps=25:type=jpg \ -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell -oac copy -o sortie.avi Il est possible de mélanger différents types d'images, quelque soit la méthode utilisée — fichiers individuels, joker( i.e * ) ou fichier avec liste — à condition que, bien sûr, elles soient de même dimension. De fait, vous pouvez par exemple, prendre une image de type PNG comme titre, et ensuite faire un diaporama de vos photos JPEG. Créer un fichier Motion JPEG (MJPEG) à partir de tous les fichiers JPEG du répertoire courant: mencoder mf://*.jpg -mf w=800:h=600:fps=25:type=jpg -ovc copy -oac copy -o sortie.avi Créer un fichier non-compressé à partir de tous les fichiers PNG du répertoire courant: mencoder mf://*.png -mf w=800:h=600:fps=25:type=png -ovc raw -oac copy -o sortie.avi La largeur doit être un entier multiple de 4, c'est une limitation du format AVI RGB brut. Créer un fichier Motion PNG (MPNG) à partir de tous les fichiers PNG du répertoire courant: mencoder mf://*.png -mf w=800:h=600:fps=25:type=png -ovc copy -oac copy -o sortie.avi Créer un fichier Motion TGA (MTGA) à partir de tous les fichiers TGA du répertoire courant: mencoder mf://*.tga -mf w=800:h=600:fps=25:type=tga -ovc copy -oac copy -o sortie.avi Extraction des sous-titres DVD depuis fichier Vobsub MEncoder est capable d'extraire les sous-titres d'un DVD dans des fichiers au format VOBsub. Ils se composent de quelques fichiers ayant pour extension .idx et .sub et sont généralement compressés dans une seule archive .rar. MPlayer peut les lire avec les options et . Vous spécifiez le nom de base (c-à-d. sans extension .idx ou .sub) des fichiers de sortie avec et l'index pour ces sous-titres dans le fichier final avec . Si l'entrée n'est pas un DVD vous pouvez utiliser pour indiquer le fichier .ifo requis pour construire le fichier .idx final. Si l'entrée n'est pas un DVD et que vous n'avez pas de fichier .ifo vous aurez besoin d'utiliser l'option pour lui permettre de savoir quelle langue placer dans le fichier .idx. Chaque étape ajoutera les sous-titres actifs dans les fichiers .idx et .sub déjà existants. Vous devrez donc les enlever tous avant de commencer. Copier deux sous-titres d'un DVD pendant l'encodage deux passes rm soustitres.idx soustitres.sub mencoder dvd://1 -oac copy -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 \ -vobsubout soustitres -vobsuboutindex 0 -sid 2 mencoder dvd://1 -oac copy -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell:vpass=2 \ -vobsubout soustitres -vobsuboutindex 1 -sid 5 Copier les sous-titres français depuis un fichier MPEG rm soustitres.idx soustitres.sub mencoder film.mpg -ifo film.ifo -vobsubout soustitres -vobsuboutindex 0 \ -vobsuboutid fr -sid 1 -nosound -ovc copy Préserver le ratio d'aspect Les fichiers des DVDs et des SVCDs (c-à-d MPEG1/2) contiennent une valeur de ratio d'aspect, qui décrit comment le lecteur devrait dimensionner le flux vidéo, pour que les personnages n'aient pas des "têtes d'oeuf" (ex. 480x480 + 4:3 = 640x480). Cependant, quand vous encodez un fichier AVI (DivX), vous devez être conscients que les entêtes AVI ne stockent pas cette valeur. Redimensionner le film est assez infâme et coûteux en temps, il doit y avoir une meilleure solution ! Il y en a une. MPEG-4 a une fonction spécifique: le flux vidéo peut contenir le ratio d'aspect requis. Oui, tout comme les fichiers MPEG-1/2 (DVD, SVCD) et H.263. Malheureusement, très peu de lecteurs vidéos en dehors de MPlayer supportent cet attribut MPEG-4. Excepté MPlayer. Cette fonction ne peut être utilisée qu'avec le codec mpeg4 de libavcodec. Gardez bien à l'esprit que même si MPlayer lit correctement le fichier créé, les autres lecteurs sont susceptibles d'utiliser un mauvais ratio. Vous devriez vraiment couper les bandes noires au dessus et en dessous de l'image. Voir la page de man pour l'utilisation des filtres cropdetect et crop. Utilisation mencoder echantillon-svcd.mpg -vf crop=714:548:0:14 -oac copy -ovc lavc \ -lavcopts vcodec=mpeg4:mbd=2:trell:autoaspect -o sortie.avi