mp4 — mp4录制

mp4 模块用于mp4录制。

Mp4类 – Mp4录制

您可以使用mp4模块来记录实时视频。 注意:mp4文件保存的是压缩图像数据。因此,非常适合记录您想分享的长视频剪辑。不推荐您在相机中保存视频,推荐您使用znzpi_ide对实时图像进行保存,因为这样不会占用相机内部的空间,可以保存更大的视频。也不需要从相机中导出。

使用示例

import sensor, mp4, time

# Setup camera.
sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
sensor.skip_frames()
c = time.clock()

# Create the mp4 object.
m = mp4.Mp4("example.mp4")

# Add frames.
for i in range(100):
    c.tick()
    m.add_frame(sensor.snapshot())

# Finalize.
m.close(c.fps())

构造函数

class mp4.Mp4(filename[, width[, height]])

创建一个可添加帧的mjpeg对象。 filename 是保存录制的 mp4的路径。

width 自动设置为图像传感器水平分辨率(除非显式覆盖)。

height 自动设置为图像传感器垂直分辨率(除非显式覆盖)。

方法

is_closed()

返回文件是否被关闭。不能向关闭的文件写入数据。

width()

返回mp4对象的宽度 (水平分辨率)。

height()

返回mp4对象的高度 (垂直分辨率)。

count()

返回mp4文件中的帧数

size()

返回mp4文件的字节尺寸。整个值会在增加帧数后更新。

add_frame(image[, roi=None[, rgb_channel=-1[, alpha=256[, color_palette=None[, alpha_palette=None[, hint=0[, quality=90]]]]]]])

将一张图像添加到mp4记录中。图像的宽度、高度和颜色模式必须与mp4构造函数中使用的宽度、高度和颜色模式相同。

image 可以时任何图像根式。甚至是错误分辨率的PNG图像或JPEG图像,整个方法会自动解压缩和缩放战虎为一个非压缩图像。

roi 是感兴趣区域的元组(x, y, w, h),允许您只操作ROI内的像素,默认是整个图像

rgb_channel 是从彩色图像中抽取的颜色通道 (0=R, G=1, B=2) 并渲染到目标上。例如,如果传递 rgb_channel=1 将抽取RGB图像的绿色通道并将其以灰度图绘到目标上。

`alpha 控制要混合到目标图像中的源图像的多少。值为 256 时绘制不透明的源图像,而小于 256 的值会在源图像和目标图像之间产生混合。 0 不会修改目标图像。

color_palette 如果不是 -1 可以是 image.PALETTE_RAINBOWimage.PALETTE_IRONBOW , 或总共 256 像素的 RGB565 图像,用作任何来源灰度值的颜色查找表图像。如果使用,这将在 rgb_channel 提取之后应用。

alpha_palette 如果不是 -1 可以是总共 256 像素的灰度图像,用作 alpha 调色板,以像素级别调制正在绘制的源图像的 alpha 值, 允许您根据像素的灰度值精确控制像素的 alpha 值。 alpha 查找表中的 255 像素值是不透明的,任何小于 255 的像素值都会变得更透明,直到 0。 如果使用,则在 rgb_channel 提取之后应用。

hint 为一个逻辑或标志:

quality 是压缩质量(0-100)(int)。

返回对象

write(image[, quality=90[, roi=None[, rgb_channel=-1[, alpha=256[, color_palette=None[, alpha_palette=None[, hint=0]]]]]]])

Mp4.add_frame() 的别名。

sync(fps)

将mp4文件写入磁盘,但保持文件打开以能够写入数据。您应该经常操作以保存到磁盘

fps 是mp4写入的帧率

返回对象

close(fps)

完成mp4录制。当完成录制需要调用一次此方法,以使其可见。

fps 是mp4写入的帧率

返回对象