Linux下编译ffmpeg及其依赖库

之前想写一篇博客来记录一下本人在编译ffmpeg库是遇到的坑。

首先讲一下我的需求,利用ffmpeg库实现转码,增加水印,截图功能,输出文件固定为视频为H264编码,音频为AAC编码

系统为centos7.2

1.首先ffmpeg没有x264库,需要下载x264库,自己编译,地址:http://www.videolan.org/developers/x264.html

这个需要提前下载编译yasm库,地址:http://www.linuxfromscratch.org/blfs/view/svn/general/yasm.html

./configure

make && make install

然后再编译安装x264库

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig

./configure --enable-shared

make && make install

2.因为程序要添加水印,分为文字水印与图片水印,文字水印需要用到drawtext这个滤镜,需要 安装libfreetype,libfontconfig

详情请看ffmpeg官方文档:https://ffmpeg.org/ffmpeg-filters.html#drawtext-1(可能需要翻墙)

libfreetype下载地址:https://www.freetype.org/download.html

可以直接利用yum命令安装:yum install  freetype-devel

libfontconfig下载地址:https://www.freedesktop.org/wiki/Software/fontconfig/

解压进入libfontconfig目录

./configure

make&& make install

3.下面就是编译ffmpeg

ffmpeg下载地址:https://ffmpeg.org/download.html#get-sources

解压完进入ffmpeg目录

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig

./configure --enable-shared --enable-gpl --enable-libx264 --enable-libfreetype --enable-libfontconfig --disable-vaapi --disable-libxcb --disable-libxcb-shm --disable-libxcb-xfixes --disable-libxcb-shape 

make

可能需要等待一段时间编译时间较长

编译完毕!

利用命令找到这些动态库就OK了

find -name "*.so*"

将头文件和动态库放到你得项目目录下就OK 了

---------------------------------------------------------------

--enable-gpl是与--enable-libx264搭配使用,--disable-vaapi --disable-libxcb --disable-libxcb-shm --disable-libxcb-xfixes --disable-libxcb-shape 是禁止连接硬编的库




  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在Linux编译FFmpeg,需要先安装一些依赖,如libx264、libmp3lame、libopus等。然后下载FFmpeg源码,解压后进入目录,执行./configure命令进行配置,最后执行make和make install命令进行编译和安装。具体步骤可以参考FFmpeg官方文档或相关教程。 ### 回答2: ffmpeg是一个非常流行的开源多媒体处理工具,它可以对各种音视频文件进行编解码,转换格式,提取音视频等操作。在Linux编译ffmpeg步骤如下: 1. 获取源代码 你可以到ffmpeg的官方网站https://www.ffmpeg.org/下载最新版本的源代码(注意安装依赖项)。将源代码解压到本地目录中。 2. 配置编译选项 在终端中进入FFmpeg源代码目录,并执行以下命令: ./configure --prefix=/usr/local/ffmpeg --enable-shared --disable-static --enable-gpl --enable-nonfree --enable-libfdk-aac --enable-libmp3lame --enable-libopus --enable-libvorbis --enable-libx264 --enable-libx265 --enable-libwebp --enable-libfreetype 其中,prefix用于指定安装的目录,enable-shared和disable-static指定编译为动态链接,GPL和nonfree指示编译器使用特定的许可证,enable-libxxx表示加入某些扩展,如fdk-aac、mp3lame、opus、vorbis、x264、x265、webp、freetype。 3. 编译安装 配置选项设置好后,执行make命令进行编译: make -j4 其中-j4表示使用4个线程执行,可以根据自己的CPU核心数量设置线程数。 执行完make后,可以使用sudo make install命令将编译好的文件安装到指定目录中。 至此,Linux编译ffmpeg的过程就完成了。 需要注意的是,由于ffmpeg编译涉及到多个依赖项,如果环境配置不正确,编译过程中可能会报错。因此建议在编译之前查看ffmpeg的官方文档,了解所需的依赖项以及具体的安装方法。 ### 回答3: FFmpeg 是一种流行的跨平台多媒体框架,它可以用于处理包括音频、视频、字幕和图片等在内的许多不同类型的媒体文件。下面是在 Linux编译 FFmpeg 的步骤和注意事项。 步骤 1:下载源代码 可以从 FFmpeg 的官方网站上下载最新的稳定版本源代码,或者从 Git 仓中克隆最新的开发版: ```bash # 下载最新的稳定版源代码 $ wget https://ffmpeg.org/releases/ffmpeg-4.4.tar.gz # 克隆 Git 仓 $ git clone https://git.ffmpeg.org/ffmpeg.git ``` 步骤 2:安装必要的依赖编译 FFmpeg 之前,需要安装一些必要的依赖,包括编译器、开发和工具,如 GCC、YASM、pkg-config、libx264、libvpx、libmp3lame、libopus、libfdk-aac 等等。可以使用系统自带的包管理器来安装依赖: ```bash # Debian/Ubuntu $ sudo apt-get install build-essential yasm pkg-config libx264-dev libvpx-dev libmp3lame-dev libopus-dev libfdk-aac-dev # CentOS/RHEL $ sudo yum groupinstall development $ sudo yum install epel-release $ sudo yum install yasm-devel libx264-devel libvpx-devel lame-devel opus-devel fdk-aac-devel ``` 步骤 3:配置和编译 FFmpeg 在源代码目录下使用 configure 脚本来配置 FFmpeg,指定编译选项和安装路径: ```bash $ cd ffmpeg-4.4 $ ./configure --prefix=/usr/local/ffmpeg --enable-gpl --enable-libx264 --enable-libvpx --enable-libmp3lame --enable-libopus --enable-libfdk-aac --enable-nonfree ``` 这里指定了 install prefix(安装路径)为 `/usr/local/ffmpeg`,同时启用了一些常用的编码器和附加(包括 x264、VPX、Lame、Opus 和 fdk-aac 等),还启用了一些非自由软件(如 libx264)。 接下来使用 make 命令来编译 FFmpeg: ```bash $ make -j4 ``` 这里使用了 -j4 参数表示开启 4 核并行编译,具体值可以根据机器的 CPU 核心数来调整。 步骤 4:安装和测试 FFmpeg 编译完成后,使用 make install 命令来安装 FFmpeg 到指定的安装路径: ```bash $ sudo make install ``` 安装完成后,可以在 `/usr/local/ffmpeg/bin` 目录下找到 FFmpeg 和 FFprobe 等可执行文件。可以使用以下命令测试 FFmpeg 是否安装成功: ```bash $ ffmpeg -version $ ffprobe -version ``` 如果输出结果中包含版本信息,则说明 FFmpeg 安装成功。 注意事项 - 在配置 FFmpeg 时,可以根据实际需要启用或禁用某些编码器和附加。例如,如果不需要 Opus 编码器,可以使用 --disable-libopus 参数来禁用它。 - 在编译 FFmpeg 时,可能会遇到依赖版本不兼容的问题或安装路径权限不足的问题。可以根据具体情况进行调整。 - FFmpeg编译过程可能会比较耗时,尤其是在较老的机器上。可以使用 -j 参数来开启并行编译,一定程度上缩短编译时间。 - 在使用 FFmpeg 进行音视频处理时,需要使用合适的命令和参数,否则可能会出现质量损失或性能问题。可以参考 FFmpeg 的官方文档或社区资料进行学习和实践。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值