Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- # GLOBAL VARIABLES
- # GOP [frames] = seg_duration [s] * framerate [frames/s]
- segDuration=1.0
- framerate=30
- gop=30
- # gop=$(echo "$segDuration * $framerate" | bc) # floating point operation
- # gop=${gop%.*} # truncate decimal part
- # echo -e "GOP: $gop \n seg_duration: $segDuration \n framerate: $framerate \n"
- # Chunks
- fragDuration=0.5
- fragType='every_frame' # every_frame, duration, [none]
- #CBR (Constant Bit Rate)
- bitrate=3000K
- # Encoder
- cd ~/ffmpeg_sources/ffmpeg && \
- ./ffmpeg \
- -v verbose \
- -listen 1 \
- -i 'rtmp://127.0.0.1:1935/stream/test' \
- -flags +global_header \
- -r $framerate \
- \
- -filter_complex "settb=AVTB,setpts='trunc(PTS/1K)*1K+st(1,trunc(RTCTIME/1K))-1K*trunc(ld(1)/1K)',\
- drawbox=x=0:y=0:width=400:height=100:[email protected]:t=fill,\
- drawtext=text='%{localtime\:%M}\:%{localtime\:%S}.%{eif\:1M*t-1K*trunc(t*1K)\:d\:3}':x=15:y=20:\
- fontfile=/usr/share/fonts/truetype/freefont/FreeSans.ttf:fontsize=80:fontcolor=white,\
- split=1[s0]" \
- \
- -pix_fmt yuv420p \
- -c:v libx264 \
- \
- -b:v:0 $bitrate -minrate:v:0 $bitrate -maxrate:v:0 $bitrate -bufsize:v:0 $bitrate \
- \
- -g:v $gop -keyint_min:v $gop -sc_threshold:v 0 \
- \
- -color_primaries bt709 -color_trc bt709 -colorspace bt709 \
- \
- -c:a aac -ar 48000 -b:a 96k \
- \
- -map [s0] \
- -map 0:a:0 \
- \
- -preset ultrafast \
- -tune zerolatency \
- \
- -use_template 1 \
- -use_timeline 0 \
- -streaming 1 \
- -frag_type $fragType \
- -flags +global_header \
- -ldash 1 \
- -remove_at_exit 1 \
- -utc_timing_url 'https://time.akamai.com?iso&ms' \
- -format_options 'movflags=cmaf' \
- -write_prft 1 \
- -target_latency '3.0' \
- -seg_duration $segDuration \
- -frag_duration $fragDuration \
- -adaptation_sets "id=0,streams=v id=1,streams=a" \
- -init_seg_name init-L\$RepresentationID\$.mp4 \
- -media_seg_name frag-N\$Number\$-L\$RepresentationID\$.mp4 \
- -method PUT \
- -f dash \
- "http://127.0.0.1:80/upload/live.mpd"
Advertisement
Add Comment
Please, Sign In to add comment