A Python script for efficiently compressing videos without sacrificing quality
Project description
CLI Video Compressor
Pack
is a simple yet powerful CLI video compressor.
It reduces file sizes by up to 60% while maintaining high quality, using FFmpeg
under the hood. Compress individual videos or entire folders with ease.
Installation | Upgrade
You might be sure that you have installed Python 3.10+
and FFmpeg
. The CLI app uses FFmpeg
under the hood, so make sure you have it installed and added to your PATH.
pip install -U vidpack
Prerequisites
```console
# MacOS
brew install ffmpeg
# Ubuntu
sudo apt install ffmpeg
# ArchLinux
sudo pacman -S ffmpeg
# Fedora
sudo dnf install ffmpeg
```
Basic Usage
To compress a video or multiple videos, you will use the pack
command, followed by the required input argument (a file or a directory).
pack INPUT [OPTIONS]
[!NOTE]
INPUT
: This is the file or directory you want to process. If you provide a directory, all videos within it will be compressed.
[!TIP] For additional help or to see all available options, you can use the command:
pack --help
Options
Pack offers several options to customize the compression process:
--output
,-o
: Specifies the output file to save the compressed video.--quality
,-q
: Defines the video quality level (0-100). Default value: 75.--overwrite
,-w
: Overwrites the output file if it already exists.--delete-original
,-d
: Deletes the original video after successful compression.--codec
,-c
: Specifies the video codec to use for compression(h264
,libx265
). Default ish264
.--verbose
,-v
: Enables debugging mode for more information during the process.
[!IMPORTANT] The H265 (
libx265
) codec offers superior compression quality and produces smaller file sizes compared toH264
. However, encoding with H265 is more time-consuming and requires significantly more processing power. If you have a modern GPU and enough time for encoding, H265 is an excellent choice for reducing file sizes without sacrificing quality.
Usage Examples
To compress a video named video.mp4
, simply run:
pack video.mp4
This command will compress video.mp4
with default settings(quality: 75) and save the result as video_compressed.mp4
in the same directory.
Show more examples
Specify an output file
If you want to specify the name or location of the compressed file:
pack video.mp4 --output compressed/small_video.mp4
This command will compress video.mp4
and save the result as small_video.mp4
in the compressed
directory.
Adjust compression quality
To compress a video with a specific quality (e.g., 60):
pack video.mp4 -q 60
This will compress the video with lower quality, resulting in a smaller file size.
Compress all videos in a directory
To compress all videos in a directory:
pack /path/to/my/videos
This command will compress all videos in the specified directory and save the results in the same directory.
Overwrite existing files
If you want to overwrite existing compressed files:
pack video.mp4 --output output.mp4 --overwrite
This will overwrite the file output.mp4
if it already exists.
Delete the original file after compression
To delete the original video file after successful compression:
pack video.mp4 --delete-original
The original video.mp4
will be deleted after compression.
Specify a video codec
To compress a video with a specific video codec (e.g., libx265):
pack video.mp4 --codec libx265
This will compress the video with the libx265 codec, resulting in a smaller file size. Currently, only h264
and libx265
codecs are supported.
Use multiple options
You can combine multiple options in a single command:
pack video.mp4 -o compressed.mp4 -q 80 -w -d -v
This command will compress video.mp4
with a quality of 80, save the result as compressed.mp4
, overwrite if the file exists, delete the original, and display detailed information during the process.
Additional Notes
- The quality option (
-q
) affects both visual quality and file size. A lower value will result in a smaller file but lower visual quality, while a higher value will maintain better quality but with a larger file size. - It's always recommended to backup your original videos before using the delete option (
-d
). - The verbose mode (
-v
) is useful for diagnosing issues or better understanding the compression process.
[!TIP] If you are a Windows user, you can install
ffmpeg
andpython
manually or using package managers likeScoop
. Once you have installed a package manager, you can just run something likescoop install python ffmpeg
.
[!TIP] Windows user can watch a tutorial video on YouTube about the installation process [Here].
Contributors
See my other projects
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file vidpack-0.3.1.tar.gz
.
File metadata
- Download URL: vidpack-0.3.1.tar.gz
- Upload date:
- Size: 11.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0e34f5049f36492b031820834938d2c7783b95a735d5c10438722909cd2a8612 |
|
MD5 | 527b9cf4d5c640316d2364863eaf97a6 |
|
BLAKE2b-256 | b3b95ecdf2d148f5e3cf67dca3bc0ae95b7ae2747286919d9d1353401c2240df |
File details
Details for the file vidpack-0.3.1-py3-none-any.whl
.
File metadata
- Download URL: vidpack-0.3.1-py3-none-any.whl
- Upload date:
- Size: 11.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6165059414eb1f6211d2548a95907e134ef03e5d909a3cbf51960322bdfd5e2d |
|
MD5 | dbb1f677ab139543fc857852d5ba2b3a |
|
BLAKE2b-256 | a6ff0f889d1619454110baf3c8600c0bf0d7dfa006f331888487816bc46bb12b |