Spaces:
Build error
Build error
import os | |
import argparse | |
import show_results | |
def convert(filename_in, filename_out, ffmpeg_executable="ffmpeg"): | |
import subprocess | |
command = [ffmpeg_executable, "-i", filename_in, "-c:v", "libx264", | |
"-preset", "slow", "-crf", "21", filename_out] | |
subprocess.call(command) | |
def parse_args(): | |
""" Parse command line arguments. | |
""" | |
parser = argparse.ArgumentParser(description="Siamese Tracking") | |
parser.add_argument( | |
"--mot_dir", help="Path to MOTChallenge directory (train or test)", | |
required=True) | |
parser.add_argument( | |
"--result_dir", help="Path to the folder with tracking output.", | |
required=True) | |
parser.add_argument( | |
"--output_dir", help="Folder to store the videos in. Will be created " | |
"if it does not exist.", | |
required=True) | |
parser.add_argument( | |
"--convert_h264", help="If true, convert videos to libx264 (requires " | |
"FFMPEG", default=False) | |
parser.add_argument( | |
"--update_ms", help="Time between consecutive frames in milliseconds. " | |
"Defaults to the frame_rate specified in seqinfo.ini, if available.", | |
default=None) | |
return parser.parse_args() | |
if __name__ == "__main__": | |
args = parse_args() | |
os.makedirs(args.output_dir, exist_ok=True) | |
for sequence_txt in os.listdir(args.result_dir): | |
sequence = os.path.splitext(sequence_txt)[0] | |
sequence_dir = os.path.join(args.mot_dir, sequence) | |
if not os.path.exists(sequence_dir): | |
continue | |
result_file = os.path.join(args.result_dir, sequence_txt) | |
update_ms = args.update_ms | |
video_filename = os.path.join(args.output_dir, "%s.avi" % sequence) | |
print("Saving %s to %s." % (sequence_txt, video_filename)) | |
show_results.run( | |
sequence_dir, result_file, False, None, update_ms, video_filename) | |
if not args.convert_h264: | |
import sys | |
sys.exit() | |
for sequence_txt in os.listdir(args.result_dir): | |
sequence = os.path.splitext(sequence_txt)[0] | |
sequence_dir = os.path.join(args.mot_dir, sequence) | |
if not os.path.exists(sequence_dir): | |
continue | |
filename_in = os.path.join(args.output_dir, "%s.avi" % sequence) | |
filename_out = os.path.join(args.output_dir, "%s.mp4" % sequence) | |
convert(filename_in, filename_out) |