diff options
author | Jonas Smedegaard <dr@jones.dk> | 2017-04-16 19:38:15 +0200 |
---|---|---|
committer | Jonas Smedegaard <dr@jones.dk> | 2017-04-16 19:38:15 +0200 |
commit | b5dd71d97379079416346635a142467a987ff642 (patch) | |
tree | 2cab6d04d50c7121ff292a994f8a5d29946d7975 /bin | |
parent | eb1811763a86c74d9e88e9f35d1d2b2045b98167 (diff) |
Add 1s latency (deadline). Stop drop frames (bandwidth limits are not strict).
Diffstat (limited to 'bin')
-rwxr-xr-x | bin/decode+edit+encode | 3 | ||||
-rwxr-xr-x | bin/decode+edit+encode+stream | 5 | ||||
-rwxr-xr-x | bin/decode+edit+loop+encode+stream | 5 | ||||
-rwxr-xr-x | bin/encodevideo+loop+stream | 5 | ||||
-rwxr-xr-x | bin/loop+encode+stream | 5 |
5 files changed, 10 insertions, 13 deletions
diff --git a/bin/decode+edit+encode b/bin/decode+edit+encode index a34b54e..b3d3702 100755 --- a/bin/decode+edit+encode +++ b/bin/decode+edit+encode @@ -15,6 +15,7 @@ mkdir -p $(dirname "$OUTPUT") # based on http://www.webmproject.org/docs/encoder-parameters/#real-time-cbr-encoding-and-streaming # + scale+watermark trick based on http://stackoverflow.com/a/10937357 +# + Add 1s latency (deadline) ffmpeg -threads auto -y -re \ -i "$INPUT" \ -i "$LOGO" \ @@ -23,7 +24,7 @@ ffmpeg -threads auto -y -re \ [bg][1:v]overlay=main_w-overlay_w-20:main_h-overlay_h-20" \ -an \ -pix_fmt yuv420p \ - -codec:v vp8 -quality realtime -deadline realtime -cpu-used 4 \ + -codec:v vp8 -quality realtime -deadline 1000000 -cpu-used 4 \ -b:v "$VBITRATE" -minrate "$VBITRATE" -maxrate "$VBITRATE" \ -undershoot-pct 95 -bufsize $((6000*VBITRATE/1000)) -rc_init_occupancy $((4000*VBITRATE/1000)) \ -max-intra-rate 0 \ diff --git a/bin/decode+edit+encode+stream b/bin/decode+edit+encode+stream index 157ad23..fc2364a 100755 --- a/bin/decode+edit+encode+stream +++ b/bin/decode+edit+encode+stream @@ -21,7 +21,7 @@ VBITRATE=256000 # based on http://www.webmproject.org/docs/encoder-parameters/#real-time-cbr-encoding-and-streaming # + scale+watermark trick based on http://stackoverflow.com/a/10937357 -# + Drop frames, aggressively treat as static, and use fastest cpu +# + Add 1s latency (deadline) # + Use same RTP payload types as GStreamer ffmpeg -threads auto -re \ -i "$INPUT" \ @@ -34,10 +34,9 @@ ffmpeg -threads auto -re \ -f rtp -payload_type 111 "rtp://$IP:$FIRSTPORT?pkt_size=1200" \ -an \ -pix_fmt yuv420p \ - -codec:v vp8 -quality realtime -deadline realtime -cpu-used 15 \ + -codec:v vp8 -quality realtime -deadline 1000000 -cpu-used 15 \ -b:v "$VBITRATE" -minrate "$VBITRATE" -maxrate "$VBITRATE" \ -undershoot-pct 95 -bufsize $((6000*VBITRATE/1000)) -rc_init_occupancy $((4000*VBITRATE/1000)) \ -max-intra-rate 0 \ -qmin 4 -qmax 56 \ - -static-thresh 500 -skip_threshold 50 \ -f rtp -payload_type 100 "rtp://$IP:$((FIRSTPORT+2))?pkt_size=1200" diff --git a/bin/decode+edit+loop+encode+stream b/bin/decode+edit+loop+encode+stream index 6a69fe8..96e8c72 100755 --- a/bin/decode+edit+loop+encode+stream +++ b/bin/decode+edit+loop+encode+stream @@ -25,7 +25,7 @@ VBITRATE=256000 # based on http://www.webmproject.org/docs/encoder-parameters/#real-time-cbr-encoding-and-streaming # + loop-in-filter trick based on http://video.stackexchange.com/a/16933 # + scale+watermark trick based on http://stackoverflow.com/a/10937357 -# + Drop frames, aggressively treat as static, and use fastest cpu +# + Add 1s latency (deadline) # + Use same RTP payload types as GStreamer ffmpeg -threads auto -re \ -f lavfi -i "movie=filename=$INPUT:loop=$ITERATIONS, setpts=N/(FRAME_RATE*TB)" \ @@ -35,10 +35,9 @@ ffmpeg -threads auto -re \ [bg][1:v]overlay=main_w-overlay_w-20:main_h-overlay_h-20" \ -an \ -pix_fmt yuv420p \ - -codec:v vp8 -quality realtime -deadline realtime -cpu-used 15 \ + -codec:v vp8 -quality realtime -deadline 1000000 -cpu-used 15 \ -b:v "$VBITRATE" -minrate "$VBITRATE" -maxrate "$VBITRATE" \ -undershoot-pct 95 -bufsize $((6000*VBITRATE/1000)) -rc_init_occupancy $((4000*VBITRATE/1000)) \ -max-intra-rate 0 \ -qmin 4 -qmax 56 \ - -static-thresh 500 -skip_threshold 50 \ -f rtp -payload_type 100 "rtp://$IP:$((FIRSTPORT+2))?pkt_size=1200" diff --git a/bin/encodevideo+loop+stream b/bin/encodevideo+loop+stream index 761bf6f..d0310b0 100755 --- a/bin/encodevideo+loop+stream +++ b/bin/encodevideo+loop+stream @@ -16,16 +16,15 @@ FIRSTPORT=${2:-5002} # even number - next 3 ports used too VBITRATE=256000 # based on http://www.webmproject.org/docs/encoder-parameters/#real-time-cbr-encoding-and-streaming -# + Drop frames, aggressively treat as static, and use fastest cpu +# + Add 1s latency (deadline) # + Use same RTP payload types as GStreamer ffmpeg -threads auto -re \ -stream_loop -1 -i "$INPUT" \ -an \ -pix_fmt yuv420p \ - -codec:v vp8 -quality realtime -deadline realtime -cpu-used 15 \ + -codec:v vp8 -quality realtime -deadline 1000000 -cpu-used 15 \ -b:v "$VBITRATE" -minrate "$VBITRATE" -maxrate "$VBITRATE" \ -undershoot-pct 95 -bufsize $((6000*VBITRATE/1000)) -rc_init_occupancy $((4000*VBITRATE/1000)) \ -max-intra-rate 0 \ -qmin 4 -qmax 56 \ - -static-thresh 500 -skip_threshold 50 \ -f rtp -payload_type 100 "rtp://$IP:$((FIRSTPORT+2))?pkt_size=1200" diff --git a/bin/loop+encode+stream b/bin/loop+encode+stream index 9485df8..5c687bd 100755 --- a/bin/loop+encode+stream +++ b/bin/loop+encode+stream @@ -20,7 +20,7 @@ ABITRATE=64000 VBITRATE=256000 # based on http://www.webmproject.org/docs/encoder-parameters/#real-time-cbr-encoding-and-streaming -# + Drop frames, aggressively treat as static, and use fastest cpu +# + Add 1s latency (deadline) # + Use same RTP payload types as GStreamer ffmpeg -threads auto -re \ -stream_loop -1 -i "$INPUT" \ @@ -29,10 +29,9 @@ ffmpeg -threads auto -re \ -f rtp -payload_type 111 "rtp://$IP:$FIRSTPORT?pkt_size=1200" \ -an \ -pix_fmt yuv420p \ - -codec:v vp8 -quality realtime -deadline realtime -cpu-used 15 \ + -codec:v vp8 -quality realtime -deadline 1000000 -cpu-used 15 \ -b:v "$VBITRATE" -minrate "$VBITRATE" -maxrate "$VBITRATE" \ -undershoot-pct 95 -bufsize $((6000*VBITRATE/1000)) -rc_init_occupancy $((4000*VBITRATE/1000)) \ -max-intra-rate 0 \ -qmin 4 -qmax 56 \ - -static-thresh 500 -skip_threshold 50 \ -f rtp -payload_type 100 "rtp://$IP:$((FIRSTPORT+2))?pkt_size=1200" |