ffmpeg-commander
A web-based GUI for quickly generating common FFmpeg command-line operations.
Top Related Projects
The swiss army knife of lossless video/audio editing
Manipulate audio with a simple and easy high level interface
Python bindings for FFmpeg - with complex filtering support
Mirror of https://git.ffmpeg.org/ffmpeg.git
automatic video supercuts with python
Quick Overview
FFmpeg Commander is a web UI for building FFmpeg command lines. It provides a user-friendly interface for creating complex FFmpeg commands without the need for extensive command-line knowledge. The project aims to simplify the process of video and audio manipulation using FFmpeg.
Pros
- Intuitive web interface for creating FFmpeg commands
- Supports a wide range of FFmpeg features and options
- Generates both FFmpeg command-line syntax and Docker run commands
- Open-source and actively maintained
Cons
- Requires a web server to run, not a standalone application
- May not cover all possible FFmpeg options and advanced use cases
- Dependent on FFmpeg's command-line syntax, which can change over time
- Limited to the features implemented in the web UI
Getting Started
To run FFmpeg Commander locally:
-
Clone the repository:
git clone https://github.com/alfg/ffmpeg-commander.git cd ffmpeg-commander -
Install dependencies:
npm install -
Start the development server:
npm run serve -
Open your browser and navigate to
http://localhost:8080to use the FFmpeg Commander interface.
Alternatively, you can use the Docker image:
docker run -p 8080:80 alfg/ffmpeg-commander
Then access the application at http://localhost:8080.
Competitor Comparisons
The swiss army knife of lossless video/audio editing
Pros of Lossless-Cut
- User-friendly GUI for video editing, making it accessible to non-technical users
- Supports a wide range of video formats and codecs
- Offers real-time preview of edits and cuts
Cons of Lossless-Cut
- Limited to basic cutting and trimming operations
- May not provide as much fine-grained control over FFmpeg parameters
- Requires installation and runs as a desktop application
Code Comparison
FFmpeg-Commander (JavaScript):
const ffmpeg = require('fluent-ffmpeg');
ffmpeg('input.mp4')
.outputOptions('-vf', 'scale=1280:720')
.output('output.mp4')
.run();
Lossless-Cut (JavaScript/React):
const { cut } = window.electron.ffmpeg;
async function handleCut(inPath, outPath, start, end) {
await cut(inPath, outPath, start, end);
}
Summary
FFmpeg-Commander is a web-based interface for generating FFmpeg commands, offering more flexibility for advanced users. Lossless-Cut provides a user-friendly desktop application for quick and easy video trimming, suitable for beginners. While FFmpeg-Commander allows for more complex operations, Lossless-Cut focuses on simplicity and ease of use for basic editing tasks.
Manipulate audio with a simple and easy high level interface
Pros of pydub
- High-level Python API for audio processing, easier for Python developers
- Supports a wide range of audio operations without direct ffmpeg commands
- Cross-platform compatibility with simpler installation process
Cons of pydub
- Limited to audio processing, lacks video manipulation capabilities
- May have performance overhead compared to direct ffmpeg usage
- Requires Python runtime, which might not be ideal for all environments
Code Comparison
pydub:
from pydub import AudioSegment
sound = AudioSegment.from_mp3("input.mp3")
first_10_seconds = sound[:10000]
first_10_seconds.export("output.mp3", format="mp3")
ffmpeg-commander:
const ffmpeg = require('fluent-ffmpeg');
ffmpeg('input.mp3')
.setStartTime(0)
.setDuration(10)
.output('output.mp3')
.run();
Summary
pydub offers a user-friendly Python interface for audio processing, making it accessible for Python developers. It provides a high-level API that abstracts away complex ffmpeg commands. However, it's limited to audio manipulation and may have some performance overhead.
ffmpeg-commander, on the other hand, provides a web-based interface for generating ffmpeg commands. It offers more flexibility in terms of both audio and video processing but requires more knowledge of ffmpeg syntax.
The choice between the two depends on the specific requirements of the project, the developer's familiarity with Python or ffmpeg, and the need for audio-only vs. audio-video processing capabilities.
Python bindings for FFmpeg - with complex filtering support
Pros of ffmpeg-python
- Provides a Pythonic interface to FFmpeg, making it easier for Python developers to work with
- Offers more granular control over FFmpeg operations through its API
- Supports complex FFmpeg operations with a fluent interface
Cons of ffmpeg-python
- Requires more coding knowledge and effort to use effectively
- May have a steeper learning curve for users unfamiliar with FFmpeg's underlying concepts
- Less suitable for quick, one-off FFmpeg commands
Code Comparison
ffmpeg-commander (JavaScript):
const ffmpeg = new FFmpeg();
ffmpeg.input('input.mp4')
.output('output.mp4')
.videoCodec('libx264')
.execute();
ffmpeg-python (Python):
import ffmpeg
stream = ffmpeg.input('input.mp4')
stream = ffmpeg.output(stream, 'output.mp4', vcodec='libx264')
ffmpeg.run(stream)
Both libraries aim to simplify FFmpeg usage, but ffmpeg-python offers a more programmatic approach within Python, while ffmpeg-commander provides a simpler interface for generating FFmpeg commands, potentially making it more accessible for quick tasks or users less familiar with programming.
Mirror of https://git.ffmpeg.org/ffmpeg.git
Pros of FFmpeg
- Comprehensive and powerful command-line tool for multimedia processing
- Extensive documentation and community support
- Highly customizable with a wide range of options and filters
Cons of FFmpeg
- Steep learning curve for beginners
- Complex command-line syntax can be intimidating
- Requires technical knowledge to use effectively
Code Comparison
FFmpeg:
ffmpeg -i input.mp4 -vf scale=1280:720 -c:a copy output.mp4
ffmpeg-commander:
// No direct code comparison available as ffmpeg-commander is a web-based GUI
// for generating FFmpeg commands, not a command-line tool itself.
Key Differences
- FFmpeg is the core command-line tool, while ffmpeg-commander is a web-based GUI for generating FFmpeg commands
- ffmpeg-commander simplifies the process of creating FFmpeg commands for users less familiar with the syntax
- FFmpeg offers more flexibility and power for advanced users, while ffmpeg-commander focuses on ease of use for common tasks
Use Cases
- FFmpeg: Ideal for advanced users, developers, and those requiring complex multimedia processing
- ffmpeg-commander: Suitable for beginners or those who prefer a visual interface for generating FFmpeg commands
Community and Support
- FFmpeg: Large, active community with extensive documentation and third-party resources
- ffmpeg-commander: Smaller community, but provides a user-friendly interface for FFmpeg command generation
automatic video supercuts with python
Error generating comparison
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
ffmpeg-commander
A simple web UI for generating common FFmpeg encoding operations.
https://alfg.github.io/ffmpeg-commander/

Read the blog post at: https://dev.to/alfg/ffmpeg-the-easy-way-4a0h
Check out docker-ffmpeg for a customized Docker build of FFmpeg.
Why?
FFmpeg has many simple and complex options, which can be intimidating at first. I wanted to create a simple interface for generating common encoding operations for video and audio, inspired by HandBrake.
This tool does NOT cover all options of FFmpeg and some assumptions are made when generating the output. So adjustments may be necessary. Generated options may also vary based on your FFmpeg version and build configuration.
If you feel some options can be improved, feel free to open an issue or pull request.
Development
ffmpeg-commander is built with Vue.js and Bootstrap Vue.
Supported Node LTS Versions
- v12
- v14
- v16
NVM is recommended for quickly installing and using different versions of Node.js.
Install
npm install
npm run serve
- Load
http://localhost:8080/in the web browser.
Compiles and minifies for production
npm run build
Deploy
Deploys to Github Pages
npm run deploy
Docker
docker build -t ffmpeg-commander .
docker run -it -p 8080:80 --rm ffmpeg-commander
ffmpegd
ffmpegd is an optional companion application that connects ffmpeg-commander to ffmpeg by providing a websocket server to send encode tasks and receive realtime progress updates back to the browser. This allows using ffmpeg-commander as a GUI for ffmpeg.
See: https://github.com/alfg/ffmpegd
TODO
- Support multiple inputs and map option
- Expand on Filter options
License
MIT
Top Related Projects
The swiss army knife of lossless video/audio editing
Manipulate audio with a simple and easy high level interface
Python bindings for FFmpeg - with complex filtering support
Mirror of https://git.ffmpeg.org/ffmpeg.git
automatic video supercuts with python
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot