X-Git-Url: https://iankelling.org/git/?a=blobdiff_plain;f=ffs;h=9efc9f0ebc75e454a076cd01bfa047200632b027;hb=8de1e14e35d0ad62620a59f6e2ca4ba19ddcda3c;hp=fe42908750b636051efe1ba9d2393b89d95f94e3;hpb=ee27d59f1eea7a83b1764ec41bfb3015bb463a26;p=distro-setup diff --git a/ffs b/ffs index fe42908..9efc9f0 100755 --- a/ffs +++ b/ffs @@ -22,12 +22,9 @@ # ffs = ffmpeg stream -# todo: learn to start working in one corner of the screen. - -# potential improvement: it might be nice that we could have a tall terminal bug only use +# potential improvement: it might be nice that we could have a tall terminal but only use # the top half for a 1080p stream, this is how: # https://superuser.com/questions/1106674/how-to-add-blank-lines-above-the-bottom-in-terminal -# if ! test "$BASH_VERSION"; then echo "error: shell is not bash" >&2; exit 1; fi @@ -146,7 +143,7 @@ fi ##### end command line parsing ######## -host=live.iankelling.org:8000 +host=live.iankelling.org:443 if ip n show 10.2.0.1 | grep . &>/dev/null && \ [[ $(dig +timeout=1 +short @10.2.0.1 -x 10.2.0.2 2>&1 ||:) == kd.b8.nz. ]]; then host=127.0.0.1:8000 @@ -179,7 +176,14 @@ else stream_res=$primary_res fi -framerate=8 +# for 1080p, default 256k is poor quality. 500 is ok. 1500 is a bit +# better, so go with that. Also, that is about 2x what is recommended +# in https://livekit.io/webrtc/bitrate-guide (our framerate is lower). + +bitrate=$(( ( ${stream_res/x/*} ) / 1380 )) + +# 8 seems fine. be conservative by going a bit higher. +framerate=10 keyframe_interval=$((framerate * 2)) # Monitor of default sink. @@ -266,8 +270,7 @@ opts=( -vcodec libvpx -g $keyframe_interval -quality realtime - # for 1080p, default 256k is poor quality. 500 is ok. 1500 is a bit better. - -b:v 1500k + -b:v ${bitrate}k -threads 2 -error-resilient 1