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写入的帧率返回对象