diff --git a/src/render/ffmpeg.rs b/src/render/ffmpeg.rs
index b0a63daca5e4ce4fdcf68748fbc1cbe2ff3cd5f0..0a04ce6d60ca476ba47163daaaa3d9b14d48c9f0 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 {