-
Notifications
You must be signed in to change notification settings - Fork 5
Description
I'm trying to detect labels in a streaming video but the stream processor goes from STARTING state to STOPPED state. It seems not to reach RUNNING state at any moment.
If MaxDurationInSeconds is set, it finishes before reaching that duration. If it's not set, it finishes after a couple of seconds.
Sometimes it detects a label that appeared in the stream a long time ago. Sometimes, if the processor is restarted after having stopped, it detects events that have already been detected before, returning exactly the same image.
I have tried with an external webcam, built-in webcam and sample videos, but I get the same behavior in all cases.
I have checked that the producer timestamp is correct. Just after starting the processor, I capture a video of a few seconds of the stream using get_data_endpoint
and get_media
functions for the same timestamp used in stream processor start request. The video extracted from the stream for that timestamp shows the expected content.
Responses from stream processors's creation and start requests don't show any error.
Stream processor creation request:
response = rekognition_client.create_stream_processor(
Input={
'KinesisVideoStream': {
'Arn': ...
}
},
Output={
'S3Destination': {
'Bucket': ...
}
},
Name= ...,
Settings = {'ConnectedHome': {
'Labels': ["PERSON", "PET", "PACKAGE","ALL"],
'MinConfidence': 90.0
}
},
RoleArn=...,
NotificationChannel={
'SNSTopicArn': ...
}
)
Stream processor start request:
response = rekognition.start_stream_processor(
Name=...,
StartSelector={
'KVSStreamStartSelector': {
'ProducerTimestamp': int(time.time())
}
}
#,StopSelector={'MaxDurationInSeconds': 120}
)