mjpeg — Gravação mjpeg¶
O módulo mjpeg é usado para gravação mjpeg. Use-o para gravar clipes de vídeo longos como dados de imagem comprimidos. Use gif para clipes curtos.
Exemplo 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()
classe Mjpeg – Gravador Mjpeg¶
- class mjpeg.Mjpeg(path: str, width: int | None = None, height: int | None = None)¶
Cria um objeto Mjpeg ao qual você pode adicionar quadros.
pathé o caminho no sistema de arquivos onde a gravação mjpeg será salva.widthé a resolução horizontal do arquivo mjpeg. Por padrão, assume a largura do frame buffer principal quando não especificado.heighté a resolução vertical do arquivo mjpeg. Por padrão, assume a altura do frame buffer principal quando não especificado.- is_closed() bool¶
Retorna
Truese o arquivo tiver sido fechado. Nenhum dado adicional pode ser gravado em um arquivo fechado.
- 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¶
Acrescenta
imageà gravação mjpeg. A imagem é automaticamente redimensionada, preservando a proporção, para a resolução especificada quando o arquivo foi criado. Qualquer formato de imagem é aceito; este método descomprime, redimensiona/converte e recomprime conforme necessário.roié a tupla do retângulo da região de interesse(x, y, w, h)deimagea copiar. Por padrão, é a imagem inteira.rgb_channelé o canal RGB (0=R, 1=G, 2=B) a extrair de uma imagem de origem RGB565 e renderizar em escala de cinza.-1(padrão) desabilita a extração de canal.alpha(0-255) controla quanto da imagem de origem é mesclado no destino.255é opaco; valores menores mesclam com um fundo preto;0resulta em um quadro preto.color_paletteé um enum de paleta de cores (por exemplo,image.PALETTE_RAINBOW) ou uma imagem RGB565 de 256 pixels usada como tabela de consulta de cores aplicada ao valor em escala de cinza da imagem de origem. Aplicado após a extração dergb_channel.alpha_paletteé uma imagem em escala de cinza de 256 pixels usada como tabela de consulta de alpha que modulaalphapor pixel de origem com base em seu valor em escala de cinza.255é opaco;0é transparente. Aplicado após a extração dergb_channel.hinté um OR lógico de:image.AREA: Usa escalonamento por área ao reduzir a escala.image.BILINEAR: Usa escalonamento bilinear.image.BICUBIC: Usa escalonamento bicúbico.image.CENTER: Centraliza a imagem no destino.image.HMIRROR: Espelha a imagem horizontalmente.image.VFLIP: Inverte a imagem verticalmente.image.TRANSPOSE: Transpõe a imagem (troca x/y).image.EXTRACT_RGB_CHANNEL_FIRST: Aplicargb_channelantes do escalonamento.image.APPLY_COLOR_PALETTE_FIRST: Aplicacolor_paletteantes do escalonamento.image.SCALE_ASPECT_KEEP: Escala para caber dentro do destino.image.SCALE_ASPECT_EXPAND: Escala para preencher o destino (recorta).image.SCALE_ASPECT_IGNORE: Escala para preencher o destino (estica).image.ROTATE_90: Rotaciona em 90 graus (VFLIP | TRANSPOSE).image.ROTATE_180: Rotaciona em 180 graus (HMIRROR | VFLIP).image.ROTATE_270: Rotaciona em 270 graus (HMIRROR | TRANSPOSE).
quality(0-100) é a qualidade de compressão JPEG usada para imagens de origem que não sejam 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 para
Mjpeg.add_frame().