From 34b48b7070065e507004fc0ad9b577e13ebca4ad Mon Sep 17 00:00:00 2001 From: FlyingWombat <25214020+FlyingWombat@users.noreply.github.com> Date: Fri, 5 Jan 2024 20:51:38 -0700 Subject: [PATCH] default_args: no scene detection keyint 0 does not imply no scene detection Av1an already does scene detection by default, having the encoders do it too is just wasting CPU cycles. --- av1an-core/src/encoder.rs | 39 +++++++++++++++++++++++++-------------- 1 file changed, 25 insertions(+), 14 deletions(-) diff --git a/av1an-core/src/encoder.rs b/av1an-core/src/encoder.rs index eee6e779..11dcfbb9 100644 --- a/av1an-core/src/encoder.rs +++ b/av1an-core/src/encoder.rs @@ -365,8 +365,12 @@ impl Encoder { } } Encoder::rav1e => { - let defaults: Vec = - into_vec!["--speed", "6", "--quantizer", "100", "--keyint", "0"]; + let defaults: Vec = into_vec![ + "--speed", "6", + "--quantizer", "100", + "--keyint", "0", + "--no-scene-detection", + ]; if cols > 1 || rows > 1 { let tiles: Vec = into_vec!["--tiles", format!("{}", cols * rows)]; @@ -406,7 +410,13 @@ impl Encoder { } } Encoder::svt_av1 => { - let defaults = into_vec!["--preset", "4", "--keyint", "0", "--rc", "0", "--crf", "25"]; + let defaults = into_vec![ + "--preset", "4", + "--keyint", "0", + "--scd", "0", + "--rc", "0", + "--crf", "25", + ]; if cols > 1 || rows > 1 { let columns = ilog2(cols); let rows = ilog2(rows); @@ -422,18 +432,19 @@ impl Encoder { defaults } } - Encoder::x264 => into_vec!["--preset", "slow", "--crf", "25", "--keyint", "infinite"], + Encoder::x264 => into_vec![ + "--preset", "slow", + "--crf", "25", + "--keyint", "infinite", + "--scenecut", "0", + ], Encoder::x265 => into_vec![ - "-p", - "slow", - "--crf", - "25", - "-D", - "10", - "--level-idc", - "5.0", - "--keyint", - "-1", + "-p", "slow", + "--crf", "25", + "-D", "10", + "--level-idc", "5.0", + "--keyint", "-1", + "--scenecut", "0", ], } }