mjpeg — registrazione mjpeg

Il modulo mjpeg è usato per la registrazione mjpeg. Usalo per registrare lunghe clip video come dati di immagine compressi. Usa gif per le clip brevi.

Esempio di utilizzo:

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 – Registratore Mjpeg

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

Crea un oggetto Mjpeg a cui puoi aggiungere frame.

path è il percorso del file system in cui salvare la registrazione mjpeg.

width è la risoluzione orizzontale del file mjpeg. Per impostazione predefinita corrisponde alla larghezza del frame buffer principale quando non specificato.

height è la risoluzione verticale del file mjpeg. Per impostazione predefinita corrisponde all’altezza del frame buffer principale quando non specificato.

is_closed() bool

Restituisce True se il file è stato chiuso. Non è possibile scrivere altri dati su un file chiuso.

width() int

Restituisce la risoluzione orizzontale del file mjpeg.

height() int

Restituisce la risoluzione verticale del file mjpeg.

count() int

Restituisce il numero di frame scritti nel file mjpeg.

size() int

Restituisce la dimensione del file mjpeg in byte.

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

Aggiunge image alla registrazione mjpeg. L’immagine viene scalata automaticamente preservando le proporzioni alla risoluzione specificata al momento della creazione del file. È accettato qualsiasi formato di immagine; questo metodo decomprime, scala/converte e ricomprime secondo necessità.

roi è la tupla del rettangolo della regione di interesse (x, y, w, h) di image da copiare. Per impostazione predefinita è l’intera immagine.

rgb_channel è il canale RGB (0=R, 1=G, 2=B) da estrarre da un’immagine sorgente RGB565 e da renderizzare in scala di grigi. -1 (predefinito) disabilita l’estrazione del canale.

alpha (0-255) controlla quanto dell’immagine sorgente viene fusa nella destinazione. 255 è opaco; valori inferiori si fondono con uno sfondo nero; 0 produce un frame nero.

color_palette è un enum di palette di colori (es. image.PALETTE_RAINBOW) oppure un’immagine RGB565 di 256 pixel usata come tabella di lookup dei colori sul valore in scala di grigi dell’immagine sorgente. Applicata dopo l’estrazione di rgb_channel.

alpha_palette è un’immagine in scala di grigi di 256 pixel usata come tabella di lookup alpha che modula alpha per ogni pixel sorgente in base al suo valore in scala di grigi. 255 è opaco; 0 è trasparente. Applicata dopo l’estrazione di rgb_channel.

hint è un OR logico di:

quality (0-100) è la qualità di compressione JPEG usata per le immagini sorgente non 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 di Mjpeg.add_frame().

sync() None

Scrive il file mjpeg su disco mantenendolo aperto per ulteriori scritture. Chiamalo periodicamente per garantire che i dati vengano salvati.

close() None

Finalizza la registrazione mjpeg. Deve essere chiamato una volta completata la registrazione per rendere il file visualizzabile.