X265 builder container
This project prepares a docker image ready for x265 compilation, inspired by MasashiTeruya' x265 building container
There is also a cross-compiling version, with tag
win64 in progress, but I am stuck, and cannot cross-compile the cli version of x265...
How to use it
First of all you can pull the image by running
docker pull skydiscover/build-x265-multilib.
The image is based on Alpine Linux, but we do not care much about space because the container is not supposed to be kept all the time.
The container generated by this image will build x265 based on environment variables and drop it in a
/output folder, so the container must be run like this :
docker run --rm \ -v <my/output/dir>:/output \ -e <VARIABLES>=<VALUES> \ ... \ skydiscover/build-x265-multilib
Variables that will determine the building parameters are the following ones:
MAIN_LIB_STATIC - Builds a static version of the 8bit library default: DISABLED MAIN_LIB_SHARED - Builds a shared version of the 8bit library default: DISABLED MAIN_CLI - Builds an executable version supporting 8bit default: DISABLED MAIN10_LIB_STATIC - Builds a static version of the 10bit library default: DISABLED MAIN10_LIB_SHARED - Builds a shared version of the 10bit library default: DISABLED MAIN10_CLI - Builds an executable version supporting 10bit default: DISABLED MAIN12_LIB_STATIC - Builds a static version of the 12bit library default: DISABLED MAIN12_LIB_SHARED - Builds a shared version of the 12bit library default: DISABLED MAIN12_CLI - Builds an executable version supporting 12bit default: DISABLED
Those variables are enabled by setting their value to
Other usefull variables are:
CLONE_URL - The url used for cloning the repository default: https://bitbucket.org/multicoreware/x265 CLONE_BRANCH - The branch to be cloned (eg: master, stable,...) default: stable
So for instance, if I want to build a 10bit executable version of x265, with the latest improvment, I run the following command:
docker run --rm -v /x265-bin:/output -e MAIN10_CLI=ENABLED -e CLONE_BRANCH=master skydiscover/build-x265-multilib
Of course, if multiple variables are enabled, they will all generate a file with suffixes like _main for 8bit, _main10 for 10bit and _main12 for 12 bit.
No suffix is added for multilib libraries.
Since I am not really a compilation guru, I was not able to generate a multilib executable for linux. Any help will be appreciated.
Add because I am quite useless when itcomes to cross-compiling, I am not able to make the cross-compiling version to work, pls halp.