Portál AbcLinuxu, 8. května 2025 02:25

Dotaz: problém sesynchronizací A-V při kompresi dvb-t mencoderem

16.9.2008 20:26 Jenik
problém sesynchronizací A-V při kompresi dvb-t mencoderem
Přečteno: 519×
Odpovědět | Admin
Zdravím, vyskytl se mi takový problém. Nahrávám seriál Chůva k pohledání, Jeden díl má tak 600-700 MB, což je vzhledem k celkovému počtu dílu docela zbytečný luxus.

Naladím tzapem kartu a pomocí cat ukládám stream do souboru.

Nejdříve tedy pomocí dvbcut oříznu reklamu před a po (nahrávám přes cron s dostatečnou rezervou) a uložím jako mpeg - PS, tedy DVD kompatibilní (na tom ovšem nezáleží, chyba se projeví i v ostatních možnostech). Dostanu soubor, který je zatím bez problémů.

Problém nastane po aplikaci mencoderu. Používám volbu -noskip a -mc 0, zaznamenaný program je 100% bez výpadků, netřeba dodatečně upravovat synchronizaci. Navíc soubor před komprimací při přehrávání opravdu vypadá synchronizovaně (jak už sem řekl, bez problémů). Nepoužití -noskip a -mc 0 nevede k cíli. Další volba je jeden průchod s konstantním kvantilizérem, nedochází teda k posunu při použití několika průchodů. Nepomůže ani -ofps 25.

Výslednému videu se rozchází obraz ze zvukem, video má o tři frame méně, ty se stratí nevím kde, tím to ovšem není, tři frame jsou úplně mimo mou rozlišovací schopnost. Zvuk je za 20 minut, co trvá jeden díl, tak víc než 1 vteřinu pozadu, jako by se natáhl.

Nahrávám z hošťálkovic

verze mencoderu je poslední z repozitáře: MEncoder 2:1.0~rc2-0ubuntu13+medibuntu1 (C) 2000-2007 MPlayer Team CPU: AMD Sempron(tm) Processor 2800+ (Family: 15, Model: 79, Stepping: 2) CPUflags: Type: 15 MMX: 1 MMX2: 1 3DNow: 1 3DNow2: 1 SSE: 1 SSE2: 1 Compiled with runtime CPU detection.

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

Odpovědi

Jiří Poláček avatar 16.9.2008 22:11 Jiří Poláček | skóre: 47 | blog: naopak | Sivice
Rozbalit Rozbalit vše Re: problém sesynchronizací A-V při kompresi dvb-t mencoderem
Odpovědět | | Sbalit | Link | Blokovat | Admin
Také občas nahrávám z DVB-T, ořezávám pomocí dvbcut a také to občas převádím s pomocí mencoderu, konkrétně do MPEG-4 (-ovc lavc) a NIKDY jsem neměl problém se synchronizací zvuku s obrazem (a to jsem volby -noskip a -mc ani nezkoušel).

Jaký je použit kodek?
Sudoku omrzelo? Zkuste bobblemaze! | Statistiky jsou jak bikiny. Napoví hodně, všechno ale neukážou.
17.9.2008 07:52 Jenik
Rozbalit Rozbalit vše Re: problém sesynchronizací A-V při kompresi dvb-t mencoderem
nice -10 mencoder -ovc xvid -oac copy -xvidencopts fixed_quant=3:me_quality=6:noqpel:gmc:trellis:nocartoon:chroma_me:chroma_opt:hq_ac:nolumi_mask:max_bframes=2:quant_type=mpeg:closed_gop:vhq=4 -ofps 25 -mc 0 -noskip -vf yadif=0,crop=694:572:14:0,scale=692:536 -o nanny02_15.avi nanny02_15.mpg

problém se vyskytuje i bez snížené priority, i bez -ofps, -noskip a -mc 0

Odpověď na otázku je tedy Xvid. Jinak podotýkám, že tento příkaz používám pokaždé, pouze upravuju ožez, změnu velikosti a odstranění prokládání. Normálně funguje. Nevím si rady :)
Jiří Poláček avatar 17.9.2008 11:15 Jiří Poláček | skóre: 47 | blog: naopak | Sivice
Rozbalit Rozbalit vše Re: problém sesynchronizací A-V při kompresi dvb-t mencoderem
Použil jsem uvedený příkaz na svůj záznam a žádný „skipping frame“ v průběhu kódování; výsledný soubor je také správně synchronizován. Nemohu si pomoci, ale problém nejspíš bude ve zdrojové nahrávce :-(
Sudoku omrzelo? Zkuste bobblemaze! | Statistiky jsou jak bikiny. Napoví hodně, všechno ale neukážou.
17.9.2008 22:25 Jenik
Rozbalit Rozbalit vše Re: problém sesynchronizací A-V při kompresi dvb-t mencoderem
No -mc0 -noskip právě zaručí, že se ždný frameani nezahodí ani nezdvojí, proč taky u videa, které to nepotřebuje (aspoň si myslím). Délka videa (fps x délka) je stejná jako délka audia a přesto je nakonec audio delší.
1.10.2008 20:49 Jenik
Rozbalit Rozbalit vše Re: problém sesynchronizací A-V při kompresi dvb-t mencoderem
Takže nakonec jsem to vyřešil. I když stále nechápu, jak je možné, že se rozjede obraz a zvuk při parametrech "-noskip" a "-mc 0", je jediná možnost, jak udržet synchronizaci jejich vynechání.

Se soubory, které sem měl už hotové, jsem proved to, že sem se

-pokusil při přehrávání posunout synchronizaci na konci videa tak, aby seděla,

-z posunu vypočítal novu fps (25*délka/(délka+posun),

-prohnal video s -ofps a parametry -noskip a -mc 0 mencoderem a dostal synchronizované video s nestandardní fps,

-nakonec prohnal nestandardní video znova mencoderem, tentokrát nez -noskip a -mc 0 a s -ofps 25.

Výsledné video má několik zdvojených snímků, pokaždé když se synchronizace rozjede o 0,08 s, takže stejně, jako když se komprimuje rovnou mpeg bez -noskip a -mc 0.

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.