From 4603768ac27e90b2b4b66aaf913f9cf8637a73ac Mon Sep 17 00:00:00 2001 From: Daniel Olsen Date: Wed, 15 Jul 2020 05:14:52 +0200 Subject: [PATCH] do vmaf calculation --- default.nix | 7 ++++--- src/static/triav1c.sh | 27 ++++++++++++++------------- 2 files changed, 18 insertions(+), 16 deletions(-) diff --git a/default.nix b/default.nix index 46af1ef..b5ab09e 100644 --- a/default.nix +++ b/default.nix @@ -1,10 +1,10 @@ let - pkgs = import {}; + pkgs = import {}; in with pkgs; stdenv.mkDerivation { pname = "triav1c"; - version = "0.0.0-20200715-0"; + version = "0.0.0-20200715-1"; src = ./. ; @@ -16,6 +16,7 @@ stdenv.mkDerivation { chmod +x $out/bin/triav1c wrapProgram $out/bin/triav1c \ - --prefix PATH : ${lib.makeBinPath [ ffmpeg libaom ]} + --prefix PATH : ${lib.makeBinPath [ ffmpeg-full libaom ]} \ + --prefix MODEL_PATH : ${libvmaf} ''; } \ No newline at end of file diff --git a/src/static/triav1c.sh b/src/static/triav1c.sh index f928625..09bbc9e 100644 --- a/src/static/triav1c.sh +++ b/src/static/triav1c.sh @@ -25,14 +25,14 @@ encode_aomenc_two_pass() { aom_options=${aom_options//[^a-zA-Z0-9_\- =]/} # Same story as above but also ffmpeg_options="$3" - ffmpeg_options=${ffmpego//[^a-zA-Z0-9_\- =:]/} + ffmpeg_options=${ffmpeg_options//[^a-zA-Z0-9_\- =:]/} # set to boolean - doVMAF=$4 + doVMAF="$4" set +e - ffmpeg -nostats -hide_banner -loglevel warning \ - -i "$file" "$ffmpeg_options" -f yuv4mpegpipe - | aomenc - "$aom_options" \ - --pass=1 --passes=2 --fpf="$file".fpf --ivf -o "$file".out.ivf + eval '#ffmpeg -nostats -hide_banner -loglevel warning \ + -i '$file' $ffmpeg_options -f yuv4mpegpipe - | aomenc - '$aom_options' \ + --pass=1 --passes=2 --fpf='$file'.fpf --ivf -o '$file'.out.ivf' retval=$? if [[ $retval -ne 0 ]]; then echo "Error running aomenc pass 1 of 2" >&2 @@ -41,9 +41,9 @@ encode_aomenc_two_pass() { return 1 fi - ffmpeg -nostats -hide_banner -loglevel warning \ - -i "$file" "$ffmpeg_options" -f yuv4mpegpipe - | aomenc - "$aom_options" \ - --pass=1 --passes=2 --fpf="$file".fpf --ivf -o "$file".out.ivf + eval '#ffmpeg -nostats -hide_banner -loglevel warning \ + -i '$file' $ffmpeg_options -f yuv4mpegpipe - | aomenc - '$aom_options' \ + --pass=2 --passes=2 --fpf='$file'.fpf --ivf -o '$file'.out.ivf' retval=$? if [ $retval -ne 0 ]; then echo "Error running aomenc pass 2 of 2" >&2 @@ -56,10 +56,10 @@ encode_aomenc_two_pass() { # This probably needs to be improved as well, so that it scales # and sets the framerate automatically. This will likely never # Actually get used though, so it's fine. - if [[ doVMAF -eq true ]]; then - ffmpeg -nostats -hide_banner -loglevel warning \ - -r 24 -i "$file".out.ivf -r 24 "$file" -filter_complex \ - "[0:v][1:v]libvmaf=log_fmt=json:log_path=$file.vmaf.json" -f null - >/dev/null + if [[ $doVMAF == "true" ]]; then + ffmpeg -nostats -hide_banner \ + -r 24 -i $file.out.ivf -r 24 -i $file -filter_complex \ + "[0:v][1:v]libvmaf=model_path=$MODEL_PATH/share/model/vmaf_v0.6.1.pkl:log_fmt=json:log_path=$file.vmaf.json" -f null - >/dev/null retval=$? if [ $retval -ne 0 ]; then echo "Error running VMAF scan" >&2 @@ -72,10 +72,11 @@ encode_aomenc_two_pass() { set -e rm -f \ - "$file" \ + # "$file" \ "$file".fpf \ "$file".vmaf.json return 0 } +encode_aomenc_two_pass "$1" "-b 10 --cpu-used=5 --end-usage=q --cq-level=50 --tile-columns=0 --tile-rows=0 --lag-in-frames=35 --auto-alt-ref=1" "" true \ No newline at end of file