Já na kódování, stříhání atd. používám převážně Avidemux, ale ono ani tak nejde o ten konkrétní program a nicneříkající výpis konkrétních voleb (protože ty se liší podle konkrétního případu), důležitý je princip. Nevím, jestli stojí za to tady vypisovat věci, co jsou i v dokumentaci, ale budiž:
1. Vystřižení reklam, začátků, konců...
2. Nastavení filtrů:
a) Tady je potřeba si projít celou nahrávku a pokud jsou tam černé nebo nečisté okraje, oříznout (prohlížet ve velikosti 1:1 v okně, stačí i jednopixelová čára na okraji obrazu - ovšem používat jen sudá čísla pro ořez):
-vf crop=764:570:2:2
(to je jen příklad, záleží na konkrétním videu)
Samozřejmě u širokoúhlých filmů je to jasné - oříznout komplet černé pruhy. K tomu lze použít automatiku:
-vf cropdetectkterá vypíše doporučené hodnoty na výstup.
b) Změna velikosti - snížení rozlišení. Tady už je dobré si spočítat bitrate, respektive poměr bitů na pixely, abychom měli představu o kvalitě v daném rozlišení při očekávané velikosti souboru a podle toho zvolili finální rozlišení:
bpp=(video_bitrate*1000)/fps/(sirka*vyska)
kde video_bitrate je datový tok videa v kilobitech za sekundu, fps je snímková frekvence (25 u normy PAL) a sirka*vyska je finální rozlišení, které zkoušíme.
Bitrate získáme tak, že spočítáme velikost videa:
video_bitrate=velikost_videa/cas/1000
kde velikost_videa je cílová velikost souboru (např. 700 MB pro 1 CD) mínus velikost audio stopy (ta se u CBR MP3 audia spočítá snadno - kilobity za sekundu, ABR je podobný případ a VBR audio musíme nejdřív zakódovat a pak se uvidí jak je audio stopa veliká) a cas je čas v sekundách. Taky se musí něco odečíst pro režii AVI souboru.
Při postupu uvedeném v článku (tříprůchodové kódování) by měl MEncoder sám zobrazit bitrate.
Hodnota bpp může zhruba indikovat kvalitu, kolem 0.2 je to tak akorát - ale každé video je jinak komprimovatelné, u některých stačí k slušné kvalitě třeba 0.15, jindy ani 0.23 nemusí být dost. Hodně akční nebo zašuměné video se komprimuje hůř (a potřebuje větší hodnotu bpp) než čistý jednoduchý obraz, kde se nic moc nehýbe a nebliká.
Obecně pro 1 CD a délky mezi 80-120 minutami je při poměru stran 4:3 ideální rozlišení 512x384, u kratších se dá použít třeba 576x432, u delších 448x336 atd. U širokoúhlého videa to je samozřejmě jiné (u něj pozor na správný poměr stran - v AVI budou na rozdíl od MPEG-2 videa čtvercové pixely, 1:1, takže ten rozdíl je třeba při změně velikosti vykompenzovat, aby obraz nebyl zdeformovaný).
Takže přidat filtr pro změnu velikosti:
-vf crop=764:570:2:2,scale=512:384
Případně přidat parametr -sws 9 pro ostřejší filtr na zmenšení (lanczos).
c) U digitální nahrávky by měl být obraz čistý, ale i tam se, např. u filmů, může hodit filtr hqdn3d pro redukci šumu:
-vf hqdn3d,crop=764:570:2:2,scale=512:384jehož výchozí parametry se můžou u víc zašuměných (samozřejmě hlavně analogových) nahrávek zesílit:
-vf hqdn3d=4:5:10,crop=764:570:2:2,scale=512:384(Je lepší jej aplikovat před zmenšením.)
Takže závěrečný kompletní příklad: mám video o délce 90 minut, chci jej vypálit na 1 CD. Audio bude CBR MP3 128 kb/s.
Velikost audio stopy: 128000/8*5400/1024 = 82,4 MB.
Bitrate videa: (700-82,4)*8*1024*1024/5400/1000 = 959,4 kb/s
Od tohoto bitrate něco odečteme pro režii AVI kontejneru (udává se 24 bytů na frame - všechny, audio i video). Kodek XviD by už ale s ním měl automaticky počítat.
Kompletní příkaz pro dvojprůchodové kódování:
mencoder -vf hqdn3d,crop=764:570:2:2,scale=512:384\ -oac mp3lame -lameopts cbr:br=128\ -ovc xvid -xvidencopts pass=1:bitrate=959\ :me_quality=6:vhq=4:max_bframes=1:trellis\ :chroma_me:chroma_opt:hq_ac vstup.mpeg\ -o vystup.avi(první průchod)
mencoder -vf hqdn3d,crop=764:570:2:2,scale=512:384\ -oac mp3lame -lameopts cbr:br=128\ -ovc xvid -xvidencopts pass=1:bitrate=959\ :me_quality=6:vhq=4:max_bframes=1:trellis\ :chroma_me:chroma_opt:hq_ac vstup.mpeg\ -o vystup.avi(druhý průchod)
Volby jako VHQ, trellis a používání B-frames zlepšují poměr kvalita/velikost. Případně se při dostatečné komprimovatelnosti či vyšším bitrate, nedostatečné ostrosti atd. dá přidat quant_type=mpeg pro používání ostřejších MPEG kvantizérů místo H.263.
Ty příkazy jsem psal naslepo, aniž bych je testoval, tak se omlouvám za případné chyby v nich.
S názorem, že kódování je (v kontextu práce s daty) synonymum pro šifrování, rozhodně nemohu souhlasit. Nemám tady po ruce vhodná informatická skripta, abych z nich přepsal definici, ale na některé přednášce se rozdíl mezi kódováním a šifrováním probíral.
Internetový slovník cizích slov uvádí význam slova kódovat jednak jako šifrovat (ano, můžeme šifrování považovat za podmnožinu kódování, ale na rozdíl od šifrování není při kódování obsah informace utajen) a dále jako přeměnit informaci v určitém kódu na postupnost znaků nebo na signály.
Smyslem kódování nejčastěji je upravit informaci tak, aby byla lépe přizpůsobena pro uložení, zpracování nebo přenos. Určitě jste se již někdy setkal s kódováním base64 pro přenos binárního smetí
e-mailem, existuje například Fibonacciho kódování pro úspornější ukládání přirozených čísel velkého rozsahu, Huffmanovo kódování, které je základem některých kompresních algoritmů, a mnoho dalších.
ad 2: Mně DVD rekordér nahrává obraz v tomto rozlišení, když zvolím velmi nízkou (3 hodiny/DVD a více) kvalitu. Když se mi to asi dvakrát stalo, použil jsem při enkodování následující parametr:
-vf 'lavcdeint,scale=522:392,crop=512:384:6:5'
Hodnoty u scale jsou zvoleny tak, aby po oříznutí měl obraz správné nebo téměř správné proporce v poměru stran 4:3 se čtvercovými pixly, třetí a čtvrtá hodnota u crop závisí na tom, jak moc je potřeba oříznout černé okraje.
Samozřejmě nelze očekávat extra kvalitu, když se v horizontálním směru obraz o polovinu zvětšuje. Druhou možností by bylo nechat to jako svislou nudli a proporce měnit až při přehrávání.