diff --git a/src/render/ffmpeg.rs b/src/render/ffmpeg.rs index b0a63da..0a04ce6 100644 --- a/src/render/ffmpeg.rs +++ b/src/render/ffmpeg.rs @@ -104,13 +104,12 @@ impl FfmpegOutput { // select codec and bitrate const QUALITY: &str = "22"; if venc { - let mut vcodec: String = match self.format { - FfmpegOutputFormat::Av1Flac | FfmpegOutputFormat::Av1Opus => "av1".into(), - FfmpegOutputFormat::AvcAac => "h264".into() + let vcodec = match (self.format, vaapi) { + (FfmpegOutputFormat::Av1Flac, false) | (FfmpegOutputFormat::Av1Opus, false) => "libsvtav1", + (FfmpegOutputFormat::Av1Flac, true) | (FfmpegOutputFormat::Av1Opus, true) => "av1_vaapi", + (FfmpegOutputFormat::AvcAac, false) => "h264", + (FfmpegOutputFormat::AvcAac, true) => "h264_vaapi" }; - if vaapi { - vcodec = format!("{vcodec}_vaapi"); - } cmd.arg("-c:v").arg(vcodec); if let Some(bv) = self.video_bitrate {