Video File Processing

Last updated
December 18, 2025

Introduction

Saphere Scan also allows physiological measurement computation from pre-recorded video files. This is especially useful for offline analysis or mobile app integrations.

Video Preparation Guidelines

To ensure proper results, submitted video files must meet the following requirements:

Technical Requirements

  • File format: .avi, .mp4, .mov, .webp
  • Maximum file size: 100 MB
  • Minimum duration: 25 seconds (to allow sufficient data for processing)
  • Maximum duration processed: Only the first 30 seconds are used

Environmental and Subject Conditions

  • Stand upright facing the camera
  • Camera aligned at face height
  • Keep 40–60 cm distance from the camera
  • Torso must be visible (required for respiratory rate computation)
  • Ensure even and adequate lighting (avoid extreme brightness or dim light)
  • Avoid movement during recording
Ideal face framing

How to Perform a Video Measurement Using the API

You can extract physiological variables from a video using either a one-step or two-step API call.

Single-Call Video Endpoint

Submit both measurement options and the video file in a single request:

POST https://api.test.saphere.ai/measures/rppg/video
Content-Type: multipart/form-data; boundary=WebAppBoundary
Accept: application/json; version=1
Authorization: Bearer <API_KEY>

--WebAppBoundary
Content-Disposition: form-data; name="video"; filename="YOUR_VIDEO.mp4"

< PATH_TO_YOUR_VIDEO_FILE.mp4
--WebAppBoundary--

--WebAppBoundary
Content-Disposition: form-data; name="userData"
Content-Type: application/json

{
    "sex": "F",
    "age": 35,
    "weight": 58,
    "height": 171
 }

--WebAppBoundary--

This endpoint returns the results after processing the video.

Two-Step API Method

To extract physiological variables from a video, use the following two-step process:

Step 1: Create a Measurement Request

POST https://api.test.saphere.ai/measures
Content-Type: application/json
Accept: application/json
Authorization: Bearer <API_KEY>

{
  "userData": {
    "sex": "M",
    "age": 26,
    "weight": 68,
    "height": 181
  }
}

β†’ Response will include a measureId

Step 2: Upload the Video File

POST https://api.test.saphere.ai/measures/<measure_id>/rppg/video
Content-Type: multipart/form-data; boundary=WebAppBoundary
Accept: application/json; version=1
Authorization: Bearer <APIKEY>

--WebAppBoundary
Content-Disposition: form-data; name="video"; filename="YOUR_VIDEO.mp4"

< PATH_TO_YOUR_VIDEO_FILE.mp4
--WebAppBoundary--

Once processed, results are returned asynchronously or can be queried.

For complete technical details and validation schemas, see:

Close Modal