mjpeg --- perekaman mjpeg

Modul mjpeg digunakan untuk perekaman mjpeg. Gunakan untuk merekam klip video panjang sebagai data citra terkompresi. Gunakan gif untuk klip pendek.

Contoh penggunaan:

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 -- Perekam Mjpeg

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

Buat objek Mjpeg yang dapat Anda tambahkan bingkai.

path adalah jalur sistem file untuk menyimpan rekaman mjpeg.

width adalah resolusi horizontal file mjpeg. Default ke lebar buffer bingkai utama jika tidak ditentukan.

height adalah resolusi vertikal file mjpeg. Default ke tinggi buffer bingkai utama jika tidak ditentukan.

is_closed() bool

Mengembalikan True jika file telah ditutup. Tidak ada lagi data yang dapat ditulis ke file yang sudah ditutup.

width() int

Mengembalikan resolusi horizontal file mjpeg.

height() int

Mengembalikan resolusi vertikal file mjpeg.

count() int

Mengembalikan jumlah bingkai yang ditulis ke file mjpeg.

size() int

Mengembalikan ukuran file mjpeg dalam byte.

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

Tambahkan image ke rekaman mjpeg. Citra secara otomatis diskalakan sambil mempertahankan rasio aspek ke resolusi yang ditentukan saat file dibuat. Format citra apa pun diterima; metode ini mendekompresi, menskalakan/mengonversi, dan mengompresi ulang sesuai kebutuhan.

roi adalah tuple persegi panjang wilayah-yang-diminati (x, y, w, h) dari image yang akan disalin. Default ke seluruh citra.

rgb_channel adalah saluran RGB (0=R, 1=G, 2=B) yang akan diekstrak dari citra sumber RGB565 dan dirender dalam skala abu-abu. -1 (default) menonaktifkan ekstraksi saluran.

alpha (0-255) mengontrol seberapa banyak citra sumber yang dicampur ke tujuan. 255 adalah buram; nilai lebih rendah dicampur dengan latar belakang hitam; 0 menghasilkan bingkai hitam.

color_palette adalah enum palet warna (misalnya image.PALETTE_RAINBOW) atau citra RGB565 256-piksel yang digunakan sebagai tabel pencarian warna pada nilai skala abu-abu citra sumber. Diterapkan setelah ekstraksi rgb_channel.

alpha_palette adalah citra skala abu-abu 256-piksel yang digunakan sebagai tabel pencarian alpha yang memodulasi alpha per piksel sumber berdasarkan nilai skala abu-abunya. 255 adalah buram; 0 adalah transparan. Diterapkan setelah ekstraksi rgb_channel.

hint adalah OR logis dari:

quality (0-100) adalah kualitas kompresi JPEG yang digunakan untuk citra sumber 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 untuk Mjpeg.add_frame().

sync() None

Flush file mjpeg ke disk sambil tetap membiarkannya terbuka untuk penulisan lebih lanjut. Panggil secara berkala untuk memastikan data tersimpan.

close() None

Menyelesaikan rekaman mjpeg. Harus dipanggil sekali rekaman selesai agar file dapat dilihat.