x265 HEVC Encoder
- Mission Statement
- Online documentation
- Mailing list firstname.lastname@example.org
- HOWTO Contribute patches to x265
- HOWTO add a new encoder performance primitive
- HOWTO cross compile from Linux to Windows
- Regression test harness with profile-guided optimizations
- Coding Style
- TODO list
- Profiling with VTune
- Helpful links
- Try the x265 Encoder, a 64 bit Windows application powered by x265.
MD5 (x265_2.8.tar.gz) = b68dcd4e8a495e53e53034a11fec5eb9 MD5 (x265_2.9.tar.gz) = 693ee4ce7929a59735f441107310f0bb MD5 (x265_3.0.tar.gz) = 8ff1780246bb7ac8506239f6129c04ec MD5 (x265_3.1.tar.gz) = c2c0455ca52772a24e7a37a8da42cd41 MD5 (x265_3.1.1.tar.gz) = 248a4cdbd93e9a493c78ef0c07863b34 MD5 (x265_3.1.2.tar.gz) = a528ab27660d6bcfc46188ae602b3c2e MD5 (x265_3.2.tar.gz) = 374e6359a00d17fd82195c02c341c861 MD5 (x265_3.2.1.tar.gz) = 94808045a34d88a857e5eaf3f68f4bca MD5 (x265_3.3.tar.gz) = 0c8c747b59b5411dea8cf557554636c1 MD5 (x265_3.4.tar.gz) = e37b91c1c114f8815a3f46f039fe79b5
To compile x265 you must first install Mercurial (or TortoiseHg on Windows) and CMake 2.8.8 or later. To ensure your build of x265 is capable of full performance, install YASM 1.2.0 or newer if you are using x265 v2.6 or older, or NASM 2.13 or newer if you are compiling from the default branch to compile assembly primitives. Then follow these easy steps:
For detailed instructions, consult our build README. Basic instructions are outlined below.
# ubuntu packages: $ sudo apt-get install mercurial cmake cmake-curses-gui build-essential yasm # Note: if the packaged yasm is older than 1.2, you must download yasm (1.3 recommended) and build it # If you are compiling off the default branch after release of v2.6, you must have nasm (2.13 or newer) installed and added to your path $ hg clone https://bitbucket.org/multicoreware/x265 $ cd x265/build/linux $ ./make-Makefiles.bash $ make
The primary target that we support is x86. x265 can also be built on linux platforms on ARM and POWERPC targets using the same build insructions above (exclude yasm from the list of packages on these targets). Our support for these platforms is growing as our user base on these platforms increase.
We also support cross-compilation for ARM targets from linux platforms on x86 targets by using the g++ arm cross-compiler. This has been tested on Ubuntu linux 14.04 running on an x86 CPU. On other distributions, package names and names of cross compilation tools may differ. This is an experimental feature, and has undergone very limited testing.
$ sudo apt-get install mercurial cmake cmake-curses-gui build-essential gcc-arm-linux-gnueabi g++-arm-linux-gnueabi $ hg clone https://bitbucket.org/multicoreware/x265 $ cd x265/build/arm-linux $ ./make-Makefiles.bash $ make
Windows (Visual Studio) Instructions
$ hg clone https://bitbucket.org/multicoreware/x265
Then run make-solutions.bat in the build\ folder that corresponds to your favorite compiler, configure your build options, click 'configure', click 'generate', then close cmake-gui. You will be rewarded with an x265.sln file. Also see cmake documentation.
Mac OS X
The latest Mac OS X 10.8 gcc and clang based compilers can build x265 using the linux instructions above. Xcode 5 with the most recent patches can build, debug, and profile x265.
Intel Compiler Instructions
On Windows, after installing the Intel C-compiler, right-click on the 'Solution x265' inside the solution explorer window, select 'Intel Compiler -> Use Intel C++', and rebuild x265.
On Linux, you can tell cmake to build Makefiles for icpc directly. This requires you to have configured the Intel compiler environment (by sourcing the appropriate shell script). For example:
$ source /opt/intel/composerxe/bin/compilervars.sh intel64 $ cd repos/x265/build/linux $ export CMAKE_CXX_COMPILER=icpc $ export CMAKE_CC_COMPUILER=icc $ ./make-Makefiles $ make
Multilib build instructions
Applications like ffmpeg and the x265 CLI which use our bit-depth introspection API (x265_api_get) instead of the globally exported C interface can select between 8 and 10bit libx265 libraries at runtime. To support this both libraries must be available either as shared libraries or as a pair of static libraries.
For shared libraries, just rename your 10bit libx265 as libx265_main10.[so|dll|dylib] and place it into your library load path.
For static libraries, you must disable the exported C APIs, since they would conflict with each other. For linux/Mac, you can use or adapt the build/linux/multilib.sh script. For Windows, there are similar vc*-x86_64/multilib.bat files that demonstrate how combined static libraries can be built.
See also multilib docs.
Command line interface
The Makefile/solution builds a static encoder.lib library and a standalone x265 executable that aims to be similar to x264 in its command line interface. Running without arguments shows you the command line help. See also the online documentation