bin/start-streaming 904 B raw
1
#!/bin/sh
2
INRES="3840x2160"
3
OUTRES="1920x1080"
4
FPS="12" # target FPS
5
GOP="24" # i-frame interval, should be double of FPS,
6
GOPMIN="12" # min i-frame interval, should be equal to fps,
7
THREADS="4" # max 6
8
CBR="2500k" # constant bitrate (should be between 1000k - 3000k)
9
QUALITY="fast" # one of the many FFMPEG preset
10
AUDIO_RATE="44100"
11
# to hide logs use= -loglevel quiet
12
13
ffmpeg -f x11grab \
14
       -s "$INRES" \
15
			 -r "$FPS" \
16
			 -thread_queue_size 1024 \
17
			 -i :0.0 \
18
			 -f alsa \
19
			 -acodec pcm_s32le \
20
			 -i hw:0,0 \
21
			 -f flv \
22
			 -ac 2 \
23
			 -ar $AUDIO_RATE \
24
			 -sws_flags lanczos \
25
			 -vcodec libx264 \
26
			 -x264opts keyint=$GOP:scenecut=-1 \
27
			 -b:v $CBR \
28
			 -minrate $CBR \
29
			 -maxrate $CBR \
30
			 -pix_fmt yuv420p \
31
			 -s $OUTRES \
32
			 -acodec aac \
33
			 -tune zerolatency \
34
			 -preset $QUALITY \
35
			 -threads $THREADS \
36
			 -bufsize $CBR "rtmp://live.twitch.tv/app/$STREAM_KEY"
37