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.
pathadalah jalur sistem file untuk menyimpan rekaman mjpeg.widthadalah resolusi horizontal file mjpeg. Default ke lebar buffer bingkai utama jika tidak ditentukan.heightadalah resolusi vertikal file mjpeg. Default ke tinggi buffer bingkai utama jika tidak ditentukan.- is_closed() bool¶
Mengembalikan
Truejika file telah ditutup. Tidak ada lagi data yang dapat ditulis ke file yang sudah ditutup.
- 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
imageke 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.roiadalah tuple persegi panjang wilayah-yang-diminati(x, y, w, h)dariimageyang akan disalin. Default ke seluruh citra.rgb_channeladalah 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.255adalah buram; nilai lebih rendah dicampur dengan latar belakang hitam;0menghasilkan bingkai hitam.color_paletteadalah enum palet warna (misalnyaimage.PALETTE_RAINBOW) atau citra RGB565 256-piksel yang digunakan sebagai tabel pencarian warna pada nilai skala abu-abu citra sumber. Diterapkan setelah ekstraksirgb_channel.alpha_paletteadalah citra skala abu-abu 256-piksel yang digunakan sebagai tabel pencarian alpha yang memodulasialphaper piksel sumber berdasarkan nilai skala abu-abunya.255adalah buram;0adalah transparan. Diterapkan setelah ekstraksirgb_channel.hintadalah OR logis dari:image.AREA: Gunakan penskalaan area saat memperkecil.image.BILINEAR: Gunakan penskalaan bilinear.image.BICUBIC: Gunakan penskalaan bicubic.image.CENTER: Pusatkan citra pada tujuan.image.HMIRROR: Cerminkan citra secara horizontal.image.VFLIP: Balikkan citra secara vertikal.image.TRANSPOSE: Transpos citra (tukar x/y).image.EXTRACT_RGB_CHANNEL_FIRST: Terapkanrgb_channelsebelum penskalaan.image.APPLY_COLOR_PALETTE_FIRST: Terapkancolor_palettesebelum penskalaan.image.SCALE_ASPECT_KEEP: Skalakan agar muat di dalam tujuan.image.SCALE_ASPECT_EXPAND: Skalakan untuk mengisi tujuan (memotong).image.SCALE_ASPECT_IGNORE: Skalakan untuk mengisi tujuan (meregangkan).image.ROTATE_90: Putar 90 derajat (VFLIP | TRANSPOSE).image.ROTATE_180: Putar 180 derajat (HMIRROR | VFLIP).image.ROTATE_270: Putar 270 derajat (HMIRROR | TRANSPOSE).
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().