我想通过python脚本中的Raspberry Pi 3模型B 使用PICAMERA V2,并在Python脚本中使用1280x720的分辨率。根据https://picamera.readthedocs.io/en/release-1.1.13/fov.html Picamera V2应该能够使用这些设置运行,但它在我的Python脚本中不可能运行。如何解决这个问题?是否有任何命令将H.264级别提高到Python中的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
```
请参阅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')