bugfix on the order of the frames

This commit is contained in:
Flávio Ribeiro
2015-11-18 01:07:57 -05:00
parent 9ac5a2ff33
commit c770b03d4a

View File

@@ -31,7 +31,6 @@ def generate_video_thumbnail(args):
interval = int(args['<interval>']) interval = int(args['<interval>'])
size = (int(args['<width>']), int(args['<height>'])) size = (int(args['<width>']), int(args['<height>']))
outputPrefix = get_output_prefix() outputPrefix = get_output_prefix()
generate_frames(videoFileClip, interval, outputPrefix, size) generate_frames(videoFileClip, interval, outputPrefix, size)
columns = int(args['<columns>']) columns = int(args['<columns>'])
@@ -40,15 +39,16 @@ def generate_video_thumbnail(args):
def generate_frames(videoFileClip, interval, outputPrefix, size): def generate_frames(videoFileClip, interval, outputPrefix, size):
print "Extracting", int(videoFileClip.duration / interval), "frames" print "Extracting", int(videoFileClip.duration / interval), "frames"
frameCount = 0
for i in range(0, int(videoFileClip.duration), interval): for i in range(0, int(videoFileClip.duration), interval):
extract_frame(videoFileClip, i, outputPrefix, size) extract_frame(videoFileClip, i, outputPrefix, size, frameCount)
frameCount += 1
print " Frames extracted." print " Frames extracted."
def extract_frame(videoFileClip, moment, outputPrefix, size, frameCount):
def extract_frame(videoFileClip, moment, outputPrefix, size):
sys.stdout.write(".") sys.stdout.write(".")
sys.stdout.flush() sys.stdout.flush()
output = outputPrefix + str(moment) + ".png" output = outputPrefix + ("%05d.png" % frameCount)
videoFileClip.save_frame(output, t=int(moment)) videoFileClip.save_frame(output, t=int(moment))
resize_image(output, size) resize_image(output, size)
@@ -78,13 +78,11 @@ def merge_frames(images, finalImage, columns, size, output):
shutil.rmtree(TMP_FRAMES_PATH, ignore_errors=True) shutil.rmtree(TMP_FRAMES_PATH, ignore_errors=True)
print "Saved!" print "Saved!"
def get_output_prefix(): def get_output_prefix():
if not os.path.exists(TMP_FRAMES_PATH): if not os.path.exists(TMP_FRAMES_PATH):
os.makedirs(TMP_FRAMES_PATH) os.makedirs(TMP_FRAMES_PATH)
return TMP_FRAMES_PATH + ("%032x_" % random.getrandbits(128)) return TMP_FRAMES_PATH + ("%032x_" % random.getrandbits(128))
if __name__ == "__main__": if __name__ == "__main__":
arguments = docopt(__doc__, version='Naval Fate 2.0') arguments = docopt(__doc__, version='Naval Fate 2.0')
generate_video_thumbnail(arguments) generate_video_thumbnail(arguments)