camera.ffmpeg#

class platypush.plugins.camera.ffmpeg.CameraFfmpegPlugin(device: str | None = '/dev/video0', input_format: str = 'v4l2', ffmpeg_args: Tuple[str] = (), **opts)[source]#

Bases: CameraPlugin

Plugin to interact with a camera over FFmpeg.

Requires:

  • ffmpeg package installed on the system.

__init__(device: str | None = '/dev/video0', input_format: str = 'v4l2', ffmpeg_args: Tuple[str] = (), **opts)[source]#
Parameters:
  • device – Path to the camera device (default: /dev/video0).

  • input_format – FFmpeg input format for the the camera device (default: v4l2).

  • ffmpeg_args – Extra options to be passed to the FFmpeg executable.

  • opts – Camera options - see constructor of platypush.plugins.camera.CameraPlugin.

capture_frame(camera: FFmpegCamera, *args, **kwargs) PIL.Image.Image | None[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.

prepare_device(camera: FFmpegCamera) Popen[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(camera: FFmpegCamera)[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_camera(camera: FFmpegCamera, preview: bool = False, *args, **kwargs)[source]#

Start a camera capture session.

Parameters:
  • camera – An initialized platypush.plugins.camera.Camera object.

  • preview – Show a preview of the camera frames.

wait_capture(camera: FFmpegCamera) None[source]#

Wait until a capture session terminates.

Parameters:

camera – Camera object. camera.info.capture_timeout is used as a capture thread termination timeout if set.