Skip to content

Instantly share code, notes, and snippets.

@antlis
Created January 8, 2018 21:57
Show Gist options
  • Save antlis/8cfa4fe8b8f5d5014c4c0493e44c5d28 to your computer and use it in GitHub Desktop.
Save antlis/8cfa4fe8b8f5d5014c4c0493e44c5d28 to your computer and use it in GitHub Desktop.
Twitch streaming via ffmpeg
# https://wiki.archlinux.org/index.php/Streaming_to_twitch.tv
streaming() {
INRES="1920x1080" # input resolution
OUTRES="1920x1080" # output resolution
FPS="15" # target FPS
GOP="30" # i-frame interval, should be double of FPS,
GOPMIN="15" # min i-frame interval, should be equal to fps,
THREADS="2" # max 6
CBR="1000k" # constant bitrate (should be between 1000k - 3000k)
QUALITY="ultrafast" # one of the many FFMPEG preset
AUDIO_RATE="44100"
STREAM_KEY="$1" # use the terminal command Streaming streamkeyhere to stream your video to twitch or justin
SERVER="live-fra" # twitch server in frankfurt, see http://bashtech.net/twitch/ingest.php for list
ffmpeg -f x11grab -s "$INRES" -r "$FPS" -i :0.0 -f alsa -i pulse -f flv -ac 2 -ar $AUDIO_RATE \
-vcodec libx264 -g $GOP -keyint_min $GOPMIN -b:v $CBR -minrate $CBR -maxrate $CBR -pix_fmt yuv420p\
-s $OUTRES -preset $QUALITY -tune film -acodec libmp3lame -threads $THREADS -strict normal \
-bufsize $CBR "rtmp://$SERVER.twitch.tv/app/$STREAM_KEY"
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment