声明:此文档只做学习交流使用,请勿用作其他商业用途
author:朝阳_tony
最近在power8 平台上安装ffmpeg遇到了一点问题总结,说一些需要注意的地方,同时也是记录一下自己的安装过程,方便后期查阅,与大家一起分享一下;
有时候到找不到对应的程序安装包,只好自己从源码编译,然后安装对应的平台;
测试环境:
RedHat 系统 Big Endian
Red Hat Enterprise Linux Server release 7.0 (Maipo) ppc64 power8 Big endian #uname -a Linux 3.10.0-123.el7.ppc64 #1 SMP Mon May 5 11:18:37 EDT 2014 ppc64 ppc64 ppc64 GNU/Linux
Distributor ID: Ubuntu Description: Ubuntu 14.04 LTS Release: 14.04 Codename: trusty # uname -a Linux 3.13.0-29-generic #53-Ubuntu SMP Wed Jun 4 21:02:53 UTC 2014 ppc64le ppc64le ppc64le GNU/Linux
git clone git://git.videolan.org/x264 ./configure --prefix=/usr --libdir=/usr/lib64 --enable-shared make install一般自己的编译的代码,在安装的时候都会默认安装到/usr/local目录下,但有时候如果这个库需要被其他的软件引用,可能回导致无法找到等问题;
由于我的系统64位的,所以指定库的目录是lib64 ,
最后为了让其他库引用,需要enable shared ,
平时我们在Ubuntu下最喜欢安装软件命令莫过于apt-get 了,
# apt-get install libfaac-dev Reading package lists... Done Building dependency tree Reading state information... Done E: Unable to locate package libfaac-dev啥,没有安装包,
查看了一下faac的官网,http://www.audiocoding.com/index.html
原来有了新的安装包faad
apt-get install libfaad-dev
安装faad成功了,但我们想安装的是faac啊, 好吧,还是下载源码手动安装;
wget http://downloads.sourceforge.net/faac/faac-1.28.tar.gz ./configure --prefix=/usr --libdir=/usr/lib64make install
./configure --prefix=/usr --libdir=/usr/libmake install
编译faac时遇到一个错误;是自己的定义与系统库中的头文件定义冲突,
In file included from mp4common.h:29:0, from 3gp.cpp:28: mpeg4ip.h:126:58: error: new declaration ‘char* strcasestr(const char*, const char*)’ char *strcasestr(const char *haystack, const char *needle); ^ In file included from mpeg4ip.h:107:0, from mp4common.h:29, from 3gp.cpp:28: /usr/include/string.h:365:26: error: ambiguates old declaration ‘const char* strcasestr(const char*, const char*)’ extern "C++" const char *strcasestr (const char *__haystack, ^临时解决办法,当然是修改自己的程序了,注释掉自身的
vim common/mp4v2/mpeg4ip.h 注释掉126行 char *strcasestr(const char *haystack, const char *needle);
我写这篇文章时FFmpeg的版本是v2.5,
git clone git://source.ffmpeg.org/ffmpeg ./configure --enable-gpl --enable-memory-poisoning --enable-avresample --cpu=power8 \ --prefix=/usr \ --libdir=/usr/lib64 \ --enable-shared \ --shlibdir=/usr/lib64 \ --enable-nonfree \ --enable-libx264 \ --enable-libfaac make -j8 make install
--cpu=power8 在p8平台,最好打开这个标志,这样可以使能很多的优化库;如果你的不是p8,请不要指定对应平台,或者用缺省值;
--enable-nonfree 由于FFmpeg支持很多费免费的库,而libfaac又是非free的库,所以必须打开这标志,
最后是能你想安装的库
--enable-libx264 --enable-libfaac
工作中经常遇到各样的问题,多开动脑筋,想想怎么做,大部分事情还是可以解决的;