mjpeg — grabación mjpeg¶
El módulo mjpeg se utiliza para la grabación mjpeg. Úsalo para grabar clips de vídeo largos como datos de imagen comprimidos. Usa gif para clips cortos.
Ejemplo de uso:
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 – Grabador Mjpeg¶
- class mjpeg.Mjpeg(path: str, width: int | None = None, height: int | None = None)¶
Crea un objeto Mjpeg al que puedes añadir fotogramas.
pathes la ruta del sistema de archivos donde guardar la grabación mjpeg.widthes la resolución horizontal del archivo mjpeg. Por defecto es el ancho del framebuffer principal cuando no se especifica.heightes la resolución vertical del archivo mjpeg. Por defecto es la altura del framebuffer principal cuando no se especifica.- is_closed() bool¶
Devuelve
Truesi el archivo se ha cerrado. No se pueden escribir más datos en un archivo cerrado.
- 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¶
Añade
imagea la grabación mjpeg. La imagen se escala automáticamente conservando la relación de aspecto a la resolución especificada al crear el archivo. Se acepta cualquier formato de imagen; este método descomprime, escala/convierte y vuelve a comprimir según sea necesario.roies la tupla del rectángulo de región de interés(x, y, w, h)deimageque se va a copiar. Por defecto es la imagen completa.rgb_channeles el canal RGB (0=R, 1=G, 2=B) a extraer de una imagen de origen RGB565 y renderizar en escala de grises.-1(por defecto) deshabilita la extracción de canal.alpha(0-255) controla cuánto de la imagen de origen se mezcla con el destino.255es opaco; los valores más bajos se mezclan con un fondo negro;0da como resultado un fotograma negro.color_palettees un enum de paleta de colores (p. ej.image.PALETTE_RAINBOW) o una imagen RGB565 de 256 píxeles usada como tabla de consulta de color sobre el valor en escala de grises de la imagen de origen. Se aplica después de la extracción dergb_channel.alpha_palettees una imagen en escala de grises de 256 píxeles usada como tabla de consulta de alfa que modulaalphapor cada píxel de origen según su valor en escala de grises.255es opaco;0es transparente. Se aplica después de la extracción dergb_channel.hintes un OR lógico de:image.AREA: Usa escalado por área al reducir la escala.image.BILINEAR: Usa escalado bilineal.image.BICUBIC: Usa escalado bicúbico.image.CENTER: Centra la imagen en el destino.image.HMIRROR: Refleja horizontalmente la imagen.image.VFLIP: Voltea verticalmente la imagen.image.TRANSPOSE: Transpone la imagen (intercambia x/y).image.EXTRACT_RGB_CHANNEL_FIRST: Aplicargb_channelantes de escalar.image.APPLY_COLOR_PALETTE_FIRST: Aplicacolor_paletteantes de escalar.image.SCALE_ASPECT_KEEP: Escala para encajar dentro del destino.image.SCALE_ASPECT_EXPAND: Escala para llenar el destino (recorta).image.SCALE_ASPECT_IGNORE: Escala para llenar el destino (estira).image.ROTATE_90: Rota 90 grados (VFLIP | TRANSPOSE).image.ROTATE_180: Rota 180 grados (HMIRROR | VFLIP).image.ROTATE_270: Rota 270 grados (HMIRROR | TRANSPOSE).
quality(0-100) es la calidad de compresión JPEG usada para imágenes de origen que no sean 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 de
Mjpeg.add_frame().