Remove unused variables and redundant code.
Consider using more robust mapping between ffprobe, mkvmerge, and mediainfo tracks (by language, title, or other tags if possible).
This commit is contained in:
@@ -201,31 +201,26 @@ def main(no_downmix=False):
|
||||
audio_tracks_to_remux = []
|
||||
audio_streams = [s for s in ffprobe_info.get("streams", []) if s.get("codec_type") == "audio"]
|
||||
|
||||
# Build mkvmerge track mapping by track ID
|
||||
mkv_audio_tracks = {t["id"]: t for t in mkv_info.get("tracks", []) if t.get("type") == "audio"}
|
||||
# Build mkvmerge audio track list
|
||||
mkv_audio_tracks_list = [t for t in mkv_info.get("tracks", []) if t.get("type") == "audio"]
|
||||
|
||||
# Build mediainfo track mapping by StreamOrder
|
||||
media_tracks_data = media_info.get("media", {}).get("track", [])
|
||||
mediainfo_audio_tracks = {int(t.get("StreamOrder", -1)): t for t in media_tracks_data if t.get("@type") == "Audio"}
|
||||
|
||||
for stream in audio_streams:
|
||||
# Extract these values once per stream for clarity
|
||||
stream_index = stream["index"]
|
||||
for audio_idx, stream in enumerate(audio_streams):
|
||||
stream_index = stream["index"]
|
||||
codec = stream.get("codec_name")
|
||||
channels = stream.get("channels", 2)
|
||||
language = stream.get("tags", {}).get("language", "und")
|
||||
mkv_track = mkv_info.get("tracks", [])[stream_index] if stream_index < len(mkv_info.get("tracks", [])) else {}
|
||||
mkv_track = mkv_audio_tracks_list[audio_idx] if audio_idx < len(mkv_audio_tracks_list) else {}
|
||||
track_id = mkv_track.get("id", -1)
|
||||
track_title = mkv_track.get("properties", {}).get("track_name", "")
|
||||
track_delay = 0
|
||||
media_tracks_data = media_info.get("media", {}).get("track", [])
|
||||
audio_track_info = next((t for t in media_tracks_data if t.get("@type") == "Audio" and int(t.get("StreamOrder", -1)) == stream_index), None)
|
||||
audio_track_info = mediainfo_audio_tracks.get(stream_index)
|
||||
delay_raw = audio_track_info.get("Video_Delay") if audio_track_info else None
|
||||
track_delay = 0
|
||||
if delay_raw is not None:
|
||||
try:
|
||||
# If the value is a float < 1, it's seconds, so convert to ms.
|
||||
delay_val = float(delay_raw)
|
||||
if delay_val < 1:
|
||||
track_delay = int(round(delay_val * 1000))
|
||||
@@ -238,7 +233,6 @@ def main(no_downmix=False):
|
||||
if codec in REMUX_CODECS:
|
||||
audio_tracks_to_remux.append(str(track_id))
|
||||
else:
|
||||
# Convert any codec that is not in REMUX_CODECS
|
||||
opus_file = convert_audio_track(
|
||||
stream_index, channels, language, audio_temp_dir, str(input_file_abs), not no_downmix
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user