delarte/src/delarte/muxing.py
Barbagus 5674b4aa0d Fix terminology and harmful language #12
Master playlists become program indexes
Media playlists become track indexes
2023-01-08 20:40:49 +01:00

32 lines
943 B
Python

# License: GNU AGPL v3: http://www.gnu.org/licenses/
# This file is part of `delarte` (https://git.afpy.org/fcode/delarte.git)
"""Provide tracks muxing utilities."""
import subprocess
def mux_source(source, file_base_name, _progress):
"""Build FFMPEG args."""
cmd = ["ffmpeg", "-hide_banner"]
cmd.extend(["-i", source.video])
cmd.extend(["-i", source.audio])
if source.subtitles:
cmd.extend(["-i", source.subtitles])
cmd.extend(["-c:v", "copy"])
cmd.extend(["-c:a", "copy"])
if source.subtitles:
cmd.extend(["-c:s", "copy"])
cmd.extend(["-bsf:a", "aac_adtstoasc"])
cmd.extend(["-metadata:s:a:0", f"language={source.rendition.audio.lang}"])
if source.rendition.subtitles:
cmd.extend(["-metadata:s:s:0", f"language={source.rendition.subtitles.lang}"])
cmd.extend(["-disposition:s:0", "default"])
cmd.append(f"{file_base_name}.mkv")
subprocess.run(cmd)