camera.pi#

class platypush.plugins.camera.pi.CameraPiPlugin(device: int = 0, fps: float = 30.0, warmup_seconds: float = 2.0, sharpness: int = 0, contrast: int = 0, brightness: int = 50, video_stabilization: bool = False, iso: int = 0, exposure_compensation: int = 0, exposure_mode: str = 'auto', meter_mode: str = 'average', awb_mode: str = 'auto', image_effect: str = 'none', led_pin: int | None = None, color_effects: str | List[str] | None = None, zoom: Tuple[float, float, float, float] = (0.0, 0.0, 1.0, 1.0), **camera)[source]#

Bases: CameraPlugin

Plugin to control a Pi camera.

Requires:

  • picamera (pip install picamera)

  • numpy (pip install numpy)

  • Pillow (pip install Pillow)

__init__(device: int = 0, fps: float = 30.0, warmup_seconds: float = 2.0, sharpness: int = 0, contrast: int = 0, brightness: int = 50, video_stabilization: bool = False, iso: int = 0, exposure_compensation: int = 0, exposure_mode: str = 'auto', meter_mode: str = 'average', awb_mode: str = 'auto', image_effect: str = 'none', led_pin: int | None = None, color_effects: str | List[str] | None = None, zoom: Tuple[float, float, float, float] = (0.0, 0.0, 1.0, 1.0), **camera)[source]#

See https://www.raspberrypi.org/documentation/usage/camera/python/README.md for a detailed reference about the Pi camera options.

Parameters:

camera – Options for the base camera plugin (see platypush.plugins.camera.CameraPlugin).

capture_frame(camera: Camera, *args, **kwargs)[source]#

Capture a frame from a device using the plugin-specific logic - to be implemented by the derived classes.

Parameters:

device – An initialized platypush.plugins.camera.Camera object.

capture_preview(duration: float | None = None, n_frames: int | None = None, **camera) dict[source]#

Start a camera preview session.

Parameters:
  • duration – Preview duration (default: until stop_capture() is called).

  • n_frames – Number of frames to display before closing (default: until stop_capture() is called).

  • camera – Camera object properties.

Returns:

The status of the device.

prepare_device(device: PiCamera)[source]#

Prepare a device using the plugin-specific logic - to be implemented by the derived classes.

Parameters:

device – An initialized platypush.plugins.camera.Camera object.

release_device(device: PiCamera)[source]#

Release a device using the plugin-specific logic - to be implemented by the derived classes.

Parameters:

device – An initialized platypush.plugins.camera.Camera object.

start_preview(camera: Camera)[source]#

Start camera preview.

start_streaming(duration: float | None = None, stream_format: str = 'h264', **camera) dict[source]#

Expose the video stream of a camera over a TCP connection.

Parameters:
  • duration – Streaming thread duration (default: until stop_streaming() is called).

  • stream_format – Format of the output stream - e.g. h264, mjpeg, mkv etc. (default: mkv).

  • camera – Camera object properties - see constructor parameters.

Returns:

The status of the device.

stop_preview(camera: Camera)[source]#

Stop camera preview.