mjpeg — nahrávání mjpeg

Modul mjpeg se používá pro nahrávání mjpeg. Použijte jej k nahrávání dlouhých videoklipů jako komprimovaných obrazových dat. Pro krátké klipy použijte gif.

Příklad použití:

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 – rekordér Mjpeg

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

Vytvoří objekt Mjpeg, do kterého můžete přidávat snímky.

path je cesta v souborovém systému, kam se má mjpeg nahrávka uložit.

width je horizontální rozlišení mjpeg souboru. Pokud není zadáno, výchozí hodnotou je šířka hlavního framebufferu.

height je vertikální rozlišení mjpeg souboru. Pokud není zadáno, výchozí hodnotou je výška hlavního framebufferu.

is_closed() bool

Vrátí True, pokud byl soubor uzavřen. Do uzavřeného souboru nelze zapisovat další data.

width() int

Vrátí horizontální rozlišení mjpeg souboru.

height() int

Vrátí vertikální rozlišení mjpeg souboru.

count() int

Vrátí počet snímků zapsaných do mjpeg souboru.

size() int

Vrátí velikost mjpeg souboru v bajtech.

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

Připojí image k mjpeg nahrávce. Obraz je automaticky škálován při zachování poměru stran na rozlišení zadané při vytvoření souboru. Je přijímán libovolný formát obrazu; tato metoda podle potřeby dekomprimuje, škáluje/konvertuje a znovu komprimuje.

roi je n-tice obdélníku oblasti zájmu (x, y, w, h) obrazu image, který se má zkopírovat. Výchozí hodnotou je celý obraz.

rgb_channel je RGB kanál (0=R, 1=G, 2=B), který se má extrahovat ze zdrojového obrazu RGB565 a vykreslit ve stupních šedi. -1 (výchozí) extrakci kanálu zakáže.

alpha (0-255) řídí, jak velká část zdrojového obrazu se vmísí do cílového. 255 je neprůhledné; nižší hodnoty mísí s černým pozadím; 0 má za následek černý snímek.

color_palette je buď výčet barevné palety (např. image.PALETTE_RAINBOW), nebo 256pixelový obraz RGB565 používaný jako vyhledávací tabulka barev pro hodnotu stupně šedi zdrojového obrazu. Aplikuje se po extrakci rgb_channel.

alpha_palette je 256pixelový obraz ve stupních šedi používaný jako vyhledávací tabulka alfa modulující alpha pro každý zdrojový pixel na základě jeho hodnoty stupně šedi. 255 je neprůhledné; 0 je průhledné. Aplikuje se po extrakci rgb_channel.

hint je logický OR z:

quality (0-100) je kvalita JPEG komprese použitá pro zdrojové obrazy jiného formátu než 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 pro Mjpeg.add_frame().

sync() None

Vyprázdní mjpeg soubor na disk a přitom jej ponechá otevřený pro další zápisy. Volejte pravidelně, abyste zajistili uložení dat.

close() None

Finalizuje mjpeg nahrávku. Musí být zavoláno po dokončení nahrávání, aby byl soubor zobrazitelný.