[ 工具 ] ___ Library : X264
一、简介
x264 是一个开源的软件库,用于编码视频流成 H.264/MPEG-4 AVC 格式,并根据 GNU GPL
的条款发布。它是一个非常流行的视频压缩标准,广泛应用于高清视频的传输和存储。x264提供了高质量的视频编码功能,并且在速度和效率方面表现出色,这使得它成为许多视频编码任务和多媒体应用的首选编码器。
x264 主要特点包括:
- 高性能:x264 针对多种平台进行了优化,能够提供高速且高效的视频编码。
- 高压缩率:它能够在保持视频质量的同时显著减小文件大小,这对于网络传输和存储空间有限的场合特别有用。
- 灵活性和可配置性:x264 提供了广泛的配置选项,允许用户根据特定需求调整编码设置,包括比特率控制、帧率控制、分辨率调整等。
- 广泛的兼容性:H.264 是一种广泛支持的视频编码标准,被多种设备和播放器支持。
x264 通常被用在视频编辑软件、流媒体服务器和多媒体应用中,以提供高效且高质量的视频编码服务。此外,它也是很多网络视频平台和社交媒体网站后端视频处理流程的一部分。
二、获取
三、安装
(一)Windows 上的 x264 安装
在 Windows 上使用 MSYS2 编译和安装 x264 是一个不错的选择,因为 MSYS2 提供了一个类 Unix 环境,这可以让编译过程更接近于在 Linux 系统上进行。以下是使用 MSYS2 在 Windows 上安装 x264 的步骤:
- 更新 MSYS2 系统
pacman -Syu
pacman -Su
- 安装编译 x265 所需的依赖:在 MSYS2 中,你需要安装 yasm、make、diffutils 等工具来编译 x265。可以使用以下命令安装这些依赖:
pacman -S git yasm make diffutils pkg-config
- 配置参数并通过 Git 仓库获取最新的 x264 源代码
git config --global http.sslverify false
git clone https://code.videolan.org/videolan/x264.git
- 进入目录并配置参数
cd x264
./configure --enable-pic --enable-strip --enable-gprof --enable-lto --enable-shared --enable-static --disable-asm --extra-cflags="-O2 -flto=auto" --extra-ldflags="-flto=auto"
- 编译并安装
make
make install
(二)Linux 上的 x264 安装
- 安装依赖组件
linux@localhost:~$ sudo apt install git yasm make diffutils pkg-config
- 配置参数并进行下载
linux@localhost:~$ git config --global http.sslverify false
linux@localhost:~$ git clone https://code.videolan.org/videolan/x264.git
1. Ubuntu Linux 上的 x264 安装
- 进入目录配置编译参数
linux@localhost:~$ cd x264
linux@localhost:~$ ./configure --enable-pic --enable-strip --enable-gprof --enable-lto --enable-shared --enable-static --disable-asm
- 编译并安装
linux@localhost:~$ make
linux@localhost:~$ make install
注意:如果接下来要进行其他平台的移植,则需要使用 make distclean
进行清除过程文件
2. ARM Linux 上的 x264 安装
- 进入目录并配置编译参数
linux@localhost:~$ cd x264
linux@localhost:~/x264$ ./configure --host=arm-none-linux-gnueabi --prefix=${HOME}/x264onarm --cross-prefix=arm-none-linux-gnueabi- --enable-pic --enable-shared --enable-static --enable-strip --enable-lto --enable-gprof --disable-asm
参数说明:
参数 | 描述 |
---|---|
--host | 指定交叉编译器,以便构建程序在主机上运行 |
--prefix | 编译安装目录指定 |
--cross-prefix | 设置交叉编译工具链前缀 |
--enable-pic | 启用构建位置无关的代码,生成可用于共享库的位置独立代码 |
--enable-shared | 启用构建共享库 |
--enable-static | 启用构建静态库 |
--enable-strip | 添加 -s 选项,减小生成的可执行文件和库的大小,这有助于优化存储使用 |
--enable-lto | 启用链接时优化(Link Time Optimization),可以提高程序的性能 |
--enable-gprof | 添加 -pg 以支持 gprof 性能分析,对于性能调试很有帮助 |
--disable-asm | 禁用特定平台的程序集优化(禁用汇编优化) |
- 编译并安装到指定位置
linux@localhost:~/x264$ make
linux@localhost:~/x264$ make install
- 查看
linux@localhost:~/x264onarm$ ls -la
total 20
drwxrwxrwx 1 linux linux 4096 Nov 19 00:19 .
drwxr-xr-x 1 linux linux 4096 Nov 19 00:19 ..
drwxr-xr-x 1 linux linux 4096 Nov 19 00:19 bin
drwxr-xr-x 1 linux linux 4096 Nov 19 00:19 include
drwxr-xr-x 1 linux linux 4096 Nov 19 00:19 lib
linux@localhost:~/x264onarm$ tree
.
├── bin
│ └── x264
├── include
│ ├── x264_config.h
│ └── x264.h
└── lib
├── libx264.a
├── libx264.so -> libx264.so.164
├── libx264.so.164
└── pkgconfig
└── x264.pc
4 directories, 7 files
linux@localhost:~/x264onarm$ file lib/libx264.so.164
lib/libx264.so.164: ELF 32-bit LSB shared object, ARM, EABI5 version 1 (SYSV), dynamically linked, not stripped
确认无误后,即可将对应的库文件和可执行程序上传到开发板的lib
目录和bin
目录中使用,当然也可以配合其他库文件进行相关的移植。