diff --git a/src/render/mod.rs b/src/render/mod.rs index 8d755ed..85ab9b2 100644 --- a/src/render/mod.rs +++ b/src/render/mod.rs @@ -281,6 +281,8 @@ impl<'a> Renderer<'a> { } pub(crate) fn render(&self, project: &mut Project) -> anyhow::Result { + let source_res = project.source.metadata.as_ref().unwrap().source_res; + let output = self.video_mp4(project); let mut ffmpeg = Ffmpeg::new(FfmpegOutput::new(output.clone())); @@ -430,25 +432,19 @@ impl<'a> Renderer<'a> { output: logoalpha.into() }); let overlay = "overlay"; + let overlay_off_x = 130 * source_res.width() / 3840; + let overlay_off_y = 65 * source_res.height() / 2160; ffmpeg.add_filter(Filter::Overlay { video_input: concat.into(), overlay_input: logoalpha.into(), - x: "main_w-overlay_w-130".into(), - y: "main_h-overlay_h-65".into(), + x: format!("main_w-overlay_w-{overlay_off_x}").into(), + y: format!("main_h-overlay_h-{overlay_off_y}").into(), output: overlay.into() }); // we're done :) ffmpeg.set_filter_output(overlay); - ffmpeg.set_video_bitrate( - project - .source - .metadata - .as_ref() - .unwrap() - .source_res - .bitrate() * 3 - ); + ffmpeg.set_video_bitrate(source_res.bitrate() * 3); ffmpeg.run()?; Ok(output)