startPersonTracking method

Future<StartPersonTrackingResponse> startPersonTracking({
  1. required Video video,
  2. String? clientRequestToken,
  3. String? jobTag,
  4. NotificationChannel? notificationChannel,
})

Starts the asynchronous tracking of a person's path in a stored video.

Amazon Rekognition Video can track the path of people in a video stored in an Amazon S3 bucket. Use Video to specify the bucket name and the filename of the video. StartPersonTracking returns a job identifier (JobId) which you use to get the results of the operation. When label detection is finished, Amazon Rekognition publishes a completion status to the Amazon Simple Notification Service topic that you specify in NotificationChannel.

To get the results of the person detection operation, first check that the status value published to the Amazon SNS topic is SUCCEEDED. If so, call GetPersonTracking and pass the job identifier (JobId) from the initial call to StartPersonTracking.

May throw AccessDeniedException. May throw IdempotentParameterMismatchException. May throw InvalidParameterException. May throw InvalidS3ObjectException. May throw InternalServerError. May throw VideoTooLargeException. May throw ProvisionedThroughputExceededException. May throw LimitExceededException. May throw ThrottlingException.

Parameter video : The video in which you want to detect people. The video must be stored in an Amazon S3 bucket.

Parameter clientRequestToken : Idempotent token used to identify the start request. If you use the same token with multiple StartPersonTracking requests, the same JobId is returned. Use ClientRequestToken to prevent the same job from being accidently started more than once.

Parameter jobTag : An identifier you specify that's returned in the completion notification that's published to your Amazon Simple Notification Service topic. For example, you can use JobTag to group related jobs and identify them in the completion notification.

Parameter notificationChannel : The Amazon SNS topic ARN you want Amazon Rekognition Video to publish the completion status of the people detection operation to.

Implementation

Future<StartPersonTrackingResponse> startPersonTracking({
  required Video video,
  String? clientRequestToken,
  String? jobTag,
  NotificationChannel? notificationChannel,
}) async {
  ArgumentError.checkNotNull(video, 'video');
  _s.validateStringLength(
    'clientRequestToken',
    clientRequestToken,
    1,
    64,
  );
  _s.validateStringLength(
    'jobTag',
    jobTag,
    1,
    256,
  );
  final headers = <String, String>{
    'Content-Type': 'application/x-amz-json-1.1',
    'X-Amz-Target': 'RekognitionService.StartPersonTracking'
  };
  final jsonResponse = await _protocol.send(
    method: 'POST',
    requestUri: '/',
    exceptionFnMap: _exceptionFns,
    // TODO queryParams
    headers: headers,
    payload: {
      'Video': video,
      if (clientRequestToken != null)
        'ClientRequestToken': clientRequestToken,
      if (jobTag != null) 'JobTag': jobTag,
      if (notificationChannel != null)
        'NotificationChannel': notificationChannel,
    },
  );

  return StartPersonTrackingResponse.fromJson(jsonResponse.body);
}