首页 > 其他分享 >第二章 编译FFmpeg并开启H.264编码

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

时间:2024-07-17 09:10:23浏览次数:13  
标签:gpl H.264 FFmpeg -- libx264 编译 enable x264

目录

这里我默认大家已经看过 第一章 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.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

image

解决方法:

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

image

解决方法:

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

image

标签:gpl,H.264,FFmpeg,--,libx264,编译,enable,x264
From: https://www.cnblogs.com/cyunzing/p/18305367

相关文章

  • 静态链接——编译和链接
    一、编译和链接的过程1、GCC生成可执行文件的总体过程在日常的开发过程中,IDE总是会帮我们将编译和链接合并,一键式的执行,即使在liunx中,使用命令行来编译一个源文件也只是简单的一句"gcchello.c"。我们并没有过多的关注编译和链接的运行机制和机理,我想从本质出发,深入了解这......
  • 《永劫无间》找不到ffmpeg.dll无法继续执行怎么办,永劫无间找不到ffmpeg.dll解决方案
    在近期广受关注的多人竞技武侠吃鸡游戏《永劫无间》里,有一部分玩家在开启游戏的时候遭逢了“找不到ffmpeg.dll,无法继续执行代码”的错误提醒,这使诸多期望投身江湖的侠士们备受困扰。本篇将为大家带来《永劫无间》找不到ffmpeg.dll解决方案的内容,感兴趣的小伙伴们一起来看看吧,希......
  • 编译xx.java文件时,未生成对应class文件
    现象:编译xx.java文件时,未生成对应class文件;或报错:不可映射字符原因:文件中有中文,编码模式不匹配控制台-属性-选项,可看见控制台的编码是GBK编码;如果.java文件里含有中文,需将.java文件的编码模式也改为GBK保存。  现象:执行命令>javaHello.class,报错:找不到或无法加载主类原......
  • 条件断点 预编译头文件
    作用:当满足某些条件时才会触发断点怎么设置:代码左侧单击添加断点,右键条件,添加触发条件;就是说在条件断点处暂停运行;预编译头文件作用:抓取头文件,编译成二进制存放在文件中,可以避免多个文件包含相同头文件时多次编译读头文件注意:不能将经常改动的头文件放到预编译头文件中会......
  • C语言的编译和链接
    翻译环境和运⾏环境在ANSIC的任何⼀种实现中,存在两个不同的环境。第1种是翻译环境,在这个环境中源代码被转换为可执⾏的机器指令。第2种是执⾏环境,它⽤于实际执⾏代码。翻译环境那翻译环境是怎么将源代码转换为可执⾏的机器指令的呢?这⾥我们就得展开开讲解⼀下......
  • 基于AM5708开发板——开箱初探+环境搭建、源码编译
    本次测评板卡是创龙科技旗下的TL570x-EVM,它是一款基于TISitara系列AM5708ARMCortex-A15+浮点DSPC66x处理器设计的异构多核SOC评估板,由核心板和评估底板组成。核心板经过专业的PCBLayout和高低温测试验证,稳定可靠,可满足各种工业应用环境。评估板接口资源丰富,引出双路PRU百兆......
  • Hypertable 自编译二进制包安装
    HOWTOINSTALL==============Youcaneitherdownloadanappropriatebinarypackageforyourplatformorbuildfromsource.Binarypackagescanbeobtainedfrom[here](Download|Hypertable-BigData.BigPerformance).See[thiswikipage](http://code.......
  • Hypertable 基于C++开发编译环境部署
    一、安装gccyuminstallgccgcc-c++二、安装boostyuminstallboostboost-develboost1.42以上版本,执行以下脚本:tarxjvfboost_1_44_0.tar.bz2cdboost_1_44_0./bootstrap.sh--with-libraries=filesystem,iostreams,program_options,system,thread,graph,regex./bjam......
  • 全面剖析PHP8新特性:JIT编译器如何推动网站性能革命
    本文由ChatMoney团队出品在Web开发领域,提高网站的响应速度一直是开发者和企业所追求的目标。随着技术的不断进步,PHP8的发布为我们带来了一个全新的工具——JIT(Just-In-Time)加速器,它以其独特的优势,成为了提升网站响应速度的重要利器。本文将详细揭秘PHP8的JIT加速器,并探讨其如......
  • 02 源码编译安装LAMP
          目录2.1Apache网站服务基础2.1Apache简介1.Apache的起源起源背景Apache的诞生Apache软件基金会的成立Apache的流行和影响2.1.1安装httpd服务器1.准备工作2.源码编译及安装(1)解包(2)配置(3)编译及安装3.确认安装结果4优化执行路径5.添加httpd系统......