This commit is contained in:
JMARyA 2024-08-02 19:41:55 +02:00
parent ab75b1f3e4
commit 589a596a30
Signed by: jmarya
GPG key ID: 901B2ADDF27C2263
3 changed files with 16 additions and 8 deletions

View file

@ -41,27 +41,33 @@ impl Track {
}
/// Transcode audio to OPUS with `bitrate`
pub fn get_opus(&self, bitrate: u32) -> String {
let transcoded = format!("./data/transcode/opus/{}/{}", bitrate, self._id);
pub fn get_opus(&self, bitrate: u32) -> Option<String> {
let transcoded = format!("./data/transcode/opus/{}/{}.opus", bitrate, self._id);
if std::path::Path::new(&transcoded).exists() {
return transcoded;
return Some(transcoded);
}
log::info!("Transcoding {} to OPUS {}", self._id, bitrate);
std::fs::create_dir_all(format!("./data/transcode/opus/{bitrate}")).unwrap();
std::process::Command::new("ffmpeg")
let out = std::process::Command::new("ffmpeg")
.arg("-i")
.arg(&self.path)
.arg("-c:a")
.arg("libopus")
.arg("-b:a")
.arg(bitrate.to_string())
.arg(format!("{bitrate}k"))
.arg(&transcoded)
.output()
.unwrap();
transcoded
if !out.status.success() {
return None;
}
Some(transcoded)
}
/// Find tracks with no album or artist