mjpeg — הקלטת mjpeg

המודול mjpeg משמש להקלטת mjpeg. השתמשו בו כדי להקליט קטעי וידאו ארוכים כנתוני תמונה דחוסים. השתמשו ב-gif לקטעים קצרים.

דוגמת שימוש:

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

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

יוצר אובייקט Mjpeg שאליו תוכלו להוסיף פריימים.

path הוא נתיב מערכת הקבצים שאליו תישמר הקלטת ה-mjpeg.

width היא הרזולוציה האופקית של קובץ ה-mjpeg. ברירת המחדל היא רוחב חוצץ הפריימים הראשי (frame buffer) כאשר לא צוין.

height היא הרזולוציה האנכית של קובץ ה-mjpeg. ברירת המחדל היא גובה חוצץ הפריימים הראשי (frame buffer) כאשר לא צוין.

is_closed() bool

מחזיר True אם הקובץ נסגר. לא ניתן לכתוב עוד נתונים לקובץ סגור.

width() int

מחזיר את הרזולוציה האופקית של קובץ ה-mjpeg.

height() int

מחזיר את הרזולוציה האנכית של קובץ ה-mjpeg.

count() int

מחזיר את מספר הפריימים שנכתבו לקובץ ה-mjpeg.

size() int

מחזיר את גודל קובץ ה-mjpeg בבייטים.

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

מצרף את image להקלטת ה-mjpeg. התמונה מותאמת בקנה מידה אוטומטית תוך שמירה על יחס הממדים לרזולוציה שצוינה בעת יצירת הקובץ. כל תבנית תמונה מתקבלת; שיטה זו מבצעת דחיסה לאחור, התאמת קנה מידה/המרה, ודחיסה מחדש לפי הצורך.

roi הוא רכיב הצמד (tuple) של מלבן אזור העניין (x, y, w, h) של image להעתקה. ברירת המחדל היא התמונה כולה.

rgb_channel הוא ערוץ ה-RGB (0=R, 1=G, 2=B) לחילוץ מתמונת מקור RGB565 ולעיבוד בגווני אפור. -1 (ברירת מחדל) מבטל את חילוץ הערוץ.

alpha (0-255) שולט בכמה מתמונת המקור למזג אל היעד. 255 הוא אטום; ערכים נמוכים יותר ממזגים עם רקע שחור; 0 מביא לפריים שחור.

color_palette הוא או enum של פלטת צבעים (לדוגמה image.PALETTE_RAINBOW) או תמונת RGB565 בת 256 פיקסלים המשמשת כטבלת חיפוש צבעים על ערך גווני האפור של תמונת המקור. מיושם לאחר חילוץ rgb_channel.

alpha_palette היא תמונת גווני אפור בת 256 פיקסלים המשמשת כטבלת חיפוש אלפא הממדלת את alpha לכל פיקסל מקור בהתבסס על ערך גווני האפור שלו. 255 הוא אטום; 0 שקוף. מיושם לאחר חילוץ rgb_channel.

hint הוא OR לוגי של:

quality (0-100) היא איכות הדחיסה של JPEG המשמשת עבור תמונות מקור שאינן 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) ל-Mjpeg.add_frame().

sync() None

מרוקן את קובץ ה-mjpeg לדיסק תוך השארתו פתוח לכתיבות נוספות. קראו לכך מעת לעת כדי להבטיח שהנתונים נשמרים.

close() None

מסיים את הקלטת ה-mjpeg. חובה לקרוא לכך לאחר השלמת ההקלטה כדי שהקובץ יהיה ניתן לצפייה.