火影 发表于 2024-7-18 01:26:37

第二章 编译FFmpeg并开启H.264编码

目次

[*]媒介
[*]1. 下载x264
[*]2. 编译x264
[*]3. 编译FFmpeg

[*]3.1 可能出现的问题和办理方法

[*]3.1.1 ERROR: x264 not found using pkg-config

[*]办理方法:

[*]3.1.2 libx264 is gpl and --enable-gpl is not specified.

[*]办理方法:



[*]4. 检查编译结果

这里我默认各人已经看过 第一章 FFmpeg初体验:在Centos7.9下编译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.git2. 编译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

https://img2024.cnblogs.com/blog/3483696/202407/3483696-20240716153445213-1866976060.png
办理方法:

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

https://img2024.cnblogs.com/blog/3483696/202407/3483696-20240716153501229-1744812419.png
办理方法:

只需要在configure后面再加上--enable-gpl就可以了。
如:
./configure --enable-libx264 --enable-gpl因为x264是按照GPL许可证发布的,启用这个选项是为了确保能与x264库的许可证兼容。
4. 检查编译结果

ffmpeg -h encoder=libx264返回结果:
Encoder libx264 :
    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编码啦~
https://img2024.cnblogs.com/blog/3483696/202407/3483696-20240716153512005-137960879.png

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 第二章 编译FFmpeg并开启H.264编码