mjpeg — mjpeg kaydı

mjpeg modülü mjpeg kaydı için kullanılır. Uzun video kliplerini sıkıştırılmış görüntü verisi olarak kaydetmek için bunu kullanın. Kısa klipler için gif kullanın.

Örnek kullanım:

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 kaydedici

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

Çerçeve ekleyebileceğiniz bir Mjpeg nesnesi oluşturur.

path, mjpeg kaydının kaydedileceği dosya sistemi yoludur.

width, mjpeg dosyasının yatay çözünürlüğüdür. Belirtilmediğinde ana çerçeve arabelleği (frame buffer) genişliğine varsayılan olarak ayarlanır.

height, mjpeg dosyasının dikey çözünürlüğüdür. Belirtilmediğinde ana çerçeve arabelleği (frame buffer) yüksekliğine varsayılan olarak ayarlanır.

is_closed() bool

Dosya kapatılmışsa True döndürür. Kapatılmış bir dosyaya daha fazla veri yazılamaz.

width() int

mjpeg dosyasının yatay çözünürlüğünü döndürür.

height() int

mjpeg dosyasının dikey çözünürlüğünü döndürür.

count() int

mjpeg dosyasına yazılan çerçeve sayısını döndürür.

size() int

mjpeg dosyasının boyutunu bayt cinsinden döndürür.

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

mjpeg kaydına image ekler. Görüntü, en boy oranı korunarak dosya oluşturulduğunda belirtilen çözünürlüğe otomatik olarak ölçeklendirilir. Her görüntü biçimi kabul edilir; bu yöntem gerektiğinde sıkıştırmayı açar, ölçekler/dönüştürür ve yeniden sıkıştırır.

roi, image öğesinin kopyalanacak ilgi bölgesi (ROI) dikdörtgen demetidir (x, y, w, h). Varsayılan olarak görüntünün tamamıdır.

rgb_channel, bir RGB565 kaynak görüntüsünden çıkarılıp gri tonlama olarak işlenecek RGB kanalıdır (0=R, 1=G, 2=B). -1 (varsayılan) kanal çıkarmayı devre dışı bırakır.

alpha (0-255), kaynak görüntünün ne kadarının hedefe karıştırılacağını denetler. 255 opaktır; daha düşük değerler siyah bir arka planla karışır; 0 siyah bir çerçeveyle sonuçlanır.

color_palette, ya bir renk paleti enum’udur (ör. image.PALETTE_RAINBOW) ya da kaynak görüntünün gri tonlama değeri üzerinde renk arama tablosu olarak kullanılan 256 piksellik bir RGB565 görüntüsüdür. rgb_channel çıkarımından sonra uygulanır.

alpha_palette, gri tonlama değerine göre kaynak piksel başına alpha değerini modüle eden bir alfa arama tablosu olarak kullanılan 256 piksellik bir gri tonlama görüntüsüdür. 255 opaktır; 0 saydamdır. rgb_channel çıkarımından sonra uygulanır.

hint, aşağıdakilerin mantıksal OR işlemidir:

quality (0-100), JPEG olmayan kaynak görüntüler için kullanılan JPEG sıkıştırma kalitesidir.

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

Mjpeg.add_frame() için takma ad.

sync() None

mjpeg dosyasını, daha fazla yazma için açık tutarken diske boşaltır. Verilerin kaydedildiğinden emin olmak için periyodik olarak çağırın.

close() None

mjpeg kaydını sonlandırır. Dosyanın görüntülenebilir hale gelmesi için kayıt tamamlandığında bir kez çağrılmalıdır.