Skip to content

Commit ea461c9

Browse files
Add simplified streamer for AIvsAI
1 parent 0f1405f commit ea461c9

2 files changed

Lines changed: 49 additions & 0 deletions

File tree

deploy/deployment-aivsai.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ spec:
2626
containers:
2727
- image: PLACEHOLDER
2828
name: streamer
29+
command: [ "/usr/bin/streamer-simple.sh" ]
2930
resources:
3031
limits:
3132
memory: 180Mi

streamer-simple.sh

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
#!/bin/bash
2+
set -euo pipefail
3+
4+
POST_PROCESS_DIR=${POST_PROCESS_DIR:-/tmp/hooks.d}
5+
6+
7+
while true; do
8+
if ! sqs_message=$(aws sqs receive-message --queue-url "$SQS_QUEUE" --max-number-of-messages 1); then
9+
echo "Failed to receive message from SQS, retrying..."
10+
sleep 1
11+
continue
12+
fi
13+
14+
if [[ -z "$sqs_message" ]]; then
15+
echo "No messages in SQS queue, sleeping..."
16+
sleep 1
17+
continue
18+
fi
19+
20+
record=$(echo "$sqs_message" | jq -r '.Messages[0].Body')
21+
22+
event_name=$(echo "$record" | jq -r '.Records[0].eventName')
23+
sqs_message_id=$(echo "$sqs_message" | jq -r '.Messages[0].ReceiptHandle')
24+
if [[ "$event_name" != ObjectCreated:* ]]; then
25+
echo "Ignoring event: $event_name with message id: $sqs_message_id"
26+
sleep 1
27+
continue
28+
fi
29+
30+
bucket=$(echo "$record" | jq -r '.Records[0].s3.bucket.name')
31+
key=$(echo "$record" | jq -r '.Records[0].s3.object.key')
32+
#video=$(aws s3 presign "s3://$bucket/$key" --expires-in 3600)
33+
tmpfile=$(mktemp /tmp/videoXXXX)
34+
aws s3 cp "s3://$bucket/$key" "$tmpfile"
35+
video="$tmpfile"
36+
37+
echo "Streaming video: $video"
38+
ffmpeg -loglevel warning -re -i "$video" \
39+
-fflags +discardcorrupt -analyzeduration 10000000 -probesize 10000000 \
40+
-c:v copy -c:a aac \
41+
-f flv -ac 2 -flvflags no_duration_filesize "$OUTPUT_URL"
42+
rm -f "$tmpfile"
43+
echo "Finished streaming video"
44+
aws sqs delete-message --queue-url "$SQS_QUEUE" --receipt-handle "$sqs_message_id"
45+
if ! run-parts "$POST_PROCESS_DIR" -a "$key"; then
46+
echo "Failed to run post-processing script"
47+
fi
48+
done

0 commit comments

Comments
 (0)