X-Git-Url: https://git.mdrn.pl/audio.git/blobdiff_plain/651c3fcf0e96681e5dfeb5afbbc4900a9342beb3..fbd02d519b365d24267f292a6caf5804078dd9d1:/src/youtube/utils.py?ds=sidebyside diff --git a/src/youtube/utils.py b/src/youtube/utils.py index 5074c53..6c95c69 100644 --- a/src/youtube/utils.py +++ b/src/youtube/utils.py @@ -52,29 +52,29 @@ def video_from_image(img_path, duration, fps=25, cache=True): def cut_video(video_path, duration): return process_to_file( - ['ffmpeg', '-y', '-i', video_path, '-t', str(duration)], + ['ffmpeg', '-y', '-i', video_path, '-t', str(duration), '-c', 'copy'], 'cut-', '.mkv' ) -def ffmpeg_concat(paths, suffix): +def ffmpeg_concat(paths, suffix, copy=False): filelist = NamedTemporaryFile(prefix='concat-', suffix='.txt') for path in paths: filelist.write(f"file '{path}'\n".encode('utf-8')) filelist.flush() - outname = process_to_file( - ['ffmpeg', '-y', '-safe', '0', '-f', 'concat', '-i', filelist.name], - 'concat-', suffix - ) + args = ['ffmpeg', '-y', '-safe', '0', '-f', 'concat', '-i', filelist.name] + if copy: + args += ['-c', 'copy'] + outname = process_to_file(args, 'concat-', suffix) filelist.close() return outname def concat_videos(paths): - return ffmpeg_concat(paths, '.mkv') + return ffmpeg_concat(paths, '.mkv', copy=True) def concat_audio(paths): @@ -101,6 +101,7 @@ def mux(channels, output_path=None): args = ['ffmpeg', '-y'] for c in channels: args.extend(['-i', c]) + args.extend(['-c', 'copy']) return process_to_file(args, 'mux-', '.mkv', output_path=output_path)