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_RAINBOW、- image.PALETTE_IRONBOW, 或总共 256 像素的 RGB565 图像,用作任何来源灰度值的颜色查找表图像。如果使用,这将在- rgb_channel提取之后应用。- alpha_palette如果不是- -1可以是总共 256 像素的灰度图像,用作- alpha调色板,以像素级别调制正在绘制的源图像的 alpha 值, 允许您根据像素的灰度值精确控制像素的 alpha 值。 alpha 查找表中的 255 像素值是不透明的,任何小于 255 的像素值都会变得更透明,直到 0。 如果使用,则在- rgb_channel提取之后应用。- hint为一个逻辑或标志:- image.AREA: 近邻插值缩小使用的面积参数
- image.BILINEAR: 近邻插值的线性缩放。
- image.BICUBIC:近邻插值的双立方缩放
- image.CENTER: 显示图像置中,在缩放后使用。
- image.HMIRROR:水平镜像图像
- image.VFLIP: 垂直翻转图像
- image.TRANSPOSE: 旋转图像(交换x/y)
- image.EXTRACT_RGB_CHANNEL_FIRST: 在缩放前抽取RGB通道。
- image.APPLY_COLOR_PALETTE_FIRST: 做法前 使用调色板。
- image.SCALE_ASPECT_KEEP: 缩放图像以使用显示。
- image.SCALE_ASPECT_EXPAND: 缩放图像以适应显示(剪切)
- image.SCALE_ASPECT_IGNORE: 缩放图像以适应显示(伸展)
- image.ROTATE_90: 图像旋转90度(即 VFLIP | TRANSPOSE)
- image.ROTATE_180: 图像180度旋转(即 HMIRROR | VFLIP)
- image.ROTATE_270: 图像旋转270度(即 HMIRROR | TRANSPOSE)
 - 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写入的帧率- 返回对象