def do_encode(filtered): """Compression with x264""" print("Qpfile generating") vrf.gk(SRC_CUT, QPFILE) print("\n\n\nVideo encode") vrf.encode(filtered, X264, OUTPUT, **X264_ARGS) print("\n\n\nAudio extraction") eac3to_args = ['eac3to', SRC, '2:', A_SRC, '-log=NUL'] vrf.subprocess.run(eac3to_args, text=True, check=True, encoding='utf-8') print("\n\n\nAudio cut") eztrim(SRC_CLIP, (FRAME_START, FRAME_END), A_SRC, mkvextract_path="mkvextract") print("\n\n\nAudio encode") qaac_args = ['qaac64', A_SRC_CUT, '-V', '127', '--no-delay', '-o', A_ENC_CUT] vrf.subprocess.run(qaac_args, text=True, check=True, encoding='utf-8') print("\nFinal mux") mkv = MKVFile() mkv.add_track(MKVTrack(OUTPUT, language="jpn", default_track=True)) mkv.add_track(MKVTrack(A_ENC_CUT, language="jpn", default_track=True)) mkv.chapters(CHAPTER, "jpn") mkv.mux(OUTPUT_FINAL)
def do_encode(filtered): """Compression with x264""" print('Qpfile generating') vdf.gk(SRC_CUT, QPFILE) print('\n\n\nVideo encode') vdf.encode(filtered, X264, OUTPUT, **X264_ARGS) print('\n\n\nAudio extraction') mka = MKVFile() mka.add_track(MKVTrack(SRC, 1)) mka.mux(A_SRC) print('\n\n\nAudio cut') eztrim(SRC_CLIP, (FRAME_START, FRAME_END), A_SRC, mkvextract_path='mkvextract') print('\n\n\nAudio encode') qaac_args = [ 'qaac64', A_SRC_CUT, '-V', '127', '--no-delay', '-o', A_ENC_CUT ] vdf.subprocess.run(qaac_args, text=True, check=True, encoding='utf-8') print('\nFinal mux') mkv = MKVFile() mkv.add_track(MKVTrack(OUTPUT, language='jpn', default_track=True)) mkv.add_track(MKVTrack(A_ENC_CUT, language='jpn', default_track=True)) mkv.chapters(CHAPTER, 'jpn') mkv.mux(OUTPUT_FINAL)
def do_encode(filtered): """Compression with x264""" print('Qpfile generating') vdf.gk(JPBD.src_cut, JPBD.qpfile) print('\n\n\nVideo encoding') vdf.encode(filtered, X264, JPBD.output, **X264_ARGS) print('\n\n\nAudio extraction') track_01 = USBD.a_src + '_eng.w64' track_02 = USBD.a_src + '_jpn.w64' eac3to_args = ['eac3to', USBD.src, '3:', track_01, '4:', track_02, '-log=NUL'] vdf.subprocess.run(eac3to_args, text=True, check=True, encoding='utf-8') mka = MKVFile() mka.add_track(MKVTrack(track_01, 0)) mka.add_track(MKVTrack(track_02, 0)) mka.mux(USBD.a_src) print('\n\n\nAudio cutting') eztrim(USBD.src_clip, [(USBD.frame_start, USBD.frame_end)], USBD.a_src, mkvextract_path='mkvextract') print('\n\n\nAudio encoding') for i in range(1, len(mka.tracks) + 1): qaac_args = ['qaac64', USBD.a_src_cut.format(i), '-V', '127', '--no-delay', '-o', USBD.a_enc_cut.format(i)] vdf.subprocess.run(qaac_args, text=True, check=True, encoding='utf-8') print('\nFinal muxing') mkv = MKVFile() mkv.add_track(MKVTrack(JPBD.output, language='jpn', default_track=True)) mkv.add_track(MKVTrack(USBD.a_enc_cut.format(2), language='jpn', default_track=True)) mkv.add_track(MKVTrack(USBD.a_enc_cut.format(1), language='eng', default_track=False)) mkv.chapters(JPBD.chapter, 'jpn') mkv.mux(JPBD.output_final)
def do_encode(clip: vs.VideoNode)-> None: """Compression with x264""" print('\n\n\nVideo encoding') x265_args = [ X265, "--y4m", "--frames", f"{clip.num_frames}", "--sar", "1", "--output-depth", "10", "--colormatrix", "bt709", "--colorprim", "bt709", "--transfer", "bt709", "--range", "limited", "--min-luma", str(16<<2), "--max-luma", str(235<<2), "--fps", f"{clip.fps_num}/{clip.fps_den}", "-o", JPBD.output, "-", "--frame-threads", "16", "--no-sao", "--fades", "--preset", "slower", "--crf", "14.5", "--qcomp", "0.72", "--bframes", "16", "--psy-rd", "2.0", "--psy-rdoq", "1.0", "--deblock", "-1:-1", "--rc-lookahead", "96", "--min-keyint", "23", "--keyint", "360", "--aq-mode", "3", "--aq-strength", "1.0" ] print("Encoder command: ", " ".join(x265_args), "\n") process = subprocess.Popen(x265_args, stdin=subprocess.PIPE) clip.output(process.stdin, y4m=True, progress_update=lambda value, endvalue: print(f"\rVapourSynth: {value}/{endvalue} ~ {100 * value // endvalue}% || Encoder: ", end="")) process.communicate() print('\n\n\nAudio extraction') mka = MKVFile() mka.add_track(MKVTrack(JPBD.src, 1)) mka.mux(JPBD.a_src) print('\n\n\nAudio cutting') eztrim(JPBD.src_clip, (JPBD.frame_start, JPBD.frame_end), JPBD.a_src, mkvextract_path='mkvextract') print('\n\n\nAudio encoding') qaac_args = ['qaac64', JPBD.a_src_cut.format(1), '-V', '127', '--no-delay', '-o', JPBD.a_enc_cut.format(1)] subprocess.run(qaac_args, text=True, check=True, encoding='utf-8') print('\nFinal muxing') mkv = MKVFile() mkv.add_track(MKVTrack(JPBD.output, language='jpn', default_track=True)) mkv.add_track(MKVTrack(JPBD.a_enc_cut.format(1), language='jpn', default_track=True)) mkv.chapters(JPBD.chapter, 'jpn') mkv.mux(JPBD.output_final)
import os import glob from pymkv import MKVFile v_path = r'\\Penfever2020\Public\Movie Storage\$.avi' xml_files = glob.glob(r'\\Penfever2020\Public\mtch\*.xml') for xml in xml_files: v_title = xml[27:len(xml) - 4] path_temp = glob.glob(v_path.replace('$', v_title)) dest_temp = v_path.replace('$.avi', v_title + ".mkv") for line in path_temp: if v_title in line: mkv = MKVFile() mkv.add_track(line) mkv.chapters(xml) mkv.mux(dest_temp) if not os.path.isfile( dest_temp) or not os.path.getsize(dest_temp) > 128_000_000: print("MKVToolnix error: new MKV not saved or may be corrupt.") continue v_path_q = '\\\Penfever2020\Public\Movie Storage\\' + v_title + ".avi" v_path_x = '\\\Penfever2020\Public\mtch\\' + v_title + ".xml" cmd = f"del \"{v_path_q}\"" print(cmd) os.system("" + cmd + "") cmd = f"del \"{v_path_x}\"" print(cmd) os.system("" + cmd + "")