X265编译
x264基本被淘汰了,x265可向下兼容x264,使用脚本自动编译。
#!/bin/sh
#设置交叉编译的目标系统
CROSS_SYSTEM_NAME=Linux
#设置平台处理器
CROSS_SYSTEM_PROCESSOR=armv8
#设置交叉编译器前缀
CROSS_TOOLCHAIN_PREFIX=aarch64-linux-gnu
#设置X265安装路径
X265_INSTALL_PATH=/opt/x265
#编译的版本
X265_VER=3.2.1
#自动组合包名,无需修改
PACKAGE_NAME=x265_${X265_VER}
#自动组合压缩包名,无需修改
COMPRESS_PACKAGE=${PACKAGE_NAME}.tar.gz
#下载地址自动组合,无需修改
DOWNLOAD_LINK=http://download.videolan.org/videolan/x265/${COMPRESS_PACKAGE}
#编译器路径,无需修改
CROSS_FULL_PATH=`whereis ${CROSS_TOOLCHAIN_PREFIX}-gcc | awk -F: '{ print $2 }' | awk '{print $1}'`
CROSS_PATH=`dirname ${CROSS_FULL_PATH}`
#下载源码包
do_download_x265_src () {
if [ ! -f "${COMPRESS_PACKAGE}" ];then
if [ ! -d "${PACKAGE_NAME}" ];then
wget -c ${DOWNLOAD_LINK}
fi
fi
}
#解压源码包
do_tar_package () {
#if exist file then
if [ ! -d "${PACKAGE_NAME}" ];then
if [ -f "${COMPRESS_PACKAGE}" ];then
tar -xvf ${COMPRESS_PACKAGE}
else
echo "\033[1;33m no such file or directory ...\033[0m"
exit 65
fi
fi
}
#交叉编译修改
make_pre()
{
cd ${PACKAGE_NAME}/build
mkdir -p ${CROSS_SYSTEM_PROCESSOR}
cd ${CROSS_SYSTEM_PROCESSOR}
touch crosscompile.cmake
#echo "set(CROSS_COMPILE_ARM 1)" > crosscompile.cmake
echo "set(CMAKE_SYSTEM_NAME ${CROSS_SYSTEM_NAME})" > crosscompile.cmake
echo "set(CMAKE_SYSTEM_PROCESSOR ${CROSS_SYSTEM_PROCESSOR})" >> crosscompile.cmake
echo "" >> crosscompile.cmake
echo "# specify the cross compiler" >> crosscompile.cmake
echo "set(CMAKE_C_COMPILER ${CROSS_PATH}/${CROSS_TOOLCHAIN_PREFIX}-gcc)" >> crosscompile.cmake
echo "set(CMAKE_CXX_COMPILER ${CROSS_PATH}/${CROSS_TOOLCHAIN_PREFIX}-g++)" >> crosscompile.cmake
echo "set(CMAKE_SHARED_LINKER_FLAGS \"-ldl \${CMAKE_SHARED_LINKER_FLAGS}\")" >> crosscompile.cmake
echo "" >> crosscompile.cmake
echo "# specify the target environment" >> crosscompile.cmake
echo "SET(CMAKE_FIND_ROOT_PATH ${CROSS_PATH})" >> crosscompile.cmake
echo "" >> crosscompile.cmake
echo "# specify the target install path" >> crosscompile.cmake
echo "set( CMAKE_INSTALL_PREFIX \"${X265_INSTALL_PATH}\")" >> crosscompile.cmake
}
#编译并安装
make_installx265()
{
cmake -DCMAKE_TOOLCHAIN_FILE=crosscompile.cmake -G "Unix Makefiles" -DCMAKE_C_FLAGS="-fPIC ${CMAKE_C_FLAGS}" -DCMAKE_CXX_FLAGS="-fPIC ${CMAKE_CXX_FLAGS}" -DCMAKE_SHARED_LINKER_FLAGS="-ldl ${CMAKE_SHARED_LINKER_FLAGS}" ../../source && make -j2
sudo make install
}
do_download_x265_src
do_tar_package
make_pre
make_installx265
exit $?