diff options
Diffstat (limited to 'bin')
-rwxr-xr-x | bin/stream | 19 |
1 files changed, 16 insertions, 3 deletions
@@ -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}" } |