Spaces:
Runtime error
Runtime error
| import os | |
| import subprocess | |
| import shutil | |
| def create_video_from_intermediate_results(results_path): | |
| # | |
| # change this depending on what you want to accomplish (modify out video | |
| # name, change fps and trim video) | |
| # | |
| img_format = (4, '.jpg') | |
| out_file_name = 'out.mp4' | |
| fps = 10 | |
| first_frame = 0 | |
| number_of_frames_to_process = len(os.listdir(results_path)) | |
| ffmpeg = 'ffmpeg' | |
| if shutil.which(ffmpeg): # if ffmpeg is in system path | |
| # example: '%4d.png' for (4, '.png') | |
| img_name_format = '%' + str(img_format[0]) + 'd' + img_format[1] | |
| pattern = os.path.join(results_path, img_name_format) | |
| out_video_path = os.path.join(results_path, out_file_name) | |
| trim_video_command = [ | |
| '-start_number', | |
| str(first_frame), '-vframes', | |
| str(number_of_frames_to_process) | |
| ] | |
| input_options = ['-r', str(fps), '-i', pattern] | |
| encoding_options = [ | |
| '-c:v', 'libx264', '-crf', '25', '-pix_fmt', 'yuv420p', | |
| '-vf', "pad=ceil(iw/2)*2:ceil(ih/2)*2" | |
| ] | |
| subprocess.call([ | |
| ffmpeg, *input_options, *trim_video_command, *encoding_options, | |
| out_video_path | |
| ]) | |
| else: | |
| print(f'{ffmpeg} not found in the system path, aborting.') | |