Video measurement


The SDK outputs results once required success conditions were satisfied for 1 minute.

Success conditions

The following conditions are required for a successful measurement:

  • the extracted photoplethysmographic signal quality must be above a threshold that enables unambigous interpretation
  • human face must be stable and properly positioned within the camera frame

Real-time HR (heart rate)

During the measurement, you can query the SDK for real-time Heart Rate.

The provided value is calculated based on full heart cycles observed during the last 10 seconds, with a 1-second delay used for signal stabilization.

Final metrics

Final measurement metrics are provided based on all full heart cycles observed during the last 1 minute of the measurement. The measurement itself may take longer if some conditions were not satisfied.

IBI (interbeat intervals) are computed based on advanced filtering and analysis of the extracted dense photoplethysmographic signal. Start and end time of each detected heartbeat is provided, as well as it's duration rounded to full milliseconds.

HR (heart rate) is computed based on the average duration of observed heart cycles.

HRV (heart rate variability) metrics are computed as statistical measures of the observed heart cycles.

BR (breathing rate) is computed based on advanced analysis of the observed heart cycles.


Breathing rate will only be available if the SDK has high confidence about the computed result, so it might not be returned for some measurements (for example in cases of very slow, very fast or highly irregular breath).

The result can be obtained with getLatestMeasurementSummary call providing metrics computed for the latest measurement (invalid if no measurement was finished successfully) of the following structure:

static MeasurementResult getLatestMeasurementSummary();

class MeasurementResult {
  final double heartRateBpm;      // Heart rate in BPM (beats per minute)
  final double hrvSdnnMs;         // HRV using SDNN metric in milliseconds
  final double hrvLnrmssdMs;      // HRV using lnRMSSD metric in milliseconds
  final double? breathingRateBpm; // Breathing rate in BPM (breaths per minute)
  final List<HeartbeatResult>? heartbeats;


class HeartbeatResult {
  final double? startLocationSec; // exact start location in seconds
  final double? endLocationSec;   // exact end location in seconds
  final double? durationMs;       // heartbeat duration, rounded to 1 ms