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.
pathje cesta v souborovém systému, kam se má mjpeg nahrávka uložit.widthje horizontální rozlišení mjpeg souboru. Pokud není zadáno, výchozí hodnotou je šířka hlavního framebufferu.heightje 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.
- 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í
imagek 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.roije n-tice obdélníku oblasti zájmu(x, y, w, h)obrazuimage, který se má zkopírovat. Výchozí hodnotou je celý obraz.rgb_channelje 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.255je neprůhledné; nižší hodnoty mísí s černým pozadím;0má za následek černý snímek.color_paletteje 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 extrakcirgb_channel.alpha_paletteje 256pixelový obraz ve stupních šedi používaný jako vyhledávací tabulka alfa modulujícíalphapro každý zdrojový pixel na základě jeho hodnoty stupně šedi.255je neprůhledné;0je průhledné. Aplikuje se po extrakcirgb_channel.hintje logický OR z:image.AREA: Použít plošné škálování při zmenšování.image.BILINEAR: Použít bilineární škálování.image.BICUBIC: Použít bikubické škálování.image.CENTER: Vystředit obraz na cíli.image.HMIRROR: Horizontálně zrcadlit obraz.image.VFLIP: Vertikálně překlopit obraz.image.TRANSPOSE: Transponovat obraz (prohodit x/y).image.EXTRACT_RGB_CHANNEL_FIRST: Aplikovatrgb_channelpřed škálováním.image.APPLY_COLOR_PALETTE_FIRST: Aplikovatcolor_palettepřed škálováním.image.SCALE_ASPECT_KEEP: Škálovat tak, aby se vešel do cíle.image.SCALE_ASPECT_EXPAND: Škálovat tak, aby vyplnil cíl (oře).image.SCALE_ASPECT_IGNORE: Škálovat tak, aby vyplnil cíl (roztáhne).image.ROTATE_90: Otočit o 90 stupňů (VFLIP | TRANSPOSE).image.ROTATE_180: Otočit o 180 stupňů (HMIRROR | VFLIP).image.ROTATE_270: Otočit o 270 stupňů (HMIRROR | TRANSPOSE).
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().