DemoClipper

DemoClipper is a screen recording tool that makes it easy to create engaging product clips.

Client
Date
2022
Services
Web Development, Unity Development
Deliverables
Web App
DemoClipper

About the Project

DemoClipper is a versatile screen recording tool designed to enhance the visual appeal of product clips. This software allows users to create captivating videos by emphasizing the key aspects of their apps or websites.

Key Features:

  • Easy Zooming and Panning: With DemoClipper, users can effortlessly zoom in or out to highlight specific areas of the screen, improving readability across different devices. This feature elevates screen recordings to a professional level.
  • Beautiful Backgrounds: DemoClipper offers a range of stunning gradients and abstract textures to frame screen recordings, adding a visually appealing touch without the need for design expertise. The result is polished and aesthetically pleasing product clips.
  • No Download Required: All editing tasks are performed directly in the browser, ensuring a seamless and secure editing experience. DemoClipper eliminates the need for file uploads or additional software installations, streamlining the editing process.

Ideal Use Cases:

  • Product GIFs and Videos for Articles and Documentation: DemoClipper simplifies the creation of visually appealing content to showcase products in articles, blog posts, and user documentation. Its intuitive features make it easy to create engaging visuals for effective communication.
  • Short Demo Clips for Social Media: DemoClipper enables the creation of attention-grabbing clips tailored for social media platforms. With its straightforward editing capabilities, users can generate compelling videos that highlight the unique features of their apps or websites.

What I Did

DemoClipper was a personal project. Here are a few features I built out:

  • Explored the Capabilities of the Browser as a Video Editor: I wanted to see how far I could push the boundaries of what could be achieved within the browser environment as a video editor. Instead of relying on server-side processing, I focused on leveraging the capabilities of the browser itself to perform video editing tasks, thus providing a self-contained editing solution.
  • Leveraged WebGL through Unity: To enhance the functionality of DemoClipper, I used WebGL through Unity. By integrating Unity with the project, I was able to tap into the powerful features and capabilities provided by Unity's extensive toolset and utilize the scripting capabilities of C# and WASM. This allowed for the implementation of advanced video editing functionalities within the DemoClipper tool.
  • Created a User-Friendly Interface with Bootstrap: Recognizing the importance of a user-friendly interface, I developed the UI of DemoClipper using Bootstrap. By leveraging the responsive design and components provided by Bootstrap, I ensured a visually appealing and intuitive interface for users to interact with the video editing features seamlessly.
  • Implemented a Low-Latency Messaging System: To establish efficient communication between JavaScript and Unity, I designed and implemented a messaging system. This system facilitated the exchange of data and instructions (in JSON format) between the user interface components implemented in JavaScript and the video editing functionalities developed in Unity, ensuring smooth and near-real-time interactions with minimal latency.
  • Innovated Zooming and Panning Technique: Instead of the conventional method of scaling the video texture or container, I positioned the video panel in 3D space and controlled the camera to achieve smoother and visually appealing zooming and panning effects.
  • Developed a Screen Recording System: I created a screen recording system within DemoClipper utilizing the browser's built-in MediaRecorder. This feature allowed users to effortlessly capture their screen activities directly within the tool, providing a comprehensive solution for recording engaging screen recordings.
  • Implemented Dynamic Background Image Transcoding: To optimize performance and simplify the handling of background images, I implemented a dynamic background image transcoding system using Bunny.net. By caching and transcoding the background images, the system avoided the need for creating multiple variations of the same image manually, improving efficiency and enhancing overall performance in the DemoClipper tool.
DemoClipper

Tech Stack