Add start-streaming script
e509b4c1cd0ec6052c42b30a10c0155cab0fe57c
1 parent
5219698f
bin/start-streaming
added
+37 -0
| 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 | + |