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()
.filter(|x| x["@type"] == "Audio")
.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()),
language: a["Language"].as_str().map(|x| x.to_string()),
// TODO: format is invalid. Channels count missing...
@ -115,7 +115,7 @@ pub async fn identify(path: String) -> Result<MediaInfo, std::io::Error> {
.members()
.filter(|x| x["@type"] == "Text")
.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()),
language: a["Language"].as_str().map(|x| x.to_string()),
// 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> {
if *quality == Quality::Original {
return vec!["-map", "0:v:0", "-c:v", "copy"]
return vec!["-map", "0:V:0", "-c:v", "copy"]
.iter()
.map(|a| a.to_string())
.collect();
@ -215,7 +215,7 @@ async fn start_transcode(
encode_args: Vec<String>,
start_time: u32,
) -> 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");
cmd.args(&["-progress", "pipe:1"])