Před 70 lety, 7. června 1954, ve věku 41 let, zemřel Alan Turing, britský matematik, logik, kryptoanalytik a zakladatel moderní informatiky.
NiceGUI umožňuje používat webový prohlížeč jako frontend pro kód v Pythonu. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT.
Open source platforma Home Assistant (Demo, GitHub, Wikipedie) pro monitorování a řízení inteligentní domácnosti byla vydána ve verzi 2024.6. Z novinek lze vypíchnout lepší integraci LLM (OpenAI, Google AI, Ollama) nebo podporu Matter 1.3.
IKEA ve Spojeném království hledá zaměstnance do své nové pobočky. Do pobočky v počítačové hře Roblox. Nástupní mzda je 13,15 liber na hodinu.
Alyssa Rosenzweig se v příspěvku na svém blogu Vulkan 1.3 na M1 za 1 měsíc rozepsala o novém Vulkan 1.3 ovladači Honeykrisp pro Apple M1 splňujícím specifikaci Khronosu. Vychází z ovladače NVK pro GPU od Nvidie. V plánu je dále rozchodit DXVK a vkd3d-proton a tím pádem Direct3D, aby na Apple M1 s Asahi Linuxem běžely hry pro Microsoft Windows.
Byla vydána (𝕏) květnová aktualizace aneb nová verze 1.90 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a animovanými gify v poznámkách k vydání. Ve verzi 1.90 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.
Byla vydána (Mastodon, 𝕏) nová verze 2024.2 linuxové distribuce navržené pro digitální forenzní analýzu a penetrační testování Kali Linux (Wikipedie). Přehled novinek se seznamem nových nástrojů v oficiálním oznámení.
Počítačová hra Tetris slaví 40 let. Alexej Pažitnov dokončil první hratelnou verzi 6. června 1984. Mezitím vznikla celá řada variant. Například Peklo nebo Nebe. Loni měl premiéru film Tetris.
MicroPython (Wikipedie), tj. implementace Pythonu 3 optimalizovaná pro jednočipové počítače, byl vydán ve verzi 1.23.0. V přehledu novinek je vypíchnuta podpora dynamických USB zařízení nebo nové moduly openamp, tls a vfs.
Canonical vydal Ubuntu Core 24. Představení na YouTube. Nová verze Ubuntu Core vychází z Ubuntu 24.04 LTS a podporována bude 12 let. Ubuntu Core je určeno pro IoT (internet věcí) a vestavěné systémy.
Asi znáte takové ty záběry rychle letících mraků, rozkvétajících kytiček, hnijícího jídla atd. Tomu se říká časosběr, protože sbíráme snímky v průběhu delšího času. Vytváří se tak, že kameru nebo foťák umístíme na stativ (rukou by to nešlo) a v pravidelných intervalech děláme fotky. Ty pak poskládáme za sebou třeba rychlostí 25 snímků za sekundu nebo rychleji, pokud chceme vyšší kvalitu, a uděláme z nich video.
Dá se použít třeba zrcadlovka, která má vstup pro dálkové ovládání (které budeme emulovat pomocí nějakého toho Atmelu, ESP32, RISC-V atd.) či kompaktní foťák ovládaný přes USB. Dneska si ale ukážeme, jak tohle udělat s webkamerou - což může být ta běžná spotřební, kterou teď asi všichni používáte na videokonference, nebo nějaká "průmyslovější" třeba i s C-mount výměnnými objektivy, která má ale stejné rozhraní - hardwarově UVC (USB video device class) a v GNU/Linuxu je to Video4Linux (v4l2, /dev/video*
).
Po připojení webkamery k USB si o ní můžeme zjistit základní informace:
dmesg -H | grep uvc | tail ls -l /dev/video* v4l2-ctl --all
Zobrazení živého náhledu - asi nejprimitivnější způsob je tento:
vlc v4l2:///dev/video0
problém je tu zpoždění (viz níže) způsobené tím, že VLC používá cache/buffer, což se nám ale při náhledu živého videa vůbec nehodí. Výhoda tohoto přístupu naopak je, že tu máme GUI pro nastavení kamery: Nástroje / Efekty a filtry / Ovládání v4l2 - záleží na konkrétní kameře, co tam jde nastavit (vyvážení bílé, expozice, zaostření atd.).
Uložení jednoho nebo několika snímků pomocí ffmpeg
:
ffmpeg -f video4linux2 -s 1920x1080 -i /dev/video0 -ss 0:0:2 -frames 3 "%03d.jpeg";
Parametrem -frames
zadáváme počet snímků, které chceme najednou vyfotit. Do názvu je potřeba přidat ještě třeba datum/čas nebo soubory následně někam přesouvat, aby nedocházelo k jejich přepisu. Nevýhoda je v tom, že když budeme tenhle příkaz volat v cyklu, bude se kamera pokaždé otevírat a zavírat (myslím tím softwarově) a někdy se pak může "unavit" a přestat fungovat - takže pak po několika hodinách nebo dni přijdeme a zjistíme, že se nám udělalo jen pár fotek a pak už to jen logovalo chyby (to se mi fakt stalo). Asi by to šlo nějak ošetřit, chyby detekovat a přidat případný reset USB zařízení... ale víc se mi osvědčil následující přístupu.
Použijeme přehrávač mpv:
mpv --no-cache --untimed /dev/video0 --input-ipc-server=mpv
díky tomu vidíme okno s živým náhledem videa, takže můžeme kameru hezky zaměřit a i průběžně sledovat, jestli je vše v pořádku. Parametry --no-cache
a --untimed
nám zajistí, že video bude téměř v reálném čase (nějaké minimální zpoždění tam je, ale je to dost dobré). A poslední parametr řekne mpv, aby vytvořil unixový soket s daným názvem. Přes tento zvláštní soubor pak můžeme přehrávači zadávat příkazy. Snímky bychom mohli vytvářet i klávesovou zkratkou "s", ale přes ten soket je to lepší.
echo "screenshot-to-file \"$(date --iso-8601=ns).jpeg\"" | socat - ./mpv
Tenhle příkaz můžeme volat v cyklu a snímat fotky pro náš časosběr:
while true; do ...; sleep 60; done
Pokud tam nepotřebujeme mít datum, tak stačí:
for ((n=1;;n++)); do echo "screenshot-to-file $n.jpeg" | socat - ./mpv; sleep 60; done
Kamera se otevře jen jednou na začátku a mpv ji celou dobu drží (a zároveň zobrazuje okno s náhledem). Jen jsem nepřišla na to, jak mpv přimět, aby při ukončení udělal unlink()
toho soketu, takže ho musím mazat ručně, ale to je detail.
Mimochodem, přehrávač ukončíme pomocí klávesy "q" a nekonečný cyklus pomocí Ctrl+C.
Z té hromady obrázků pak vyrobíme video příkazem:
ffmpeg -framerate 25 -i '%d.jpeg' -vf setsar=1 -c:v libx265 -crf 15 -preset ultrafast -pix_fmt yuv444p -c:a copy video.mkv
Dá se to ještě všelijak vylepšovat, ale jako základ si myslím, že to stačí. Doufám, že vám to k něčemu bude a že se v diskusi pochlubíte se svojí tvorbou
P.S. Tento článek původně vyšel na Farmě Trollí hnízdo (dostupné přes Tor): Časosběrná videa pomocí webkamery, v4l2, mpv a ffmpeg.
Tiskni Sdílej:
supr blogísek :D ;D
btw ten onion link je asi blbě protože tam torem nejde vlízt
supr blogísek :D ;D
Díky
btw ten onion link je asi blbě protože tam torem nejde vlízt
Teď jsem to zkoušela a funguje mi to. Jiné stránky na Toru ti fungují?
Teď jsem to zkoušela a funguje mi to. Jiné stránky na Toru ti fungují?
z tor browseru na android mobilu se tam dostanu ale tady mi to vrací todlecto :O :O
Invalid Onionsite Address The provided onionsite address is invalid. Please check that you entered it correctly. Details: 0xF6 — The provided .onion address is invalid. This error is returned due to one of the following reasons: the address checksum doesn't match, the ed25519 public key is invalid, or the encoding is invalid.
dělá to i po uplným vypnutí zapnutí torbrowseru
dělá mi to jenom v torbrowseru na desktopu a si myslim že by to mohlo bejt verzí toru :O :O
když jakoby udělám
torsocks curl http://xaqbcbskm7otauau.onion/t/vitejte-na-farme-trolli-hnizdo/7
tak se tam dostanu protože tam má debian starou verzi 0.4.5.10 toru
starou verzi mam i na mobílku ale tor browser má vod 8mýho listopadu verzi 4.6.8 hele :O :O
nefungujou jenom ty starý v2
v3 fungujou
In September 2020, Tor started warning onion service operators and clients that v2 will be deprecated and obsolete in version 0.4.6. Tor Browser started warning users in June, 2021.
In July 2021, 0.4.6 Tor will no longer support v2 and support will be removed from the code base.
In October 2021, we will release new Tor client stable versions for all supported series that will disable v2.
Jen jsem nepřišla na to, jak mpv přimět, aby při ukončení udělal unlink() toho soketu, takže ho musím mazat ručně, ale to je detail.Žeby?
mpv --no-cache --untimed /dev/video0 --input-ipc-server=mpv; rm mpv
Mimochodem, přehrávač ukončíme pomocí klávesy "q" a nekonečný cyklus pomocí Ctrl+C.Tak sa dá:
for ((n=1;;n++)); do if [ -e mpv ]; then echo "screenshot-to-file $n.jpeg" | socat - ./mpv; else break; fi; sleep 60; donealebo
for ((n=1;;n++)); do echo "screenshot-to-file $n.jpeg" | socat - ./mpv || break; sleep 60; done
for ((n=1;;n++)); do echo "screenshot-to-file $n.jpeg" | socat - ./mpv; sleep 60; doneje lepšie:
while [ 1 ]; do echo "screenshot-to-file $n.jpeg"; sleep 60; done | socat - ./mpv
ffmpeg -use_wallclock_as_timestamps 1 -f mjpeg -i 'http://217.197.157.7:7070/axis-cgi/mjpg/video.cgi?camera=1&resolution=1024x768&fps=2&compression=10' -c:v libx264 -r 60 -vf "setpts=0.03333*PTS" kmcam-x30.aviTakto se to nahrálo 30x zrychleně. Když jsem se na to chtěl podívat normální pomalou rychlostí, bylo potřeba to zpomalit přehrávačem.
mpv --framedrop=no --speed=0.033 kmcam-x30.aviDneska už ona webkamera nevímproč nejede.
da se nejak udelat i opacny postup, tj. pustim video a neco z toho vytvori zarizeni /dev/video1?
pomocí v4l2loopback třeba hele ;D