MEncoder L'encodeur de folie
----------------------------
[TRUCS ET ASTUCES RAPIDES EN FIN DE POST]
Pourquoi vous n'aimerez pas Mencoder:
- ligne de commande, vous savez la boîte noire: Demarrez->Executer->cmd [entrée] (le plus dur c'est de s'y mettre)
- assez technique
Pourquoi vous aimerez Mencoder (avec un peu d'entraînement):
- ligne de commande (pour la frime, pour le côté pratique et le contôle absolu)
- assez technique (pour la frime et les connaissances que cela apporte sur l'encodage en général)
- aucun codec à installer, évite donc les conflits de codecs (car ne repose pas sur DirectShow ou autre)
- un seul logiciel pour encoder la video et l'audio en un seul coup, depuis presque tous les formats vers des formats populaires comme le mpeg4 (xvid, ffmpeg4), mp3, ac3, des "nouveaux" formats comme le aac ou le h264, des formats lossless aussi bien en audio qu'en vidéo, des containers comme l'avi, le mpeg, l'asf, le rm (Real Media), le mov (Quick Time), le swf (Macromedia Flash), le flv (Macromedia Flash video), le dv (Sony Digital Video container) (pas de matroska cependant) des codecs expérimentaux comme le "snow"...
Produire des vidéos au format standard DVD, VCD, SVCD (même KVCD avec les matrices customisables)...
Je sais que pour la plupart d'entre vous la ligne de commande est un repoussoir. Certes elle n'est pas très sexy mais elle permet aussi bien un contôle très pointu de l'encodage qu'une utilisation simple. Ainsi, il suffit de choisir son codec, donnez un bitrate, le nombre de passe souhaitée et c'est tout bon ! Et une fois la base domestiquée, vous eprouverez un vrai plaisir à trifouiller les options de tel ou tel codec afin d'obtenir la meilleure qualité d'encodage. Essayez et perseverez, ces logiciels (Mplayer/Mencoder) en valent vraiment le coup car ils peuvent pratiquement tout faire: pour faire court, c'est un vrai investissement.
Voici donc Mencoder, un encodeur tout simplement excellent.
Il peut encoder à partir de (presque) n'importe quel type de video du moins tous ceux que Mplayer peut lire cf http://mplayerhq.hu/DOCS/codecs-status.html du wmv9 vers Xvid, MPEG2 vers h264, h264 vers xvid, rmvb ou vp7 vers mpeg1,2 ou 4 ...ou tout simplement réencoder la video sans toucher le son ou l'inverse.
Les principaux formats d'encodage sont les suivants:
Vidéo:
- stream copy
- Xvid
- h263(+)
- x264 (h264)
- MPEG 1 ou 2
- MJPEG (Motion JPEG)
- LJPEG (lossless JPEG)
- MPEG4 (compatible xvid, divx)
- msmpeg4 (v1 et v2)
- wmv (version 7 et 8)
- huffyuv
- ffvhuff (implémentation du codage huffman mais avec support du YV12)
- ffv1 (lossless expérimental)
- svq1 (sorenson video 1)
- Sony Digital Video
- Snow (codec expérimental basé sur les ondelettes ou "wavelet" )
Audio:
- streamcopy
- mp3 (avec libavcodec ou lame)
- aac
- mp2 avec toolame, twolame ou lavc
- uncompressed pcm
- sonic (implémentation originale d'un format lossless ou lossy basé sur les spécifications de Francis Harrison)
- ac3...
Fonctionnement
---------------
Mencoder inclu dans son executable (mencoder.exe) tous les codecs necéssaires pour l'encodage (voir les formats d'encodage supra) c'est-à-dire qu'il n'a besoin d'aucun codec à installer sous windows
Pour prendre un exemple:
- formatage du disque dur
- installation windows (même pas de sp1)
- dézippage Mplayer/Mencoder + dézippage du pack de codec (téléchargeable ici Version Windows ) dans le sous répertoire "codecs"
Résultat
Il peut lire des fichiers asf, wmv (1,2,3), xvid, mpeg2, rv10, rv20, rv30 etc...( liste complète ) en entrée. Il agit comme un "frame server" à la Avisynth sans rien installer d'autre.
Donc plus de conflit de codecs, de problèmes d'installation etc, et Mencoder peut encoder à partir de tout ce que Mplayer peut lire (re-cf liste complète ).
Vous pouvez vous procurer Mencoder (différentes adresses) :
Ces versions sont très récentes, régulierement mise à jour et surtout optimisées pour différents types de processeurs (P3, P4, AMD).
Nouveau
Tous les codecs de la famille libavcodec, ainsi que le XviD, et le x264 supportent maintenant le multitreading au travers l'argument "threads" |
Installation sous Windows
Il existe aussi une myriade de filtre comme par exemple:
- filtre de cropping
- filtre de détection auto de cropping
- filtre qui permet de rajouter des bandes noires autour de l'image
- filtre pour retouner/faire pivoter l'image en 2 ou 3 dimensions
- filtre de redimensionnement: gaussien pour luminance et pour chrominance(quand il existe un bruit chroma comme par exemple capture TV ou VHS), lanczos, bicubic, sharpen, spline...
- filtre de conversion entre "espaces" de couleurs
- filtre de post traitement (désentrelacement évolué dit "stateless" etc , deblocking (vertical, horizontal), deringing, debruiteur haute qualité, temporel etc, filtre bruiteur..)
- filtre pour inverser le processus telecine
- filtre "prise de cliché photo" de la video jouée
- filtre d'insertion d'images sur la video
- filtre de zoom avec lissage
- filtre d'effacement de logo
...et beaucoup d'autres
Sans oublier des filtres audio originaux comme:
- filtre channel : qui peut être utilisé pour ajouter, re-router ou copier des canaux audio
- filtre pan qui permet de mixer différents canaux audio, par exemple créer un 3eme canal qui émule un subwoofer à parir de 2 canaux
- filtre center qui émule un canal central
- filtre delay qui ajoute du délai au loud speaker
...et toujours beaucoup d'autres
Plutot qu'un long discours voici un exemple d'utilisation:
Encodage d'un dvd: "Ghost In The Shell 2"
Approche général
----------------
La méthode consiste à obtenir les renseignements nécéssaires à l'encodage du titre puis à construire la ligne de commande à partir de ces informations.
Voici les étapes:
1)Ripper le DVD
2)Découper les bandes noires
3)Encoder (1, 2 ou n passe(s) pour les codecs qui le supporte)
Rippage
---------
Pour ripper le DVD, il faut en premier lieu utiliser Mplayer cf http://forum.hardware.fr/hardwaref [...] 7348-1.htm
Malheureusement, Mplayer ne permet pas de détection auto du titre DVD contenant le film, il va donc falloir tatonner un peu.
Lecture d'un film sur DVD avec Mplayer
--------------------------------------
Il faut indiquer à Mplayer la lettre de votre lecteur dvd. Dans mon cas c'est "e:"
Ensuite, je tape dans une console DOS:
mplayer -dvd-device e: dvd://1 |
explication: l'option dvd-device indique à mplayer le lecteur de dvd (dans mon cas e: )
Vous devez donc déterminer sur votre propre machine, la lettre de votre lecteur et la remplacer dans la commande le cas échéant.
dvd://1 joue le premier titre sur le dvd
L'option v permet d'avoir des renseignements plus fournis sur la structure du DVD (ID des bandes sons, nombres de chapitres, de titres...)
Note: Mplayer utilise un mécanisme d'analyse de la ligne de commande complexe qui permet de taper les instructions dans le désordre. Ainsi vous pouver taper
mplayer dvd://1 -dvd-device e: et vous obtiendrez le même résultat.
Cependant, certaines commandes sont inséparables de leur prarametres comme ici -dvd-device qui attend sa lettre de lecteur immédiatement aprés elle. Donc, on ne peut pas écrire:
mplayer -dvd-device dvd://1 e: par exemple. |
Dans le reste du document, j'utiliserais ma propre façon d'agencer la ligne de commande. Si celle ci ne vous convient pas, à vous de trouver la votre.
Voici la sortie de Mplayer aprés cette première tentative de lecture:
1:Playing dvd://1.
2:Reading disc structure, please wait...
3:There are 15 titles on this DVD.
4:There are 2 chapters in this DVD title.
5:There are 1 angles in this DVD title.
6:DVD successfully opened.
7:MPEG-PS file format detected.
8:VIDEO: MPEG2 720x576 (aspect 2) 25.000 fps 9800.0 kbps (1225.0 kbyte/s)
9:==========================================================================
10:Opening audio decoder: [liba52] AC3 decoding with liba52
11:No accelerated IMDCT transform found
12:AC3: 2.0 (dolby) 48000 Hz 192.0 kbit/s
13:Using MMX optimized resampler
14:AUDIO: 48000 Hz, 2 ch, s16le, 192.0 kbit/12.50% (ratio: 24000->192000)
15:Selected audio codec: [a52] afm:liba52 (AC3-liba52)
16:==========================================================================
17:==========================================================================
18:Opening video decoder: [mpegpes] MPEG 1/2 Video passthrough
19:VDec: vo config request - 720 x 576 (preferred csp: Mpeg PES)
20:Could not find matching colorspace - retrying with -vf scale...
21:Opening video filter: [scale]
22:The selected video_out device is incompatible with this codec.
23:Also try adding the scale filter, e.g. -vf spp,scale instead of -vf spp.
24:VDecoder init failed :(
25:Opening video decoder: [libmpeg2] MPEG 1/2 Video decoder libmpeg2-v0.4.0b
26:Selected video codec: [mpeg12] vfm:libmpeg2 (MPEG-1 or 2 (libmpeg2))
27:==========================================================================
28:Building audio filter chain for 48000Hz/2ch/s16le -> 0Hz/0ch/??...
29:AO: [dsound] 48000Hz 2ch s16le (2 B/s)
30:Building audio filter chain for 48000Hz/2ch/s16le -> 48000Hz/2ch/s16le...
31:Starting playback...
32:VDec: vo config request - 720 x 576 (preferred csp: Planar YV12)
33:VDec: using Planar YV12 as output csp (no 0)
34:Movie-Aspect is 1.33:1 - prescaling to correct movie aspect.
35:VO: [directx] 720x576 => 768x576 Planar YV12 |
Ligne 3 à 5: nous donnent des informations sur le dvd
Ici on a 15 titres, 2 chapitres, et 1 angle
Notez que Mplayer vous fournit aussi bon nombre de renseignements
sur les flux audio et video (nature, bitrate, féquence échantillonage audio, etc...)
Si le titre 1 ne contient pas le film (ce qui est le cas ici), il faut incrémenter ce nombre (dans la limite du nombre de titres contenu sur le DVD ici 15) jusqu'a obtenir le bon titre.
Aprés de multiples essais, j'ai identifié la piste 11 comme étant celle contenant le film. (en pressant la lettre o au clavier 2 fois pour afficher la durée totale de la piste)
Rip du titre selectionné
-----------------------
Maintenant que l'on a repéré le bon titre on peut le ripper avec la commande "dumpstream":
mplayer -dvd-device e: -dumpstream dvd://11 |
Ainsi l'intégralité du titre (video, pistes sons, soustitres) va être dumpé sur le disque dans votre répertoire maison sous le nom stream.dump (c-a-d sous windows 2000/xp c:\documents and settttings\votre_rep_maison\stream.dump)
Il est possible de spécifier un autre nom de fichier à l'aide de la commande "dumpfile" :
mplayer -dvd-device e: -dumpstream dvd://11 -dumpfile ghost_in_the_shell2.vob
|
Maintenant vous pouvez ôter le dvd de votre lecteur. On n'utilisera plus que le fichier dumpé.
Identification de la bande son
------------------------------
Vous n'êtes pas sans savoir, qu'un DVD contient plusieurs bandes sons.
Si, lorsque vous lancez Mplayer, vous n'obtenez pas la bonne langue, il faut, en vous aidant de la sortie sur la console chercher la langue ou l'id de la langue qui vous interresse. Pour faire apparaître les différentes bandes son disponibles (entre autre), on utilise l'option "v" de mplayer:
mplayer -v ghost_in_the_shell2.vob |
Voici une partie de la sortie console:
...
==> Found video stream: 0
==> Found audio stream: 128
==> Found audio stream: 130
==> Found audio stream: 129
... |
On remarque la présence de 3 streams audio.
Les id permettent, lorque les codes pays n'apparaissent, pas de forcer le changement de piste audio en spécifiant le numéro à Mplayer comme ceci:
mplayer -dvd-device e: -aid 128 dvd://11 |
(ici l'id 128 correspond au japonais)
Vérifiez que cela vous convient. Notez cette valeur dans un coin.
si cela ne convient toujours pas, changez le nombre après "-aid" toujours en vous aidant de la sortie sur la console.
Découpage des bandes noires (cropping)
--------------------------------------
Une fois identifié, le titre et la langue souhaité, on utilise mplayer pour déterminer la découpe des bandes noires à appliquer. Mplayer posséde un filtre de détection auto des bandes noires "cropdetect"
mplayer -vf cropdetect ghost_in_the_shell2.vob |
Normalement, dans la console DOS, des lignes défilent tant que la video est jouée.
C'est la détection automatique du "cropping". Afin d'obtenir le meilleure résultat
déplacez vous dans la vidéo sur une scene assez lumineuse et laissez tourner la vidéo.
Au bout d'un certain temps (qques secondes) les lignes de défilement se "stabilisent" (elles sont toutes identiques), c'est signe que Mplayer a trouvé les bonnes "cotes" pour le découpage des bandes noires. appuyez sur la touche "q".
crop area: X: 0..719 Y: 12..564 (-vf crop=720:544:0:16) |
copiez/collez "-vf crop=720:544:0:16" dans un fichier texte par exemple.(dans la console DOS click droit de la souris->selectionner. Une fois le texte sélectionné click droit)
Tester les valeurs du cropping en jouant le fichier dumpé avec ces parametres de découpe:
mplayer -vf crop=720:544:0:16 ghost_in_the_shell2.vob |
et vérifiez que les bandes noires ont diparu.
Vous n'avez pas à vous occupez à chercher le plus proche multiple de 16 pour les dimensions, le filtre s'en étant automatiquement chargé.
Sur certaines videos (à ma connaissance aucun dvd), la détection se fait mal notamment les rips de TV analogiques. Là, il vaut opérer à la main à l'aide du filtre crop (en prenant garde de trouver le plus proche multiple de 16, valable pour la majorité des codecs).
mplayer -vf crop=Xa:Ya:xu:yu -dvd-device f: dvd://1 |
Avec Xa et Ya la taille en pixel de la zone à découper
Avec xu et yu les coordonnées du point en haut et à gauche de la zone à découper.
3)L'encodage
------------
Une des forces de Mencoder, c'est qu'il est capable d'encoder à partir de n'importe quel fichier video du moment qu'il peut le lire: du wmv9 vers Xvid, MPEG2 vers h264, h264 vers xvid, rmvb ou vp7 vers mpeg1,2 ou 4 ...ou
tout simplement réencoder la video sans toucher le son ou l'inverse.
Aspect général de la ligne de commande
------------------------------------------------
mencoder -oac <audio codec> <param>:<param>... -vf <video filters> -ovc <video codec> <param>:<param>... fichier_a_encoder.vob -o fichier_de_sortie |
Globalement, on choisi un codec audio (oac), un codec video (ovc) et on leur passent des parametres. Ensuite on fournit le fichier en entrée et on spécifie le fichier de sortie. Il est possible (dans notre cas recommandé) d'appliquer les filtres vidéos de mplayer au fichier d'entrée (le plus imporant pour nous: le filtre de cropping, mais on peut aussi ajouter des filtres de post processing, cependant il faut faire attention à l'ordre dans lequel les insérer)
On va encoder le fichier source de sorte qu'il puisse tenir sur un cd de 700MB en gardant la résolution d'origine. Afin d'obtenir une qualité optimale on va faire 3 passes.
Dans ce cas, encoder l'audio pour les 2 premières passes est inutile, ce qui permet d'accélérer d'autant l'encodage video. Ici, il y a un problème concernant l'apect du film.
En effet, la résolution est de 720x576, ce qui, si l'on garde ces dimensions, engendrera un mauvais aspect une fois encodé. Mencoder posséde une option permettant de stocker l'apect dans l'avi de la même manière qu'avec le mpeg2: autoaspect qui permet de garder l'aspect d'origine (même après avoir appliqué un filtre de cropping, de scaling...)
Encodage audio: choix du codec et parametres
--------------------------------------------
Ici je choisis comme codec audio, le mp3 lame avec un bitrate de 128 kb/s.
En se référant à la man page de mplayer/mencoder, on a:
"mp3lame" sélectionne lame comme encodeur audio
"-lameopts" indique que l'on souhaite passer des options à l'encodeur.
On va encoder le son en cbr en 128 kb/s. Ainsi la ligne devient:
-oac mp3lame -lameopts cbr:br=128 |
Cette option est suffissante pour un encodage simple. Toutefois si l'on veut augmenter la qualité de l'encodage on peut augmenter la qualité de l'algorithme avec l'option "aq":
-oac mp3lame -lameopts cbr:br=128:aq=0 |
On remarque que le séparateur d'option est ":". Tout comme mplayer, mencoder se moque de l'ordre dans lequel vous entrez les options.
On aurait aussi pu écrire:
-oac mp3lame -lameopts aq=0:cbr:br=128 |
ce qui donne le même résultat.
Encodage video
-------------
On a choisi un encodage 3 passes. Le choix du codec s'est porté sur le ffmpeg4 de la librairie ffmpeg (lavc) qui est un encodeur de qualité, très rapide et compatible avec les standards(et donc Xvid et autre DivX).Cependant le four caracter code de ce codec (FMP4) n'est pas reconnu par la plupart des décodeurs. Heureusement, il existe une commande "-ffourcc" qui permet de spécifier le type de vidéo. De fait, il suffira lors de l'encodage terminal de marquer la video avec le code de notre choix.
Aprés calcul, compte tenu du débit audio on choisi un bitrate de 1225kb/s.
Un tour sur la man page http://www.mplayerhq.hu/DOCS/man/fr/mplayer.1.html, et on obtient:
On choisi donc ici un codec de la famille libavcodec (lavc pour faire court) auquel on veut passer des parametres. Etant donné que la lavc contient de nombreux codec (mjpeg, ljpeg etc...), on doit en choisir un, ce qui ce fait avec l'option "vcodec":
-ovc lavc -lavcopts vcodec=mpeg4:vmax_b_frames=1:vb_strategy=2:brd_scale=3:vbitrate=1225 |
Cette commande est suffisante pour une première passe. Pour les passes suivantes, on utilisera des optimisations (sur la recherche de mouvement, la quantisation...)
On indique le numéro de la passe avec l'option "vpass":
-ovc lavc -lavcopts vcodec=mpeg4:vbitrate=1225:vpass=1 |
Petite explication sur le numéro de passe:
Vous voulez un encodage:
-simple passe: on retire l'option "vpass"
-double passe et seulement 2 passes
1ére passe: "vpass=1"
2ème passe: "vpass=2"
-3 passes et plus:
1ére passe: "vpass=1"
2éme passe: "vpass=3"
3éme et suivante: "vpass=3" indéfiniment
Ici le vpass=3 est à comprendre comme nombre de passe indéfinie après la première.
Ligne de commande pour encodage première passe:
-------------------------------------------------
On veut encoder en plusieurs passes donc l'encodage audio se fera lors
de la dernière passe. D'ou l'utilisation de "copy".
mencoder -aid 128 -oac copy -vf crop=720:544:0:16 -ovc lavc -lavcopts vcodec=mpeg4:vmax_b_frames=1:vb_strategy=2:brd_scale=3:vbitrate=1225:autoaspect:vpass=1 ghost_in_the_shell2.vob -o gits2temp.avi |
"vmax_b_frames=1": utliliser 1 frames de type b au maximum entre 2 frames
"vb_strategy=2": strategie qu'adopte l'encodeur concernant l'insertion de b-frames (ici en fonction du contexte). Cette option est très coûteuse en calcul et donc en temps. C'est pourquoi on utilise l'option:
"brd_scale=3" qui permet d'agmenter la vitesse d'encodage (rendez vous dans la doc pour des explications plus techniques ;) )
Ceci va créér un fichier gitstemp.avi (étant donné que l'on a utilisé l'option "o" ) ainsi qu'un fichier contenant les statistiques de la première passe (divx2pass.log) dans le répertoire maison.
Ligne de commande pour encodage seconde passe:
------------------------------------------------
On reprend exactement la même ligne que précédemment (dans la console DOS touche flêche haute), mais on y ajoute des optimisations. Rebelotte, man page (ou la doc).
"preme=2" toujours faire un pre-passe d'estimation du mouvement (qq soit le type de frame (P/I/B)
"precmp, cmp et subcmp" fonction de comparaisons pour la décision sur les macroblocks. La numero 2 offrant un bon compromis vitesse/qualité.
"last_pred=2": quantité de predicteurs de mouvements à utiliser de la frame précédente
La ligne de commande devient:
mencoder -aid 128 -oac copy -vf crop=720:544:0:16 -ovc lavc -lavcopts vcodec=mpeg4:vmax_b_frames=1:vb_strategy=0:brd_scale=3:vbitrate=1225:precmp=2:cmp=2:subcmp=2:preme=2:last_pred=2:me_range=0:autoaspect:vpass=3 ghost_in_the_shell2.vob -o gits2temp.avi |
Notez le vpass=3.
Ligne de commande pour encodage troisième passe:
------------------------------------------------
C'est la même que la deuxième, que l'on peut laisser telle quel
ou bien encore ajouter des optimisations (man page encore !):
on a:
"trell" pour la quantisation trellis
"mdb=2" pour l'algorithme de décision de macroblock (2 pour celui qui a le meilleur taux de distorsion)
"v4mv" permettre 4 vecteurs de mouvement par macroblocks
Ces 3 options sont celles qui améliorent le plus la qualité de l'image.
"predia=2": taille et type des diamants pour la pre-passe de recherche de mouvement
"dia=2" taille et type des diamants pour la recherche de mouvement (assez lent)
mencoder -ffourcc XVID -aid 128 -oac copy -vf crop=720:544:0:16 -ovc lavc -lavcopts vcodec=mpeg4:vmax_b_frames=1:vb_strategy=0:brd_scale=3:vbitrate=1225:precmp=2:cmp=2:subcmp=2:preme=2:last_pred=2:predia=2:dia=2:trell:mbd=2:v4mv:vbitrate=1225:me_range=0:autoaspect:vpass=3 ghost_in_the_shell2.vob -o gits2temp.avi |
On change le fourcc d'origine avec le fourcc XVID.
On peut choisir ici, pour augmenter la rapidité, de ne pas encoder le son.
Dans ce cas on obtiendrait un fichier (ici test.avi) contenant la video ayant subie 3 passes et un son identique à l'original.On pourrait alors copier la video résultante (gits2temp.avi) en ne réencodant que le son:
mencoder -oac mp3lame -lameopts cbr=128:aq=0 -ovc copy gits2temp.avi -o gits2.avi |
notez le -ovc copy et le fichier en entrée qui n'est plus le fichier dumpé du dvd.
Exemple avec un changement de résolution
-----------------------------------------
On utilise le filtre "scale". Ainsi en admettant que l'on veuille conserver le ratio d'aspect 16/9 d'origine mais en diminuant la définition (en arrondissant au mutiple de 16 le plus proche) à 624x352:
mencoder -aid 128 -oac copy -vf crop=720:544:0:16,scale=624:352 -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=1225:trell:mbd=2:predia=3:dia=3:autoaspect:vpass=3 ghost_in_the_shell2.vob -o gits2temp.avi |
On sépare les filtres videos par des virgules. "scale" prend deux parametres la résolution en hauteur et la résolution en largeur.
On peut bien evidemment utiliser différents "software scaler" (cf http://www.mplayerhq.hu/DOCS/man/fr/mplayer.1.html ).
Exemple avec Xvid (haute qualité)
----------------------------
Xvid n'accepte que 2 passes au maximum (on suppose ici que la première passe est faite).
mencoder -aid 128 -oac copy -vf crop=720:544:0:16,scale=624:352 -ovc xvid -xvidencopts bitrate=1225:trellis:me_quality=6:vhq=4:chroma_opt:pass=2 ghost_in_the_shell2.vob -o gits2temp.avi |
"me_quality" qualite de recherche du mouvement (6=meilleure)
"vhq" étendue de la recherche du mouvement (4=large)
"chroma_opt" préfiltre d'optimisation chroma (diminue les effets d'escalier des contours)
------------------------------
[TRUCS ET ASTUCES RAPIDES]
------------------------------
Je veux...
Extraire le son d'une video en WAV quelque soit le format de la video
mplayer -ao pcm:file=out.wav -vo null -vc dummy in.mov |
------------------------------------------------------------------------------------------------------------
Dumper la piste son d'une video en gardant son format d'origine par exemple mp3 (quelque soit le container)
mplayer -dumpaudio -dumpfile fichier.mp3 video.avi |
Dumpe la piste audio dans le répertoire utilisateur sous le nom "fichier.mp3"
Pour la video:
mplayer -dumpvideo -dumpfile video.raw video.avi |
Dumpe la piste video dans le répertoire utilisateur sous le nom "video.raw"
------------------------------------------------------------------------------------------------------------
Dumper une video à partir d'Internet qui exige un nom d'utilisateur, un mot de passe, un cookie:
mplayer -cookies-file monCookie.txt -user-agent "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)" -user "mon_login" -passwd "mon_pass" -dumpstream mss://adresse/internet/de/la/video.wmv |
------------------------------------------------------------------------------------------------------------
Muxer un fichier son avec une video (en copiant simplement son flux ou en le réencodant) , quelque soit le fichier audio: wav, mp3, mp2, aac, ac3, dts etc (dans sles limites du conteneur AVI)
mencoder -oac copy -ovc copy -audiofile fichier_audio.mp3 -o fichier_out.avi fichier_in.avi |
------------------------------------------------------------------------------------------------------------
Extraire chaque trame de ma video en fichier GIF, PNG, JPEG (en lui appliquant par la même occasion un filtre video quelconque, ici scale)
mplayer -vo gif89a -vf scale=320:240 in.mpg |
gif89a peut être remplacé par jpeg ou png
------------------------------------------------------------------------------------------------------------
Tourner une video d'un certain angle
mencoder -ffourcc XVID -oac lavc -lavcopts acodec=mp3:abitrate=128 -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=800 -vf rotate=0 mon_fichier.mov -o mon_fichier.avi |
valeur pour "rotate"
0 Rotation de 90 degres sens horaire et flip (par defaut).
1 Rotation de 90 degres sens horaire
2 Rotation de 90 degres sens anti horaire
3 Rotation de 90 degres sens anti-horaire et flip.
------------------------------------------------------------------------------------------------------------
Reconstruire l'index d'une video de façon permanente (AVI):
mencoder -forceidx -oac copy -ovc copy -o out.avi in.avi |
------------------------------------------------------------------------------------------------------------
Synchroniser le son et l'image sans ré-encoder
Tout d'abord il faut à l'aide de Mplayer entrer une commande comme celle-ci:
mplayer -delay xx video.avi |
"delay": delai audio
xx: valeur positive ou négative selon les besoins (en seconde, valeur décimale possible). Ici il faut jouer la video et essayer de déterminer la bonne valeur par tatonnement ou en utilisant pendant la lecture les touches +/- du clavier.
Une fois la bonne valeur récupérée, on "réencode" (une simple copie en fait mais en incluant un délai) avec mencoder:
mencoder -oac copy -ovc copy -audio-delay -xx in.avi -o out.avi |
Le "-" devant xx est le signe mathématique moins, c'est à dire que la valeur obtenue est à multiplier par -1
ça devrait pouvoir faire l'affaire...sinon il y a d'autres options afin de "réparer" un mauvais fichier:
"-mc 0" pour les fichiers avec un son VBR mal "intercalé"
-----------------------------------------------------------------------------------------------------------
Voila.
J'espere que vous prendrez votre pied en testant parametres, codecs, options.
Bon encodage !
----------------------------------------------------------------------------
PS:Sinon, pour apprendre, rien ne vaut un petit tour sur le site de mplayer http://www.mplayerhq.hu et la lecture de la doc qui donne des exemples et conseils d'encodage (à partir de dvd ou autres) et en FRANCAIS svp!
Message édité par Raskol le 15-02-2007 à 19:38:01
---------------
Sci Fi: Les insoumis du Black Moon