如何使用picamera V2在python中以90 FPS录制视频

问题描述 投票:1回答:1

我想通过树莓派pi 3 b +模型以90 FPS和1280x720的分辨率在python脚本中使用picamera V2。根据https://picamera.readthedocs.io/en/release-1.13/fov.html,picamera V2应该可以在这些设置下运行,但是它不在我的python脚本中。我该如何解决这个问题?是否有任何命令可将python中的H.264级别提高到4.2?

[如果我通过控制台使用命令raspivid -o video.h264 -md 6 -fps 90 -w 1280 -h 720,我会收到消息Too many macroblocks/s: Increasing H264 Level to 4.2,但它确实以(接近)90 FPS录制了视频

如果我想使用相机运行以下代码,则会出现错误。使用camera.framerate = 60使用相同的脚本可以很好地工作。

import picamera
import subprocess

camera = picamera.PiCamera()
camera.resolution = (1280, 720)
camera.sensor_mode = 6
camera.framerate = 90
camera.start_recording('video.h264')
camera.wait_recording(10)
camera.stop_recording()
camera.close()

错误信息:

Traceback (most recent call last):
  File "/home/pi/GEA/video.py", line 8, in <module>
    camera.start_recording('video.h264')
  File "/usr/lib/python3/dist-packages/picamera/camera.py", line 1046, in start_recording
    camera_port, output_port, format, resize, **options)
  File "/usr/lib/python3/dist-packages/picamera/camera.py", line 723, in _get_video_encoder
    self, camera_port, output_port, format, resize, **options)
  File "/usr/lib/python3/dist-packages/picamera/encoders.py", line 601, in __init__
    parent, camera_port, input_port, format, resize, **options)
  File "/usr/lib/python3/dist-packages/picamera/encoders.py", line 187, in __init__
    self._create_encoder(format, **options)
  File "/usr/lib/python3/dist-packages/picamera/encoders.py", line 736, in _create_encoder
    'level' % macroblocks_per_s_limit)
picamera.exc.PiCameraValueError: output resolution and framerate exceeds macroblocks/s limit (245760) for the selected H.264 profile and level
```
python raspberry-pi3
1个回答
0
投票

请参阅PiCamera API文档https://picamera.readthedocs.io/en/release-1.13/api_camera.html#picamera

从版本1.11开始,它支持格式h264的附加级别选项。下面的代码对我有用:

camera.start_recording(video_file, format='h264', level='4.2')
© www.soinside.com 2019 - 2024. All rights reserved.