raspberrypi / picamera2

New libcamera based python library
BSD 2-Clause "Simplified" License
838 stars 179 forks source link

[BUG] picam2.start_recording(encoder, 'test.h264', Quality.HIGH) #720

Open KruemelmonsterK opened 1 year ago

KruemelmonsterK commented 1 year ago

from picamera2.encoders import H264Encoder, Quality from picamera2 import Picamera2 import time picam2 = Picamera2() picam2.configure(picam2.create_video_configuration()) encoder = H264Encoder() picam2.start_recording(encoder, 'test.h264', Quality.HIGH) time.sleep(10) picam2.stop_recording()

This Code from your Documentation doesnt work.

The error message: [4:56:49.666845859] [3176] INFO Camera camera_manager.cpp:299 libcamera v0.0.4+22-923f5d70 [4:56:49.792538423] [3179] INFO RPI raspberrypi.cpp:1476 Registered camera /base/soc/i2c0mux/i2c@1/imx708@1a to Unicam device /dev/media3 and ISP device /dev/media0 [4:56:49.800216256] [3176] INFO Camera camera.cpp:1028 configuring streams: (0) 1280x720-XBGR8888 [4:56:49.800589457] [3179] INFO RPI raspberrypi.cpp:851 Sensor: /base/soc/i2c0mux/i2c@1/imx708@1a - Selected sensor format: 1536x864-SBGGR10_1X10 - Selected unicam format: 1536x864-pBAA Exception in thread Thread-2: Traceback (most recent call last): File "/usr/lib/python3.9/threading.py", line 954, in _bootstrap_inner self.run() File "/usr/lib/python3.9/threading.py", line 892, in run self._target(*self._args, *self._kwargs) File "/usr/lib/python3/dist-packages/picamera2/encoders/v4l2_encoder.py", line 200, in thread_poll self.outputframe(b, keyframe, (buf.timestamp.secs 1000000) + buf.timestamp.usecs) File "/usr/lib/python3/dist-packages/picamera2/encoders/encoder.py", line 238, in outputframe out.outputframe(frame, keyframe, timestamp) File "/usr/lib/python3/dist-packages/picamera2/outputs/fileoutput.py", line 90, in outputframe self._write(frame, timestamp) File "/usr/lib/python3/dist-packages/picamera2/outputs/fileoutput.py", line 122, in _write self.outputtimestamp(timestamp) File "/usr/lib/python3/dist-packages/picamera2/outputs/output.py", line 42, in outputtimestamp print(f"{timestamp // 1000}.{timestamp % 1000:03}", file=self.ptsoutput, flush=True) AttributeError: 'Quality' object has no attribute 'write'

davidplowman commented 1 year ago

Thanks for pointing that out. It should of course be

picam2.start_recording(encoder, 'test.h264', quality=Quality.HIGH)

I'll get the documentation updated.

KruemelmonsterK commented 1 year ago

No worries, I am happy to help.

Sorry, but I don't see any difference between the correction and the original command.

davidplowman commented 1 year ago

Sorry, slip of the mouse. Have corrected it above. Thanks!

KruemelmonsterK commented 1 year ago

Thank you! Its closed now.