diff --git a/flake.nix b/flake.nix index be17d81..37b604c 100644 --- a/flake.nix +++ b/flake.nix @@ -15,6 +15,9 @@ devShells.default = pkgs.mkShell { buildInputs = [ pkgs.ffmpeg-full + pkgs.pciutils + pkgs.libva-utils + pkgs.libva ]; }; } diff --git a/work.sh b/work.sh index 07dde69..0ab31bc 100755 --- a/work.sh +++ b/work.sh @@ -3,7 +3,8 @@ # Neural Network Deinterlacer weights file NNEDI_WEIGHTS="/usr/share/nnedi3/nnedi3_weights.bin" # Constant Rate Factor / Global Quality -CRF=18 +# If I’ve a video/movie that was produced in HD a value between 21-23 works best and produces good results. But there are also videos/movies that where produced before HD was en vouge. When broadcasted they are scaled to HD e.g. In this case a value between 24-25 works best. +CRF=22 # Encoding Preset. Veryslow == TU1 QSV PRESET=veryslow # Lookahead depth, used for QSV h.264 @@ -24,6 +25,8 @@ IVTC_VFILTERS="-color_primaries smpte170m -color_trc smpte170m -colorspace smpte # Intel QSV, TU1, Rate control: ICQ, LA_ICQ (not yet) supported, but suggested for future-proofness... QSV_VFILTERS="-c:v hevc_qsv -preset ${PRESET} -global_quality:v ${CRF} -look_ahead:v 1 -g 251" +VAAPI_VFILTERS="-c:v hevc_vaapi -preset ${PRESET} -global_quality:v ${CRF} -qp ${CRF} -look_ahead:v 1 -g 251 -rc_mode CQP" + # Intel QSV h.264, TU1, Rate control: LA_ICQ QSV_AVC_VFILTERS="-c:v h264_qsv -preset ${PRESET} -global_quality:v ${CRF} -look_ahead:v 1 -look_ahead_depth ${LA_DEPTH} -extra_hw_frames ${LA_DEPTH} -g 251" @@ -31,7 +34,7 @@ QSV_AVC_VFILTERS="-c:v h264_qsv -preset ${PRESET} -global_quality:v ${CRF} -look #AFILTERS="-c:a copy -map 0" # Lossless Compression -AFILTERS="-c:a flac -compression_level:a 12" +AFILTERS="-c:a flac -compression_level:a 12 -map 0" # Lossy, not compatible with players, transparent #AFILTERS="-c:a libopus -b:a 192k" @@ -44,6 +47,7 @@ NTSC_FILTERS="${NTSC_VFILTERS} ${AFILTERS}" YNTSC_FILTERS="${YNTSC_VFILTERS} ${AFILTERS}" IVTC_FILTERS="${IVTC_VFILTERS} ${AFILTERS}" QSV_FILTERS="${QSV_VFILTERS} ${AFILTERS}" +VAAPI_FILTERS="${VAAPI_VFILTERS} ${AFILTERS}" QSV_AVC_FILTERS="${QSV_AVC_VFILTERS} ${AFILTERS}" # Conversion sous-titres @@ -52,4 +56,5 @@ if [ $# -ne 2 ]; then echo "Usage: $0 infile outfile" exit 1 fi -ffmpeg -i "$1" ${QSV_FILTERS} "$2" +set -x +ffmpeg -hwaccel vaapi -hwaccel_device /dev/dri/renderD128 -hwaccel_output_format vaapi -i "$1" ${VAAPI_FILTERS} "$2"