Inspiration

During a conversation with a video editor, we discovered a common challenge in their workflow. The editor explained how even a small change in a video required re-uploading the entire file—often exceeding 2GB— to Google Drive, the platform they used for collaboration. This process was not only time-consuming but inefficient, as they had to manage large files with every minor edit.

We realized there were two major problems here: first, the unnecessary uploading of entire video files even for minor changes, and second, the lack of a dedicated tool tailored for seamless collaboration between video editors and project owners. Existing solutions, like cloud storage platforms, weren’t optimized for version control or collaboration specific to video editing.

This inspired us to create a version control system for videos, where only the changes are tracked and updated, much like Git for code. This innovation allows editors to save time and bandwidth while providing a streamlined platform for collaboration. Our tool is built specifically to address the needs of video professionals, making editing and sharing a more efficient and productive process.

What it does

Our tool simplifies the video editing process by automatically detecting changes made to a video and only uploading the updated segments. Instead of re-uploading the entire file, editors just need to finalize their edits and use the tool, which intelligently tracks and transfers only the modified parts. This significantly reduces upload time and bandwidth usage.

Additionally, we created a user-friendly portal where collaborators can easily view the latest version of the video. This ensures that everyone stays updated with the most recent edits, improving communication and efficiency in video production.

How we built it

We developed the command-line tool using Python and FFmpeg to generate HLS streams from the edited videos. To detect changes efficiently between video frames, we implemented perpetual hash values, allowing the system to track modifications and upload only the altered parts.

For the web-based portal, we utilized JavaScript for both the frontend and backend, enabling seamless integration between the video versioning system and the user interface. This provides users with a dynamic platform for managing and viewing the latest video versions.

Challenges we ran into

The main challenge we encountered was accurately detecting changes in the video frames and designing an algorithm to identify additions and deletions. Initially, we attempted a pixel-by-pixel comparison of every frame, but this approach proved inefficient and computationally heavy, making the process too slow for practical use.

To overcome this, we implemented a more efficient solution using perceptual hash values. By calculating the hash values for each frame, we could compare them to the corresponding frames in the previous version. However, even identical frames might not always generate the same hash values due to slight variations, so we introduced a threshold value. If the hash difference exceeded 5 units, we flagged that frame as having changed. This optimization allowed us to detect meaningful edits without unnecessary processing.

Accomplishments that we're proud of

We successfully detected changes in the video, whether it involved edited frames, newly added frames, or deleted frames. By combining different algorithms to identify only the necessary changes, we tested the tool and achieved highly accurate results. The system provided precise frame numbers for the changes, ensuring that only the modified parts of the video were flagged and processed, significantly optimizing the workflow for video editors.

What we learned

Through this project, we gained valuable insights into perpetual hashing, video processing, FFmpeg, and HLS streaming. Learning how to detect changes in video frames using perpetual hash values improved our understanding of efficient video compression and version control. Additionally, working with FFmpeg and HLS streaming helped us handle video formats and streaming technologies, enabling smoother video editing workflows and collaborative platforms for creators.

What's next for Clip Commit

We plan to include multiple video editors in the same project, allowing them to simultaneously edit their part of the video without depending on other editors. Additionally, we aim to create a more sophisticated, enterprise-level platform for editors and owners where the team can finalize video workflows, live chat, and upload the video directly to the designated portal from within our platform. This portal can also be adapted for filmmaking, where projects involve complex workflows, multiple edits, and larger teams, providing tools that streamline collaboration, track changes, and manage different versions, catering to the advanced needs of film production.

Share this project:

Updates