Skip to content

Instantly share code, notes, and snippets.

@tdavchev
Last active July 30, 2020 18:03
Show Gist options
  • Save tdavchev/cb62de171538bae20fca75601db03f14 to your computer and use it in GitHub Desktop.
Save tdavchev/cb62de171538bae20fca75601db03f14 to your computer and use it in GitHub Desktop.
'''
Convert videos to .gif files.
@date: 28.02.2018
@author: Todor Davchev
'''
import argparse
import os
import cv2
import imageio
def main(args):
# create dir if doesn't exist
os.makedirs(args.savepath, exist_ok=True)
# save each frame
for vname in args.video_names:
# load the video
cap = os.path.join(args.videopath, vname+args.video_format)
vidcap = cv2.VideoCapture(cap)
images = []
# load first frame
success,image = vidcap.read()
# load all frames
while success:
# openCV loads in BGR...
image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
images.append(image)
success,image = vidcap.read()
# save video as a gif file
imageio.mimsave(os.path.join(args.savepath, '{0}.gif'.format(vname)), images)
print("Done.")
if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument("--savepath", type=str, default="gifs")
parser.add_argument("--videopath", type=str, default="videos")
parser.add_argument("--video_format", type=str, default=".mp4")
parser.add_argument("--video_names", nargs='*',
default=['video1', 'video2', 'video3'])
args = parser.parse_args()
main(args)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment