MeGUI

Celý natěšený že vyšel TS k jednomu nejmenovanému anime jsem se rozhodl, že ho stáhnu, jelikož nebyl moc velký. Asi jsem si to představoval jak Hurvínek válku. Stáhnu, enkódnu do přijatelné podoby, přeložím a upnu na web. Moje šťastná nálada vyprchal jak pára na hrncem hned po té, co mě doporučili program pro enkód se slovy, je to to nejlepší co používá většina a hlavně je to pro lamy. Tak jsem se v tom začal šťourat o trochu víc a víc a zjišťoval jsem, že ořezání videa a zvuku není tak lehké, jak se řekne. Po hodně dlouhých a úmorných hodinách sraní se s enkódem jsem se rozhodl, že navštívím na webu dalšího kámoše, který je v tom trochu víc zručný a díky jeho trpělivosti a mé bleskurychlé chápavosti, jsme dali vše do pořádku. Proto jsem se rozhodl, že všem nováčkům napíšu všeobecný návod, jak postupovat při enkódování videa.

Postup pro enkódování videa na Windows

0.A)
Základní myšlenka
Převést *.ts do *.mkv při video kodeku h264 nebo x264 a audio kodeku AAC nebo AC3.

0.B)
Co k tomu budeme potřeboval
MeGUI – Program pro převod videa a zvuku
MKVToolnix – Program pro vytváření a úpravu *.mkv kontejnerů
AviSynth – Program pro scriptování
AviSynth Plugins – Pluginy pro používání různých druhů filtrů
Nero AAC Codec – Kodek pro převod zvuku
Haali Splitter (gdsmux) – Program pro práci s *.ts a *.mkv kontejnerama.

1.A)
Prvně stáhneme AviSynth a naistalujeme ho. Potom stáhneme Pluginy pro AviSynth a rozbalený obsah zkopírujeme do instalačního adresáře. Standartně je použita adresa “C:Program FilesAviSynth 2.5” (nebo “C:Program Files (x86)AviSynth 2.5” pro x64bitové systémy).

1.B)
Potom stáhneme MeGUI. Rozbalíme archív a spustíme program MeGUI.exe. Necháme provést aktualizaci. Stáhneme úplně vše, co nám to nabídne. Počkáme, než co se aktualizace dokončí. Program necháme spuštěný a přistoupíme k dalšímu kroku.

1.C)
Nyní stáhneme Nero AAC Codec. Rozbalíme archív. V nově vzniklé složce vyhlédme složku s názvem “win” a obsah této složky zkopírujeme do adresáře MeGUI. V MeGUI dáme Options -> Settings -> External program settings -> a tady ve vybírací části přidáme do MeGUI Nero Codec.

1.D)
Stáhněte si a naistalujte si a naistalujte MKVToolnix. Sice MeGUI umí vytvořit kontejner pro *.mkv, ale nezdá se mě natolik pohodlný a nenabízí tolik možností jako MKVToolnix.

1.D
Haali Spliter se dodává většinou ve všech pacích s nějakými kodeky. Já používám K-lite pack, takže stačí vyhledat soubor s názvem “gdsmux.exe” a ten spustit. Sice se program špatně ovládá, ale to neřešme. Klikněte pravým tlačítkem na myši uvnitř programu a vyberte “Add atachment…”, v rozevíracím dialogu pak vyberte váš stažený *.ts soubor. Dole v programu pak nastavte output soubor a jako příponu zvolte *.mkv. Pak stačí kliknout na tlačítko start. Tímhle jsme akorát změnili kontejner z *.ts na *.mkv. Důvod je docela jednoduchý, ačkoliv MeGUI umí pracovat s *.ts soubory, tak ne tak rychle a obratně jako s *.mkv. (Ostatně na *.ts jsem měl 0,1fps při enkódu a na *.mkv 1fps.)

1.E)
A teď trochu programování. Ne nebojte, nic složitého to není. Vytvořte si soubor, který bude mít koncovku *.avs a do něj vložte tento kód:

#Načtení videa, je potřeba nejdříve zjistit zdrojové fps videa
DirectShowSource("D:A.mkv", fps=29.970, audio=true, convertfps=true)
#Nevím k čemu to je, ale je to důležité, potom dostanete jenom černý obraz
false
#Ořezání videa po stranách v pixelách - můžete odstranit, když nepotřebujete
crop( 2, 4, -4, -10)
#Ořezání videa, od určitého snímku po určitý snímek - můžete odstranit, když nepotřebujete
Trim(14070,20655)
#Velice důležité! Neodmazávat!
ConvertToYV12()
#Zmenšení videa na určitou velikost pro použití nejkvalitnějšího přepočtového algoritmu
BicubicResize(1280,720,0,0.5) # Bicubic (Neutral)
#Dodatečné filtry pro vyhlazení obrazu
animeivtc(aa=0, mode=1, precision=3, ifade=true)
AAA(1280,720,20,20,1,2,chroma=false)

1.EE)
V MeGUI pak tento script načteme do vybírací části AviSynth Script. Potom až se script načte upravíme výstup. Zvolíme kodek pro video, nejlépe x264. Pak vybereme Tools -> Biterate Calculator (nebo stisknutím kláves Ctr+B) a otevře se nám nové okno pro výpočet velikosti videa při určitém rozlišení a biteratu. Na nastavení biteratu u videa si někde přečtete pár článků jak nastavovat biterate. Pro 720p video použijte biterate 999kbit/s. A klikneme na tlačítko “Aply”. Pak následně v MeGUI, tam kde jsme vybírali *.avs script, klikneme na tlačítko “Enqueue”. Pak se přepneme na záložku “Queue” a dole na liště klikneme na tlačítko “Start”. A tím převedeme video. Doporučuju ve správci úloh nastavit proces pro převod videa jenom pro jedno jádro. Je úplně zbytečné vytěžovat všechny jádra, když tím vůbec neurychlíte výpočet pro převod videa, ba naopak můžete ho ještě snížit.

*Po pár hodinách enkódování a zkoušení nastavení optimálního biterate a velikosti videa…*

2.A)
Máme video, ale bez zvuku co stím?

Teď jde o to, jestli jste z videa vyřezávali část a nebo ho enkódovali celé. Pokud jste video enkódovali pouze celé tím, můžete přeskočit tuto následující část a vrhnout se k dalšímu kroku.

Máme dvě možnosti jak ořezat zvuk, buď jenom ořezat TS a nebo audio reenkódnout.

2.B)
Ořezání zvuku bez reenkódu

Stáhneme si program tsMuxerGUI. Ten otevřeme a v programu otevřeme náš stažený *.ts. a z něj pak následně vymuxujeme audio stream. Většinou bývá už v kodeku AAC, takže opravdu se nemusí znova reenkódovat. Nyní si vytvoříme nový soubor s koncovkou *.clt a do něj vložíme následující kód:


<?xml version="1.0"?>
<Cuts xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Framerate>29.970</Framerate>
<Style>NO_TRANSITION</Style>
<AllCuts>
<CutSection>
<startFrame>14070</startFrame>
<endFrame>20655</endFrame>
</CutSection>
</AllCuts>
</Cuts>

Upravíme FPS, počáteční frame a koncový frame, dle předchozího *.avs scriptu. V MeGUI dáme Tools -> Audio cuter (klávesová zkratka Ctrl+k). V něm vybereme vymuxované audio, *.clt soubor a nastavíme output. Pak už stačí kliknout na tlačítko “Create job” a v záložce Queue opět pustit akci pro převod zvuku. Během pěti sekund, by mělo být vše OK.

2.C)
Ořezání zvuku s reenkódem. – Mě to například nefunguje, ale kámošovi ano, asi záleží na konstelaci hvězd.

Vytvoříme si nový *.avs script a do něj vložíme tento kód:


#Načtení zvuku, musí se nastavit i FPS dle videa
DirectShowSource("D:A.aac", fps=29.970, audio=true, convertfps=false)
#Sekvence snímků pro ořezání zvuku
Trim(14070,20655)

V MeGUI jako Audio Input vybereme náš vytvořený *.avs script, vybere kodek a klikneme na tlačítko “Enqueue”. Vytvořenou úlohu můžete opět spustit.

2.D)
Celý zvuk bez reenkódu

Muxněte si audio stopu z *.ts souboru. Viz 2.B)

3.A)
Vytvoření *.mkv kontejneru, kde sjednotíme zvuk a video dohromady.

Spustíme program “mmg.exe” (ten najdeme v MKVToolnixu). Je tam jedno nazašedlé tlačítko “Add”, tak přes něj přidáme video a zvuk, každou stopu ještě upravíme. (Označíme jazyk pro stopu, pojmenujeme a nastavíme další harampádí, které potřebujete). Pak stačí už jenom vybrat “Output file” a kliknout na tlačítko “Start muxing”.

A výsledek celého našeho snažení si můžete prohlídnout v libovolném přehrávači videa.

Poznámky k návodu:
TS – Transport stream – Video odvysílané přímo z televize. Obvyklá velikost se pohybuje kolem 2,4GB na 23minut anime.
MKV – Matroska kontejner, víc snad ani není potřeba řešit.
Enkód/Enkódování – Převádění videa z jednoho kodeku do druhého kodeku.
AVS – Scriptovací soubor pro různé fičurky s videem, ořezání, vyhlazování, zmenšení, vytvoření hardsubu, atp.
CLT – XML soubor pro nastavení ořezání zvuku.

Tak a tohle je tak všeobecný postup, jak se naučit aspoň základy s enkódování videa. Určitě postupem času přijdete na lepší věci, ale je dobré se do začátku o něco opřít, jelikož česká podpora je nikde a každý komerční výrobce vám akorát nabízí ucelené programy, které nic neumí a když něco seženete na anglických fórech, tak to jsou jenom útržky. Sice tenhle návod, vypadá jako noční můra a říkáte si ruce od toho pryč, ale jen co do toho trochu proniknete, tak vám to ani tak nepřijde strašné, ba naopak velice zábavné a hned zjistíte, že by to šlo udělat daleko rychlým a jednoduchým způsobem.

9 odpovědí na “MeGUI”

  1. Asi ma budeš mať za blba ale mne to skrátka nejde… Skús mi to vysvetliť ako imbecilovy… Všetko nainštalované a porozbalované tam kám má. Problém žiadny. Chyba u mňa nastáva pri korku 1.D. O akom *.ts súbore sa to hovorí: Po bod “Add atachment…” som to spravil tak jak to má byť ale žiadny súbor *.ts nemám v PC. Čo sa týka bodu 1.E skopíroval som to celé ale keď som to načítal v MeGUI tak mi ukázal toto:
    Video returned: “DirectSchowSource: couldn’t open file D:\A.mkv: Systém nemôže nájsť zadaný súbor To isté z audiom.

  2. Vím, že ty potřebuješ jen reenkódnout video v mkv, tak přejdi už rovnou k bodu 1E a tom *.avs souboru je potřeba změnit cesta ke tvému videu. “D:\A.mkv” byl můj případ, ty budeš mít nejspíše jiný, tak musíš toto změnit, proto ti to hází chybu, že to nemůže nalést zdrojové video. Jednoduše v tom scriptu změníš cestu z “D:\A.mkv” na např.: “C:\CESTA_KE_SLOZCE_S_VIDEEM\NAZEV_VIDEA.mkv”

  3. Dobre, celé mi to dokopy trvalo pár minút aj keď pochybujem že mám super PC 😀 Nakoniec som dostal nové video z rovnakou veľkosťou a išlo normálne. Ale ešte otázočka, ako tam vložiť titulky?

  4. Použij bod 3A) Místo zvuku tam akorát vložíš video se zvukem a titulky. v Záložce Attachments můžeš přidat písmo.

  5. Ahoj,
    také jsme skončil u bodu 1E. Po vytvoření souboru .avs jsme si upravil fps. A při snaze načíst tento script do MeGui mě to hází hlášku “Could not open as video or audio” a u audia a videa mi to hlásí ” Renderfile the filter graph manager won´t talk to me”. Můžeš prosím vysvětlit kde dělám chybu……. Díky

  6. Pochybuju o tom, že na disku “D:” máš vytvořený soubor “A.mkv”, který chceš enkodovat… Viz komenty výše…

  7. nene já jsem si do skriptu již napsal cestu dle mého nastavení a to C:\A.mkv a přesto to hází tuto chybu? Do skriptu do prvního řádku jsem zadal cestu a fps a nejsem si jist zda mám ve skriptu jěště něco zadávat…..

  8. Zkus tam zadat jen tohle:
    DirectShowSource(“D:\A.mkv”, fps=29.970, audio=true, convertfps=true)
    false
    ConvertToYV12()

    Zkus to vyzkoušet na více různých videí, jelikož mě napadá jedna věc a to ta, že MeGUI nedokáže zdrojové video přečíst jako video. Nejspíše nepodporované kodeky.

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

This site uses Akismet to reduce spam. Learn how your comment data is processed.