Portál AbcLinuxu, 9. května 2024 02:27


Dotaz: Mencoder - ignoruje se bitrate

5.8.2010 08:41 Vtipnéř | skóre: 38 | blog: Vtipnéřův blog | Brno
Mencoder - ignoruje se bitrate
Přečteno: 447×
Odpovědět | Admin
Přeji hezký den.

Stál jsem si ze stránek České televize nějaký pořad ve formátu WMV. Chtěl jsem si ho převést do AVI (MPEG4) pomocí mencoderu, ale naprosto se ignoruje nastavený video bitrate, a to jak kodek lavc tak xvid. Nevíte někdo, v čem může být problém?

Jirka
Opening Windows is better than washing them. Clearing Windows (e.g. erasing or deleting) is even much better.

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

5.8.2010 09:16 J. M. | skóre: 23 | blog: JMblog
Rozbalit Rozbalit vše Re: Mencoder - ignoruje se bitrate
Odpovědět | | Sbalit | Link | Blokovat | Admin
Když nenapíšeš příkaz, kterým to převádíš (a případně ještě výstup MEncoderu), tak těžko.

(Jinak já bych to nepřeváděl, pokud tedy není cílem to video přehrát na nějakém HW přehrávači...)
5.8.2010 11:27 Vtipnéř | skóre: 38 | blog: Vtipnéřův blog | Brno
Rozbalit Rozbalit vše Re: Mencoder - ignoruje se bitrate
Ono není moc co psát. Prostě pustím něco jako
mencoder -ovc xvid -xvidencopts bitrate=1200,pass=1
mencoder -ovc xvid -xvidencopts bitrate=1200,pass=2
nebo
mencoder -ovc lavc -lavcopts vbitrate=1200,vpass=1
mencoder -ovc lavc -lavcopts vbitrate=1200,vpass=2
s dalšími parametry, na kterých zas tak moc nezáleží, při kódování při druhém průchodu to píše
xvid: 2Pass Rate Control -- 2nd pass -- bitrate=1200kbit/s
ale výsledek má necelých 600 kbit/s.

Jirka

Opening Windows is better than washing them. Clearing Windows (e.g. erasing or deleting) is even much better.
5.8.2010 11:29 Vtipnéř | skóre: 38 | blog: Vtipnéřův blog | Brno
Rozbalit Rozbalit vše Re: Mencoder - ignoruje se bitrate
Ještě rozlišení - to je 768x432.

Jirka
Opening Windows is better than washing them. Clearing Windows (e.g. erasing or deleting) is even much better.
5.8.2010 12:00 J. M. | skóre: 23 | blog: JMblog
Rozbalit Rozbalit vše Re: Mencoder - ignoruje se bitrate
Vždycky je co psát. Bez napsání je to jen věštění z křišťálové koule („něco mi nefunguje, není podstatné co a jak – nevíte, čím to je?“) Například parametry kodéru se neoddělují čárkou, ale dvojtečkou (kromě toho se musí zadat i -oac).

Ale jinak samozřejmě je tu ještě ta věc, že kodér není schopen zakódovat video vyšší než nejvyšší kvalitou. Například kdybys po něm chtěl bitrate milion kb/s, tak ji z něj nedostaneš, ani když hezky požádáš, protože zkrátka tolik bitů na to video není potřeba. Čili pokud je to výsledné video „saturované“ (pozná se to, kromě toho, že ta kvalita vizuálně je dobrá, tak, že hodnota kvantizérů jednotlivých snímků je 2, což je nejnižší používaný kvantizér u MPEG-4 kodeků, pokud nepočítáme kvantizér 1, který se běžně nepoužívá), pak prostě bude výsledný datový tok nižší než byl žádán. Může se ještě uměle navýšit zadáním parametrů kodéru, které snižují kompresibilitu, případně zvětšením rozlišení nebo filtry (zostření, přidání šumu...), ale to je tak všechno. Čili se musí nejdřív zjistit, jestli to je ten případ.
5.8.2010 12:05 J. M. | skóre: 23 | blog: JMblog
Rozbalit Rozbalit vše Re: Mencoder - ignoruje se bitrate
Ještě druhá metoda jak to zjistit je zakódovat celé video s kvantizérem 2 (jednoprůchodově) a uvidí se, jaký bude datový tok. Pokud kolem těch 600, tak je to jasné.
5.8.2010 12:35 Vtipnéř | skóre: 38 | blog: Vtipnéřův blog | Brno
Rozbalit Rozbalit vše Re: Mencoder - ignoruje se bitrate
Ty parametry jsem psal z hlavy a je ty základní pro video, jinak je jich tam víc. Mám to v dávkovém souboru, ale momentálně to nemám po ruce.

Pro to jednoprůchodové zpracování stačí vypustit parametr (v)pass? Nebo by bylo lepší s kodekem xvid udělat jen první průchod, protože při něm se zadaný bitrate ignoruje?

Jirka
Opening Windows is better than washing them. Clearing Windows (e.g. erasing or deleting) is even much better.
5.8.2010 12:57 J. M. | skóre: 23 | blog: JMblog
Rozbalit Rozbalit vše Re: Mencoder - ignoruje se bitrate
V MEncoderu by pro Xvid mělo stačit vypustit druhý průchod, protože pro první průchod používá kvantizér 2. To je ale věc, která je implementačně závislá, není dobré na ni spoléhat. U -lavc se používá klasické zakódování 1. průchodu požadovanýmn bitrate. Takže bych prostě u obou přímo zadal fixed_quant (Xvid) nebo vqscale (libavcodec).
5.8.2010 13:05 J. M. | skóre: 23 | blog: JMblog
Rozbalit Rozbalit vše Re: Mencoder - ignoruje se bitrate
Možná jserm to napsal trochu nejasně – zrušit (v)pass, (v)bitrate a druhý průchod, a přidat fixed_quant/vqscale (které nahradí to (v)bitrate).
5.8.2010 13:36 Vtipnéř | skóre: 38 | blog: Vtipnéřův blog | Brno
Rozbalit Rozbalit vše Re: Mencoder - ignoruje se bitrate
Díky, až to vyzkouším, tak dám vědět, jak to dopadlo.

Jirka
Opening Windows is better than washing them. Clearing Windows (e.g. erasing or deleting) is even much better.
6.8.2010 10:11 Vtipnéř | skóre: 38 | blog: Vtipnéřův blog | Brno
Rozbalit Rozbalit vše Re: Mencoder - ignoruje se bitrate
Tak při použití fixed_quant=2 mám zhruba stejné výsledky (necelých 600 kbit/s). To je ale na úvodních dvou minutách pořadu, na kterých jsem to testoval, kde je dost tma. Pro celý pořad je hodnota kolem 1400 a výsledek vypadá slušně.

Tenhle dotaz jsem původně zadal, protože při prvním zpracování jsem měl bitrate kolem 300 a nedalo se na to koukat. Příčina si byla v tom, že jsem tam měl spoustu dalších parametrů získaných z dokumentace k mencoderu, které používám pro zpracování nahrávek z digitální TV. Když jsem je vyhodil a nechal tam jen základ, je výsledek OK, takže soudím, že některý z těch parametrů je asi pro formát WMV nevhodný. Jestli budu mít někdy trochu času zkusím to otestovat pořádně. Zatím je to vše a díky.

Jirka
Opening Windows is better than washing them. Clearing Windows (e.g. erasing or deleting) is even much better.
20.8.2010 23:17 ernie
Rozbalit Rozbalit vše Re: Mencoder - ignoruje se bitrate
Odpovědět | | Sbalit | Link | Blokovat | Admin
Mě zase mencoder u lavc kodeku pro video ignoruje snad všechna nastavení krom videokodeku . S nastavením lavcopts :

vcodec=mpeg4:mbd=2:cmp=3:subcmp=3:trell:v4mv:dia=4:vpass=1:vbitrate=2400:preme=2:predia=4 enkóduje video z DVD v PAL rozlišení rychlostí kolem 60fps, stejně jako bez trell a v4mv , kvalita výsledku je opravdu mizerná, vím že to nedělával , při podobných volbách na mém letitém stoji kódoval tak 2-3 fps. Není to chyba nějaké verze ffmpeg, nebo mencodera ?

23.8.2010 12:11 Vtipnéř | skóre: 38 | blog: Vtipnéřův blog | Brno
Rozbalit Rozbalit vše Re: Mencoder - ignoruje se bitrate
Asi Vám moc neporadím. Já když jsem měl problémy uvedené v dotazu, zkoušel jsem vyhodit všechny parametry a postupně je zase přidávat. Testoval jsem to na malém kousku videa, ale taky záleží na tom, jaký ten kousek je co se týče barevnosti, střídání scén apod.

Jirka
Opening Windows is better than washing them. Clearing Windows (e.g. erasing or deleting) is even much better.
23.8.2010 19:48 ernie
Rozbalit Rozbalit vše Re: Mencoder - ignoruje se bitrate
Nevím, chová se to tak u čehokoliv, a na 8 let starém stroji musí být trell poznat, podle tabulek v nápovědě k mencodeu, kterou jsem na netu vyštrachal vychází na 64 bit AMD 3000+ pro video v PAL asi 6 fps. Takže 60 je na můj stroj opravdu moc.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.