MEncoder : L'encodeur de folie ! [Topic Trop Unique] - Traitement Vidéo - Video & Son
Marsh Posté le 14-10-2005 à 20:47:31
ReplyMarsh Posté le 14-10-2005 à 23:47:40
Je ne suis pas fan de la ligne de commande mais dès qu'une version avec une GUI sortira.. je l'essaierai.
Marsh Posté le 15-10-2005 à 00:05:41
Il existe un GUI. Mais, il n'offre pas toutes les possibilités de la ligne de commande.
Cela dit c'est un bon début et probablement suffisant.
http://mewig.sourceforge.net/
Marsh Posté le 15-10-2005 à 00:16:21
Je ferai un essai ce week end j'ai justement une vidéo à réencoder en H264
Edit : ah oui je viens de voir ce que tu voulais dire par "pas toutes les possibilités"... en effet c'est très simpliste mais ca risque d'être insuffisant pour moi ... merci quand même.
Marsh Posté le 15-10-2005 à 00:31:32
ReplyMarsh Posté le 15-10-2005 à 13:06:33
Citation : pas tres lisible comme post tout de même |
Maintenant c'est un peu mieux j'espère
Marsh Posté le 04-11-2005 à 13:25:16
AAaahhh merci beaucoup
Par contre, quand je prends la version optimisé P4, il ne reconnait pas le SSE ni SSE2 alors que je dispose d'un p4 630...
CPUflags: Type: 15 MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 0 SSE2: 0
Problème connu ?
Marsh Posté le 04-11-2005 à 14:23:20
ça fait chaud au coeur
rootsayen, pour ma part ça donne un truc du genre(version AMD):
MEncoder Sherpya-MinGW-20051012-4.0.2 (C) 2000-2005 MPlayer Team |
et la ligne supplémentaire:
Compiled for x86 CPU with extensions: MMX MMX2 3DNow 3DNowEx |
Alors si tu n'as pas ça ben...je sais pas
Tu peux toujours essayer ce lien: http://www.aziendeassociate.it/cd.asp?dir=/mplayer
Marsh Posté le 04-11-2005 à 14:39:07
Est-ce qu'il supporte le bi-processeurs ?
Parce que par exemple, en utilisant Gordianknot, je vais près de 2x plus vite pour l'encodage video si le second processeur est utilisé.
Marsh Posté le 04-11-2005 à 16:14:38
Merci Raskol, avec l'encoder de ton dernier lien, c'est nickel, mais pas avec les versions du lien de ton 1er post
Au passage, tu as d'autres nouvelles sur les versions avec GUI ? les pluparts étant à l'abandon apparement...
Thx
Marsh Posté le 04-11-2005 à 17:28:01
super topic
Marsh Posté le 04-11-2005 à 18:22:32
Hafrexx
rootsayen, le p4 630 est un hyperthreading n'est ce pas ?
En ce qui concerne les GUI, il y en a un qui me semble pas trop mal:
infos (en anglais):
http://forum.doom9.org/showthread.php?t=96032
téléchargement:
http://forum.doom9.org/attachment. [...] entid=4917
Marsh Posté le 04-11-2005 à 18:29:35
Citation : Est-ce qu'il supporte le bi-processeurs ? |
Le concepteur initial de Mplayer/Mencoder n'était pas un fan du "multithreading"...Peut-être que cela va changer :)
.:::EDIT:::.
Cependant le mpeg4 sauce FFmpeg est assez rapide d'origine. J'ai vu sur une machine à base de P4 (2.2GHz, FSB 400 Mhz, DDR 266) avec ces parametres (non suffisant pour une qualité optimale à 720x576 sauf peut-être pour un scaling en 624x352):
mencoder -oac copy -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=1000:pass=1 in.vob |
tournée à 45~50 fps. Pas si mal :) (la video d'entrée etait un épisode de "24 heures chrono" non scalé)
Marsh Posté le 04-11-2005 à 20:26:58
Oui c'est un proc HT, comme tous les dernier P4 single core. Pour la GUI du lien, il faut Avisynth, je trouve ca relou de pas pouvoir directement loader le Vob ou le fichier video, voir l'ifo.
Marsh Posté le 04-11-2005 à 20:44:26
Citation : Oui c'est un proc HT, comme tous les dernier P4 single core |
C'est surement pour cela que la version compilée pour P4 du premier lien ne fonctionnait pas avec toutes les optimisations, le gars doit les compiler pour les P4 "anciennes" générations (sans HT)
Concernant la GUI j'en connais pas d'autres
Si quelqu'un a des infos, je suis preneur...
Marsh Posté le 26-11-2005 à 16:51:11
Vous savez s'il est possible de faire des sortes de batch, afin de mettre en "queue" les 2 ou 3 passes d'un encodage par exemple ?
Marsh Posté le 27-11-2005 à 18:50:28
rootsayen, tu peux essayer en Windows Script Host et VBS:
http://msdn.microsoft.com/library/ [...] ptHost.asp
Marsh Posté le 21-12-2005 à 11:19:11
Est ce que quelqu'un pourrait me dire comment procéder pour encoder un vob en h264 (vidéo) et aac (audio)??
Marsh Posté le 23-12-2005 à 20:31:43
Salut StephB86.
Voici une commande possible pour un encodage à partir d'un vob:
mencoder -oac faac -faacopts quality=300 -ovc x264 -x264encopts bitrate=800 dvd://1 -dvd-device /chemin/du/repertoireVOB/ -o out.avi |
faac encodeur AAC avec une qualité de 300 (on peut aussi utiliser un bitrate: "br=xxx" sur la ligne de commande)
x264 encodeur H264 avec un bitrate de 800kb/s
dvd://1 titre n°1 du DVD (celui contenant le film)
Marsh Posté le 02-01-2006 à 12:29:30
J'ai un petit souci
Je voudrait copier le flux vidéo de ma freebox avec mencoder sous windows.
Ce flux est il me semble en mpeg2.
Je lance :
mencoder rtsp://mafreebox.freebox.fr/freeboxtv/201 -oac copy -ovc copy -o test.mpeg |
Mais quand je veux lire le fichier obtenu, je n'ai que le son.
J'ai essayé avec -of mpeg ca marche mais j'ai des erreurs dans la vidéo (artefacts...)
Marsh Posté le 06-01-2006 à 19:51:24
Salut fffff2mpl4.
Essaye avec MPlayer:
mplayer rtsp://mafreebox.freebox.fr/freeboxtv/201 -dumpstream -dumpfile test.mpeg |
Marsh Posté le 06-01-2006 à 19:59:01
Marche pas...
MPlayer dev-CVS-050928-16:38-3.4.2 (C) 2000-2005 MPlayer Team |
Marsh Posté le 06-01-2006 à 20:01:21
Euh, c'est pas tout simplement parceque Free empeche l'enregistrement du stream via une méthode ou une autre ? Y'a pas mal de site qui protege la copie de leur stream en tout cas...
Marsh Posté le 07-01-2006 à 09:54:33
Bonjour a tous, moi j'ai un problème lors de l'encodage d'un de mes épisode de manga... Je les réencode en H264 avec ces ligne de commandes :
mencoder NARUTO_xxx.avi -o NARUTO_xxx_LIGHT.avi -oac copy -ovc x264 -x264encopts pass=1:subq=5:frameref=6:me=3:bitrate=250:4x4mv:8x8dct:psnr:bframes=16:b_pyramid:qcomp=0.8:keyint=500:weight_b:scenecut=0:b_bias=25
et
mencoder NARUTO_xxx.avi -o NARUTO_xxx_LIGHT.avi -oac copy -ovc x264 -x264encopts pass=2:subq=5:frameref=6:me=3:bitrate=250:4x4mv:8x8dct:psnr:bframes=16:b_pyramid:qcomp=0.8:keyint=500:weight_b:scenecut=0:b_bias=25
Le Probleme est ; Il y a un decalage de son de 800 MS... Il y aurait-il une commande qui pourrai décaler le son?
Marsh Posté le 07-01-2006 à 10:53:47
Salut Tyranidex.
Quel est le codec son de ta video d'origine?
Marsh Posté le 07-01-2006 à 11:56:54
je n'en ai aucune idée... Mais je cherche un moyen de le réencoder en AAC ou un autre format de prennant pas de place
Marsh Posté le 07-01-2006 à 12:34:58
Essaye de la lire avec Mplayer et regarde la sortie console MS DOS
Marsh Posté le 07-01-2006 à 13:01:33
c'est du MP3 mais je pense avoir trouvé les lignes qu'il me manquait :
-delay 0.8
-oac ffac
Marsh Posté le 07-01-2006 à 15:42:02
Le h264 et le mp3 ne font pas bon ménage. Effectivement il serait mieux d'encoder en AAC...
.:EDIT:.
Ceci est une grosse bêtise
Le mp3 en VBR alors là c'est moins évident dans un AVI (mais faisable même si les spécifications de Microsoft ne donne que du CBR pour l'audio)
Marsh Posté le 18-01-2006 à 14:15:50
j'aimerai enregistrer uen video grace a la webcam
Pos: 0.0s 5116f ( 0%) 696fps Trem: 0min 0mb A-V:0.000 [0:0]
Flushing video frames
Ecriture de l'index AVI...
Correction de l'entête AVI...
ODML: Aspect information not (yet?) available or unspecified, not writing vprp header.
Flux vidéo: nan kbit/s (-2147483648 bps) taille: 0 octets 0.000 secs 5116 trames
j'ai lancé mencoder tv:// driver=v4l:width=352:height=288:device=/dev/video0 -o tv.avi -ovc lavc -lavcopts vcodec=mpeg4
Marsh Posté le 20-01-2006 à 19:33:07
Salut mardi_soir
Si tu essayes d'encoder avec le son (même s'il n'en a pas):
-oac copy
Qu'obtiens-tu?
Marsh Posté le 24-01-2006 à 12:15:48
Raskol a écrit : Salut mardi_soir |
merci bien pour ta reponse .
j'ai trouvé entre temps uen commande fonctionnelle
que j'ai indiqué sur ce topinc dont je fais alegrement la publicité sans honte aucune
http://forum.hardware.fr/forum2.ph [...] w=0&nojs=0
pour ceux qui rechignent a cliquer
Citation : |
Marsh Posté le 24-01-2006 à 12:17:41
enregistrer |
Marsh Posté le 08-03-2006 à 08:36:49
Bonjour mon PB est tout simple mais la solution l'est moins (en tous cas pour moi), un ami a moi veux mettre un dessin animé qu'il a réalisé et dont il a une copie, sur Internet, pour ca il me faut un avi, un mpeg ou un mov a donner a Flash...
comment extraire le son et l'image de ce vob, j'ai essayé plusieurs solutions automatisé mais tous me mettent des messages d'erreurs pour l'extraction du son...
Citation : |
sachant que je ferais le croppage, le redimensionnement et la compression dans Flash, il me faut juste un fichier mpg ou avi (non compressé) a importer...
Marsh Posté le 08-03-2006 à 08:58:45
j'ai éssayé ca qui me semblait le plus simple pour avoir un avi non compresse (le film fait 5 minutes et j'ai plusieurs giga disponible sur le disque) mais ca ne fonctionne pas...
Citation : |
je ne comprend pas l'erreur, pourquoi il cherche un fichier nommé frameno.avi ?
Marsh Posté le 10-03-2006 à 01:04:58
- tu peux ignorer le message concernant frameno.avi
- là l'erreur vient du -of sans paramètre
- je ne vois pas trop ce que tu entends par avi non compressé : jamais entendu parler
- Flash ?
Marsh Posté le 14-10-2005 à 20:07:39
MEncoder L'encodeur de folie
----------------------------
[TRUCS ET ASTUCES RAPIDES EN FIN DE POST]
Pourquoi vous n'aimerez pas Mencoder:
Pourquoi vous aimerez Mencoder (avec un peu d'entraînement):
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:
Audio:
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:
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:
...et beaucoup d'autres
Sans oublier des filtres audio originaux comme:
...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:
-oac mp3lame -lameopts
"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:
-ovc lavc -lavcopts
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