共计 1787 个字符,预计需要花费 5 分钟才能阅读完成。
这里我默认大家已经看过 在欧拉系统上编译安装 FFmpeg【如果没有那还不赶紧去看!】
前言
FFmpeg 本身并不支持 H.264 编码器,而是采用集成第三方模块的方式来支持。要想在 FFmpeg 中开启 H.264 编码,可以采用 x264 和 OpenH264 这两个编码器。二者各有千秋,不过目前主流的 H.264 编码器还是 x264。
安装环境:
操作系统 | OpenEuler 22.03 LTS SP4 |
---|---|
硬件内存 | 8G 内存 |
硬盘大小 | 128G 硬盘 |
1. 下载 x264
git clone http://git.videolan.org/git/x264.git
2. 编译 x264
cd x264
./configure --enable-static --prefix=/usr/local/x264
--enable-static
:这个选项告诉配置脚本,在编译 x264 库时,应该生成静态库。静态库是包含在最终可执行文件中的,这意味着当你的程序运行时,不需要单独的库文件。--prefix=/usr/local/x264
是指定 x264 库安装后的根目录。这意味着所有的文件(包括库文件、头文件、文档等)都会被安装到/usr/local/x264
目录下。这样做的好处是,可以将软件安装到非标准位置,从而避免与系统自带软件发生冲突或者在不影响系统其他部分的情况下轻松地卸载软件。
3. 编译 FFmpeg
./configure --enable-libx264 --enable-gpl
--enable-libx264
:这个选项告诉配置脚本,在编译过程中包含对 x264 编码库的支持。--enable-gpl
:这个选项表明你接受 GNU 通用公共许可证(GPL)。x264 是按照 GPL 许可证发布的,启用这个选项是为了确保你的项目与 x264 库的许可证兼容。
make -j$(nproc) && make install
-j
:这是make
命令的一个选项,用于指定并发执行的任务数。-j
后面通常跟着一个数字,表示同时运行的作业数。$(nproc)
: 这是一个 shell 命令替换,它会展开为当前系统上的处理器核心数。例如,如果系统有 4 个核心,那么-j$(nproc)
将展开为-j4
,告诉make
同时运行 4 个编译任务。这样做可以显著加快编译速度,因为它充分利用了多核处理器的优势。
3.1 可能出现的问题和解决方法
3.1.1 ERROR: x264 not found using pkg-config
解决方法:
由于我们使用 --prefix
指定了路径,那么我们已经知道了 x264 的安装路径是在/usr/local/x264
在 /usr/local/x264/lib/pkgconfig/
目录下有个 x264.pc
文件,只需要将它复制到 /usr/share/pkgconfig/
下即可。(pkg-config 默认会搜索这个路径)
cp /usr/local/x264/lib/pkgconfig/x264.pc /usr/share/pkgconfig/
3.1.2 libx264 is gpl and –enable-gpl is not specified.
解决方法:
只需要在 configure 后面再加上 --enable-gpl
就可以了。
如:
./configure --enable-libx264 --enable-gpl
因为 x264 是按照 GPL 许可证发布的,启用这个选项是为了确保能与 x264 库的许可证兼容。
4. 检查编译结果
ffmpeg -h encoder=libx264
返回结果:
Encoder libx264 [libx264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10]:
General capabilities: dr1 delay threads
Threading capabilities: other
Supported pixel formats: yuv420p yuvj420p yuv422p yuvj422p yuv444p yuvj444p nv12 nv16 nv21 yuv420p10le yuv422p10le yuv444p10le nv20le gray gray10le
libx264 AVOptions:
....................................
....................................
如果返回结果是这样就说明你的 FFmpeg 已经支持 H.264 编码啦~
正文完