【第二章】FFmpeg编译开启libx264

2,478次阅读

共计 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

【第二章】FFmpeg 编译开启 libx264

解决方法:

由于我们使用 --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.

【第二章】FFmpeg 编译开启 libx264

解决方法:

只需要在 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 编码啦~

【第二章】FFmpeg 编译开启 libx264

正文完
 0
cyunzing
版权声明:本站原创文章,由 cyunzing 于2024-08-15发表,共计1787字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。