mjpeg — mjpeg snimanje#

Modul mjpeg koristi se za mjpeg snimanje. Koristite ga za snimanje dugih videoisječaka kao komprimiranih podataka slike. Za kratke isječke koristite gif.

Primjer upotrebe:

import csi
import mjpeg
import time

# Setup camera.
csi0 = csi.CSI()
csi0.reset()
csi0.pixformat(csi.RGB565)
csi0.framesize(csi.QVGA)
csi0.snapshot(time=2000)

# Create the mjpeg object.
m = mjpeg.Mjpeg("example.mjpeg")

# Record for 20 seconds.
start = time.ticks_ms()
while time.ticks_diff(time.ticks_ms(), start) < 20000:
    m.add_frame(csi0.snapshot())

# Finalize.
m.close()

class Mjpeg – Mjpeg snimač#

class mjpeg.Mjpeg(path: str, width: int | None = None, height: int | None = None)#

Stvara Mjpeg objekt u koji možete dodavati sličice.

path je putanja datotečnog sustava na koju se sprema mjpeg snimka.

width je horizontalna razlučivost mjpeg datoteke. Kada nije navedena, zadana je širina glavnog međuspremnika slike.

height je vertikalna razlučivost mjpeg datoteke. Kada nije navedena, zadana je visina glavnog međuspremnika slike.

is_closed() bool#

Vraća True ako je datoteka zatvorena. Više se ne mogu zapisivati podaci u zatvorenu datoteku.

width() int#

Vraća horizontalnu razlučivost mjpeg datoteke.

height() int#

Vraća vertikalnu razlučivost mjpeg datoteke.

count() int#

Vraća broj sličica zapisanih u mjpeg datoteku.

size() int#

Vraća veličinu mjpeg datoteke u bajtovima.

add_frame(image: image.Image, roi: Tuple[int, int, int, int] | None = None, rgb_channel: int = -1, alpha: int = 255, color_palette: image.Image | None = None, alpha_palette: image.Image | None = None, hint: int = 0, quality: int = 90) None#

Dodaje image u mjpeg snimku. Slika se automatski skalira uz očuvanje omjera stranica na razlučivost navedenu pri stvaranju datoteke. Prihvaća se bilo koji format slike; ova metoda dekomprimira, skalira/pretvara i ponovno komprimira po potrebi.

roi je n-torka pravokutnika područja interesa (x, y, w, h) od image koju treba kopirati. Zadano je cijela slika.

rgb_channel je RGB kanal (0=R, 1=G, 2=B) koji se izdvaja iz izvorne RGB565 slike i prikazuje u sivim tonovima. -1 (zadano) onemogućuje izdvajanje kanala.

alpha (0-255) kontrolira koliko izvorne slike se stapa u odredište. 255 je neprozirno; niže vrijednosti stapaju s crnom pozadinom; 0 rezultira crnom sličicom.

color_palette je ili enum palete boja (npr. image.PALETTE_RAINBOW) ili 256-pikselna RGB565 slika koja se koristi kao tablica za traženje boja na vrijednosti sivih tonova izvorne slike. Primjenjuje se nakon izdvajanja rgb_channel.

alpha_palette je 256-pikselna slika u sivim tonovima koja se koristi kao tablica za traženje alfe koja modulira alpha po izvornom pikselu na temelju njegove vrijednosti sivih tonova. 255 je neprozirno; 0 je prozirno. Primjenjuje se nakon izdvajanja rgb_channel.

hint je logički OR sljedećeg:

quality (0-100) je kvaliteta JPEG kompresije koja se koristi za izvorne slike koje nisu JPEG.

write(image: image.Image, roi: Tuple[int, int, int, int] | None = None, rgb_channel: int = -1, alpha: int = 255, color_palette: image.Image | None = None, alpha_palette: image.Image | None = None, hint: int = 0, quality: int = 90) None#

Alias za Mjpeg.add_frame().

sync() None#

Prazni mjpeg datoteku na disk uz zadržavanje otvorenom za daljnje zapisivanje. Pozivajte povremeno kako bi se osiguralo spremanje podataka.

close() None#

Finalizira mjpeg snimku. Mora se pozvati nakon završetka snimanja kako bi datoteka bila pregledljiva.