コード例 #1
0
    def batch_mux_files(mkv_list_1, mkv_list_2, settings_1, settings_2, output_directory):

        if len(mkv_list_1) == len(mkv_list_2):

            for item_num in range(0, len(mkv_list_1)):
                mkv = MKVfile()
                # Add tracks from source 1
                mkv_file_1 = MKVfile(mkv_list_1[item_num])
                track_list_1 = mkv_file_1.get_track()

                for track_number in settings_1:
                    mkv.add_track(track_list_1[track_number])

                mkv_file_2 = MKVfile(mkv_list_2[item_num])
                track_list_2 = mkv_file_2.get_track()
                for track_number in settings_2:
                    mkv.add_track(track_list_2[track_number])

                output_name = mkv_list_1[item_num].split("/")[-1]
                logger.debug("Output directory is: " + output_directory + "/" + output_name)
                mkv.mux(output_directory + "/" + output_name)

        else:
            logger.error("Source 1 and Source 2 directory have different numbers of files. Unable to batch mux.")
            pass
コード例 #2
0
def extract_subs(fn):
    mkv = MKVFile(fn)

    tracks = mkv.get_track()
    for track in tracks:
        if track.track_type == 'subtitles':
            ext = genExt(track._track_codec)
            lang = track._language
            id = str(track._track_id)

            subprocess.call([
                'mkvextract', 'tracks', fn,
                id + ':' + lang + '_' + id + '.' + ext
            ])
コード例 #3
0
def extract_audio(fn):
    mkv = MKVFile(fn)

    tracks = mkv.get_track()
    for track in tracks:
        if track.track_type == 'audio':
            ext = track._track_codec
            lang = language_mapping[track._language]
            id = str(track._track_id)
            subprocess.call(
                ['mkvextract', 'tracks', fn, id + ':' + lang + '.' + ext])

    flacs = []
    for file in glob.glob("*.FLAC"):
        flacs.append(file)
    if len(flacs) > 0:
        convert_menu = TerminalMenu(
            ["Yes", "No"], title="Do you want to convert every FLAC to Opus?")
        convert_choice = convert_menu.show()
        if convert_choice == 0:
            for f in flacs:
                br_menu = TerminalMenu(
                    ["Stereo", "5.1", "7.1"],
                    title="Whats the format of the file? => {0}".format(f))
                br_choice = br_menu.show()
                if br_choice == 0:
                    br = "192K"
                elif br_choice == 1:
                    br = "384K"
                elif br_choice == 2:
                    br = "512K"
                else:
                    br = "192K"
                fn_base = f.split(".")[0]
                out_audio = fn_base + ".Opus"
                subprocess.call([
                    "ffmpeg", "-hide_banner", "-i", f, "-c:a", "libopus",
                    "-b:a", br, "-vbr", "on", out_audio
                ])
                time.sleep(1)
                os.remove(f)
コード例 #4
0
 def get_all_track_information(mkv_file: MKVfile):
     track_list = mkv_file.get_track()
     return track_list
コード例 #5
0
 def process_file(file_path : str):
     mkv_file = MKVfile(file_path)
     track_list = mkv_file.get_track()
     return track_list