Mám takový divoký problém... který asi ani není úplně do tohohle audítka, ale nevím kam s ním jinam :-) Mám na RPi4 postavený zobrazovač kamer. Tedy televize namontovaná někde u stropu, RPi na tom přehrává 9 kusů kamer, je to bezobslužné. Bohužel se ukazuje, že kamery jsou úplně dementní (jenom dopředu dodávám, že to není žádný čínský šmuk, ale je to prosím pěkně pekelně drahá značková kamera) a neumějí posílat žádný videostream. Teda umí, ale všechny videostreamy, co jsem zkoušel, mají asi tak 10 sekund zpoždění a obsluze se to úplně nelíbí (zpoždění na tom streamu mám, ikdyž to pustím z normálního železa). V rámci debuggingu, kdy se tam kolegové furt snaží prosadit nějaký windowsí sráč, protože s originálním klientem to funguje úplně bez problémů, jsem začal pátrat, jak funguje originální klient a/nebo webxicht té kamery, kde ten obraz se chová taky normálně. Mno, tak při otevření v chromu to přehrávání funguje tak, že chrome periodicky stahuje jpg obrázek s aktuálním pohledem a ten zobrazuje. Pokud je tam nastaveno 20fps, tak ho prostě stahuje 20x za sekundu... Ani se pak nedivím, že kameře už nezbývá výkon na to, aby posílala třeba video...
No nic, rozhodl jsem se adaptovat na tohle debilní přehrávání a přesvědčovat mplayer, aby taky stahoval obrázky. Až jsem dospěl k tomuhle příkazu, který funguje docela hezky:
player -msglevel all=-1 -loop 0 -fps 1 -idle -fixed-vo -mf type=jpg -x 640 -y 360 -zoom -geometry 0:0
http://ip_kamery/obrazek.jpgProblém je, že asi tak druhý den nějaká kamera "spadne"... Když se mi konečně povedlo jim zakázat to natvrdo restartovat, abych zjistil, co s tím je, tak spadnutí vypadá tak, že mplayer zabije OOM killer, protože na malině dojde paměť. A bohužel pohled do topu ukazuje, že za a) mplayery žerou hrozně CPU (ale nevím, možná je to normální, když takhle blbě stahuju obrázky na kalkulačce... to bych tomu prominul, stíhat to jinak stíhá), ale taky že za b) žerou fakt hodně paměti a časem boptnají... Takže ta 2GB verze je asi po 24 hodinách out of memory, u té 4GB se to tak rychle nestane, ale o pár dní později ji to dostihne také.
No a teď ještě ta divnější věc: pustil jsem si schválně jednu kameru na notebooku, stejně. A tam mi ten mplayer prostě neboptná, paměť nežere skoro žádnou. Schválne přikládám screeny z aktuální maliny (ráno rebootnuto, takže takhle to vypadá po ~ 8 hodinách běhu... před restartem byly už 2 mplayery zabité OOM killerem a paměť se "swapem" plná) a z notebooku, kde mi to běželo asi 3 hodiny. Abych nekecal, tak na notebooku jsem zapomněl ten parametr -msglevel all=-1 (bez něj se na RPi, jak je to puštěné z ~/.xsession, ten výpis mplayeru ukládal do syslogu a za chvíli tomu došlo místo na kartě); nicméně pustil jsem to teď chvíli z něj a prostě v topu to pořád bere +- stejně, nevypadá, že by to rostlo...
Čímž mi nějak dochází nápady, proč mi to na RPi žere paměť a na normálnim PC ne... Někdo nějakej nápad? :-)