render videos with 3x bitrate
This commit is contained in:
parent
f2f3f67d10
commit
27c7cb3c7d
3 changed files with 18 additions and 9 deletions
12
src/main.rs
12
src/main.rs
|
@ -79,7 +79,7 @@ macro_rules! resolutions {
|
|||
}
|
||||
}
|
||||
|
||||
fn bitrate(self) -> &'static str {
|
||||
fn bitrate(self) -> u64 {
|
||||
match self {
|
||||
$(Self::$res => $bitrate),+
|
||||
}
|
||||
|
@ -100,12 +100,12 @@ macro_rules! resolutions {
|
|||
}
|
||||
|
||||
resolutions! {
|
||||
nHD: 640 x 360 at "500k",
|
||||
HD: 1280 x 720 at "1M",
|
||||
FullHD: 1920 x 1080 at "2M",
|
||||
WQHD: 2560 x 1440 at "3M",
|
||||
nHD: 640 x 360 at 500_000,
|
||||
HD: 1280 x 720 at 1_000_000,
|
||||
FullHD: 1920 x 1080 at 2_000_000,
|
||||
WQHD: 2560 x 1440 at 3_000_000,
|
||||
// TODO qsx muss mal sagen wieviel bitrate für 4k
|
||||
UHD: 3840 x 2160 at "4M"
|
||||
UHD: 3840 x 2160 at 4_000_000
|
||||
}
|
||||
|
||||
#[derive(Deserialize, Serialize)]
|
||||
|
|
|
@ -110,7 +110,7 @@ enum FfmpegFilter {
|
|||
pub(crate) struct Ffmpeg {
|
||||
inputs: Vec<FfmpegInput>,
|
||||
filter: FfmpegFilter,
|
||||
video_bitrate: Option<&'static str>,
|
||||
video_bitrate: Option<u64>,
|
||||
output: FfmpegOutput,
|
||||
|
||||
filter_idx: usize
|
||||
|
@ -182,7 +182,7 @@ impl Ffmpeg {
|
|||
self
|
||||
}
|
||||
|
||||
pub fn set_video_bitrate(&mut self, bitrate: &'static str) -> &mut Self {
|
||||
pub fn set_video_bitrate(&mut self, bitrate: u64) -> &mut Self {
|
||||
self.video_bitrate = Some(bitrate);
|
||||
self
|
||||
}
|
||||
|
@ -272,7 +272,7 @@ impl Ffmpeg {
|
|||
cmd.arg("-c:v").arg("copy");
|
||||
}
|
||||
if venc && self.video_bitrate.is_some() {
|
||||
cmd.arg("-b:v").arg(self.video_bitrate.unwrap());
|
||||
cmd.arg("-b:v").arg(self.video_bitrate.unwrap().to_string());
|
||||
}
|
||||
if aenc {
|
||||
cmd.arg("-c:a").arg("aac");
|
||||
|
|
|
@ -443,6 +443,15 @@ impl<'a> Renderer<'a> {
|
|||
|
||||
// we're done :)
|
||||
ffmpeg.set_filter_output(overlay);
|
||||
ffmpeg.set_video_bitrate(
|
||||
project
|
||||
.source
|
||||
.metadata
|
||||
.as_ref()
|
||||
.unwrap()
|
||||
.source_res
|
||||
.bitrate() * 3
|
||||
);
|
||||
ffmpeg.run()?;
|
||||
|
||||
Ok(output)
|
||||
|
|
Loading…
Reference in a new issue