Add low delay examples

This commit is contained in:
Fierelier 2022-11-01 20:53:08 +01:00
parent 4fafc334db
commit 10eeded2c7
3 changed files with 75 additions and 0 deletions

35
client/broadcast-screen Executable file
View File

@ -0,0 +1,35 @@
#!/bin/bash
# USER SETTINGS
RESOLUTION="480"
FRAMERATE="15"
BITRATE="1M"
PROFILE="ultrafast"
FST_IP="fier.me:61920"
FST_USER="user"
FST_PASSWORD="123"
FST_CHANNEL="default"
FST_CHANNELPASS="456"
PYTHON="python3"
# LINUX:
ARGS_INPUT="-f x11grab -framerate "$FRAMERATE" -i "$DISPLAY""
# WINDOWS:
# ARGS_INPUT="-f gdigrab -framerate "$FRAMERATE" -i desktop"
ARGS_ENCODING="-c:v libx264 -pix_fmt yuv420p -preset $PROFILE -tune zerolatency"
ARGS_OUTPUT="-f m4v"
# APPLY PROPERTIES
ARGS_INPUT="$ARGS_INPUT -vf scale=-2:$RESOLUTION"
ARGS_ENCODING="$ARGS_ENCODING -x264-params "nal-hrd=cbr" -b:v $BITRATE -minrate $BITRATE -maxrate $BITRATE -bufsize $BITRATE*2"
# HACKS - LOWER DELAY
ARGS_INPUT="-strict experimental -avioflags direct -thread_queue_size 1 -hwaccel auto -probesize 32 -fflags nobuffer -flags low_delay -flags2 fast $ARGS_INPUT"
ARGS_ENCODING="-max_probe_packets 0 -max_delay 0 -flags2 fast $ARGS_ENCODING -x264opts intra-refresh=1"
ARGS_OUTPUT="-flags2 fast $ARGS_OUTPUT -flags2 fast -muxdelay 0 -muxpreload 0 -max_delay 0 -flush_packets 1"
ffmpeg $FLAGS_INPUT $ARGS_INPUT $ARGS_ENCODING $ARGS_OUTPUT - | "$PYTHON" fstream.py "$FST_IP" "broadcast,user=$FST_USER,user-password=$FST_PASSWORD,channel=$FST_CHANNEL,channel-password=$FST_CHANNELPASS"

31
client/broadcast-voice Executable file
View File

@ -0,0 +1,31 @@
#!/bin/bash
# USER SETTINGS
BITRATE="8k"
FST_IP="fier.me:61920"
FST_USER="user"
FST_PASSWORD="123"
FST_CHANNEL="default"
FST_CHANNELPASS="456"
PYTHON="python3"
# LINUX:
ARGS_INPUT="-f pulse -i 1"
# WINDOWS:
# ARGS_INPUT="-f gdigrab -framerate "$FRAMERATE" -i desktop"
ARGS_ENCODING="-c:a libopus -ac 1 -vbr off -application lowdelay -mapping_family 0"
ARGS_OUTPUT="-f mpegts"
# APPLY PROPERTIES
ARGS_ENCODING="$ARGS_ENCODING -b:a $BITRATE"
# HACKS - LOWER DELAY
ARGS_INPUT="-strict experimental -avioflags direct -thread_queue_size 1 -hwaccel auto -probesize 32 -fflags nobuffer -flags low_delay -flags2 fast $ARGS_INPUT"
ARGS_ENCODING="-max_probe_packets 0 -max_delay 0 -flags2 fast $ARGS_ENCODING -x264opts intra-refresh=1"
ARGS_OUTPUT="-flags2 fast $ARGS_OUTPUT -flags2 fast -muxdelay 0 -muxpreload 0 -max_delay 0 -flush_packets 1"
ffmpeg $FLAGS_INPUT $ARGS_INPUT $ARGS_ENCODING $ARGS_OUTPUT - | "$PYTHON" fstream.py "$FST_IP" "broadcast,user=$FST_USER,user-password=$FST_PASSWORD,channel=$FST_CHANNEL,channel-password=$FST_CHANNELPASS"

9
client/watch Executable file
View File

@ -0,0 +1,9 @@
#!/bin/bash
# USER SETTINGS
FST_IP="fier.me:61920"
FST_USER="user"
FST_CHANNEL="default"
FST_CHANNELPASS="123"
python3 fstream.py "$FST_IP" "watch,user=$FST_USER,channel=$FST_CHANNEL,channel-password=$FST_CHANNELPASS" | ffplay -avioflags direct -strict experimental -analyzeduration 0 -sync ext -probesize 32 -fflags nobuffer -flags low_delay -max_delay 0 -max_probe_packets 0 -x264opts intra-refresh=1 -