mjpeg — mjpeg felvétel

Az mjpeg modul mjpeg felvételhez használatos. Használja hosszú videoklipek tömörített képadatként való rögzítéséhez. Rövid klipekhez használja a gif modult.

Példa használat:

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 felvevő

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

Létrehoz egy Mjpeg objektumot, amelyhez képkockákat adhat hozzá.

A path a fájlrendszerbeli elérési út, ahová az mjpeg felvételt menti.

A width az mjpeg fájl vízszintes felbontása. Ha nincs megadva, a fő képkocka-puffer szélességére áll be alapértelmezésként.

A height az mjpeg fájl függőleges felbontása. Ha nincs megadva, a fő képkocka-puffer magasságára áll be alapértelmezésként.

is_closed() bool

True-t ad vissza, ha a fájl be lett zárva. Bezárt fájlba nem írható több adat.

width() int

Visszaadja az mjpeg fájl vízszintes felbontását.

height() int

Visszaadja az mjpeg fájl függőleges felbontását.

count() int

Visszaadja az mjpeg fájlba írt képkockák számát.

size() int

Visszaadja az mjpeg fájl méretét bájtban.

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

Hozzáfűzi az image-t az mjpeg felvételhez. A kép automatikusan átméreteződik a képarány megtartásával a fájl létrehozásakor megadott felbontásra. Bármilyen képformátum elfogadott; ez a metódus szükség szerint kitömöríti, átméretezi/konvertálja és újratömöríti.

A roi az image másolandó érdeklődési terület téglalapjának tuple-je (x, y, w, h). Alapértelmezésként a teljes kép.

Az rgb_channel az RGB565 forráskép-ből kinyerendő és szürkeárnyalatosan megjelenítendő RGB csatorna (0=R, 1=G, 2=B). A -1 (alapértelmezett) letiltja a csatorna-kinyerést.

Az alpha (0-255) szabályozza, hogy a forrásképből mennyi keveredjen a célba. A 255 átlátszatlan; az alacsonyabb értékek fekete háttérrel keverednek; a 0 fekete képkockát eredményez.

A color_palette vagy egy színpaletta enum (pl. image.PALETTE_RAINBOW), vagy egy 256 képpontos RGB565 kép, amelyet színkikereső táblaként használ a forráskép szürkeárnyalatos értékén. Az rgb_channel kinyerés után alkalmazza.

Az alpha_palette egy 256 képpontos szürkeárnyalatos kép, amelyet alfa kikereső táblaként használ, modulálva az alpha-t forrásképpontonként annak szürkeárnyalatos értéke alapján. A 255 átlátszatlan; a 0 átlátszó. Az rgb_channel kinyerés után alkalmazza.

A hint a következők logikai VAGY-a:

A quality (0-100) a nem JPEG forrásképekhez használt JPEG tömörítési minőség.

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

A Mjpeg.add_frame() aliasa.

sync() None

Lemezre üríti az mjpeg fájlt, miközben nyitva tartja a további írásokhoz. Hívja időszakosan, hogy biztosítsa az adatok mentését.

close() None

Véglegesíti az mjpeg felvételt. Egyszer meg kell hívni, amikor a felvétel kész, hogy a fájl megtekinthetővé váljon.