Ubuntu下编译ffmpeg(2)

背景:

(Ubuntu系统)上次已经编译了ffmpeg,但是我发现我上次编译的ffmpeg在configure的时候没有配置x265 以及 x264这导致我在运行代码的时候没有办法打开h265的编码器(总是返回null),因此要重新配置一次,其实是可以直接在原有的基础上进行更改的,但是当时不清楚的情况下直接删掉了,因此这里直接重新来一遍,同时记录一些在编译过程中遇到的问题与解决方法。

过程:

0.准备工作:

(1)下载并编译x265,地址:https://bitbucket.org/multicoreware/x265/wiki/Home

这个网页有关于编译x265的命令以及解释。

(2)下载ffmpeg的源码:http://ffmpeg.org/download.html#build-linux

(3)删除原有的ffmpeg(这个很重要,一开始由于我没有删除原有的配置,总是失败)

1.配置操作:

我们在下载的ffmpeg目录中打开命令行,然后输入:

./configure --prefix=test --enable-shared --disable-static --disable-doc --enable-gpl  --enable-libx264 --enable-libx265

然后你会发现返回:

ERROR: x265 not found using pkg-config


已经安装了x265但是没有找到,我们查看一下具体错误,打开ffmpeg的编译日志(大概所有编译安装都会有一个这样的文件,它会记录编译信息)

先查找一下在哪里,使用这个命令:

locate config

你会发现有一个文件叫config.log,然后打开它,直接拉到最底下,就能看到具体的错误信息(或许是因为日志是按顺序写的,所以失败的地方应该在文件的最底部)

我们会看到这样一段话:

pkg-config --exists --print-errors x265
Package x265 was not found in the pkg-config search path.
Perhaps you should add the directory containing `x265.pc'
to the PKG_CONFIG_PATH environment variable
No package 'x265' found
ERROR: x265 not found using pkg-config

大概就是说在pkg-config的搜索路径中没有发现x265这个包,它建议把x265.pc所在目录加到PKG_CONFIG_PATH这个路径中。

使用下面的命令添加路径:

export PKG_CONFIG_PATH=/usr/lib/pkgconfig:$PKG_CONFIG_PATH

这个弄完之后再编译一次我们会发现编译成功。

2.测试工作

在命令行输入ffmpeg,发现提示 error while loading shared libraries: xxxxx.so.x: cannot open shared object file: No such file or directory

有两种原因:

(1)你没有下载共享库

(2)下载了共享库,但是系统按照默认共享库路径找不到该共享库文件. 

解决方法:

Case 1 如果共享库在目录/usr/lib 或 /lib 中

这种情况下我们只用执行ldconfig命令,这个命令主要是在默认搜索路径(usr/lib 与 /lib)和 动态库配置文件/etc/ld.so.conf 中的路径搜索出有效的动态库链接。所以只用在命令行中输入ldconfig即可

Case 2 如果在/usr/local/lib中(很多软件的共享库编译默认会安装到这个路径中)

那么我们需要修改动态库配置文件中的内容,也就是在这个文件中加上文件路径/usr/local/lib

具体操作:

sudo vi  /etc/ld.so.conf (这个命令结束后我们会进入ld.so.conf文件中)

/usr/local/lib

:wq (保存并退出)

ldconfig (更新动态库链接)

除了上述方法之外还有设置全局变量的方法

可以参考blog:https://blog.csdn.net/bi_hu_man_wu/article/details/61664220

现在我们重新在命令行中输入ffmpeg,得到如下信息:

ffmpeg version 4.1 Copyright (c) 2000-2018 the FFmpeg developers
  built with gcc 7 (Ubuntu 7.3.0-27ubuntu1~18.04)
  configuration: --enable-shared --disable-static --disable-doc --enable-gpl --enable-libx264 --enable-libx265
  libavutil      56. 22.100 / 56. 22.100
  libavcodec     58. 35.100 / 58. 35.100
  libavformat    58. 20.100 / 58. 20.100
  libavdevice    58.  5.100 / 58.  5.100
  libavfilter     7. 40.101 /  7. 40.101
  libswscale      5.  3.100 /  5.  3.100
  libswresample   3.  3.100 /  3.  3.100
  libpostproc    55.  3.100 / 55.  3.100
Hyper fast Audio and Video encoder
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...

 

可以看到我们已经成功安装!

发布了21 篇原创文章 · 获赞 1 · 访问量 9290
展开阅读全文

使用ubuntu编译 ffmpeg 时报错:ERROR: x265 not found using pkg-config

12-30

config.log 如下:不知道怎么弄了,望大牛指导 usr/local/include/x264.h:40:4: warning: #warning You must include stdint.h or inttypes.h before x264.h [-Wcpp] # warning You must include stdint.h or inttypes.h before x264.h ^~~~~~~ /tmp/ffconf.hRcv9aEw/test.c:3:2: error: #error "unsatisfied condition: X264_MPEG2" #error "unsatisfied condition: X264_MPEG2" ^~~~~ require_pkg_config libx265 x265 x265.h x265_api_get check_pkg_config libx265 x265 x265.h x265_api_get test_pkg_config libx265 x265 x265.h x265_api_get pkg-config --exists --print-errors x265 check_func_headers x265.h x265_api_get -I/usr/local/include -L/usr/local/lib -lx265 test_ld cc -I/usr/local/include -L/usr/local/lib -lx265 test_cc -I/usr/local/include -L/usr/local/lib BEGIN /tmp/ffconf.hRcv9aEw/test.c 1 #include <x265.h> 2 #include <stdint.h> 3 long check_x265_api_get(void) { return (long) x265_api_get; } 4 int main(void) { int ret = 0; 5 ret |= ((intptr_t)check_x265_api_get) & 0xFFFF; 6 return ret; } END /tmp/ffconf.hRcv9aEw/test.c gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -std=c11 -fPIC -pthread -I/usr/local/include -I/usr/local/include -L/usr/local/lib -c -o /tmp/ffconf.hRcv9aEw/test.o /tmp/ffconf.hRcv9aEw/test.c In file included from /tmp/ffconf.hRcv9aEw/test.c:1:0: /usr/local/include/x265.h:673:5: error: unknown type name 'x265_param' x265_param* zoneParam; ^~~~~~~~~~ ERROR: x265 not found using pkg-config 问答

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 编程工作室 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览