mjpeg — mjpeg-tallennus

mjpeg-moduulia käytetään mjpeg-tallennukseen. Käytä sitä pitkien videoleikkeiden tallentamiseen pakattuna kuvadatana. Käytä gif-moduulia lyhyisiin leikkeisiin.

Esimerkkikäyttö:

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-tallennin

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

Luo Mjpeg-objektin, johon voit lisätä kehyksiä.

path on tiedostojärjestelmän polku, johon mjpeg-tallenne tallennetaan.

width on mjpeg-tiedoston vaakaresoluutio. Oletuksena pääkehyspuskurin leveys, kun arvoa ei ole määritetty.

height on mjpeg-tiedoston pystyresoluutio. Oletuksena pääkehyspuskurin korkeus, kun arvoa ei ole määritetty.

is_closed() bool

Palauttaa True, jos tiedosto on suljettu. Suljettuun tiedostoon ei voi enää kirjoittaa dataa.

width() int

Palauttaa mjpeg-tiedoston vaakaresoluution.

height() int

Palauttaa mjpeg-tiedoston pystyresoluution.

count() int

Palauttaa mjpeg-tiedostoon kirjoitettujen kehysten määrän.

size() int

Palauttaa mjpeg-tiedoston koon tavuina.

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

Lisää image-kuvan mjpeg-tallenteeseen. Kuva skaalataan automaattisesti kuvasuhde säilyttäen siihen resoluutioon, joka määritettiin tiedostoa luotaessa. Mikä tahansa kuvamuoto hyväksytään; tämä metodi purkaa, skaalaa/muuntaa ja pakkaa kuvan uudelleen tarpeen mukaan.

roi on image-kuvasta kopioitava kohdealueen suorakulmion monikko (x, y, w, h). Oletuksena koko kuva.

rgb_channel on RGB-kanava (0=R, 1=G, 2=B), joka poimitaan RGB565-lähdekuvasta ja renderöidään harmaasävyisenä. -1 (oletus) poistaa kanavan poiminnan käytöstä.

alpha (0-255) ohjaa, kuinka paljon lähdekuvasta sekoitetaan kohteeseen. 255 on läpinäkymätön; pienemmät arvot sekoittavat mustaan taustaan; 0 tuottaa mustan kehyksen.

color_palette on joko väripaletin enum (esim. image.PALETTE_RAINBOW) tai 256-pikselinen RGB565-kuva, jota käytetään värihakutaulukkona lähdekuvan harmaasävyarvolle. Sovelletaan rgb_channel-poiminnan jälkeen.

alpha_palette on 256-pikselinen harmaasävykuva, jota käytetään alfa-hakutaulukkona moduloimaan alpha-arvoa lähdepikselikohtaisesti sen harmaasävyarvon perusteella. 255 on läpinäkymätön; 0 on läpinäkyvä. Sovelletaan rgb_channel-poiminnan jälkeen.

hint on looginen TAI seuraavista:

quality (0-100) on JPEG-pakkauslaatu, jota käytetään muille kuin JPEG-lähdekuville.

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 metodille Mjpeg.add_frame().

sync() None

Tyhjentää mjpeg-tiedoston levylle pitäen sen samalla avoinna lisäkirjoituksia varten. Kutsu säännöllisesti varmistaaksesi, että data tallentuu.

close() None

Viimeistelee mjpeg-tallenteen. Täytyy kutsua kerran tallennuksen valmistuttua, jotta tiedosto on katseltavissa.