Signed-off-by: Sean Johnson <[email protected]>
|5 months ago|
|CHANGELOG.md||9 months ago|
|Dockerfile||9 months ago|
|README.md||5 months ago|
|mkvpropedit.tgz||1 year ago|
Don Melton of Video Transcoding fame has brought his expertise to hardware accelerated transcoding in the form of Other Video Transcoding. While Don covers the installation and usage of
other-transcode for all normal desktop platforms, this repository's focus is using
other-transcode as a Docker container.
I have leaned heavily on Julien Rottenberg's ffmpeg Dockerfiles. Basically I've taken them, pulled out some of the extraneous
ffmpeg compile options, added in the
other-transcode dependencies, and finally bundled in
Hardware acceleration being hardware dependent, I again stole an idea from Julien Rottenberg's repositories, and narrowed the scope of each container to a specific hardware target. This container is for Intel GPUs, and uses VAAPI.
The container image version is hard aligned to
other-transcode, with numerical suffixes representing container modifications not directly related to
other-transcode such as changes in
FFmpeg compile options.
An Intel GPU. Kaby Lake or better is recommended.
Exclusive use of the
In its current form, this container is setup to directly run
other-transcode. In order to keep
other-transcode from attempting to overwrite the source file that's being transcoded, the current working directory is considered the
output directory, and source file(s) are placed in a child directory. In short something like this:
working_dir \_src \_source_file.mkv
Using that setup, to transcode
source_file.mkv with the default H264 encoding, the Docker command looks like this when run from
docker run --rm --device /dev/dri:/dev/dri -v $(pwd):$(pwd) -w $(pwd) \ ttys0/other-transcode-vaapi \ src/source_file.mkv
If you want to pass
other-transcode options, do so just as if
other-transcode was being run outside of the container.
For example, to change the target bitrate to 6000Kbs the Docker command would be:
docker run --rm --device /dev/dri:/dev/dri -v $(pwd):$(pwd) -w $(pwd) \ ttys0/other-transcode-vaapi \ --target 6000 src/source_file.mkv
HEVC is NOT well supported by VAAPI, and SHOULD BE AVOIDED when using this container!! If you really want to transcode with HEVC on a Linux system your best bet is to use an NVidia card. In that case, the NVidia other-transcode container is a good option.
As I try to shave down the required FFmpeg compile options to only those that get used in video transcoding, I may inadvertently remove some that are actually needed. If you find a codec missing that is "normally" available with
FFmpeg please make an issue, and I'll add it back in.
This has only been tested with Ubuntu 18.04.