当前位置: 首页 > 工具软件 > x265 > 使用案例 >

[ 移植 ] ___ Library : X265

微生啸
2023-12-01

简介


x265是一个免费软件 应用程序,用于将视频流编码为H.265/MPEG-H HEVC压缩格式,并根据GNU GPL条款发布。

获取


最新的x265源代码可通过官网直接下载源码包

配置


  • 创建目录并安装依赖
linux@localhost:~$ mkdir x265onarm
linux@localhost:~$ sudo apt install git yasm nasm cmake cmake-curses-gui pkg-config diffutils libnuma-dev
  • 备份方便后面编译错误可以直接重捣
linux@localhost:~$ git clone https://bitbucket.org/multicoreware/x265_git.git
linux@localhost:~$ cp -r x265_git/build/arm-linux x265_git/build/arm-linux-build
  • 进入目录,进行配置文件修改
linux@localhost:~$ cd  x265_git/build/arm-linux-build
  • 修改交叉编译器前缀
linux@localhost:~/x265_git/build/arm-linux-build$ sed -i "s/arm-linux-gnueabi/arm-none-linux-gnueabi/g" crosscompile.cmake
linux@localhost:~/x265_git/build/arm-linux-build$ sed -i "s/armv6l/armv7l/g" crosscompile.cmake
  • 使用ccmake处理由cmake系统生成/使用的文件
linux@localhost:~/x265_git/build/arm-linux-build$ cmake -G "Unix Makefiles" -DCMAKE_TOOLCHAIN_FILE=crosscompile.cmake -DCMAKE_ASM_FLAGS="-fPIC" -DCMAKE_CXX_FLAGS="-fPIC" -DCMAKE_C_FLAGS="-fPIC" -DCMAKE_INSTALL_PREFIX=${HOME}/x265onarm -DCMAKE_SHARED_LINKER_FLAGS="-ldl" ../../source && ccmake ../../source
  • 变量说明
    • -G:指定生成文件生成器;
      • CMake可能在某些平台上支持多个本机构建系统,makefile生成器负责生成特定的构建系统,可能的生成器名称在生成器部分中指定。
    • -D:创建cmake缓存条目;
      • cmake第一次在空的构建树中运行时,它会创建一个CMakeCache.txt 文件并使用项目的可自定义设置填充它,此选项可用于指定优先于项目默认值的设置,可以根据需要对尽可能多的缓存条目重复该选项。
    • CMAKE_TOOLCHAIN_FILE:这个变量是在CMake交叉编译时在命令行指定的。它是CMake运行早期读取的文件的路径,它指定了编译器和工具链工具的位置,以及其他目标平台和编译器相关的信息。
    • CMAKE_<LANG>_FLAGS:所有构建类型的标志,这是从环境变量为每种语言初始化的;
      • 无论 CMAKE_BUILD_TYPE 的值如何,<LANG> 标志都会被使用,可对此变量进行设置,那么环境变量将被忽略。(eg:CMAKE_C_FLAGS:由CFLAGS环境变量初始化,CMAKE_CXX_FLAGS:由CXXFLAGS环境变量初始化,CMAKE_CUDA_FLAGS:由CUDAFLAGS环境变量初始化,...
    • CMAKE_INSTALL_PREFIX:安装目录;
      • 如果 make install 被调用或 INSTALL被建立,这个目录是附加到所有安装目录。 在UNIX上和在Windows上,该变量默认值是/usr/localc:/Program Files/${PROJECT_NAME}
    • CMAKE_SHARED_LINKER_FLAGS:用于创建共享库的链接器标志。
      • 创建共享库时,链接器将使用这些标志。
  • 交互配置:
    • 首先,按t切换高级模式,检查各项参数是否正确;
    • 其次,按c进行配置;
    • 然后,按g保存配置并退出。

安装


linux@localhost:~/x265_git/build/arm-linux-build$ make
linux@localhost:~/x265_git/build/arm-linux-build$ make install

查看


linux@localhost:~/x265onarm$ ls -la
total 20
drwxrwxrwx 1 linux linux 4096 Mar 19 10:19 .
drwxr-xr-x 1 linux linux 4096 Mar 19 10:19 ..
drwxr-xr-x 1 linux linux 4096 Mar 19 10:19 bin
drwxr-xr-x 1 linux linux 4096 Mar 19 10:19 include
drwxr-xr-x 1 linux linux 4096 Mar 19 10:19 lib
linux@localhost:~/x265onarm$ tree
.
├── bin
│   └── x265
├── include
│   ├── x265_config.h
│   └── x265.h
└── lib
    ├── libx265.a
    ├── libx265.so -> libx265.so.204
    ├── libx265.so.204
    └── pkgconfig
        └── x265.pc

4 directories, 7 files
linux@localhost:~/x265onarm$ cd lib
linux@localhost:~/x265onarm/lib$ file libx265.so.204
libx265.so.204: ELF 32-bit LSB shared object, ARM, EABI5 version 1 (GNU/Linux), dynamically linked, not stripped

确认无误后,即可将对应的库文件可执行程序上传到开发板的lib目录和bin目录中使用,当然也可以配合其他库文件进行相关的移植。

 类似资料: