mjpeg — enregistrement mjpeg¶
Le module mjpeg est utilisé pour l’enregistrement mjpeg. Servez-vous-en pour enregistrer de longs clips vidéo sous forme de données d’image compressées. Utilisez gif pour les clips courts.
Exemple d’utilisation
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 – Enregistreur Mjpeg¶
- class mjpeg.Mjpeg(path: str, width: int | None = None, height: int | None = None)¶
Crée un objet Mjpeg auquel vous pouvez ajouter des trames.
pathest le chemin d’accès au système de fichiers où enregistrer l’enregistrement mjpeg.widthest la résolution horizontale du fichier mjpeg. Vaut par défaut la largeur du tampon d’image principal lorsqu’elle n’est pas spécifiée.heightest la résolution verticale du fichier mjpeg. Vaut par défaut la hauteur du tampon d’image principal lorsqu’elle n’est pas spécifiée.- is_closed() bool¶
Renvoie
Truesi le fichier a été fermé. Plus aucune donnée ne peut être écrite dans un fichier fermé.
- 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¶
Ajoute
imageà l’enregistrement mjpeg. L’image est automatiquement mise à l’échelle tout en préservant le rapport d’aspect jusqu’à la résolution spécifiée lors de la création du fichier. Tout format d’image est accepté ; cette méthode décompresse, met à l’échelle/convertit et recompresse selon les besoins.roiest le tuple rectangulaire de la région d’intérêt(x, y, w, h)deimageà copier. Vaut par défaut l’image entière.rgb_channelest le canal RGB (0=R, 1=G, 2=B) à extraire d’une image source RGB565 et à rendre en niveaux de gris.-1(valeur par défaut) désactive l’extraction de canal.alpha(0-255) contrôle la part de l’image source à fondre dans la destination.255est opaque ; les valeurs plus faibles se fondent avec un arrière-plan noir ;0produit une trame noire.color_paletteest soit une énumération de palette de couleurs (par ex.image.PALETTE_RAINBOW), soit une image RGB565 de 256 pixels utilisée comme table de correspondance des couleurs sur la valeur en niveaux de gris de l’image source. Appliquée après l’extractionrgb_channel.alpha_paletteest une image en niveaux de gris de 256 pixels utilisée comme table de correspondance alpha modulantalphapar pixel source en fonction de sa valeur en niveaux de gris.255est opaque ;0est transparent. Appliquée après l’extractionrgb_channel.hintest un OU logique de :image.AREA: utiliser la mise à l’échelle par aire lors d’une réduction.image.BILINEAR: utiliser la mise à l’échelle bilinéaire.image.BICUBIC: utiliser la mise à l’échelle bicubique.image.CENTER: centrer l’image sur la destination.image.HMIRROR: mettre l’image en miroir horizontal.image.VFLIP: retourner l’image verticalement.image.TRANSPOSE: transposer l’image (échange de x/y).image.EXTRACT_RGB_CHANNEL_FIRST: appliquerrgb_channelavant la mise à l’échelle.image.APPLY_COLOR_PALETTE_FIRST: appliquercolor_paletteavant la mise à l’échelle.image.SCALE_ASPECT_KEEP: mettre à l’échelle pour tenir à l’intérieur de la destination.image.SCALE_ASPECT_EXPAND: mettre à l’échelle pour remplir la destination (recadre).image.SCALE_ASPECT_IGNORE: mettre à l’échelle pour remplir la destination (étire).image.ROTATE_90: pivoter de 90 degrés (VFLIP | TRANSPOSE).image.ROTATE_180: pivoter de 180 degrés (HMIRROR | VFLIP).image.ROTATE_270: pivoter de 270 degrés (HMIRROR | TRANSPOSE).
quality(0-100) est la qualité de compression JPEG utilisée pour les images sources 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 de
Mjpeg.add_frame().