• Vítejte na XBMC-Kodi.cz
  • Česko-slovenská komunita fanoušků XBMC/Kodi
Vítejte návštevníku! Přihlášení Registrace


Hodnocení tématu:
  • 1 Hlas(ů) - 2 Průměr
  • 1
  • 2
  • 3
  • 4
  • 5
Kodi, mýty a fakta
#61
Musím se přiznat, že nastavení Adaptive je pro mě novinkou.
Když odhlédnu od pokusu s přerušením netu, nevím, jestli je lepší verze s pevným či dynamickým readfaktorem.  S pevným je sice větší náraz, ale celkově po kratší dobu. S dynamickým je zátěž rozprostřena v čase, ale každý vzorek představujevyšší zátěž. Alespoň dle screenů.
Toto dilema by asi vyřešil monitoring serveru pro obě varianty. Samozřejmě s patřičným počtem uživatelů.
Faktem je, že v obou pokusech se musí přenést stejný objem dat a časový vzorek je relativně krátký. Zajímavé by bylo zjištění, co team Kodi k tomuto řešení vedlo.
X96max plus 4/32 + CE 21 + skin Confluence SCC / TV Samsung QE55Q6FNA
X96max plus 4/32 + CE 20.5 + skin Confluence SCC

AVR Denon 1600H / Dali Spektor 5.1
Win10pro + Kodi19.5
NAS Synology 215j 3TB Raid1
Router Turris 1.1
 
Citovat
#62
@jkmh: Myslím, žes to popsal docela přesně. Včetně toho testování, kde nemáme šanci to nějak prokazatelně provést. Ještě bude zajímavé podívat se na průběh přehrávání v situaci, kdy budou server Webshare zatíženy (hlavně ty problematické), jak se to bude chovat tam. Ale jinak asi šance nějak prokázat, že adaptivní nastavení je lepší, není. Spíše je to pocit, ale ani já si tím nejsem 100% jistý...

A mimochodem. Konečně, ve verzi CE 21, funguje správně pořízení screenshotů i ve 4K rozlišení. Teď jsem zkoušel udělat screenshot při přehrávání 4K s průměrný bitrate 70 Mbps a provedlo se to bez problémů. U verze CE 20 mi zamrzl celý systém.
 
Citovat
#63
No mně to se screenshotem při přehrávání pořád nevychází. Ve větší či menší míře je vidět vykreslování.


Přiložené soubory Miniatury
   
X96max plus 4/32 + CE 21 + skin Confluence SCC / TV Samsung QE55Q6FNA
X96max plus 4/32 + CE 20.5 + skin Confluence SCC

AVR Denon 1600H / Dali Spektor 5.1
Win10pro + Kodi19.5
NAS Synology 215j 3TB Raid1
Router Turris 1.1
 
Citovat
#64
@JiRo: Protože v řádku 3 informací Player Debug Info přibyly další hodnoty, viz tvé uvedené přílohy, mohl bys, prosím, uvést pro lepší pochopení jejich význam?
Řádek začíná Player a pokračuje přes Forward...

A zadruhé poprosím, mohl bys podobně, jako přerušení přísunu dat, vyzkoušet naopak (aby se to přiblížilo mým starším testům)
po 1. minutě od začátku přehrávání na 1 minutu udělat Pause, pak znovu Play - jak bude vypadat graf následující minuty?
Díky
Kodi 20/21 -LibreELEC/LinuxMint/Win/Android -RPi4/3/2/ IntelPC/xMiStick4K -Router 1Gbit 2.4+5GHz
 
Citovat
#65
@meda: No, s těmi informacemi v Player Debug Info u CE 21 se sám ještě dost potýkám, protože jsem nenašel čas k tomu ověřit si, jak a čím jsou teď vlastně plněné. Trochu jinak se to chová v okamžiku, kdy se přehrává něco, co video cache nepoužívá a trochu jinak, když se naopak video cachce využívá. A celé se to chová trochu jinak než u CE 20 20. Budu nad tím muset ještě chvíli přemýšlet, případně položit dotaz vývojařům.

Požadovaný test je níže, snad jsem to pochopil správně. Video s průměrným bitrate 9 Mbps, maximum tarifu 150 Mbps. Udělal jseme tři screenshoty, vždy po minutě, aby byly vidět právě i hodnoty Player Debug Info.

-1:00 Spuštění přehrávání
   
-2:00 Spuštění přehrávání, -1:00 Pause
   
-3:00 Spuštění přehrávání, -2:00 Pause, -1:00 Play
   
 
Citovat
#66
@JiRo: Když se tedy dívám na ty hodnoty % v P.D.I., není tam ještě 100%. Zřejmě adaptivní režim číslo <readfactor> hodně sníží. Proto asi nedošlo k mnou očekávanému výraznému poklesu na grafu během Pause. (Data nejsou potřeba pro Player ale do cache stále putují.)
Byl jsem totiž zvědavý, jak po výrazném poklesu datového toku se projeví opětovné spuštění Play.

Jak jsem minule poukázal na hodnoty % ve verzi Kodi Beta2, že se chováni Bufferu Playeru po Pause výrazně změní.
Poslední odstavec: https://www.xbmc-kodi.cz/prispevek-libre...#pid127042
Kodi 20/21 -LibreELEC/LinuxMint/Win/Android -RPi4/3/2/ IntelPC/xMiStick4K -Router 1Gbit 2.4+5GHz
 
Citovat
#67
@meda Ano, ten <readfactor> se pohybuje kolem 2-3. A k poklesu nedošlo, protože cache nebyla ještě zaplněná.
 
Citovat
#68
Mám Odroid N2+ se 4 GB RAM. Caching jsem měl nastavený na 20MB + read factor 4x + Gigabit od Vodafone (bývalé UPC přes koax). Vždy vše ok jen večer právě okolo té 19-20 hod se občas přehrávání seklo na chvíli. Read factor jsem nechal 4x. Memorysize jsem teď zvedl na 256MB (před zvednutím byla volná paměť cca 3300 MB, takže cajk).

Někdy se stane, že se přestane přehrávat a "spadne" to (chvíli je to zamrzlé, řádově jen sekundy a pak blik a jsem zpět v seznamu, ze kterého jsem přehrávání spouštěl). Pustím znovu STEJNÝ soubor od zapamatované pozice a někdy to inkriminované místo projede ok a pokračuje dál. Ale někdy se stane, že to na stejném místě spadne znova i třeba 3x po sobě a teprve až zvolím JINOU variantu souboru, tak to místo projede ok. 
Odhaduji, že to nesouvisí s cachingem apod, ale že může být ten soubor v tom místě poškozený/špatně uložený/ apod...
 
Citovat
#69
@pnowak: Ano, pokud to padá u streamu na stejném místě, je pravděpodobnost poškozeného steramu dost vysoká. Ale nemusí to tak být vždy. Pokud je např. průměrná bitrate titulu blízká aktuální propustnosti sítě (celému profilu od Webshare až po Koid) a cache není příliš veliká nebo se dokonce v průběhu přehrávání nedaří držet její naplnění na nějaké vysoké hodnotě (blízké 100 %) a ve filmu přijde nějaká dlouhá dynamická scéna, ve které se okamžitý bitrate streamu dramaticky zvýší, může dojít k vyčerpání cache a přehrávání se zastaví. Bohužel v současné době ta reakce Kodi není taková, jako to bývalo kdysi, kdy se prostě přehrávání pozastavilo a čekalo se na dočtení bufefru. Tohle už při nových typech kódování nefunguje tak, jak by mělo a tak to dopadně tak, že se přehrávání prostě ukončí.

Jak z toho ven? Tady je každá rada drahá a záleží na celé řadě okolností, jejichž vyhodnocení je možné pomocí kombinace sledování logu Kodi (viz Pozn. 1) a Player Debug Info, kde se ukáže, co se vlastně kolem datového toku přehrávaného streamu, naplnění cache, případně nějakých problémů s kvalitou streamu, dá vyhodnotit. Ještě je dobré se při tom podívat, co se děje na straně komunikace, a k tomu se dá použít doplněk Speed Meter, který ti dokáže současně ukázat rychlost komunikace na síťovém rozhraní a její průběh v posledních 3 mintutách. Ale jednoduchý a jednoznačný návod, jak si to vyhodnotit ti asi tak rychle nedám. Těch variant, stavů a okolností, které je třeba v tomto případě vzít v úvahu je hodně a dost složitě se to popisuje.

Pozn. 1 Co se týče sledování logu Kodi, tak tady mi pomáhá otevřít si on-line zobrazení logu pomocí SSH terminálu do systému s Kodi (musí to ten systém samozřejmě umožňovat) z PC na síti, kde vidím okamžitě, co se v logu děje  a vidím tam tak okamžitě případné zápisy o problémech přehrávače Kodi pro přehrávaní streamu. Já pro to používám (u *ELEC) systémů aplikaci tail, kde si ji sputím jako:
 
Kód:
tail -F .kodi/temp/kodi.log
To mi, současně s výše uvednými nástroji (Player Debug Info a Speed Meter), dokáže říci hodně o tom, co se vlastně děje.
 
Citovat
#70
@JiRo Díky za vyčerpávající odpověď.
Nakonec zvolím variantu mrtvého brouka <=> to spadnutí přehrávání je tak ojedinělé (cca 4x měsíčně), že to nestojí v tuto chvíli za řešení.
 
Citovat
#71
Asi @meda: ještě dlužím nějaké odpovědi na otázky, týkající se video cache Kodi a zobrazení v Player Debug Info, ale věřím, že mé odpovědi budou užitečné i pro ostatní. Proto také vezmu popis poněkud zeširoka, a možná v něm uvedu i některé již notoricky známé věci, což mi ale @meda: jistě odpustí.

V Kodi Wiki Player Process Info samozřejmě existuje popis toho, co zobrazení funkce Player Debug Info obsahuje, tento popis je ale zastaralý a úplně 100% neodpovídá aktuální release verzi Kodi 21. Nicméně doporučuji si to přečíst. Taky se rovnou přiznám, že ani já neodpovím na všechno a určitě ne vyčerpávajícím způsobem, ale pokusím se nějak sdělit to, co jsem (zatím) vypozoroval. Dnešní příspěvek tedy budu věnovat pouze části Player Debug Info na části 3. řádku, začínající textem forward:.

Část screenshot-u, kde 1. řádek (kombinace bílého a modrého textu) jsou vybrané informace, které do zobrazení full screen přidává můj skin, následující 4 řádky (pouze bílý text) jsou všas plně údaje Player Debug Info:
[Obrázek: veMiAyc.jpeg]

Co tedy část za textem forward: obsahuje. Jsou to celkem 4 údaje oddělené znakem / a já je pro další budu označovat jak 1. údaj, 2. údaj atd. Co je třeba říci hned na začátek je, že to, co tyto údaje obahují, je závislé na tom, v jakém režimu se přehrávání video souboru/streamu nachází. To je určeno dvěma skutečnostmi:
  • jaký soubor/stream se přehrává,
  • jak je v Kodi nastaven tzv. caching (viz Pozn.1), tedy nastavení video cache Kodi.
Pozn. 1 Video cache se v Kodi od verze 21 nastavuje prostřednictvím nastavení Kodi v Nastavení > Služby > Caching. Kodi tedy už nepoužívá ani nečte parametry ze souboru advancedsettings.xml.

Kombinace dvou výše uvedných skutečností je pak při přehrávání východiskem pro:
  1. Nepoužití cache - což je v případě, kdy nastane alespoň jeden z případů:
    • použití cache je v nastavení vypnuto (Buffer mode má hodnotu No Buffer)
    • přehrává se soubor/stream ze zdroje, který neopodvídá nastavenému Buffer mode
    • přehrává se stream definovaný prostřednictvím adaptivního prokolu (např. HLS, MPGE-DASH)
    • přehrává se tzv. PVR stream 
  2. Použití cache - což je vždy, když nenastane žádný z případů uvedených v bodě 1.
Takže, jaký je význam 4 údajů v případě (ne)použití cache?

Při nepoužití cache:
  1. údaj [MB/kB/B] - trvale se zobrazuje hodnota 0.00 B
  2. údaj [%] - aktuální zaplnění (viz Pozn. 2) bufferu (viz Pozn. 3) Kodi přehrávače v %
  3. údaj [sec] - vypočítaná doba (viz Pozn. 4) přehrávání nabufferovaných dat v sekundách
  4. údaj [%] - nabuferovaná data v %, vztažená ke známá celkové velikosti (Pozn. 5) přehrávaného obsahu (což je při výpočtu % nabuferovaných dat chápáno jako 100 %)
Pozn. 2 - Kodi se snaží udržovat velikost buferu na co nejvyšší hodnotě. Záleží na typu přehrávaného soubor/streamu, jak se mu to daří. Primární je samozřejmě udržování synchronizace přehrávání s relativním časem přehrávaného obsahu, což také určuje typické hodnoty zaplnění, které se ne vždy a trvale musí držet na hodnotě 100 %. To ale není chyba. Např. o PVR steramnů (např. Live TV) se může pohyboat i kolem 70 % nebo dokonce i 30 % a přesto je přehrávání plynulé. Záleží na typu protokolu, řetězci zpracování takových streamů, např. Tvheadend + streamlink/ffmpeg nebo InputStream Adaptive, atp.
Pozn. 3 - buffer přehrávače je v kódu Kodi definovaná struktura, v současné verzi Kodi o velikosti 20 MB. Změnit se dá pouze zásahem do zdrojového kódu a novým přeložením celé aplikace.
Pozn. 4 - tento údaj velmi přibližne udává, na jak dlouhou dobu nabufferovaná data postačí k plynulému přehávání v případě, že dojde k přerušení komunikace se zdrojem dat. Vzhledem k dynamice prezentace dat, případného vlivu algoritmů adaptivních porotkolů, je to údaj opravdu jen velmi přibližný. Ostatně jeho smysl a praktické využití tomu odpovídá. Je to jistě zajímavé číslo, ale praktický význam nemá, tedy já ho alespoň moc nevidím.
Pozn. 5 - ne vždy může Kodi v tomto případě získat informace o celkové velikosti přehrávaného obsahu. To se týká především PVR streamů, u kterých se % nabufferovaných dat proto vztahuje ke známé velikosti získané z jiných dostupných informací (pokud jsou k diposzici). U Live TV např. z EPG. Význam tohoto údaje je tedy trochu podobný tomu předchozímu.

A při použití cache:
  1. údaj [MB/kB/B] - aktuální hodnota zaplnění dopředného bufferu cache v MB/kB/B (viz Pozn. 6)
  2. údaj [%] - aktuální zaplnění dopředného bufferu cache v % (viz Pozn. 6)
  3. údaj [sec] - vypočítaná doba (viz Pozn. 7) přehrávání nabufferovaných dat v sekundách
  4. údaj [%] - nabuferovaná data v %, vztažený ke známé celkové velikosti (Pozn. 8) přehrávaného obsahu (což je při výpočtu % nabuferovaných dat chápáno jako 100 %)
Pozn. 6 - video cache a její dopředný (forward) buffer je samostatné téma a byl mu věnován tento příspěvek. Zde tedy jen upozornění, že hodnota v % je vztažená k aktuální alokaci cache pro dopředný buffer, která ale může být dynamická a zejména v počátku přehrávání nebo po velkém skoku vpřed a nebo vzad může alokace pro dopředný buffer překročit oněch 75 %, jak je popsáno v odkazovanám příspěvku. 
Pozn. 7 - v případě tohoto údaje je v případě nepoužití cache napsáno, že velmi přibližne udává, na jak dlouhou dobu nabufferovaná data postačí k plynulému přehávání v případě, že dojde k přerušení komunikace se zdrojem dat.  V případě použití cache je tato neurčitost údaje ještě zásadnější. Navíc výpočet této doby závisí na tom, jak je nastavena vlastní cache, její umístění i strategie jejího plnění. Platí tedy pro ni ještě více to, co jsem uvedl v závěru Pozn. 4 výše.
Pozn. 8 - tady, oproti stavu při nepoužití cache, je situace celkem jasná. Velikost přehrávného obsahu je většinou známá, takže i tento údaj je většinou vždy relevantní v původním slova smyslu. Celkem jasně je to vidět a význam tohoto údaje, včetně vztahu ke 2. údaji to potvrzuje, v případě, kdy si zkusíte nejdříve nastavit cache do paměti, kdy je velikost cache limitovaná a pak na disk, kdy je neomezená (pokud tedy na disku místo pro celý přehrávaný obsah máte). Zatímco v prvním případě bude hodnota tohoto 4. údaje většinou menší jak 2. údaje, ve druhém případě budou hodnoty vždy shodné.

To je asi vše, co v danou chvíli k této probelmatice mohu dodat. Jasně, je zde hodně věcí, které by se daly ještě zkoumat, v řadě případů by předpoklady a odhady toho, jak to vlastně funguje, daly zlepšit či definitivně objasnit i analýzou kódu Kodi, ale já to, alespoň pro sebe a tuto chvílu, už považuji za zbytečné. Nic mi to nepřináší.

Je také možné, že se v hodnocení funkcí mohu mýlit, takže máte-li nějaká další zjištění nebo jiné názory, klidně je sem napište a můžeme se o tom tady pobavit.
 
Citovat
#72
@JiRo: Mám co studovat 6
Kodi 20/21 -LibreELEC/LinuxMint/Win/Android -RPi4/3/2/ IntelPC/xMiStick4K -Router 1Gbit 2.4+5GHz
 
Citovat
  


Přejít na fórum:


Prochází: 1 host(ů)