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.') | |