mirror of
https://github.com/linsa-io/linsa.git
synced 2026-01-11 14:30:26 +01:00
30 lines
943 B
Bash
Executable File
30 lines
943 B
Bash
Executable File
#!/bin/bash
|
|
# Stream Mac screen + audio to Cloudflare Stream via RTMPS
|
|
# Uses VideoToolbox for zero-CPU hardware encoding
|
|
|
|
# Device 2 = Capture screen 0
|
|
# Device 1 = MacBook Pro Microphone (audio)
|
|
|
|
# Cloudflare Stream credentials (set STREAM_KEY env var or in ~/.config/linsa/stream.env)
|
|
RTMPS_URL="rtmps://live.cloudflare.com:443/live/"
|
|
|
|
if [ -z "$STREAM_KEY" ]; then
|
|
if [ -f ~/.config/linsa/stream.env ]; then
|
|
source ~/.config/linsa/stream.env
|
|
fi
|
|
fi
|
|
|
|
if [ -z "$STREAM_KEY" ]; then
|
|
echo "Error: STREAM_KEY not set"
|
|
echo "Set it via: export STREAM_KEY=your_key"
|
|
echo "Or create ~/.config/linsa/stream.env with: STREAM_KEY=your_key"
|
|
exit 1
|
|
fi
|
|
|
|
exec ffmpeg -f avfoundation -capture_cursor 1 -framerate 60 -i "2:1" \
|
|
-c:v h264_videotoolbox -b:v 50000k -maxrate 100000k -bufsize 200000k \
|
|
-profile:v high -pix_fmt yuv420p \
|
|
-g 120 -keyint_min 120 \
|
|
-c:a aac -b:a 256k -ar 48000 -ac 2 \
|
|
-f flv "${RTMPS_URL}${STREAM_KEY}"
|