mjpeg — mjpeg-inspelning¶
Modulen mjpeg används för mjpeg-inspelning. Använd den för att spela in långa videoklipp som komprimerad bilddata. Använd gif för korta klipp.
Exempelanvändning:
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 – Mjpeg-inspelare¶
- class mjpeg.Mjpeg(path: str, width: int | None = None, height: int | None = None)¶
Skapa ett Mjpeg-objekt som du kan lägga till bildrutor i.
pathär filsystemssökvägen att spara mjpeg-inspelningen till.widthär mjpeg-filens horisontella upplösning. Standardvärdet är huvudbildbuffertens bredd när det inte anges.heightär mjpeg-filens vertikala upplösning. Standardvärdet är huvudbildbuffertens höjd när det inte anges.- is_closed() bool¶
Returnerar
Trueom filen har stängts. Ingen mer data kan skrivas till en stängd fil.
- 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¶
Lägg till
imagei mjpeg-inspelningen. Bilden skalas automatiskt med bibehållet bildförhållande till den upplösning som angavs när filen skapades. Alla bildformat accepteras; denna metod dekomprimerar, skalar/konverterar och komprimerar om efter behov.roiär intresseområdets rektangeltupel(x, y, w, h)iimagesom ska kopieras. Standardvärdet är hela bilden.rgb_channelär den RGB-kanal (0=R, 1=G, 2=B) som ska extraheras från en RGB565-källbild och renderas i gråskala.-1(standard) inaktiverar kanalextrahering.alpha(0-255) styr hur mycket av källbilden som ska blandas in i destinationen.255är ogenomskinlig; lägre värden blandar med en svart bakgrund;0resulterar i en svart bildruta.color_paletteär antingen en färgpalett-enum (t.ex.image.PALETTE_RAINBOW) eller en 256-pixlars RGB565-bild som används som en färguppslagstabell på källbildens gråskalevärde. Tillämpas efterrgb_channel-extrahering.alpha_paletteär en 256-pixlars gråskalebild som används som en alfauppslagstabell vilken moduleraralphaper källpixel baserat på dess gråskalevärde.255är ogenomskinlig;0är transparent. Tillämpas efterrgb_channel-extrahering.hintär en logisk OR av:image.AREA: Använd areaskalning vid nedskalning.image.BILINEAR: Använd bilinjär skalning.image.BICUBIC: Använd bikubisk skalning.image.CENTER: Centrera bilden på destinationen.image.HMIRROR: Spegla bilden horisontellt.image.VFLIP: Vänd bilden vertikalt.image.TRANSPOSE: Transponera bilden (växla x/y).image.EXTRACT_RGB_CHANNEL_FIRST: Tillämpargb_channelföre skalning.image.APPLY_COLOR_PALETTE_FIRST: Tillämpacolor_paletteföre skalning.image.SCALE_ASPECT_KEEP: Skala för att passa inuti destinationen.image.SCALE_ASPECT_EXPAND: Skala för att fylla destinationen (beskär).image.SCALE_ASPECT_IGNORE: Skala för att fylla destinationen (sträcker ut).image.ROTATE_90: Rotera 90 grader (VFLIP | TRANSPOSE).image.ROTATE_180: Rotera 180 grader (HMIRROR | VFLIP).image.ROTATE_270: Rotera 270 grader (HMIRROR | TRANSPOSE).
quality(0-100) är den JPEG-komprimeringskvalitet som används för källbilder som inte är 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 för
Mjpeg.add_frame().