# Základní použití MEncoderu

Úplný seznam dostupných voleb a příkladů pro MEncoder naleznete v man stránce. Řadu užitečných příkladů a podrobných návodů pro použití mnoha enkódovacích voleb naleznete v tipech pro enkódování, které byly získány z několika diskusí v konferenci MPlayer-users. Prohledejte archivy zde, hlavně pro starší věci a také zde chcete-li bohatost diskusí o všech aspektech a problémech vztažených k enkódování MEncoderem.

## Výběr kodeků a nosných formátů

Audio a video kodeky pro enkódování jsou vybírány příslušnými volbami `-oac` a `-ovc`. Napište například:

    mencoder -ovc help

pro seznam video kodeků podporovaných verzí programu MEncoder na vašem počítači. Dostupné jsou následující možnosti:

Audio (zvukové) kodeky:

Jméno audio kodeku | Popis
--- | ---
mp3lame | Enkóduje do VBR, ABR nebo CBR MP3 pomocí LAME
lavc | Použije se některý z libavcodec audio kodeků
faac | FAAC AAC audio enkodér
toolame | Enkodér MPEG Audio Layer 2
twolame | Enkodér MPEG Audio Layer 2 založený na tooLAME
pcm | Nekomprimovaný PCM zvuk
copy | Nereenkóduje, pouze kopíruje komprimované vzorky

Video kodeky:

Jméno video kodeku | Popis
--- | ---
lavc | Použije se některý z libavcodec video kodeků
xvid | XviD, MPEG-4 Advanced Simple Profile (ASP) kodek
x264 | x264, MPEG-4 Advanced Video Coding (AVC), alias H.264 kodek
nuv | nuppel video, používaný některými realtime aplikacemi
raw | Nekomprimované videosnímky
copy | Nereenkóduje, pouze kopíruje komprimované snímky
frameno | Použité pro 3-průchodové enkódování (nedoporučujeme)

Výstupní nosný formát je vybírán volbou `-of`. Zadejte:

    mencoder -of help

pro seznam všech nosných formátů podporovaných verzí MEncoderu na vašem počítači. Dostupné jsou následující možnosti:

Nosné formáty:

Název nosného formátu | Popis
--- | ---
lavf | Jeden z nosných formátů podporovaných libavformat
avi | Audio-Video Interleaved (Prokládané audio s videem)
mpeg | MPEG-1 a MPEG-2 PS
rawvideo | surový (raw) video datový proud (žádný muxing – pouze jeden video proud)
rawaudio | surový (raw) audio datový proud (žádný muxing – pouze jeden audio proud)

Nosný formát AVI je nativním nosným formátem MEncoderu, což znamená, že je tím, který je nejlépe zpracován a pro nějž byl MEncoder navržen. Jak bylo zmíněno, ostatní nosné formáty jsou použitelné, ale můžete při jejich použití narazit na problémy.

Nosné formáty libavformat:

Pokud jste si zvolili libavformat pro provádění muxování výstupního souboru (pomocí `-of lavf`), příslušný nosný formát bude určen z přípony výstupního souboru. Můžete vynutit určitý nosný formát pomocí parametru `format` knihovny libavformat.

Název libavformat nosného formátu | Popis
--- | ---
mpg | MPEG-1 a MPEG-2 PS
asf | Advanced Streaming Format
avi | Audio-Video Interleaved
wav | Waveform Audio
swf | Macromedia Flash
flv | Macromedia Flash video
rm | RealMedia
au | SUN AU
nut | otevřený nosný formát NUT (experimentální a dosud neslučitelný se specifikací)
mov | QuickTime
mp4 | formát MPEG-4
dv | Sony Digital Video
mkv | Otevřený nosný audio/video formát Matroska

Jak vidíte, libavformat umožňuje MEncoderu muxovat do velkého množství nosných formátů. Naneštěstí, jelikož MEncoder nebyl od počátku navržen pro podporu jiných nosných formátů než AVI, měli byste být paranoidní ve vztahu k výstupnímu souboru. Ověřte si prosím pro jistotu, že audio/video synchronizace je OK a soubor lze správně přehrát i jinými přehrávači, než MPlayer.

Enkódování do formátu Macromedia Flash

Vytvoření Macromedia Flash videa vhodného pro přehrávání ve webovém prohlížeči pomocí Macromedia Flash pluginu:

    mencoder vstupní.avi -o výstupní.flv -of lavf \
        -oac mp3lame -lameopts abr:br=56 -srate 22050 -ovc lavc \
        -lavcopts vcodec=flv:vbitrate=500:mbd=2:mv0:trell:v4mv:cbp:last_pred=3

## Výběr vstupního souboru nebo zařízení

MEncoder umí enkódovat ze souborů nebo přímo z DVD či VCD disku. Vložte na příkazovém řádku jméno souboru pro enkódování souboru, nebo `dvd://`číslo_titulu nebo `vcd://`číslo_stopy pro enkódování DVD titulu či VCD stopy. Máte-li již zkopírováno DVD na hard disk (k tomu můžete použít nástroj jako dvdbackup, dostupný na mnoha systémech), a chcete enkódovat z kopie, měli byste i zde použít syntaxi `dvd://` ve spojení s volbou `-dvd-device` následovanou cestou do kořenového adresáře skopírovaného DVD. Volby `-dvd-device` a `-cdrom-device` lze rovněž použít k přenastavení cest k souborům zařízení pro přímé čtení disků, pokud výchozí `/dev/dvd` a `/dev/cdrom` na vašem systému nepracují.

Enkódujete-li z DVD, je často vhodné vybrat kapitolu nebo rozsah kapitol k enkódování. Pro tento účel můžete použít volbu `-chapter`. Například s volbou `-chapter` 1-4 se budou z DVD enkódovat pouze kapitoly 1 až 4. To se zvlášť hodí, pokud budete enkódovat film na velikost 1400 MB určený pro dvě CD, jelikož budete mít jistotu, že zlom nastane přesně na hranici kapitol místo uprostřed scény.

Pokud máte podporovanou TV zachytávací kartu, můžete rovněž enkódovat ze zařízení TV vstupu. Použijte `tv://`číslo_kanálu jako jméno souboru a volbu `-tv` pro konfiguraci různých nastavení zachytávání. Vstup z DVB pracuje obdobně.

## Dvouprůchodové enkódování MPEG-4 ("DivX")

Název vychází z faktu, že soubor je enkódován dvakrát. První enkódování (dubbed pass) vytvoří dočasné soubory (`*.log`) velikosti několika megabajtů, které zatím nemažte (můžete smazat AVI, nebo raději žádné nevytvářejte a přesměrujte je do `/dev/null`). Ve druhém průchodu je vytvořen dvouprůchodový výstupní soubor s použitím řízení datového toku z dočasných souborů. Výsledný soubor bude mít lepší kvalitu obrazu. Pokud jste o tom teď slyšeli poprvé, měli byste si prostudovat některé návody dostupné na netu.

Kopírování zvukové stopy

Dvouprůchodové enkódování druhé stopy z DVD do MPEG-4 ("DivX") AVI zatímco se zvuk pouze zkopíruje.

    mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 -oac copy -o /dev/null
    mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell:vpass=2 \
        -oac copy -o výstup.avi

Enkódování zvukové stopy

Dvouprůchodové enkódování DVD do MPEG-4 ("DivX") AVI a současně enkódování zvukové stopy do MP3. Při této metodě buďte opatrní, jelikož v některých případech může vést k rozjetí zvuku s videem.

    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 výstup.avi

## Enkódovánído video formátu Sony PSP

MEncoder podporuje enkódování do Sony PSP video formátu, ale mohou se lišit, v závislosti na revizi PSP softwaru, s tím spojená omezení. Budete-li respektovat následující omezení, neměli byste narazit na potíže:

- Datový tok: by neměl překročit 1500kbps, ale poslední verze podporovaly prakticky jakýkoli datový tok pokud hlavička tvrdí, že není příliš vysoký.

- Rozměry: šířka a výška PSP videa by měly být násobky 16 a výsledek šířka * výška musí být <= 64000. Za určitých okolností může být možné, aby PSP hrál i ve vyšším rozlišení.

- Audio: jeho vzorkovací kmitočet by měl být 24kHz pro videa MPEG-4 a 48kHz pro H.264.

Enkódování do PSP

    mencoder -ofps 30000/1001 -af lavcresample=24000 -vf harddup -oac lavc \
        -ovc lavc -lavcopts aglobal=1:vglobal=1:vcodec=mpeg4:acodec=libfaac \
        -of lavf -lavfopts format=psp \
        vstupní.video -o výstupní.psp

Poznamenejme, že můžete nastavit jméno videa pomocí `-info name=JménoFilmu`.

## Enkódování do MPEG formátu

MEncoder umí vytvořit výstupní soubor formátu MPEG (MPEG-PS). Pokud používáte MPEG-1 nebo MPEG-2 video, obvykle je to proto, že enkódujete pro omezený formát jako je SVCD, VCD nebo DVD. Konkrétní požadavky těchto formátů jsou objasněny v sekci návod pro vytvoření VCD a DVD.

Výstupní souborový formát MEncoderu změníte použitím volby `-of mpeg`.

Příklad:

    mencoder vstupní.avi -of mpeg -ovc lavc -lavcopts vcodec=mpeg1video \
        -oac copy ostatní_volby -o výstupní.mpg

Vytvoření MPEG-1 souboru vhodného pro přehrávání na systémech s minimální podporou multimédií, jako je výchozí instalace Windows:

    mencoder vstupní.avi -of mpeg -mpegopts format=mpeg1:tsaf:muxrate=2000 \
        -o výstupní.mpg -oac lavc -lavcopts acodec=mp2:abitrate=224 -ovc lavc \
        -lavcopts vcodec=mpeg1video:vbitrate=1152:keyint=15:mbd=2:aspect=4/3

To samé, ale použijeme libavformat MPEG muxer:

    mencoder vstupní.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

Tip:

Pokud vás z nějakého důvodu neuspokojí kvalita videa z druhého průchodu, můžete znovu spustit enkódování videa s jiným cílovým datovým tokem, s tím, že máte uložen soubor se statistikami z předchozího průchodu. To je možné proto, že cílem statistického souboru je především zaznamenat komplexitu každého snímku, která příliš nezávisí na datovém toku. Povšimněte si, že ačkoli nejvyšší kvality dosáhnete pokud všechny průchody poběží při stejném datovém toku, tak se výsledek příliš neliší.

## Škálování (změna velikosti) filmů

Často potřebujeme změnit velikost obrázků ve filmu a to z mnoha důvodů: zmenšení souboru, zátěže sítě atd. Mnoho lidí dokonce mění velikost při převodu DVD nebo SVCD do DivX AVI. Pokud si přejete video přeškálovat, přečtěte si sekci Zachování poměru stran.

Samotný proces škálování je prováděn video filtrem `scale`: `-vf scale=šířka:výška`. Jeho kvalita může být nastavena volbou `-sws`. Pokud ji neuvedete, MEncoder použije 2: bikubickou.

Použití:

    mencoder vstup.mpg -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell \
        -vf scale=640:480 -o výstup.avi

## Proudové kopírování

MEncoder může zpracovat vstupní datové proudy dvěma způsoby: enkóduje je, nebo je kopíruje. Tato část je o kopírování.

- Video proud (volba `-ovc copy`): můžete dělat pěkné věci :) Jako umístění (nikoli konverze!) FLI nebo VIVO nebo MPEG-1 videa do AVI souboru! Samozřejmě takové soubory přehraje pouze MPlayer :) A proto to nejspíš nemá žádnou rozumnou hodnotu. A teď vážně: kopírování video proudu může být užitečné například tehdy, když má být enkódován pouze zvuk (např. nekomprimovaný PCM do MP3).

- Audio proud (volba `-oac copy`): jednoduché. Je možné vzít externí zvukový soubor (MP3, WAV) a namultiplexovat jej do výstupního proudu. K tomu použijte volbu `-audiofile soubor`.

Použití `-oac copy` pro kopírování z jednoho nosného fomátu do jiného může vyžadovat použití `-fafmttag` pro zachování příznaku formátu zvuku původního souboru. Například pokud konvertujete NSV soubor s AAC zvukem do nosného formátu AVI, bude příznak formátu zvuku nesprávný a bude jej nutno změnit. Seznam příznaků audio formátu naleznete v souboru `codecs.conf`.

Příklad:

    mencoder vstupní.nsv -oac copy -fafmttag 0x706D \
        -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell -o výstupní.avi

## Enkódování z množství vstupních obrázkových souborů (JPEG, PNG, TGA, atd.)

MEncoder je schopen vytvořit film z jednoho nebo více JPEG, PNG nebo TGA souborů. Pomocí jednoduchého snímkového kopírování může vytvořit MJPEG (Motion JPEG), MPNG (Motion PNG) nebo MTGA (Motion TGA) soubory.

Vysvětlení procesu:

1. MEncoder dekóduje vstupní soubor(y) pomocí knihovny libjpeg (když dekóduje PNG, použije libpng).

2. Potom MEncoder nakrmí dekódovaný snímek do zvoleného video kompresoru (DivX4, Xvid, FFmpeg msmpeg4, atd.).

Příklady

Vysvětlení volby `-mf` je v man stránce.

Vytvoření MPEG-4 souboru ze všech JPEG souborů v aktuálním adresáři:

    mencoder mf://*.jpg -mf w=800:h=600:fps=25:type=jpg -ovc lavc \
        -lavcopts vcodec=mpeg4:mbd=2:trell -oac copy -o výstup.avi

Vytvoření MPEG-4 souboru z některých JPEG souborů v aktuálním adresáři:

    mencoder mf://snímek001.jpg,snímek002.jpg -mf w=800:h=600:fps=25:type=jpg \
        -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell -oac copy -o výstup.avi

Vytvoření MPEG-4 souboru ze seznamu vyjmenovaných JPEG souborů (seznam.txt v aktuálním adresáři obsahuje seznam souborů k použití jako zdroj, každý soubor na samostatném řádku):

    mencoder mf://@seznam.txt -mf w=800:h=600:fps=25:type=jpg \
        -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell -oac copy -o výstup.avi

Můžete kombinovat různé typy, bez ohledu na metodu, kterou používáte – individuální jména souborů, žolíky nebo soubor se seznamem – přičemž musí mít přirozeně stejné rozměry. Takže můžete např. vzít úvodní snímek z PNG souboru a pak vložit slideshow z JPEG fotek.

Vytvoření Motion JPEG (MJPEG) souboru ze všech JPEG souborů v aktuálním adresáři:

    mencoder mf://*.jpg -mf w=800:h=600:fps=25:type=jpg -ovc copy -oac copy -o výstup.avi

Vytvoření nekomprimovaného souboru ze všech PNG souborů v aktuálním adresáři:

    mencoder mf://*.png -mf w=800:h=600:fps=25:type=png -ovc raw -oac copy -o výstup.avi

Šířka musí být celé číslo násobek 4, to je dáno omezením RAW RGB AVI formátu.

Vytvoření Motion PNG (MPNG) souboru ze všech PNG souborů v aktuálním adresáři:

    mencoder mf://*.png -mf w=800:h=600:fps=25:type=png -ovc copy -oac copy -o výstup.avi

Vytvoření Motion TGA (MTGA) souboru ze všech TGA souborů v aktuálním adresáři:

    mencoder mf://*.tga -mf w=800:h=600:fps=25:type=tga -ovc copy -oac copy -o výstup.avi

## Extrakce DVD titulků do VOBsub souboru

MEncoder je schopen vyextrahovat titulky z DVD do VOBsub formátovaných souborů. Ty sestávají ze dvou souborů zakončených `.idx` a `.sub` a jsou obvykle zabaleny v jediném `.rar` archivu. MPlayer je umí přehrávat s pomocí voleb `-vobsub` a `-vobsubid`.

Zadejte základní jméno (čili bez přípony `.idx` nebo `.sub`) výstupních souborů pomocí volby `-vobsubout` a index pro tyto titulky ve zbývajících souborech pomocí `-vobsuboutindex`.

Pokud není vstup z DVD, měli byste použít `-ifo` pro indikaci `.ifo` souboru nutného k vytvoření výsledného `.idx` souboru.

Pokud vstup není z DVD a nemáte `.ifo` soubor, budete muset použít volbu `-vobsubid` k nastavení, pro které id jazyka se má vytvořit `.idx` soubor.

Každým spuštěním se přidají běžící titulky pokud soubory `.idx` a `.sub` již existují. Takže byste je měli všechny odstranit dříve než začnete.

Kopírování dvojích titulků z DVD během dvouprůchodového enkódování

    rm titulky.idx titulky.sub
    mencoder dvd://1 -oac copy -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 \
        -vobsubout titulky -vobsuboutindex 0 -sid 2
    mencoder dvd://1 -oac copy -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell:vpass=2 \
        -vobsubout titulky -vobsuboutindex 1 -sid 5

Kopírování francouzských titulků z MPEG souboru

    rm titulky.idx titulky.sub
    mencoder movie.mpg -ifo movie.ifo -vobsubout titulky -vobsuboutindex 0 \
        -vobsuboutid fr -sid 1 -nosound -ovc copy

## Zachování poměru stran

DVD a SVCD (čili MPEG-1/2) soubory obsahují hodnotu poměru stran, popisující, jak by měl přehrávač škálovat video proud, takže lidé nebudou mít šišaté hlavy (př.: 480x480 + 4:3 = 640x480). Pokud ovšem enkódujeme do AVI (DivX) souborů, mějte na paměti, že AVI hlavičky neukládají tuto hodnotu. Přeškálování videa je odporné a časově náročné, takže musí být lepší způsob!

A zde jej máte

MPEG-4 má unikátní vlastnost: video proud může obsahovat svůj požadovaný poměr stran. Ano, přesně jako MPEG-1/2 (DVD, SVCD) a H.263 soubory. Naneštěstí kromě MPlayeru jen málo video přehrávačů podporuje tento atribut MPEG-4.

Tato vlastnost může být použita pouze s kodekem mpeg4 z libavcodecu. Mějte na paměti: ačkoli MPlayer korektně přehraje vytvořený soubor, ostatní přehrávače použijí špatný poměr stran.

Opravdu byste měli oříznout černé okraje nad a pod filmem. Nastudujte si použití filtrů cropdetect a crop v man stránce.

Použití

    mencoder sample-svcd.mpg -vf crop=714:548:0:14 -oac copy -ovc lavc \
        -lavcopts vcodec=mpeg4:mbd=2:trell:autoaspect -o output.avi