Stránka 1 z 1

Občasné rozsynchronizování zvuku a videa u x264 videí v mkv

Napsal: pon 1. pro 2008, 11:02
od Mlok
Hledal jsem nejen v historii, ale i jinde na webu a nemůžu nic najít, tak snad někdo bude vědět.

Situace je následující:
- dochází k občasnému rozsynchronizování zvuku a videa, u 720p filmů pouze v případě, že přehrávání pausnu (a to ještě jen občas, tak 1 případ ze 4), u 1080p videí také při pausnutí a sem tam ojediněle při čistém přehrávání (to se stává tak 1x za 2-3 filmy, takže opravdu jen ojediněle)
- HW je Athlon X2 3800+ (tedy 2GHz) pro 939 socket, grafika ATI X300 (takže žádná akcelerace videa), 2GB RAM
- SW Win XP, KMPlayer, CoreAVC codec, AC3 filtr
- stejný problém je u většího množství různých mkv souborů
- pokud k rozsynchronizování dojde, tak stačí posunout film o 5s zpět nebo dopředu a synchronizace se okamžitě znovu spraví, takže problém není nijak tragický, ale stejně to otravuje

Výkonově by to mělo být naprosto v pohodě, 720p filmy zatěžují přes CoreAVC kolem 25-40%, 1080p filmy kolem 40-80% (80% jen vyjímečně v opravdu náročných scénách, tedy rezerva výkonu by ještě nějaká měla být).

Pokud u těch 720p filmů dojde po pauze k rozsynchronizování zvuku s obrazem, tak vyletí v tu chvíli zatížení cpu cca na dvojnásobek toho, co má stejná pasáž bez rozsynchronizování. Tedy je vidět, že je v tu chvíli jednoznačně něco špatně, ale proč a jak to vzniká a jak tomu zabránit?

V KMPlayeru zkontrolováno, že skutečně jedu přes CoreAVC, při použití interních kodeků KMPlayeru to HW nestíhá a občas se to v 1080p v náročných scénách škubne (interní kodek KMPlayeru by ale neměl umět použít obě jádra, takže i když vytížení cpu není na 100%, tak jedno jádro jede na 100% a nestíhá). 720p stíhá ale v pohodě i s interními kodeky KMplayeru.
Žádná nastavení v KMPlayeru ani jinde nepomáhají, ani superspeed režim v KMplayeru (taky není důvod, aby tohle pomohlo, tedy především v případě 720p, kde problém s výkonem HW by být rozhodně neměl).

KMplayerem samotným to také není, v MP2playeru s nastavením CoreAVC se to chová úplně stejně.
Ještě jsem zkoušel VLCplayer, ale tam jsem rychle zkončil. Ten nepodporuje externí kodeky, tedy nelze rozběhnout s CoreAVC a interní kodeky opět nepoužívají obě jádra a nestíhá tak náročné scény v 1080p.

Žádné další konflikty nebo bordel v kodekách být nemohou, žádné další kodeky v systému nejsou (tedy chvíli jsem tam měl ještě ffdshow, tam ale byl také problém s použitím více jader a náročné scény v 1080p se opět sem tam trhaly, takže to jsem nijak dále už netestoval a ffdshow mám odinstalovaný; i když některé verze ffdshow by snad multicore umět měly).

Re: Občasné rozsynchronizování zvuku a videa u x264 videí v mkv

Napsal: pon 1. pro 2008, 14:44
od Huncut
Aha už jsem našel tvoje správné vlákno, asi sis to spletl vedle :)

Jakou máš verzi CoreAVC?
Ještě bych vyzkoušel Media Player Classic a v nastavení internal filters mu odškrtni mkv a h264 aby používal CoreAVC a né interní kodeky.

Re: Občasné rozsynchronizování zvuku a videa u x264 videí v mkv

Napsal: pon 1. pro 2008, 14:57
od Mlok
Aha, pardón. Jsem dnes opravdu slepý, vůbec jsem si nevšimnul, že jsem reagoval do sousedního vlákna.

CoreAVC mám poslední 1.8.5. Jiné přehrávače včetně MPC ještě zkusím (s nastavením externího kodeku na CoreAVC). V týdnu pak ještě zkusím až dorazí grafika více věcí současně s rozchozením akcelerace na grafice.

Re: Občasné rozsynchronizování zvuku a videa u x264 videí v mkv

Napsal: pon 1. pro 2008, 18:05
od Mlok
Další rychlým testem zjistěno, že problém se vyskytuje pouze při nastavení rozlišení 1920x1080 24Hz. Jakmile zkusím 25Hz (TV pak ukazuje 50), 30Hz (TV pak ukazuje 60i) nebo 60Hz (TV ukazuje 60, ale tohle jen režim, kde nedokážu TV vymluvit, že jede v PC režimu a nenechá mi nic nastavovat), tak ve všech případech si můžu 720p film pauzovat jak chci a k rozsynchronizovaní nedojde. Pouze v těch 24Hz, v kterých bych ale chtěl právě fungovat.

Re: Občasné rozsynchronizování zvuku a videa u x264 videí v mkv

Napsal: pon 1. pro 2008, 19:44
od Mlok
Problém pravděpodobně vyřešen. Zatím jsem ho nedokázal znovu vytvořit a hrál jsem si s pauzováním filmu dost dlouho, dříve bych za tu dobu problém už tak 10x vytvořil.
Jediné, kde jsem udělal změnu byl renderer. Doteď jsem používal defaultní overlay mixer. Změnil jsem na VM9.
Vyřešené by to být mělo, protože jsem 2x po pauznutí zaznamenal, že po znovupuštění postava zahýbala cca na 1s rychleji pusou. Tedy předpokládám, že pauznutím prostě k rozsynchronizaci občas dojde a pokud vše funguje jak má, tak se to po znovuzpuštění samo okamžitě zase sesynchronizuje.
Řešení sebou nese ale i negativa, VM9 renderer je náročnější na výkon cpu a jsem cca o 10% výše se zatížením cpu, takže už je v 1080p filmech dost malá rezerva výkonu HW, ale nějaká malá tam ještě je, tak to snad bude ok. A s výkonem uvidím, jak to bude až dorazí grafika a rozchodím aspoň pro některé případy HW akceleraci na grafice.