mjpeg --- ghi hình mjpeg

Mô-đun mjpeg được dùng để ghi hình mjpeg. Sử dụng nó để ghi các video clip dài dưới dạng dữ liệu ảnh nén. Dùng gif cho các clip ngắn.

Ví dụ sử dụng:

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 -- Bộ ghi Mjpeg

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

Tạo một đối tượng Mjpeg mà bạn có thể thêm các khung hình vào.

path là đường dẫn hệ thống tệp để lưu bản ghi mjpeg.

width là độ phân giải ngang của tệp mjpeg. Mặc định bằng chiều rộng của bộ đệm khung hình chính khi không được chỉ định.

height là độ phân giải dọc của tệp mjpeg. Mặc định bằng chiều cao của bộ đệm khung hình chính khi không được chỉ định.

is_closed() bool

Trả về True nếu tệp đã được đóng. Không thể ghi thêm dữ liệu vào tệp đã đóng.

width() int

Trả về độ phân giải ngang của tệp mjpeg.

height() int

Trả về độ phân giải dọc của tệp mjpeg.

count() int

Trả về số khung hình đã ghi vào tệp mjpeg.

size() int

Trả về kích thước của tệp mjpeg theo 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

Thêm image vào bản ghi mjpeg. Ảnh được tự động thu nhỏ trong khi giữ tỷ lệ khung hình về độ phân giải được chỉ định khi tệp được tạo. Mọi định dạng ảnh đều được chấp nhận; phương thức này giải nén, thu nhỏ/chuyển đổi, và nén lại khi cần thiết.

roi là hình chữ nhật vùng quan tâm (ROI) dưới dạng tuple (x, y, w, h) của image để sao chép. Mặc định là toàn bộ ảnh.

rgb_channel là kênh RGB (0=R, 1=G, 2=B) để trích xuất từ ảnh nguồn RGB565 và hiển thị theo thang xám. -1 (mặc định) tắt trích xuất kênh.

alpha (0-255) kiểm soát mức độ hòa trộn của ảnh nguồn vào đích. 255 là mờ đục; các giá trị thấp hơn hòa trộn với nền đen; 0 tạo ra một khung hình đen.

color_palette là bảng màu dạng enum (ví dụ: image.PALETTE_RAINBOW) hoặc ảnh RGB565 256 điểm ảnh được dùng làm bảng tra cứu màu sắc dựa trên giá trị thang xám của ảnh nguồn. Được áp dụng sau khi trích xuất rgb_channel.

alpha_palette là ảnh thang xám 256 điểm ảnh được dùng làm bảng tra cứu alpha điều chỉnh alpha cho từng điểm ảnh nguồn dựa trên giá trị thang xám của nó. 255 là mờ đục; 0 là trong suốt. Được áp dụng sau khi trích xuất rgb_channel.

hint là phép OR logic của:

quality (0-100) là chất lượng nén JPEG được sử dụng cho các ảnh nguồn không phải 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

Bí danh cho Mjpeg.add_frame().

sync() None

Xả tệp mjpeg xuống đĩa trong khi vẫn giữ nó mở để ghi thêm. Gọi định kỳ để đảm bảo dữ liệu được lưu.

close() None

Hoàn tất bản ghi mjpeg. Phải được gọi một lần khi quá trình ghi hoàn tất để tệp có thể xem được.