32 lines
943 B
Python
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)
|