Fix audio index

This commit is contained in:
Zoe Roux 2023-05-30 14:43:26 +09:00
parent e6a6131a14
commit 22d8ea8215
2 changed files with 4 additions and 4 deletions

View File

@ -102,7 +102,7 @@ pub async fn identify(path: String) -> Result<MediaInfo, std::io::Error> {
.members() .members()
.filter(|x| x["@type"] == "Audio") .filter(|x| x["@type"] == "Audio")
.map(|a| Track { .map(|a| Track {
index: parse::<u32>(&a["StreamOrder"]).unwrap(), index: parse::<u32>(&a["StreamOrder"]).unwrap() - 1,
title: a["Title"].as_str().map(|x| x.to_string()), title: a["Title"].as_str().map(|x| x.to_string()),
language: a["Language"].as_str().map(|x| x.to_string()), language: a["Language"].as_str().map(|x| x.to_string()),
// TODO: format is invalid. Channels count missing... // TODO: format is invalid. Channels count missing...
@ -115,7 +115,7 @@ pub async fn identify(path: String) -> Result<MediaInfo, std::io::Error> {
.members() .members()
.filter(|x| x["@type"] == "Text") .filter(|x| x["@type"] == "Text")
.map(|a| Track { .map(|a| Track {
index: parse::<u32>(&a["StreamOrder"]).unwrap(), index: parse::<u32>(&a["StreamOrder"]).unwrap() - 1,
title: a["Title"].as_str().map(|x| x.to_string()), title: a["Title"].as_str().map(|x| x.to_string()),
language: a["Language"].as_str().map(|x| x.to_string()), language: a["Language"].as_str().map(|x| x.to_string()),
// TODO: format is invalid. Channels count missing... // TODO: format is invalid. Channels count missing...

View File

@ -140,7 +140,7 @@ fn get_transcode_audio_args(audio_idx: u32) -> Vec<String> {
fn get_transcode_video_quality_args(quality: &Quality, segment_time: u32) -> Vec<String> { fn get_transcode_video_quality_args(quality: &Quality, segment_time: u32) -> Vec<String> {
if *quality == Quality::Original { if *quality == Quality::Original {
return vec!["-map", "0:v:0", "-c:v", "copy"] return vec!["-map", "0:V:0", "-c:v", "copy"]
.iter() .iter()
.map(|a| a.to_string()) .map(|a| a.to_string())
.collect(); .collect();
@ -215,7 +215,7 @@ async fn start_transcode(
encode_args: Vec<String>, encode_args: Vec<String>,
start_time: u32, start_time: u32,
) -> Child { ) -> Child {
std::fs::create_dir(&out_dir).expect("Could not create cache directory"); std::fs::create_dir_all(&out_dir).expect("Could not create cache directory");
let mut cmd = Command::new("ffmpeg"); let mut cmd = Command::new("ffmpeg");
cmd.args(&["-progress", "pipe:1"]) cmd.args(&["-progress", "pipe:1"])