Raspbian + Chromium + HTML5 Video loop para

Sziasztok!

Már végső elkeseredésemben írok, hátha van valakinek ötlete.
Egy raspbian-on futó chromiumon kéne több html5-ös videót is futtatnom, loop-olva, autoplay-el. Iframekben futnak, így el vannak különítve egymástól.
A videók lokál fájlokban vannak az eszközön. Próbáltam totálisan lokálban (tehát a html-t file:///-vel töltöm be) és próbáltam httpd szerverrel is (nginx)
A videók elindulnak rendesen, viszont x futás utána meghalnak, nem indul el újra.

Próbáltam latest chromiummal, és feltettem egy régebbi verziót is, hátha. nem nyert. Van amikor egy éjszakán át futott gond nélkül, sajnos nagy volt az öröm, mert mára ugyanaz a gond.
Lefut x alkalommal, utána se kép se hang, nah jó, lehet mozgatni a sávot, még a képet is betölti, de elindulni nem képes többé.

Lassan másfél hónapja szívok vele. Most már ott tartok, hogy letöltöttem egy adobe animate-t és írok valami minimál player-t flash-ben. Szerintem vagy 6-7 éve nem flasheztem. Rühellem, undorító, de talán rendesen működni fog mert ez a html5 videó csak szopat.

Még lehet nyitok a chromium project alatt is issue-t, de meg akarok győződni róla, hogy valóban bug és nem csak nálam van gond, bár amennyi mindent kipróbáltam, esélyes, hogy nem én vagyok a para.

Valakinek ötlet?

Hozzászólások

Első kérdés: milyen más HW/SW kombinációban próbáltad?

igen.
Eleinte sima töltővel adtam neki az áramot. Időnként megjelent egy kis szivárványszínű négyzet a képernyőn. Sokáig azt hittem, hogy monitor hiba, illetve túlmelegedés. Aztán utánajárva jöttem rá, hogy alacsony feszültség. Úgyhogy gyorsan lecseréltem gyári PI-s tápra amit a Farnell-től vettem. Azóta nincs négyzet.

Próbáltam windows8.1 alatt chrome-ban és chromiumban is. Ott nem jött elő a konkrét hiba. Illetve egy valamit figyeltem meg, ami miatt egyre jobban kezdem gyűlölni a chrome-t. Ha sokáig nem foglalkozol az adott megnyitott oldallal/tab-al, akkor valamiféle sleep/idle módba teszi és amikor visszalépsz rá, újratölti. Ez valami iszonyatosan idegesítő.
Gondoltam rá, hogy talán a PI alatt is valami ilyesmi lehet. Sokszor úgy tűnt, hogy akkor csinálja, ha nincs egér/billentyű mozgás rajta. De volt amikor aktív egerezés közben is összejött.

Viszont az se 100% biztos, hogy win alatt megy. Ugyanis amikor a PI-n downgradeltem a chromiumot, akkor egy teljes éjszakán át gond nélkül ment a videó. Már kezdtem is örülni, hogy megoldódott, csak egy 5-6 verzióval régebbi szoftver kellett és minden fasza. Azt újraindítottam a rendszert kb 1 napnyi futás után és bumm, minden kezdődött elölről.

Egyébként sikerült összehoznom a hibát w3c oldal alatt is ahol mutogatják a html5 videó használatát. Valahogy ritkábban és nehezebben jött elő a probléma. Ezért gondoltam arra, hogy a file:/// -ről átváltok próbaképp webszerverre, így jött be az nginx (úgy tűnt, hogy sokkal kevesebb erőforrást zabál meg mint az apache2). Sajnos httpd alatt is parázik.

Inkognitó ablakban megy a cucc, tehát még a cache se lehet gond.

kicsit később lesz időm, és asszem egy másik pi-be betolok egy ubuntu mate-t esetleg egy másikba pedis snappy-t és megnézem azokkal is.

Próbáld a --media-cache-dir=/dev/null opcióval indítani a chromiumot.

Ha jól tudom még mindig experimental az opengl driver raspbian alatt, szóval minimum azt be kellett kapcsolnod, hogy egyáltalán menjen.
Egyébként meg csak fbturbo-val megy, ha nincs bekapcsolva.

szerk: ja hogy videót játszol... de miért böngészőben....

Libreelecet felteszed egy kártyára, felmásolod a videókat és bekapcsolod a loop-ot, vagy valami playlistet csinálsz.
Használj a feladathoz való szoftvert.

Ha meg egyszerre akarsz több videót, akkor h264-esből sd felbontással 4et tud egyszerre hang nélkül.
Ezzel még egy zero is elboldogul: https://www.youtube.com/watch?v=tLxiXDkzFo0

Igazából csodálkoztam, hogy még senki nem jött aki felvetette ezt a témát :)

Böngésző van, nem más. Nem akarom részletezni egyéb okok miatt, de böngészőben kell megoldani. Azért 2016-ban már elvárható lenne, hogy ez ne okozzon problémát, hisz kismillió oldalba van beágyazva videó.

És mint írtam, nincs teljesítmény para, kpróbáltam, 4 kisebb videó is ment egyszerre gond nélkül, csak ez a kis bug okozott gondot, hogy nem akar loopolni rendesen.

Egy normál gépen persze, de boardokon, ahol nincs rendes videodriver, gyorsítás, ott egy kissé problémásabb.

Ha jól látom nem derült ki, hogy melyik raspberry. A pi3-ra van tán valami használhatóság alsó határát súroló android is. Azon is van böngésző.
http://geektillithertz.com/wordpress/index.php/2016/06/02/android-tv-fo…

Azon rendes chrome-ban webgl-t futtatnak (erre asszociáltam az elején), szóval talán a rendes chrome androiddal stabil lehet.

Valóban nem írtam, ebben igazad van.
3-as PI

Fontos a személyre szabhatóság, illetve az, hogy írhassak rá olyan bash scriptet amilyet csak akarok, illetve a GPIO hozzáférés se utolsó.

Az android tudtommal nem arról híres, hogy ott nyúlsz bele ahol akarsz, főleg ha ez ilyen android TV-nek van kitalálva :(

Nem értem, hogy miért lenne gond video gyorsítással, ha egyik nap pl egy teljes napon át ment gond nélkül. Tehát nem extra lassú, nem szaggat, ha nincs terhelve mással. Egyedül annyi, hogy nem tudja újrakezdeni a videót vagy idővel beragad.

Az összes Raspberry-ben ugyanaz a már-már szánalmas Videocore IV van. A drivere egy borzalom (de legalább open-source), úgyhogy én nem csodálkoznék, ha bugos. Mondjuk nem is csoda most hogy felvásárolták a BCM-et aztán szétdarabolták, 1-2 év biztos lesz mire magukhoz térnek....

Nem open source a drivere. Csak egy wrappert adtak ki pár éve hozzá, amit az alapítvány nyilt forrású driverként tálalt. Az android próbálkozás alatt van valami, valahonnan szedett driver. A raspbian alatt meg gondolom a zárt libet wrappelik.

A VideoCore komoly cuccnak tűnik, de nagyon zárt. Csomó dologra képes lenne, ha engednék a jogtulajdonosok licenszelni. Ez esetben az arm mag és a többi dolog csak mellé van pakolva co-procinak. Egy komoly limitációról tudok, hogy csak 1GB ramot tud a videocore címezni. Szóval a következő generációban valami komolyabb változásra lesz szükség. Legfeljebb majd egy másik broadcomra építenek custom soc-ot.

- Flash szerintem jo otlet lehet itt egy lejatszo, ami tamogatja mp4-et, mov-ot, stb.-t es loopolni is tud: http://www.video-flash.de/flv-flash-fullscreen-video-player/
- Esetleg mas videoformatummal lehet probalkozni (ogv, vp8)
- official loop tag helyett javascript-el visszaugrani a video elejere
- Alternativa tag helyett: https://stanko.github.io/html-canvas-video-player/

En is elegedetlen vagyok chrome-al: pl nalam IE Edge legalabb 4x kevesebb cpu-t hasznal ugyanannak a videonak a lejatszasahoz.

Memory leak esetleg? Log mit mond? chrome://gpu mit mond?

--

Belőttem a logokat, egyelőre csak ennyi van benne, utánanézek mi micsoda:

[3952:3952:0730/200537:WARNING:password_store_factory.cc(349)] Using basic (unencrypted) store for password storage. See http://code.google.com/p/chromium/wiki/LinuxPasswordStorage for more information about password storage options.
[3952:3987:0730/200537:WARNING:login_database.cc(236)] Password store database is too new.
[3952:3987:0730/200537:ERROR:password_store_default.cc(45)] Could not create/open login database.
[3952:3992:0730/200537:WARNING:data_reduction_proxy_config.cc(630)] SPDY proxy OFF at startup
[3997:3997:0730/200538:ERROR:sandbox_linux.cc(345)] InitializeSandbox() called with multiple threads in process gpu-process
[3952:3952:0730/200544:WARNING:CONSOLE(0)] "/deep/ combinator is deprecated. See https://www.chromestatus.com/features/6750456638341120 for more details.", source: (0)
[43:52:0730/201244:ERROR:gpu_channel_host.cc(225)] Failed to send GpuChannelMsg_CreateOffscreenCommandBuffer.
[43:52:0730/201244:ERROR:webgraphicscontext3d_command_buffer_impl.cc(229)] Failed to initialize command buffer.

[3952:3992:0730/201407:WARNING:http_cache_transaction.cc(2558)] Failed to revalidate partial entry
[3952:3952:0730/201730:WARNING:CONSOLE(0)] "/deep/ combinator is deprecated. See https://www.chromestatus.com/features/6750456638341120 for more details.", source: (0)
[3952:3952:0730/222755:WARNING:CONSOLE(0)] "/deep/ combinator is deprecated. See https://www.chromestatus.com/features/6750456638341120 for more details.", source: (0)

és mindjárt belépek a PI alól és onnan mutatom a gpu-s oldalt.

Graphics Feature Status
Canvas: Software only, hardware acceleration unavailable
Flash: Software only, hardware acceleration unavailable
Flash Stage3D: Software only, hardware acceleration unavailable
Flash Stage3D Baseline profile: Software only, hardware acceleration unavailable
Compositing: Software only, hardware acceleration unavailable
Multiple Raster Threads: Enabled
Rasterization: Software only, hardware acceleration unavailable
Video Decode: Software only, hardware acceleration unavailable
Video Encode: Software only, hardware acceleration unavailable
WebGL: Unavailable

Driver Bug Workarounds
clear_uniforms_before_first_program_use
count_all_in_varyings_packing
disable_post_sub_buffers_for_onscreen_surfaces
scalarize_vec_and_mat_constructor_args
use_virtualized_gl_contexts

Problems Detected
Accelerated 2d canvas is unstable in Linux at the moment
Disabled Features: accelerated_2d_canvas
Accelerated video decode is unavailable on Linux: 137247
Disabled Features: accelerated_video_decode
Disable VMware software renderer on older Mesa: 145531, 332596
Disabled Features: all
Clear uniforms before first program use on all platforms: 124764, 349137
Applied Workarounds: clear_uniforms_before_first_program_use
Mesa drivers in Linux handle varyings without static use incorrectly: 333885
Applied Workarounds: count_all_in_varyings_packing
Disable partial swaps on linux drivers: 339493
Applied Workarounds: disable_post_sub_buffers_for_onscreen_surfaces
Always rewrite vec/mat constructors to be consistent: 398694
Applied Workarounds: scalarize_vec_and_mat_constructor_args
MakeCurrent is slow on Linux
Applied Workarounds: use_virtualized_gl_contexts

about:flags oldalon megprobalhatod ezt bekapcsolni hatha elerhetove valik a hw-s video decode:
Override software rendering list Mac, Windows, Linux, Chrome OS, Android
Overrides the built-in software rendering list and enables GPU-acceleration on unsupported system configurations. #ignore-gpu-blacklist

Nem lehet valahogy figyelni scriptből, hogy megdöglött-e? Ha igen, akkor chromium restart.

Volt pár példa ami javascripttel indítja újra, mert alapból is vannak bajok a html5 video loopolással, és látszólag ment is, viszont időnként tleg meghal. Hiába nyomok rá pl egy gombbal, hogy "play", hiába variálok a controls-al, pause és play, nem indul már el. Valami más para van.

Néha egy reload után is tapasztaltam, hogy nem indult el. Egyébként biztos lehetne valahogy js-ek csekkolni, hogy a videó halad e vagy sem. Tehát változik e a seek benne, ha nem, akkor reload. Ezt még lehet kipróbálom. (ezért vannak iframek, mert csak azt fogja reloadolni ami parás, amúgy utálom az iframe-kat.)

Noh, ezt dobtam össze tesztnek, meglátjuk hogy bírja. Most 1 másodpercenként csekkolja, de élesben fel lehet tenni 5-10-re is, akkor nem terhel nagyon.

Egyelőre ígéretesnek tűnik. A végén még megoldja a problémát, de azért meglátjuk, ütközök e más problémába.

A kód:
http://pastebin.com/R6GfgsTt

A korábban beillesztett kódom tegnap este óta megy rendesen. 1x 2x újraindítottam, hogy kicsit zavarjam, de még okés. Meglátjuk, ha 1 hétig megy gond nélkül, akkor bizakodhatok.

http://pastebin.com/R6GfgsTt