Inspiration

We enjoy GIFs. We've used services like "Gify" which helpfully allow searching of a large index of GIFs but find that often the GIFs we want do not exist.

What it does

Our hack allows users to split their movies into frames, index captions and use these elements to generate niche GIFs on the fly. The aim was to be able to search such obscure phrases as "I have the high ground" and acquire exactly the GIF we have envisioned.

Along the way we integrated the ability to create and caption GIFs from a webcam very quickly.

How we built it

We split several films into their frames using ffmpeg and saved them in such a structure that would allow a selection of them to be easily accessed.

To build and search our caption index, we used nodejs to write a simple script which interprets .srt subtitle files and indexes them using elastic search. Each subtitle file has its entries indexed alongside their timestamps which is used to determine which frames from the movie are associated with the line being said.

The caption and associated frames is sent to the browser where we use gifshot to generate the GIF from the frames and overlay the caption (webcam GIFs are also generated client-side, similarly to this)

Challenges we ran into

There are a lot of parts to this hack. We split our tasks between three people and then needed to stitch everything together quite close to the end.

Accomplishments that we're proud of

  • Somebody said "This is quite possibly one of the coolest things I've seen at a hackathon" and that's quite nice.
  • Seeing the GIFs actually working was really nice

What we learned

  • SysAdmin skills
  • Team Workflow management
  • Some pitfalls to avoid when using version control
  • Aaron has very good ideas aweh
  • Image manipulation and GIF creation
  • A little about searching

What's next for Jiphy

A lawsuit (also it would be really nice to index youtube videos and make the virtual machine much easier to use so that anybody can build their own GIF index)

Share this project:
×

Updates