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

火影  金牌会员 | 2024-7-18 01:26:37 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 545|帖子 545|积分 1635

目次

这里我默认各人已经看过 第一章 FFmpeg初体验:在Centos7.9下编译FFmpeg!【如果没有那还不赶紧去看!】
媒介

FFmpeg自己并不支持H.264编码器,而是接纳集成第三方模块的方式来支持。要想在FFmpeg中开启H.264编码,可以接纳x264和OpenH264这两个编码器。二者各有千秋,不过目前主流的H.264编码器照旧x264。
安装环境:
操作系统OpenEuler 22.03 LTS SP4硬件内存8G内存硬盘大小128G硬盘1. 下载x264
  1. git clone http://git.videolan.org/git/x264.git
复制代码
2. 编译x264
  1. cd x264
  2. ./configure --enable-static --prefix=/usr/local/x264
复制代码

  • --enable-static:这个选项告诉配置脚本,在编译x264库时,应该天生静态库。静态库是包含在最终可执行文件中的,这意味着当你的程序运行时,不需要单独的库文件。
  • --prefix=/usr/local/x264是指定x264库安装后的根目次。这意味着所有的文件(包括库文件、头文件、文档等)都会被安装到/usr/local/x264目次下。这样做的好处是,可以将软件安装到非尺度位置,从而制止与系统自带软件发生辩论或者在不影响系统其他部分的情况下轻松地卸载软件。
3. 编译FFmpeg
  1. ./configure --enable-libx264 --enable-gpl
复制代码

  • --enable-libx264:这个选项告诉配置脚本,在编译过程中包含对x264编码库的支持。
  • --enable-gpl:这个选项表明你接受GNU通用公共许可证(GPL)。x264是按照GPL许可证发布的,启用这个选项是为了确保你的项目与x264库的许可证兼容。
  1. 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默认会搜索这个路径)
  1. 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就可以了。
如:
  1. ./configure --enable-libx264 --enable-gpl
复制代码
因为x264是按照GPL许可证发布的,启用这个选项是为了确保能与x264库的许可证兼容。
4. 检查编译结果
  1. ffmpeg -h encoder=libx264
复制代码
返回结果:
  1. Encoder libx264 [libx264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10]:
  2.     General capabilities: dr1 delay threads
  3.     Threading capabilities: other
  4.     Supported pixel formats: yuv420p yuvj420p yuv422p yuvj422p yuv444p yuvj444p nv12 nv16 nv21 yuv420p10le yuv422p10le yuv444p10le nv20le gray gray10le
  5. libx264 AVOptions:
  6. ....................................
  7. ....................................
复制代码
如果返回结果是这样就分析你的FFmpeg已经支持H.264编码啦~


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

火影

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表