Update SVT-AV1 target quality params for v0.9.0 (#557)
* Update SVT-AV1 target quality params for v0.9.0 * Add version check for SVT-AV1 * Fix clippy warning * Fix args for memmem::find
This commit is contained in:
parent
88ed5a131a
commit
e7b2d08379
|
@ -3,8 +3,9 @@ use arrayvec::ArrayVec;
|
|||
use cfg_if::cfg_if;
|
||||
use ffmpeg_next::format::Pixel;
|
||||
use itertools::chain;
|
||||
use once_cell::sync::Lazy;
|
||||
use serde::{Deserialize, Serialize};
|
||||
use std::{borrow::Cow, cmp, fmt::Display, path::PathBuf};
|
||||
use std::{borrow::Cow, cmp, fmt::Display, path::PathBuf, process::Command};
|
||||
use thiserror::Error;
|
||||
|
||||
use std::iter::Iterator;
|
||||
|
@ -25,6 +26,15 @@ pub enum Encoder {
|
|||
x265,
|
||||
}
|
||||
|
||||
pub static USE_OLD_SVT_AV1: Lazy<bool> = Lazy::new(|| {
|
||||
let version = Command::new("SvtAv1EncApp")
|
||||
.arg("--version")
|
||||
.output()
|
||||
.unwrap();
|
||||
|
||||
memchr::memmem::find(&version.stdout, b"v0.9.0").is_none()
|
||||
});
|
||||
|
||||
impl Display for Encoder {
|
||||
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
||||
f.write_str(<&'static str>::from(self))
|
||||
|
@ -535,69 +545,91 @@ impl Encoder {
|
|||
format!("--cq-level={}", q),
|
||||
"--row-mt=1",
|
||||
],
|
||||
Self::svt_av1 => inplace_vec![
|
||||
"SvtAv1EncApp",
|
||||
"-i",
|
||||
"stdin",
|
||||
"--lp",
|
||||
format!("{}", threads),
|
||||
"--preset",
|
||||
"8",
|
||||
"--keyint",
|
||||
"240",
|
||||
"--crf",
|
||||
format!("{}", q),
|
||||
"--tile-rows",
|
||||
"1",
|
||||
"--tile-columns",
|
||||
"2",
|
||||
"--pred-struct",
|
||||
"0",
|
||||
"--sg-filter-mode",
|
||||
"0",
|
||||
"--enable-restoration-filtering",
|
||||
"0",
|
||||
"--cdef-level",
|
||||
"0",
|
||||
"--disable-dlf",
|
||||
"0",
|
||||
"--mrp-level",
|
||||
"0",
|
||||
"--enable-mfmv",
|
||||
"0",
|
||||
"--enable-local-warp",
|
||||
"0",
|
||||
"--enable-global-motion",
|
||||
"0",
|
||||
"--enable-interintra-comp",
|
||||
"0",
|
||||
"--obmc-level",
|
||||
"0",
|
||||
"--rdoq-level",
|
||||
"0",
|
||||
"--filter-intra-level",
|
||||
"0",
|
||||
"--enable-intra-edge-filter",
|
||||
"0",
|
||||
"--enable-pic-based-rate-est",
|
||||
"0",
|
||||
"--pred-me",
|
||||
"0",
|
||||
"--bipred-3x3",
|
||||
"0",
|
||||
"--compound",
|
||||
"0",
|
||||
"--ext-block",
|
||||
"0",
|
||||
"--hbd-md",
|
||||
"0",
|
||||
"--palette-level",
|
||||
"0",
|
||||
"--umv",
|
||||
"0",
|
||||
"--tf-level",
|
||||
"3",
|
||||
],
|
||||
Self::svt_av1 => {
|
||||
if *USE_OLD_SVT_AV1 {
|
||||
inplace_vec![
|
||||
"SvtAv1EncApp",
|
||||
"-i",
|
||||
"stdin",
|
||||
"--lp",
|
||||
format!("{}", threads),
|
||||
"--preset",
|
||||
"8",
|
||||
"--keyint",
|
||||
"240",
|
||||
"--crf",
|
||||
format!("{}", q),
|
||||
"--tile-rows",
|
||||
"1",
|
||||
"--tile-columns",
|
||||
"2",
|
||||
"--pred-struct",
|
||||
"0",
|
||||
"--sg-filter-mode",
|
||||
"0",
|
||||
"--enable-restoration-filtering",
|
||||
"0",
|
||||
"--cdef-level",
|
||||
"0",
|
||||
"--disable-dlf",
|
||||
"0",
|
||||
"--mrp-level",
|
||||
"0",
|
||||
"--enable-mfmv",
|
||||
"0",
|
||||
"--enable-local-warp",
|
||||
"0",
|
||||
"--enable-global-motion",
|
||||
"0",
|
||||
"--enable-interintra-comp",
|
||||
"0",
|
||||
"--obmc-level",
|
||||
"0",
|
||||
"--rdoq-level",
|
||||
"0",
|
||||
"--filter-intra-level",
|
||||
"0",
|
||||
"--enable-intra-edge-filter",
|
||||
"0",
|
||||
"--enable-pic-based-rate-est",
|
||||
"0",
|
||||
"--pred-me",
|
||||
"0",
|
||||
"--bipred-3x3",
|
||||
"0",
|
||||
"--compound",
|
||||
"0",
|
||||
"--ext-block",
|
||||
"0",
|
||||
"--hbd-md",
|
||||
"0",
|
||||
"--palette-level",
|
||||
"0",
|
||||
"--umv",
|
||||
"0",
|
||||
"--tf-level",
|
||||
"3",
|
||||
]
|
||||
} else {
|
||||
inplace_vec![
|
||||
"SvtAv1EncApp",
|
||||
"-i",
|
||||
"stdin",
|
||||
"--lp",
|
||||
format!("{}", threads),
|
||||
"--preset",
|
||||
"12",
|
||||
"--keyint",
|
||||
"240",
|
||||
"--crf",
|
||||
format!("{}", q),
|
||||
"--tile-rows",
|
||||
"1",
|
||||
"--tile-columns",
|
||||
"2",
|
||||
]
|
||||
}
|
||||
}
|
||||
Self::x264 => inplace_vec![
|
||||
"x264",
|
||||
"--log-level",
|
||||
|
|
Loading…
Reference in a new issue