Merge pull request #338 from phineas-pta/next
ffmpeg platform-agnostic hardware-acceleration
This commit is contained in:
commit
3747fc2301
@ -209,6 +209,8 @@ def start(preview_callback = None):
|
|||||||
process_video_multi_cores(args.source_img, args.frame_paths)
|
process_video_multi_cores(args.source_img, args.frame_paths)
|
||||||
else:
|
else:
|
||||||
process_video(args.source_img, args.frame_paths)
|
process_video(args.source_img, args.frame_paths)
|
||||||
|
if args.gpu_vendor == 'nvidia':
|
||||||
|
torch.cuda.empty_cache() # prevent CUDA OOM when using ffmpeg cuda accel
|
||||||
status("creating video...")
|
status("creating video...")
|
||||||
create_video(video_name, exact_fps, output_dir)
|
create_video(video_name, exact_fps, output_dir)
|
||||||
status("adding audio...")
|
status("adding audio...")
|
||||||
|
@ -31,8 +31,7 @@ def detect_fps(input_path):
|
|||||||
|
|
||||||
|
|
||||||
def run_ffmpeg(args):
|
def run_ffmpeg(args):
|
||||||
log_level = f'-loglevel {roop.globals.log_level}'
|
run_command(f'ffmpeg -hide_banner -hwaccel auto -loglevel {roop.globals.log_level} {args}')
|
||||||
run_command(f'ffmpeg {log_level} {args}')
|
|
||||||
|
|
||||||
|
|
||||||
def set_fps(input_path, output_path, fps):
|
def set_fps(input_path, output_path, fps):
|
||||||
@ -41,15 +40,13 @@ def set_fps(input_path, output_path, fps):
|
|||||||
|
|
||||||
|
|
||||||
def create_video(video_name, fps, output_dir):
|
def create_video(video_name, fps, output_dir):
|
||||||
hwaccel_option = '-hwaccel cuda' if roop.globals.gpu_vendor == 'nvidia' else ''
|
|
||||||
output_dir = path(output_dir)
|
output_dir = path(output_dir)
|
||||||
run_ffmpeg(f'{hwaccel_option} -framerate "{fps}" -i "{output_dir}{sep}%04d.png" -c:v libx264 -crf 7 -pix_fmt yuv420p -y "{output_dir}{sep}output.mp4"')
|
run_ffmpeg(f'-framerate "{fps}" -i "{output_dir}{sep}%04d.png" -c:v libx264 -crf 7 -pix_fmt yuv420p -y "{output_dir}{sep}output.mp4"')
|
||||||
|
|
||||||
|
|
||||||
def extract_frames(input_path, output_dir):
|
def extract_frames(input_path, output_dir):
|
||||||
hwaccel_option = '-hwaccel cuda' if roop.globals.gpu_vendor == 'nvidia' else ''
|
|
||||||
input_path, output_dir = path(input_path), path(output_dir)
|
input_path, output_dir = path(input_path), path(output_dir)
|
||||||
run_ffmpeg(f' {hwaccel_option} -i "{input_path}" "{output_dir}{sep}%04d.png"')
|
run_ffmpeg(f'-i "{input_path}" "{output_dir}{sep}%04d.png"')
|
||||||
|
|
||||||
|
|
||||||
def add_audio(output_dir, target_path, video, keep_frames, output_file):
|
def add_audio(output_dir, target_path, video, keep_frames, output_file):
|
||||||
|
Loading…
Reference in New Issue
Block a user