2.4. Enkódolás a MEncoderrel

2.4.1. Bevezető

A MEncoder (MPlayer's Movie Encoder) egy egyszerű film enkóder, az MPlayer által lejátszható formátumok (AVI/DVD/VCD/VOB/MPG/MOV/VIV/FLI/RM/NUV/NET) más - MPlayerrel lejátszható - formátumokba kódolására. Jelenleg béta verzió, és csak DivX4 (1 vagy 2 menet) videoba, és PCM/MP3/VBRMP3 audioba tud kódolni. Rendelkezik továbbá stream másoló képességgel. A közeljövőben tervezzük vágó, átméretező filterek beépítését, és hasonlókat.

2.4.2. Fordítás

Kész. Mint minden bizonnyal tudod, más enkódolóknak szüksége van az avifile könyvtárra. A MEncoder-nek egyáltalán nincs.

2.4.3. MEncoder funkciók

Tervezett funkciók :

2.4.3.1. 2 menetes DivX4 enkódolása

Az elnevezés onnan jön, hogy ezzel a módszerrel a file kétszer lesz enkódolva. Az első menet néhány pár Mb-os ideiglenes (*.log) file-t hoz létre, amiket egyelőre nem szabad törölni (az AVI törölhető, ugyanolyan mintha -pass opciók nélkül keletkezett volna). A második menetben keletkezik a tényleges 2 menetes DivX, az ideiglenes file-ok adataiből. A keletkező file az egy menetesekhez képest sokkal jobb minőséggel és kisebb mérettel bír. Ha most hallassz erről először, jobb ha keresel a neten egy útmutatót.

A következő példa egy DVD 2 menetes DivX4 AVI-ba történő enkódolását mutatja be. Csak két parancs szükséges :
    mencoder -dvd 2 -ovc divx4 -oac mp3lame -divx4opts br=1100 -o movie.avi -pass 1
    mencoder -dvd 2 -ovc divx4 -oac mp3lame -divx4opts br=1100 -o movie.avi -pass 2

2.4.3.2. Átméretezés

Gyakran előjön a filmek átméretezésének igénye. Ennek oka sokféle lehet, például a fileméret csökkentése, vagy SVCD-ből DivX-be kódolás. A rippelt DVD-ket legtöbbször átméretezik (például egy 4:3-as DVD-t 640x480-ra), különösen akkor ha a cél az 1 CD-s méret és ezzel együtt a jó minőség is. Az SVCD-k képmérete 480x480, és a lejátszóprogramok az ezen fileok fejlécében található aspektusinformáció alapján számítják ki a megjelenítendő kép méretét (pl.: 480x480 + 4:3 = 640x480). Ezért AVI (DivX) file-okba történő kódolásnál figyelembe kell venni azt is, hogy az AVI file-ok ezen információ eltárolására nem képesek. Így az egyetlen megoldás az átméretezés.

A MEncoder képes nagyításra, ha a képeket YV12 formátumban kapja (azaz például az ffdivx, odivx meghajtókkal, vagy mpeg1/2-t). A kimeneti file képméretét az -x és -y opciókkal lehet megadni. Ezenkívül 3 féle átméretezőszűrő közül is lehet választani, 0 : gyors bilinear, 1 : bilinear, 2 : bicubic (ennek van a legjobb minősége). Ezt az -sws opcióval lehet megadni. Alapértelmezett a 0 : gyors bilinear.

Az átméretezés egyszerű :
    mencoder sample-svcd.mpg -divx4opts br=1300 -x 640 -y 480 -sws 2 -o output.avi

2.4.3.3. Stream másolása

A MEncoder kétféleképpen tudja a bemeneti stream-eket kezelni : enkódolja vagy csak átmásolja őket. Ez a rész a másolásról szól.

2.4.3.4. Hibás index-szel rendelkező AVI-k rendbehozása

Legkönnyebb dolog a világon. Egyszerűen átmásoljuk a video és audio streameket, és közben a MEncoder létrehozza a megfelelő indexet is. Ez persze nem tudja kijavítani az esetleges hibákat a video és/vagy audio stream-ekben.

A parancs : mencoder input.avi -ovc copy -oac copy -o output.avi

2.4.3.5. Enkódolás a libavcodec codec-ekkel

A libavcodec-kel egyszerűen lehet kódolni jónéhány érdekes video és audio formátumba (jelenleg az audio codec-ek nem támogatottak). A következő codec-ekkel lehet enkódolni :

Az első oszlopban felsorolt codec-eket kell átadni a vcodec opciónak, pl : -lavcopts vcodec=msmpeg4

2.4.4. Szintaxis

  mencoder [opciók] [bemeneti file] [opciók] ...

2.4.5. Opciók

Megj.: az összes rendelkezésre álló opcióhoz olvasd el a manpage-t !

   -o filenév    kimeneti filenév megadása
   -x szélesség pixelben    kimeneti video átméretezése megadott szélességre
   -y magasság pixelben    kimeneti video átméretezése megadott magasságúra
   -sws 0-2    átmérezetési módszer meghatározása
  0 - fast bilinear
  1 - bilinear
  2 - bicubic (legjobb minőség)
   -ovc codecnév    Enkódolás a megadott codec-kel (a codec nevek a codecs.conf-ból származnak). Példák :
  help - codecek listája
  copy - nincs enkódolás, csak stream másolás (most csak AVI/ASF-ből)
  divx4 - enkódolás DivX4-be
  lavc - enkódolás egy libavcodec-ben lévő codec-kel
   -oac codecnév    Enkódolás a megadott codec-kel (a codec nevek a codecs.conf-ból származnak). Példák :
  help - codecek listája
  copy - nincs enkódolás, csak stream másolás (most csak AVI/ASF-ből, és csak CBR audiot)
  pcm - tömörítetlen PCM
  mp3lame - MP3 enkódolás
   -divx4opts    Ha DivX4-be enkódolsz, itt megadhatod a paramétereket, pl :
  -divx4opts br=1800:deinterlace:key=250
Leghasznosabb opciók: (a teljes lista a manpage-ban található !)
  help - segíccség
  br=XXX - bitráta megadása kbit-ben <4-16000> vagy bitben <16001-24000000>
  q=XXXX - minőség (1-leggyorsabb, 5-legjobb - alapértelmezett)
  key=XXXX - keyframe-k közötti időintervallum
   -lavcopts    Ha egy libavcodec-es codec-kel enkódolsz, itt megadhatod a paramétereket, pl :
  -lavcopts vcodec=msmpeg4:vbitrate=1800:vhq:keyint=250
Leghasznosabb opciók: (a teljes lista a manpage-ban található !)
  help - segíccség
  vcodec=XXX - video codec kiválasztása (a teljes lista a fenti libavcodec bekezdésben megtalálható)
  vbitrate=XXX - bitráta megadása kbit-ben <4-16000> vagy bitben <16001-24000000>
  vhq - legjobb minőség (?)
  keyint=XXX - keyframe-k közötti időintervallum
   -lameopts    Ha MP3-ba kódolsz, itt adhatod meg a paramétereket, pl :
  -lameopts q=3
  -lameopts br=192:cbr
Leghasznosabb opciók: (a teljes lista a manpage-ban található !)
  help - törpítség
  cbr - CBR-es MP3 kiválasztása (az alapértelmezett a VBR)
  br=XXX - bitráta megadása kbit-ben <0-1024> (csak CBR-nél!)
  q=XXXX - minőség (0-legjobb, 9-leggyorsabb) (csak VBR-nél!)

2.4.6. Példák

A MEncoder használata a legkönnyebb dolog a Földön.

A DVD 2-es fejezetének enkódolása :
    mencoder -dvd 2 -o title2.avi

Ugyanez libavcodec-kel, MJPEG tömörítéssel :
    mencoder -dvd 2 -o title2.avi -ovc lavc -lavcopts vcodec=mjpeg -ffourcc mjpg

A DVD 2-es fejezetének enkódolása, átméretezéssel :
    mencoder -dvd 2 -x 640 -y 480 -sws 2 -o title2.avi

Enkódolás HTTP-ről :
    mencoder http://mplayer.hq/example.avi -o example.avi

Enkódolás standard bemenetről :
    rar p test-SVCD.rar | mencoder -divx4opts br=800 -ofps 24 -pass 1 -- -

Több VOB file enkódolása :
    cat *.vob | mencoder <options> -

Enkódolás tuner-ről (a tuner opciók a TV input fejezetben találhatóak) :
    mencoder -tv on:driver=v4l:width=640:height=480 <options>

Az összes opció listájához lásd a MEncoder manpage-t !