Wie kann ich Kinesis Video -Streams -Fragmente richtig lesen und verarbeiten?Python

Python-Programme
Anonymous
 Wie kann ich Kinesis Video -Streams -Fragmente richtig lesen und verarbeiten?

Post by Anonymous »

Ich arbeite an der Verarbeitung von Echtzeit-Audio von Amazon Connect, indem ich Fragmente aus Kinesis-Video-Streams abhebt und auf S3 speichert. Die MKV -Datei, die ich in S3 exportiert, ist jedoch nicht spielbar und scheint beschädigt zu werden. < /P>
import boto3
import os
s3_bucket = 'BUCKET_NAME'

def lambda_handler(event, context):

MediaStreams = event['Details']['ContactData']['MediaStreams']
CustomerAudio = MediaStreams['Customer']['Audio']

StartFragmentNumber = CustomerAudio['StartFragmentNumber']
StreamARN = CustomerAudio['StreamARN']

kvs_client = boto3.client("kinesisvideo", region_name="eu-central-1")
endpoint = kvs_client.get_data_endpoint(
StreamARN=StreamARN,
APIName="GET_MEDIA"
)["DataEndpoint"]

media_client = boto3.client("kinesis-video-media", endpoint_url=endpoint, region_name="eu-central-1")
response = media_client.get_media(
StreamARN=StreamARN,
StartSelector={
"StartSelectorType": "FRAGMENT_NUMBER",
"AfterFragmentNumber": StartFragmentNumber,
}
)

process_audio(response["Payload"])

def process_audio(payload):
s3_client = boto3.client('s3')
s3_key = 'stream.mkv'
temp_audio_path = '/tmp/stream.mkv'

with open(temp_audio_path, 'wb') as f:
f.write(payload.read())

s3_client.upload_file(temp_audio_path, s3_bucket, s3_key)
os.remove(temp_audio_path)
return {
'statusCode': 200,
'body': f'Audio file saved to s3://{s3_bucket}/{s3_key}'
}
< /code>
Die in S3 gespeicherte Stream.mkv -Datei ist nicht spielbar. Es scheint korrupt zu sein, und Standard -Medienspieler können es nicht öffnen. Ich vermute, dass der Datenstrom nicht korrekt gelesen oder geschrieben wird.>

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post