Skip to content

Serializers

compress_image_for_webrtc(image)

Serialize image with low JPEG quality for efficient WebRTC transmission.

Source code in inference/core/interfaces/webrtc_worker/serializers.py
12
13
14
15
16
17
18
19
20
21
def compress_image_for_webrtc(image: WorkflowImageData) -> Dict[str, Any]:
    """Serialize image with low JPEG quality for efficient WebRTC transmission."""
    jpeg_bytes = encode_image_to_jpeg_bytes(
        image.numpy_image, jpeg_quality=WEBRTC_PREVIEW_FRAME_JPEG_QUALITY
    )
    return {
        "type": "base64",
        "value": base64.b64encode(jpeg_bytes).decode("ascii"),
        "video_metadata": image.video_metadata.dict() if image.video_metadata else None,
    }

serialize_for_webrtc(value)

Serialize for WebRTC, compressing images with low JPEG quality.

Source code in inference/core/interfaces/webrtc_worker/serializers.py
24
25
26
27
28
29
30
31
32
def serialize_for_webrtc(value: Any) -> Any:
    """Serialize for WebRTC, compressing images with low JPEG quality."""
    if isinstance(value, WorkflowImageData):
        return compress_image_for_webrtc(value)
    if isinstance(value, dict):
        return {k: serialize_for_webrtc(v) for k, v in value.items()}
    if isinstance(value, list):
        return [serialize_for_webrtc(v) for v in value]
    return serialize_wildcard_kind(value)