3.41. Gen2 彩色相机编码

本示例说明如何将h.265格式的depthai视频编码器配置为以30FPS编码8MP / 4K / 2160p(3840x2160)的RGB摄像机输入(编码器可能的最大编码分辨率,更高的帧速率为较低的分辨率,例如60FPS时的1440p),并通过XLINK将编码后的视频传输到主机,并将其作为视频文件保存到磁盘上。

按Ctrl + C将停止录制,然后使用ffmpeg将其转换为mp4以使其可播放。请注意,必须成功安装并运行ffmpeg才能成功转换为mp4。

请注意,此示例将编码的视频保存到主机存储中。因此,如果让它们继续运行,则可以在主机上填满存储。

3.41.1. 演示

3.41.2. 设置

请运行以下命令以安装所需的依赖项

Warning

说明:此处安装的是第二代depthai库

python3 -m pip install --extra-index-url https://artifacts.luxonis.com/artifactory/luxonis-python-snapshot-local/ depthai==0.0.2.1+c9a19df719cb668e438d6eafd193cdf60a0d9354 numpy==1.19.5 opencv-python==4.5.1.48

有关更多信息,请参考 Python API 安装指南

3.41.3. 源代码

可以在 GitHub 上找到。国内用户也可以在 gitee 上找到。

import depthai as dai

# 开始定义管道
pipeline = dai.Pipeline()

# 定义彩色相机流
cam = pipeline.createColorCamera()
cam.setBoardSocket(dai.CameraBoardSocket.RGB)
cam.setResolution(dai.ColorCameraProperties.SensorResolution.THE_4_K)

# 创建一个编码器,使用这些帧并使用H.265编码对其进行编码
videoEncoder = pipeline.createVideoEncoder()
videoEncoder.setDefaultProfilePreset(3840, 2160, 30, dai.VideoEncoderProperties.Profile.H265_MAIN)
cam.video.link(videoEncoder.input)

# 创建输出
videoOut = pipeline.createXLinkOut()
videoOut.setStreamName('h265')
videoEncoder.bitstream.link(videoOut.input)

# 管道已定义,现在设备已连接到管道
with dai.Device(pipeline) as device:
    # 启动管道
    device.startPipeline()

    # 输出队列将用于从上面定义的输出中获取编码数据
    q = device.getOutputQueue(name="h265", maxSize=30, blocking=True)

    # .h265文件是原始流文件(尚无法播放)
    with open('video.h265','wb') as videoFile:
        print("Press Ctrl+C to stop encoding...")
        try:
            while True:
                h264Packet = q.get()  # 阻止请求,将等待直到新数据到达
                h264Packet.getData().tofile(videoFile)  # 将数据包数据添加到打开的文件中
        except KeyboardInterrupt:
            # 按Ctrl + C退出程序
            pass

    print("To view the encoded data, convert the stream file (.h265) into a video file (.mp4) using a command below:")
    print("ffmpeg -framerate 30 -i video.h265 -c copy video.mp4")

有疑问?

我们很乐意为您提供代码或其他问题的帮助。

我们的联系方式

售后技术支持
oak_china_wechat

企业微信:OAK中国

售前技术和项目咨询
WeChat

微信号:13951940532

加好友请备注"OAK咨询"

欢迎到淘宝选购
taobao
OAK中国官方淘宝店

还可以通过我们发布的视频和文章了解OAK