use crate::{
codec::{self, Codec},
format::{self, Format},
output::{AudioSettings, OutputConfig, Quality, VideoSettings},
};
pub fn mp4_h264() -> OutputConfig {
OutputConfig::new(Format::new(format::MP4))
.with_video(
VideoSettings::new(Codec::new(codec::video::H264)).with_quality(Quality::Medium),
)
.with_audio(AudioSettings::new(Codec::new(codec::audio::AAC)))
}
pub fn mp4_h265() -> OutputConfig {
OutputConfig::new(Format::new(format::MP4))
.with_video(
VideoSettings::new(Codec::new(codec::video::H265)).with_quality(Quality::Medium),
)
.with_audio(AudioSettings::new(Codec::new(codec::audio::AAC)))
}
pub fn webm_vp9() -> OutputConfig {
OutputConfig::new(Format::new(format::WEBM))
.with_video(VideoSettings::new(Codec::new(codec::video::VP9)))
.with_audio(AudioSettings::new(Codec::new(codec::audio::OPUS)))
}
pub fn webm_av1() -> OutputConfig {
OutputConfig::new(Format::new(format::WEBM))
.with_video(VideoSettings::new(Codec::new(codec::video::AV1)))
.with_audio(AudioSettings::new(Codec::new(codec::audio::OPUS)))
}
pub fn mkv_h265() -> OutputConfig {
OutputConfig::new(Format::new(format::MKV))
.with_video(VideoSettings::new(Codec::new(codec::video::H265)))
.with_audio(AudioSettings::new(Codec::new(codec::audio::AAC)))
}
pub fn mp3() -> OutputConfig {
OutputConfig::new(Format::new(format::MP3))
.with_audio(AudioSettings::new(Codec::new(codec::audio::MP3)))
}
pub fn wav() -> OutputConfig {
OutputConfig::new(Format::new(format::WAV))
.with_audio(AudioSettings::new(Codec::new(codec::audio::PCM)))
}
pub fn flac() -> OutputConfig {
OutputConfig::new(Format::new(format::FLAC))
.with_audio(AudioSettings::new(Codec::new(codec::audio::FLAC)))
}
pub fn ogg_opus() -> OutputConfig {
OutputConfig::new(Format::new(format::OGG))
.with_audio(AudioSettings::new(Codec::new(codec::audio::OPUS)))
}
pub fn png() -> OutputConfig {
OutputConfig::new(Format::new(format::PNG))
}
pub fn jpeg() -> OutputConfig {
OutputConfig::new(Format::new(format::JPEG))
}
pub fn webp() -> OutputConfig {
OutputConfig::new(Format::new(format::WEBP))
}
pub fn gif() -> OutputConfig {
OutputConfig::new(Format::new(format::GIF))
}