linux 下面编译FFMPEG

转载 2016年08月31日 11:53:42

1.安装SDL,

1、make时出现 fatal error: X11/extensions/XShm.h: No such file or directory

解决办法:搜到的解决办法是

sudo apt-get install x11proto-xext-dev

sudo apt-get install libxext-dev

========================================================================

2、之后make又出现以下问题:

./src/video/x11/SDL_x11sym.h:168:17: error: conflicting types for _XData32?
 SDL_X11_SYM(int,_XData32,(Display *dpy,register long *data,unsigned len),(dpy,data,len),return)
                 ^
./src/video/x11/SDL_x11dyn.c:95:5: note: in definition of macro 釹DL_X11_SYM?
  rc fn params { ret p##fn args ; }
     ^
In file included from ./src/video/x11/SDL_x11dyn.h:34:0,
                 from ./src/video/x11/SDL_x11dyn.c:26:
/usr/include/X11/Xlibint.h:568:12: note: previous declaration of 鈅XData32?was here
 extern int _XData32(
            ^
make: *** [build/SDL_x11dyn.lo] Error 1


解决方案:查阅了一些资料,发现是libx11-dev版本问题(查看版本如图),版本>1.5.99,所以需要修改src/video/x11/SDL_x11sym.h 文件,按照提示修改168行,


修改如下:

原来是:SDL_X11_SYM(int,_XData32,(Display *dpy,register  long *data,unsigned len),(dpy,data,len),return)

改后添加一个单词即可:(_Xconst)

SDL_X11_SYM(int,_XData32,(Display *dpy,register_Xconst long *data,unsigned len),(dpy,data,len),return)


再make 和 sudo make install就可以了。



2.将FFMPEG不要拷到共享目录,拷到/usr/local/ffmpeg下面,


到ffmpeg的官网下载最新的源码包http://www.ffmpeg.org/。并解压到你习惯的位置(我这里依然解压在/根目录下)然后对他的配置文件稍作修改,原因是为了让编译出来的so库适合Android。

SLIBNAME_WITH_MAJOR='$(SLIBNAME).$(LIBMAJOR)'

LIB_INSTALL_EXTRA_CMD='$$(RANLIB)"$(LIBDIR)/$(LIBNAME)"'

SLIB_INSTALL_NAME='$(SLIBNAME_WITH_VERSION)'

SLIB_INSTALL_LINKS='$(SLIBNAME_WITH_MAJOR)$(SLIBNAME)'

改成

SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)'

LIB_INSTALL_EXTRA_CMD='$$(RANLIB)"$(LIBDIR)/$(LIBNAME)"'

SLIB_INSTALL_NAME='$(SLIBNAME_WITH_MAJOR)'

SLIB_INSTALL_LINKS='$(SLIBNAME)'

这里无脑改即可,不需要做其它修改。


下面执行:

./configure --enable-shared --disable-yasm --enable-ffplay --prefix=/usr/local/ffmpeg


3.make install

4.要把安装后的所有SO,拷贝到/usr/local/lib下,才能运行,或者程序运行时,指定运行加载的库路径。

相关文章推荐

FFMPEG安装后没有ffplayer等一系列SDL安装问题解决

1、编译安装ffmpeg后,没有发现ffplayer 。愿意是编译出ffplayer需要sdl。 2、ffmpeg 的configure运行后,发现SDL suport 是0。 3...
  • Nil88
  • Nil88
  • 2016-10-03 16:44
  • 480

安装SDL遇到的问题

1、make时出现 fatal error: X11/extensions/XShm.h: No such file or directory 解决办法:搜到的解决办法是 sudo apt-get i...

ffmpeg编译后没有ffplay

1、安装SDL库,不安装将没有ffplay; 2、如果安装的是SDL2.0最新版本,建议重新编译安装SDL1.x版本(我测试的时候使用SDL2未生成ffplay,此项我再验证); 听群里的高手说,SD...

ubuntu ffmpeg+sdl编译安装过程记录

在ubuntu上的整个编译过程其实就是标准的./configure &&make &&sudo make install 几个问题记录下: 1.如果系统没有装SDL1.x版本的话,默认是不会编译出...

linux虚拟机下面编译ffmpeg,并调用其main方法

ffmpeg的确非常的强大,但是它显的太专业:     很多像我这样的菜鸟,不知道怎么编译     很多人在linux环境下编译通过,但是在cygwin下编译不通过     很多人成功编译了ff...
  • qlsusu
  • qlsusu
  • 2012-08-02 12:39
  • 1453

ffmpeg在linux下面的编译和导入eclipse

分为二部分,第一部分是ffmpeg的编译,第二部分是如何导入eclipse 第一部分 ffmpeg在linux下面的编译        1、下载ffmpeg。     在网上搜索一下,或者到...

Mac下面编译Android FFmpeg3.2.4

需要搞直播,打算使用ffmpeg进行推流,于是在Mac下进行了编译FFMmpeg。1、下载ffmpeg源码,我下载的是ffmpeg-3.2.4;2、配置好build_android.sh编译安卓脚本,...

Linux系统下面的交叉编译浅析

Linux下交叉编译环境构建(arm-linux-gcc-3.4.1.tar.bz2 )   2009-03-03 10:051.下载arm-linux-gcc-3.4.1.tar.bz2...

Ubuntu 8.04 Linux系统下面编译更新内核版本

这是我从网上看到的关于linux内核升级的文章,虽然是转载过来的,但是我把别人的东西变成自己的东西,这一点是最重要的。我自己也把ubuntu8.04的内核升级成功,从2.6.24版本的内核升级到2.6...

在linux下面手动编译Mongodb cpp驱动

之前做了一些关于mongodb replication的一些调研,主要集中在开源软件Tungsten上。这个开源软件是用java写的,和mongo的交互也就用的java。可是真的要用起来,发现我们需要...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)