def process_to_file(cmdline, prefix='', suffix='', cache_key=None, output_path=None):
if not output_path:
- tmp = NamedTemporaryFile(prefix=prefix, suffix=suffix, delete=False)
+ tmp = NamedTemporaryFile(
+ prefix=prefix, suffix=suffix, delete=False,
+ dir=settings.FILE_UPLOAD_TEMP_DIR
+ )
tmp.close()
output_path = tmp.name
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, copy=False):
- filelist = NamedTemporaryFile(prefix='concat-', suffix='.txt')
+ filelist = NamedTemporaryFile(
+ prefix='concat-', suffix='.txt',
+ dir=settings.FILE_UPLOAD_TEMP_DIR
+ )
for path in paths:
filelist.write(f"file '{path}'\n".encode('utf-8'))
filelist.flush()
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)