72 lines
2.4 KiB
Markdown
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
|