FFmpeg websocket server and API for FFmpeg Commander.
*Currently a work-in-progress! Bugs and breaking changes are expected.
ffmpegd
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
.
The goal is to provide a simple interface for sending FFmpeg tasks from the browser (and other supported clients in the future) to your local machine.
See Usage for more details.
process websocket
[ffmpeg] <-------> [ffmpegd] <-----------> [ffmpeg-commander]
$ go install github.com/alfg/ffmpegd@latest
Release binaries for your platform at: https://github.com/alfg/ffmpegd/releases
A Docker image is available with alfg/ffmpeg build installed:
$ docker run -it -p 8080:8080 -v /tmp/:/home alfg/ffmpegd
Or via GitHub Container Registry:
$ docker run -it -p 8080:8080 -v /tmp/:/home ghcr.io/alfg/ffmpegd
Or using the docker-compose
example:
$ docker-compose up ffmpegd
TBD
- ffmpeg must be installed and available on your
$PATH
. - Run
ffmpegd
:
$ ffmpegd
This wil start the websocket server in your current working directory and wait for a connection.
- Go to https://alfg.github.io/ffmpeg-commander/ in the browser
- Enable
ffmpegd
in Options. - Once connected, you can start sending encode jobs to ffmpegd!
$ ffmpegd
███████╗███████╗███╗ ███╗██████╗ ███████╗ ██████╗ ██████╗
██╔════╝██╔════╝████╗ ████║██╔══██╗██╔════╝██╔════╝ ██╔══██╗
█████╗ █████╗ ██╔████╔██║██████╔╝█████╗ ██║ ███╗██║ ██║
██╔══╝ ██╔══╝ ██║╚██╔╝██║██╔═══╝ ██╔══╝ ██║ ██║██║ ██║
██║ ██║ ██║ ╚═╝ ██║██║ ███████╗╚██████╔╝██████╔╝
╚═╝ ╚═╝ ╚═╝ ╚═╝╚═╝ ╚══════╝ ╚═════╝ ╚═════╝
v0.0.8
[ffmpegd] - websocket server for ffmpeg-commander.
Checking FFmpeg version....4.3.1
Checking FFprobe version...4.3.1
Server started on port :8080.
- Go to https://alfg.github.io/ffmpeg-commander to connect!
- ffmpegd must be enabled in ffmpeg-commander options!
Encoding... 6111 / 17620 (34.68%) 3.37x @ 80.77
See demo for a websocket client example.
go build -v
./ffmpegd
go test ./...
- Logging levels and output
MIT