summaryrefslogtreecommitdiff
path: root/twitch
diff options
context:
space:
mode:
Diffstat (limited to 'twitch')
-rwxr-xr-xtwitch46
1 files changed, 46 insertions, 0 deletions
diff --git a/twitch b/twitch
new file mode 100755
index 0000000..b84af77
--- /dev/null
+++ b/twitch
@@ -0,0 +1,46 @@
+#! /usr/bin/env nix-shell
+#! nix-shell -i bash -p ffmpeg
+#
+# https://wiki.archlinux.org/index.php/Streaming_to_twitch.tv
+
+FILE=$(date +%Y.%m.%d..%H.%M)
+
+INRES="1920x1080"
+OUTRES="1920x1080"
+FPS="15"
+GOP="30"
+GOPMIN="15"
+THREADS="2"
+CBR="1000k"
+QUALITY="ultrafast"
+AUDIO_RATE="44100"
+KEY=$(pass internet/twitch.tv-key)
+SERVER="live-lax"
+
+ffmpeg \
+ -f alsa -i default \
+ -f x11grab -s "$INRES" -r "$FPS" -i :0.0 \
+ -f video4linux2 -i /dev/video0 \
+ -filter_complex '[2:v]scale=480:-1[cam];[1:v][cam]overlay=W-w-10:H-h-10' \
+ -f flv "rtmp://$SERVER.twitch.tv/app/$KEY"
+ -c:v libx264 \
+ -preset veryfast \
+ -maxrate 1984k \
+ -bufsize 3968k \
+ -g "$GOP" \
+ -keyint_min "$GOPMIN" \
+ -b:v "$CBR" \
+ -minrate "$CBR" \
+ -maxrate "$CBR" \
+ -pix_fmt yuv420p \
+ -s "$OUTRES" \
+ -preset "$QUALITY" \
+ -tune film \
+ -crf:v 18 \
+ -c:a libmp3lame \
+ -b:a 128k \
+ -threads "$THREADS" \
+ -strict normal \
+ -bufsize "$CBR" \
+ -ar "$AUDIO_RATE" \
+ -ac 2 \