import os from options.test_options import TestOptions from data import CreateRecursiveDataLoader from models import create_model from util.visualizer import Visualizer from util.util import mkdirs from util import html from shutil import move, copyfile import subprocess from time import sleep if __name__ == '__main__': opt = TestOptions().parse() opt.nThreads = 1 # test code only supports nThreads = 1 opt.batchSize = 1 # test code only supports batchSize = 1 opt.serial_batches = True # no shuffle opt.no_flip = True # no flip opt.experiment = opt.start_img.split(".")[0] render_dir = opt.results_dir + opt.name + "/exp:" + opt.experiment + "/" mkdirs(render_dir) copyfile(opt.start_img, render_dir + "frame_00000.png") # data_loader = CreateRecursiveDataLoader(opt) # dataset = data_loader.load_data() # ds = dataset.dataset # model = create_model(opt) # visualizer = Visualizer(opt) # # create website # web_dir = os.path.join(opt.results_dir, opt.name, '%s_%s' % (opt.phase, opt.which_epoch)) # webpage = html.HTML(web_dir, 'Experiment = %s, Phase = %s, Epoch = %s' % (opt.name, opt.phase, opt.which_epoch)) # # test # print(dataset.name()) # for i, data in enumerate(data_loader): # if i >= opt.how_many: # break # model.set_input(data) # model.test() # visuals = model.get_current_visuals() # img_path = model.get_image_paths() # print('%04d: process image... %s' % (i, img_path)) # ims = visualizer.save_images(webpage, visuals, img_path, aspect_ratio=opt.aspect_ratio) # if dataset.name() == 'RecursiveDatasetDataLoader': # last_image = opt.results_dir + opt.name + "/test_latest/images/" + ims[1] # next_image = render_dir + "frame_{:05d}.png".format(i+1) # move(last_image, next_image) # webpage.save() cmd = ("/usr/bin/ffmpeg", "-i", render_dir + "frame_%05d.png", "-c:v", "libx264", "-vf", "fps=30", "-pix_fmt", "yuv420p", render_dir + opt.name + "_" + opt.experiment + ".mp4") process = subprocess.Popen(cmd, stdout=subprocess.PIPE) output, error = process.communicate() cmd = ("scp", render_dir + opt.name + "_" + opt.experiment + ".mp4", "jules@asdf.us:asdf/neural/") process = subprocess.Popen(cmd, stdout=subprocess.PIPE) output, error = process.communicate() print("\n") print("https://asdf.us/neural/" + opt.name + "_" + opt.experiment + ".mp4")