docker-video-decode/README.md

72 lines
2.4 KiB
Markdown

# Video Decoding with Docker containers
This image provides an easy way to convert a video file in multiple different output formats. Just specify a folder which holds the video files, it will automatically watch it and convert everything you specify.
It will create a new folder for each video which will hold all outputted formats. Once finished, it creates a file `[videoname].done` in said folder to indicate it is done. It will also move (and rename) the original file to this folder.
# Running, the easy way
The following command will convert all `mp4` and `webm` videos to `webm` files.
```bash
docker run -v /var/run/docker.sock:/var/run/docker.sock -v /path/to/video/files:/var/videos --name videodecoding --env VIDEO_FOLDER=/path/to/video/files --env VIDEO_FORMATS='.mp4':'.webm' kolaente/video-decode
```
# Options
All settings can be done via environment variables passed to the container.
* __VIDEO_FORMATS_LOCATION__: Pass a location to a different JSON file holding video convert configurations (see below for more informations about that file).
* __VIDEO_FORMATS__: Pass all video formats which should trigger the conversion, seperated by ':. Example: .mp4:.wmv
## Video location
Videos are placed in `/var/videos` inside the container. Mount a folder from your host holding the videos.
# Specify output video formats
This is done via a JSON file at `/var/videoconversion/config/video_formats.json`. You can mount `/var/videoconversion/config/` to your host and specify your own formats.
`framerate` is the only one optional. You _need_ to specify everything else.
Standard configuration looks like this:
```json
[
{
"name": "720p",
"height": "720",
"video_bitrate": "5000k",
"video_codec": "libvpx",
"audio_bitrate": "256k",
"audio_codec": "libvorbis",
"file_ending": "webm"
},
{
"name": "480p",
"height": "480",
"framerate": 24,
"video_bitrate": "2500k",
"video_codec": "libvpx",
"audio_bitrate": "256k",
"audio_codec": "libvorbis",
"file_ending": "webm"
},
{
"name": "360p",
"height": "360",
"framerate": 24,
"video_bitrate": "1000k",
"video_codec": "libvpx",
"audio_bitrate": "256k",
"audio_codec": "libvorbis",
"file_ending": "webm"
}
]
```
# License
Copyright 2017 K. Langenberg
Licensed under GNU GPLv3