Skip to content

Handstop is a robust video encoding library for Node.js, built on the core of the HandBrake video encoding binary. It offers efficient video compression with three output formats optimized for web use: WebM-AV1, MP4-AV1, and MP4-x265. Each format comes with three customizable presets to balance compression levels, file size, and encoding speed, ach

License

Notifications You must be signed in to change notification settings

darsan-in/Handstop

Repository files navigation

Handstop - High-Performance Video Encoding Library for Node.js

Handstop is a robust video encoding library for Node.js, built on the core of the HandBrake video encoding binary. It offers efficient video compression with three output formats optimized for web use: WebM-AV1, MP4-AV1, and MP4-x265. Each format comes with three customizable presets to balance compression levels, file size, and encoding speed, achieving a maximum compression ratio of 93.16%.

Supported Platforms

Windows Node JS


GitHub last commit GitHub commit activity


GitHub License GitHub Release

CodeFactor Grade


NPM Downloads GitHub Repo stars


Table of Contents 📝

Features and Benefits ✨

  • HandBrake Core Integration: Utilizes the powerful HandBrake video encoding binary, integrated seamlessly into Node.js.
  • Multiple Web-Optimized Formats: Supports WebM-AV1, MP4-AV1, and MP4-x265, catering to different web standards and playback needs.
  • Customizable Compression Presets: Three presets available for each format:
    • Level 1: Fastest encoding with larger file sizes.
    • Level 2: Balanced compression and performance.
    • Level 3: Highest compression with the smallest file sizes, achieving up to 93.16% compression.
  • GPU Acceleration with MP4-x265: Leverages Nvidia GPU for faster encoding with MP4-x265, while WebM-AV1 and MP4-AV1 are CPU-based, leading to slower encoding but offering higher compression ratios.
  • Optimized for Compression: AV1 format provides the highest compression ratio, making it ideal for minimizing file sizes without compromising quality.
  • Easy Integration: Designed for easy use within Node.js projects, enabling seamless video encoding workflows.

Use Cases ✅

  • Efficient video encoding for web-based applications with format-specific requirements.
  • Leveraging GPU acceleration for faster encoding in MP4-x265 formats.
  • Customizing video output based on desired file size and quality using compression presets.
  • Optimizing video content for streaming platforms and web delivery.
  • Experimenting with advanced video encoding techniques directly within Node.js.
  • Reducing video file sizes significantly while maintaining quality, particularly with AV1 formats.

🙏🏻 Friendly Request to Users

Every star on this repository is a sign of encouragement, a vote of confidence, and a reminder that our work is making a difference. If this project has brought value to you, even in the smallest way, please consider showing your support by giving it a star.

"Star" button located at the top-right of the page, near the repository name.

Your star isn’t just a digital icon—it’s a beacon that tells us we're on the right path, that our efforts are appreciated, and that this work matters. It fuels our passion and drives us to keep improving, building, and sharing.

If you believe in what we’re doing, please share this project with others who might find it helpful. Together, we can create something truly meaningful.

Thank you for being part of this journey. Your support means the world to us. 🌍💖


Installation - Step-by-Step Guide 🪜

  • Step 1: Install handstop package.
npm install handstop

Usage

  • Single and multi video encoding code snippets are available in handstop-demo repository.

In-Action 🤺

Below result is borrowed from Minomax demo repository, Minomax utilizes handstop under the hood. If you want compress your web media resources like html, css, js, video, pictures everything you can compress to efficient and smaller size as possible using Minomax.

result of handstop

License ©️

This project is licensed under the Apache License 2.0.

Contributing to Our Project 🤝

We’re always open to contributions and fixing issues—your help makes this project better for everyone.

If you encounter any errors or issues, please don’t hesitate to raise an issue. This ensures we can address problems quickly and improve the project.

For those who want to contribute, we kindly ask you to review our Contribution Guidelines before getting started. This helps ensure that all contributions align with the project's direction and comply with our existing license.

We deeply appreciate everyone who contributes or raises issues—your efforts are crucial to building a stronger community. Together, we can create something truly impactful.

Thank you for being part of this journey!

Website 🌐

https://www.npmjs.com/package/handstop

Contact Information

For any questions, please reach out via hello@darsan.in or LinkedIn.

Credits 🙏🏻

To HandBrake

Handstop is built on the core of the HandBrake video encoding binary. We extend our deepest gratitude to the HandBrake organization and all contributors who have worked on the HandBrake project. Their hard work and dedication have made HandBrake one of the most powerful and versatile video encoding tools available.

Special thanks to:

  • Eric Petit (original author): For initiating the HandBrake project.
  • HandBrake Team: For continuously maintaining and improving the software over the years.
  • All Contributors: For their valuable contributions to the HandBrake project, making it what it is today.

Darsan at Linkedin place holder image Darsan at Youtube place holder image Darsan at NPM place holder image Darsan at Github place holder image Darsan Website


Topics

  • video-encoding
  • Node.js
  • Handstop-library
  • HandBrake-integration
  • video-compression
  • web-video-formats
  • GPU-acceleration
  • MP4-x265
  • WebM-AV1
  • MP4-AV1
  • high-performance
  • open-source
  • API-integration
  • video-presets
  • compression-levels

About

Handstop is a robust video encoding library for Node.js, built on the core of the HandBrake video encoding binary. It offers efficient video compression with three output formats optimized for web use: WebM-AV1, MP4-AV1, and MP4-x265. Each format comes with three customizable presets to balance compression levels, file size, and encoding speed, ach

Topics

Resources

License

Stars

Watchers

Forks