Internet Info, s.r.o. Lupa Měšec Podnikatel Root Zdroják DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

MPlayer a MEncoder: enkódujeme

V předchozích dílech jsme se naučili používat MPlayer i MEncoder a zvykli jsme si na jejich parametry. Dnes si ukážeme další podstatnou funkci - enkódování videa.

Tweetni to Twitter Jaggni to! Jagg Del.icio.us Delicious

V minulém díle jsme nahrávali obraz i zvuk z televize. Výsledkem je ovšem ohromný soubor ve formátu mjpeg. Pokud chceme video uchovat pro další generace, musíme se postarat o jeho převod do rozumného formátu. Pravděpodobně nejpoužívanějším formátem současné doby je MPEG-4.

Na začátku je vhodné vysvětlit některé pojmy, které jsou velmi často chybně vykládány, a to překvapivě i velkými společnostmi.

MPEG-4 je video formát, který v roce 1998 vytvořila skupina Moving Picture Experts Group. Zdědil některé vlastnosti starších sourozenců MPEG-1 a MPEG-2 a navíc přidává řadu vlastních funkcí, které zvyšují kvalitu obrazu při stejném datovém toku. Samotné implementace jsou ponechány na jednotlivých vývojářích.

DivX je komerční kodek, který implementuje formát MPEG-4 a jeho okleštěná verze je k dispozici pro některé systémy zdarma. Pro Linux není k dispozici.

XviD je další implementací MPEG-4, na rozdíl od DivX se jedná o open source.

Implementací MPEG-4 je samozřejmě mnohem více a MPlayer obvykle využívá knihovnu libavcodec. Každopádně všechny filmy, které máte na CD, jsou v MPEG-4, ačkoliv se někdy (velmi často) chybně uvádí, že jsou v DivX. Formát DivX neexistuje.

Posledním pojmem, který si vysvětlíme, je AVI. Nejedná se o konkrétní formát, ale pouze o jakýsi kontejner, který obsahuje audio a video proudy, které je možno přehrávat zároveň. Vytvořil jej Microsoft v roce 1992. Může obsahovat audiovizuální data v libovolném formátu a samotný kontejner AVI o svém obsahu nijak nevypovídá. AVI je tedy jen pouhý nosič.

Nyní se pustíme do samotného enkódování. Předpokládám, že máme co enkódovat. Buď jsme získali vstupní data ze zmíněné televize, nebo máme DVD, ze kterého si uděláme napodobeninu pro vlastní potřebu.

Samotný proces si rozdělíme na tři kroky. V prvním enkódujeme audio a v dalších dvou video. Dvouprůchodové enkódování má mnoho výhod. Jednak přesně zjistíme, jaký datový tok budeme potřebovat, aby se nám výsledek vešel na požadované médium (pravděpodobně CD), ale také necháme MEncoder, aby si film předem osahal a zjistil, pro které scény bude potřeba větší tok a kde je možno naopak nějaký ten kilobit ušetřit. Výsledkem je pak lepší rozložení kvality.

Nevýhodou dvou průchodů je delší doba, kterou budeme ke zpracování potřebovat. Při dnešních výkonech, které počítače nabízejí, se ovšem nemusíme bát nějakých drastických časů.

MEncoder řeší ukládání dat, která získává v průběhu své práce tak, že si zakládá dočasné soubory, ve kterých jsou uchovány už vytvořené části. Můžete hotovou práci kontrolovat tak, že si obsah vytvářených dočasných souborů přehrajete. Zjiste tak například, jestli je zvuk dostatečně kvalitní a jestli je vše tak, jak jste si přáli.

Nejprve tedy přijde na řadu audio. Toto je nejrychlejší část, která nezabere příliš času a nedá se na ní ani moc zkazit. Předpokládejme, že máme soubor s názvem video.mjpeg, který budeme enkódovat. Pro práci s DVD bychom uvedli jako zdroj dvd://, případně bychom mohli doplnit číslo titulu. Obdobně můžeme jako zdroj určit televizní kartu a enkódovat rovnou, ale na to asi nebudeme mít dost výkonu. Proto jsme posledně použili mjpeg, který není tak náročný.

$ mencoder video.mjpeg -ovc frameno -oac mp3lame -lameopts abr:br=128:aq=0:mode=1 -o frameno.avi 

V tomto případě necháme zvuk enkódovat pomocí známého kodeku Lame a nastavíme proměnlivý tok tak, aby se pohyboval kolem 128 kbit. Zvuk tvoří jen malou část výsledného filmu, takže není potřeba se jím nějak moc zabývat. Samozřejmě, pokud si enkódujete záznam koncertu, asi budete chtít vyšší kvalitu. Výsledkem je zvuk v běžné MP3, takže můžete vyjít ze zkušeností s tímto formátem.

Výsledek je uložen do souboru frameno.avi, který ovšem pochopitelně v této fázi neobsahuje žádný obraz. Jak jsem řekl, můžete v tuto chvíli zjistit, zda vám kvalita vyhovuje.

Po provedení této fáze se navíc objeví tabulka toků, které MEncoder pro toto video doporučí. Vztahují se ke kapacitám médií, na která budeme výsledný film umisťovat. Doporučuji pro jistotu nastavit nižší hodnotu, abyste nebyli výsledkem překvapeni. Jedná se jen o přibližný odhad.

Nyní se vrhneme na první průchod videa:

$ mencoder video.mjpeg -ovc lavc lavcopts vcodec=mpeg4:vbitrate=650:v4mv:vhq=4:vpass=1 -oac copy -o vystup.avi 

Použijeme zmíněnou implementaci MPEG-4 v podobně libavcodec, zkráceně lavc. Zadáme, že se bude jednat o formát mpeg4 a že probíhá první průchod ( vpass=1). Zvuk jen zkopírujeme ( -oac copy) a výsledek sypeme do vystup.avi.

Pochopitelně můžeme doplnit další volby jako filtry, ořez, změnu poměru a další. To už ale nechám na vás a na vašich potřebách.

MEncoder si v této fázi film prohlédne a označí si jednotlivé scény podle náročnosti na tok. Potřebné údaje si uloží do souboru divx2pass.log. Z něj bude číst při dalším průchodu.

$ mencoder video.mjpeg -ovc lavc lavcopts vcodec=mpeg4:vbitrate=650:v4mv:vhq=4:vpass=2 -oac copy -o vystup.avi 

Jedinou změnou je v tomto případě úprava parametru vpass=1 na vpass=2. MEncoder použije data z logu a začne samotné přežvýkání filmu na kýžený výsledek. Ten je po dokončení akce uložen v souboru vystup.avi, který obsahuje jak video, tak audio část a měl by normálně hrát.

davame_internetu_obsah
       

Pokud si nejste jisti některými parametry a nechcete čekat na výsledek dlouho, můžete si vyzkoušet enkódování jen na části videa. Použijte k tomu parametry -ss 00:12:34 a -endpos 00:14:20. Získáte tak pár desítek sekund výsledného videa, které bude hotové za chvíli a vy si můžete ověřit, že jsou zvolené parametry správné.

Happy encoding!

Petr Krčmář

Petr Krčmář

Petr Krčmář pracuje jako šéfredaktor serveru Root.cz. Vystudoval elektroniku se zaměřením na počítačové systémy, nyní se zabývá médii, především těmi elektronickými.

Školení: Hackujeme operační systém Android

 

Školení vám ukáže, jak se dostat k Linuxu (tzv. "rootování"), který se pod hezkou tváří Androida skrývá a jak ho naplno využít. Pomůže vám to při záloze dat, zvětšování prostoru pro aplikace nebo sdílení připojení k internetu a pokud chcete z telefonu dostat opravdové maximum, ukážeme vám, jak v něm vyměnit kompletní systém za lepší.

Podrobnější informace a přihláška

Ohodnoťte jako ve škole:
Průměrná známka 3,03

Přehled názorů

ac3 stopa u DVD
neldor 29. 12. 2005 00:52
Nový
├ 
Re: ac3 stopa u DVD
Lampa 29. 12. 2005 08:01
Nový
└ 
Re: ac3 stopa u DVD
Dr. 8. 12. 2006 09:16
Nový
 
└ 
Re: ac3 stopa u DVD
Pavel 14. 9. 2008 02:41
Nový
Formáty
Jakub 29. 12. 2005 08:01
Nový
└ 
Re: Formáty
petr andrs 29. 12. 2005 17:16
Nový
 
├ 
Re: Formáty
zcela jiny Jakub 29. 12. 2005 20:36
Nový
 
│
└ 
Re: Formáty
Jakub 29. 12. 2005 21:54
Nový
 
│
 
└ 
Re: Formáty
petr andrs 30. 12. 2005 15:47
Nový
 
│
 
 
└ 
Re: Formáty
Ctirad 30. 12. 2005 18:22
Nový
 
│
 
 
 
└ 
Re: Formáty
Petr Andrš 1. 1. 2006 04:26
Nový
 
│
 
 
 
 
└ 
Re: Formáty
Jakub 1. 1. 2006 21:34
Nový
 
│
 
 
 
 
 
└ 
Re: Formáty
anonymní uživatel 3. 1. 2006 18:01
Nový
 
│
 
 
 
 
 
 
└ 
Re: Formáty
Jakub 3. 1. 2006 21:41
Nový
 
└ 
Re: Formáty
Ge Bu 2. 1. 2006 10:53
Nový
Zastaralé volby
Jakub 29. 12. 2005 08:26
Nový
├ 
Re: Zastaralé volby
Jakub 29. 12. 2005 08:30
Nový
│
└ 
Re: Zastaralé volby
pjoter 29. 12. 2005 09:57
Nový
├ 
Re: Zastaralé volby
Ondřej Válek 29. 12. 2005 11:16
Nový
│
└ 
Re: Zastaralé volby
HKMaly 7. 1. 2006 21:48
Nový
├ 
Re: Zastaralé volby
Jet Pac 30. 12. 2005 17:26
Nový
│
└ 
Re: Zastaralé volby
Jakub 31. 12. 2005 01:23
Nový
└ 
Re: Zastaralé volby
HKMaly 7. 1. 2006 21:50
Nový
 
└ 
Re: Zastaralé volby
Jakub 8. 1. 2006 13:42
Nový
Filtry
Jakub 29. 12. 2005 08:43
Nový
└ 
Re: Filtry
Jakub 29. 12. 2005 08:49
Nový
 
└ 
Re: Filtry
CIJOML CIJOMLovic CIJOMLov 29. 12. 2005 10:39
Nový
 
 
└ 
Re: Filtry
Jakub 29. 12. 2005 22:05
Nový
 
 
 
└ 
Re: Filtry
anonymní uživatel 30. 12. 2005 11:20
Nový
 
 
 
 
└ 
Re: Filtry
Jakub 30. 12. 2005 13:32
Nový
 
 
 
 
 
├ 
Re: Filtry
Jakub 30. 12. 2005 13:52
Nový
 
 
 
 
 
├ 
Re: Filtry
Jakub 31. 12. 2005 01:49
Nový
 
 
 
 
 
└ 
Re: Filtry
ivan 31. 12. 2005 02:08
Nový
 
 
 
 
 
 
└ 
Re: Filtry
ivan 31. 12. 2005 02:09
Nový
Zavadejici informace
ldx 29. 12. 2005 11:45
Nový
└ 
Re: Zavadejici informace
Jakub 29. 12. 2005 22:25
Nový
 
├ 
Re: Zavadejici informace
xSpiky 30. 12. 2005 07:55
Nový
 
├ 
Re: Zavadejici informace
xSpiky 30. 12. 2005 08:21
Nový
 
└ 
Re: Zavadejici informace
ldx 31. 12. 2005 21:06
Nový
 
 
└ 
Re: Zavadejici informace
Jakub 1. 1. 2006 01:13
Nový
 
 
 
└ 
Re: Zavadejici informace
ldx 12. 1. 2006 09:41
Nový
 
 
 
 
└ 
Re: Zavadejici informace
Jakub 12. 1. 2006 15:14
Nový
 
 
 
 
 
└ 
Re: Zavadejici informace
ldx 14. 1. 2006 21:14
Nový
 
 
 
 
 
 
└ 
Re: Zavadejici informace
Jakub 14. 1. 2006 23:45
Nový
 
 
 
 
 
 
 
└ 
Re: Zavadejici informace
hanus 22. 12. 2006 11:38
Nový
2nd pass samostatne
romario 30. 12. 2005 15:23
Nový
└ 
Re: 2nd pass samostatne
Jakub 31. 12. 2005 01:37
Nový
mencoder v.s. cat
ivan 31. 12. 2005 02:29
Nový
└ 
Re: mencoder v.s. cat
Jakub 1. 1. 2006 01:20
Nový
 
├ 
Re: mencoder v.s. cat
ivan 1. 1. 2006 15:23
Nový
 
├ 
Re: mencoder v.s. cat
ivan 1. 1. 2006 15:29
Nový
 
└ 
Re: mencoder v.s. cat
ivan 1. 1. 2006 15:43
Nový
Kulura prekladu = nula
els 31. 12. 2005 11:07
Nový
└ 
Re: Kulura prekladu = nula
anonymní uživatel 1. 1. 2006 02:27
Nový
 
└ 
Re: Kulura prekladu = nula
Jakub 1. 1. 2006 21:54
Nový
 
 
├ 
Re: Kulura prekladu = nula
anonymní uživatel 2. 1. 2006 01:29
Nový
 
 
│
├ 
Re: Kulura prekladu = nula
Jakub 2. 1. 2006 01:39
Nový
 
 
│
└ 
Re: Kulura prekladu = nula
Milda 2. 1. 2006 11:49
Nový
 
 
└ 
Re: Kulura prekladu = nula
bobr 29. 1. 2008 01:27
Nový
nelibi
hugo 1. 1. 2006 09:26
Nový
└ 
Re: nelibi
anonymní uživatel 1. 1. 2006 17:50
Nový
mencoder a pocet CPU
patejl 2. 1. 2006 15:36
Nový
Prilis vela vyuzitia CPU
Sancho 11. 1. 2006 19:32
Nový
nepouzivejte -ovc frameno
karpi 15. 1. 2006 00:21
Nový
prevod nudloviteho videa na 4/3
kaucukovnik 2. 10. 2006 23:09
Nový
└ 
Re: prevod nudloviteho videa na 4/3
Mildik 3. 10. 2006 08:30
Nový
 
├ 
Re: prevod nudloviteho videa na 4/3
kaucukovnik 3. 10. 2006 16:31
Nový
 
└ 
Re: prevod nudloviteho videa na 4/3
kaucukovnik 3. 10. 2006 22:16
Nový
dalsi problem - tentokrat zvuk
kaucukovnik 7. 10. 2006 13:55
Nový
└ 
Re: dalsi problem - tentokrat zvuk
bralin 2. 1. 2007 01:23
Nový
1st pass z 2 pass -o param
lomitko 8. 11. 2009 05:05
Nový
       

Tento text je již více než dva měsíce starý. Chcete-li na něj reagovat v diskusi, pravděpodobně vám již nikdo neodpoví. Pro řešení aktuálních problémů doporučujeme využít naše diskusní fórum.

Zasílat nově přidané příspěvky e-mailem