summaryrefslogtreecommitdiff
path: root/bin
diff options
context:
space:
mode:
Diffstat (limited to 'bin')
-rwxr-xr-xbin/stream19
1 files changed, 16 insertions, 3 deletions
diff --git a/bin/stream b/bin/stream
index 0236af7..38902d2 100755
--- a/bin/stream
+++ b/bin/stream
@@ -68,7 +68,7 @@ fi
VSTREAMINDEX=1
[ -n "$AINPUT" ] || VSTREAMINDEX=0
-FIRSTPORT=${FIRSTPORT:-5002} # even number - next 3 ports used too
+FIRSTPORT=${FIRSTPORT:-5002} # even number - next 7 ports used too
ACHANNELS=2
AFRAMERATE=48000
@@ -78,8 +78,10 @@ HEIGHT=360
VBITRATE=256000
MKWEBM='[webm]'
+MKMPEG='[mpeg]'
[ -z "$MKWEBM" ] || VCODECCOUNT=$((VCODECCOUNT+1))
+[ -z "$MKMPEG" ] || VCODECCOUNT=$((VCODECCOUNT+1))
SAVESTEM="$SAVEDIR/$(date +%Y%m%d-%H%M%S)"
${SAVEDIR:+export FFREPORT=file="$SAVESTEM.log"}
@@ -99,7 +101,7 @@ ffmpeg -hide_banner -threads auto -re \
${HASVIDEO:+-filter_complex \
"[$VSTREAMINDEX:v]scale=-2:$HEIGHT${WATERMARK:-[v]}${WATERMARK:+[bg]${LOGO:+;
[bg][$((VSTREAMINDEX+1)):v]overlay=main_w-overlay_w-20:main_h-overlay_h-20[v]}};
- [v]split=$VCODECCOUNT$MKWEBM" } \
+ [v]split=$VCODECCOUNT$MKWEBM$MKMPEG" } \
${SAVEDIR:+-map '0:' ${TWOSOURCES:+-map '1:'} \
-codec copy \
-f segment -segment_format matroska -segment_format_options live=1:reserve_index_space=512kB \
@@ -118,4 +120,15 @@ ffmpeg -hide_banner -threads auto -re \
-qmin 4 -qmax 56 } \
-f tee \
"${HASAUDIO:+[select=\'a\':f=rtp:payload_type=111]rtp://$IP:$FIRSTPORT?pkt_size=1200| \
- }${HASVIDEO:+[select=\'v\':f=rtp:payload_type=100]rtp://$IP:$((FIRSTPORT+2))?pkt_size=1200}" }
+ }${HASVIDEO:+[select=\'v\':f=rtp:payload_type=100]rtp://$IP:$((FIRSTPORT+2))?pkt_size=1200}" } \
+ ${MKMPEG:+\
+ ${HASAUDIO:+-map '0:a' } ${HASVIDEO:+-map '[mpeg]' } \
+ ${HASAUDIO:+\
+ -codec:a aac -strict experimental -ac "$ACHANNELS" -ar 44100 -b:a $((ACHANNELS*64))k } \
+ ${HASVIDEO:+\
+ -pix_fmt yuv420p \
+ -codec:v libx264 -tune zerolatency -preset ultrafast \
+ -maxrate "$VBITRATE" -bufsize "$((VBITRATE*2))" -crf 23 } \
+ -f tee \
+ "${HASAUDIO:+[select=\'a\':f=rtp:payload_type=96]rtp://$IP:$((FIRSTPORT+4))?pkt_size=1200| \
+ }${HASVIDEO:+[select=\'v\':f=rtp:payload_type=97]rtp://$IP:$((FIRSTPORT+6))?pkt_size=1200}" }