diff options
-rwxr-xr-x | localvideowebencode | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/localvideowebencode b/localvideowebencode index dd76b69..c341466 100755 --- a/localvideowebencode +++ b/localvideowebencode @@ -507,17 +507,25 @@ _opusenc_downmix="${downmix_opusenc:+${stereo:+--downmix-stereo}${mono:+--downmi # limit (i.e. avoid peaks "clipping") _melt_postfilters_audio="${limit:+-filter ladspa.1077}" +# codec bitrate options +_melt_bitrate_vp8="${no_q_vp8:+ vb=$bitrate_vp8} minrate=$((bitrate_vp8/20)) maxrate=$((bitrate_vp8*12))" +_ffmpeg_bitrate_vp8="${no_q_vp8:+-b:v $bitrate_vp8} -minrate $((bitrate_vp8/20)) -maxrate $((bitrate_vp8*12))" +_vpxenc_bitrate_vp8="--target-bitrate=$((bitrate_vp8/1000))" +_melt_bitrate_vp9="${no_q_vp9:+ vb=$bitrate_vp9} minrate=$((bitrate_vp9/20)) maxrate=$((bitrate_vp9*12))" +_ffmpeg_bitrate_vp9="${no_q_vp9:+-b:v $bitrate_vp9} -minrate $((bitrate_vp9/20)) -maxrate $((bitrate_vp9*12))" +_vpxenc_bitrate_vp9="--target-bitrate=$((bitrate_vp9/1000))" + # codec low-level options _vpxenc_vpx="--min-q=$webm_qmin --max-q=$webm_qmax${multipass:+ --minsection-pct=5 --maxsection-pct=1200} --kf-max-dist=120 --auto-alt-ref=1 --lag-in-frames=$webm_lag --arnr-maxframes=7 --arnr-strength=5 --arnr-type=3" # codec options _melt_theora="vcodec=libtheora${bitrate_theora:+ vb=$bitrate_theora} qscale=$q_theora" -_melt_vp8="vcodec=$encoder_vp8${pre_vp8:+ vpreset=$pre_vp8}${preset_vp8:+ preset=$preset_vp8}${bitrate_vp8:+ ${no_q_vp8:+ vb=$bitrate_vp8} minrate=$((bitrate_vp8/20)) maxrate=$((bitrate_vp8*12))}${q_vp8:+ $qkey_vp8=$q_vp8} cpu-used=$cpu_vp8" -_ffmpeg_vp8="-c:v $encoder_vp8${pre_vp8:+ -vpre $pre_vp8}${preset_vp8:+ preset $preset_vp8}${bitrate_vp8:+ ${no_q_vp8:+-b:v $bitrate_vp8} -minrate $((bitrate_vp8/20)) -maxrate $((bitrate_vp8*12))}${q_vp8:+ ${no_bitrate_vp8:+ -b:v 0 }-$qkey_vp8 $q_vp8} -cpu-used $cpu_vp8" -_vpxenc_vp8="--codec=vp8${bitrate_vp8:+ --target-bitrate=$((bitrate_vp8/1000))} --good --end-usage=${no_q_vp8:+vbr}${q_vp8:+cq --cq-level=$q_vp8} --cpu-used=$cpu_vp8 $_vpxenc_vpx --token-parts=$webm_tokenparts_log2" -_melt_vp9="vcodec=$encoder_vp9${pre_vp9:+ vpreset=$pre_vp9}${preset_vp9:+ preset=$preset_vp9}${bitrate_vp9:+ ${no_q_vp9:+vb=$bitrate_vp9} minrate=$((bitrate_vp9/20)) maxrate=$((bitrate_vp9*12))}${q_vp9:+ $qkey_vp9=$q_vp9} cpu-used=$cpu_vp9" -_ffmpeg_vp9="-c:v $encoder_vp9${pre_vp9:+ -vpre $pre_vp9}${preset_vp9:+ -preset $preset_vp9}${bitrate_vp9:+ ${no_q_vp9:+-b:v $bitrate_vp9} -minrate $((bitrate_vp9/20)) -maxrate $((bitrate_vp9*12))}${q_vp9:+ ${no_bitrate_vp9:+-b:v 0 }-$qkey_vp9 $q_vp9} -cpu-used $cpu_vp9" -_vpxenc_vp9="--codec=vp9${bitrate_vp9:+ --target-bitrate=$((bitrate_vp9/1000))} --good --end-usage=${no_q_vp9:+vbr}${q_vp9:+cq --cq-level=$q_vp9} --cpu-used=$cpu_vp9 $_vpxenc_vpx --tile-columns=$webm_tokenparts_log2 --tile-rows=$webm_tokenparts_log2" +_melt_vp8="vcodec=$encoder_vp8${pre_vp8:+ vpreset=$pre_vp8}${preset_vp8:+ preset=$preset_vp8}${bitrate_vp8:+ $_melt_bitrate_vp8}${q_vp8:+ $qkey_vp8=$q_vp8} cpu-used=$cpu_vp8" +_ffmpeg_vp8="-c:v $encoder_vp8${pre_vp8:+ -vpre $pre_vp8}${preset_vp8:+ preset $preset_vp8}${bitrate_vp8:+ $_ffmpeg_bitrate_vp8}${q_vp8:+ ${no_bitrate_vp8:+ -b:v 0 }-$qkey_vp8 $q_vp8} -cpu-used $cpu_vp8" +_vpxenc_vp8="--codec=vp8${bitrate_vp8:+ $_vpxenc_bitrate_vp8} --good --end-usage=${no_q_vp8:+vbr}${q_vp8:+cq --cq-level=$q_vp8} --cpu-used=$cpu_vp8 $_vpxenc_vpx --token-parts=$webm_tokenparts_log2" +_melt_vp9="vcodec=$encoder_vp9${pre_vp9:+ vpreset=$pre_vp9}${preset_vp9:+ preset=$preset_vp9}${bitrate_vp9:+ $_melt_bitrate_vp9}${q_vp9:+ $qkey_vp9=$q_vp9} cpu-used=$cpu_vp9" +_ffmpeg_vp9="-c:v $encoder_vp9${pre_vp9:+ -vpre $pre_vp9}${preset_vp9:+ -preset $preset_vp9}${bitrate_vp9:+ $_ffmpeg_bitrate_vp9}${q_vp9:+ ${no_bitrate_vp9:+-b:v 0 }-$qkey_vp9 $q_vp9} -cpu-used $cpu_vp9" +_vpxenc_vp9="--codec=vp9${bitrate_vp9:+ $_vpxenc_bitrate_vp9} --good --end-usage=${no_q_vp9:+vbr}${q_vp9:+cq --cq-level=$q_vp9} --cpu-used=$cpu_vp9 $_vpxenc_vpx --tile-columns=$webm_tokenparts_log2 --tile-rows=$webm_tokenparts_log2" _melt_h264="vcodec=$encoder_h264${preset_h264:+ vpreset=$preset_h264}${profile_h264:+ vprofile=$profile_h264}${x264tune:+ tune=$x264tune}${bitrate_h264:+ maxrate=${bitrate_h264} bufsize=$((bitrate_h264*2))} threads=0 movflags=+faststart $qkey_h264=$q_h264" _melt_pcm="$_melt_downmix acodec=pcm_s16le" _melt_vorbis="$_melt_downmix acodec=libvorbis aq=$quality_vorbis" |