ffmpegp (short for "FFmpeg Plus") is a Python-based utility designed to simplify working with media files using ffprobe and ffmpeg. This tool lets you easily extract media details, format conversions, and advanced querying via JSON paths, providing a convenient and efficient interface.
- Media Metadata Extraction : Get detailed media information via
ffprobe
. - JSONPath Querying : Retrieve specific metadata using JSON path expressions.
- Gradient Text : Colored gradient output for enhanced readability.
- Progress Bar : Visual progress bar with customizable colors and time estimation.
- File Size Conversion : Converts file size to human-readable formats.
- Time Conversion : Converts media duration to seconds.
- Enhanced Command Options : Supports various flags for different modes and output styles.
Ensure ffmpeg
and ffprobe
are installed and accessible in your system's PATH. If either is missing, the script will display an error.
Install ffmpegp using pip
:
pip install ffmpegp
Run the program as follows:
ffmpegp -i <file_path> [options]
file_path
: Path to the media file for which you want details.
Option | Description |
---|---|
--colored |
Enable gradient color output. |
--log |
Display logs of the running process. |
--stdout |
Print only plain text without any colored output. |
--jq |
Query specific JSON data (e.g.,format.filename ). |
--dir |
Enable multi-file processing mode in a directory. |
--format |
Set specific file format to find. (works with '--dir' tag) (default: all) (e.g., --format=mp4). |
Get media details:
ffmpegp "video.mp4"
Get specific JSON data:
ffmpegp "video.mp4" --jq="format.filename"
Enable gradient color progress output:
ffmpegp -i "video.mp4" [options] --colored
Run in directory mode and select only (mp4) extension files and save files to "output" folder with same filename with diffrent file extension (mkv).:
ffmpegp -i "{}" <options> "/output/{}.mkv" --dir="./videos" --format="mp4"
Contributions are welcome! If you have any suggestions, bug reports, or feature requests, please open an issue or submit a pull request on GitHub.
This project is licensed under the GNU LESSER GENERAL PUBLIC LICENSE - see the LICENSE file for details.