CentOS6.2下编译mpeg4ip 图文教程

一、环境

1、操作系统版本

CentOS 6.2 64位

uname -a的输出:

Linux localhost.localdomain 2.6.32-220.17.1.el6.x86_64 #1 SMP Wed May 16 00:01:37 BST 2012 x86_64 x86_64 x86_64 GNU/Linux

2、mpeg4ip版本

版本:1.6.1

下载链接:

http://people.freebsd.org/~ahze/distfiles/mpeg4ip-1.6.1.tar.gz 

 

二、编译 

1、编译mpeg4ip需要的库 

首先安装libtool库,命令如下: 

yum install libtool 

然后进入到mpeg4ip的目录,运行./bootstrap进行配置,如果出错,是因为bash版本及名称的问题,修改bootstrap文件中第一行,改sh 为bash.或运行 bash ./bootstrap。 

提示如下:  

*** ffmpeg encoder is not installed
*** xvid encoder is not installed
*** x264 encoder is not installed
*** lame encoder is not installed
*** faac encoder is not installed
*** twolame encoder is not installed

 安装相应库: 

yum install ffmpeg-devel xvidcore-devel twolame-devel x264-devel 

编译:make 

2、编译中的错误处理 

2.1 报错内容:  

In file included from config_opts.cpp:1:
/include/mpeg4ip.h:126: error: new declaration 'char* strcasestr(const char*, const char*)'
/usr/include/string.h:369: error: ambiguates old declaration 'const char* strcasestr(const char*, const char*)'

解决办法:

vi include/mpeg4ip.h 

注释掉函数声明,如下所示:

2.2 报错内容: 

cc1plus: warnings being treated as errors
sys_decoder_blkdec.cpp:190: error: suggest parentheses around '&&' within '||'
sys_decoder_blkdec.cpp:205: error: suggest parentheses around '&&' within '||'

 如图所示:

解决办法:

vi common/video/iso-mpeg4/src/Makefile 

去掉Werror 

vi命令: %s/-Werror//

2.3 报错内容: 

type_basic.cpp:320: error: '<anonymous>' has incomplete type
type_basic.cpp:320: error: invalid use of 'Void'
type_basic.cpp:320: error: prototype for 'Void CMotionVector::setToZero(<type error>)' does not match any in class 'CMotionVector'
./../include/basic.hpp:441: error: candidate is: Void CMotionVector::setToZero()

解决办法: 

vi common/video/iso-mpeg4/src/type_basic.cpp 

在320行去掉括号内的Void,如图所示:

2.4 报错内容:  

cc1: warnings being treated as errors
config.c: In function 'enter_chn':
config.c:636: error: array subscript is above array bounds
config.c:637: error: array subscript is above array bounds

解决办法: 

vi player/lib/audio/faad/Makefile 

去掉Werror 

2.5 报错内容: 

/usr/local/include/libavutil/common.h: In function ‘int32_t av_clipl_int32(int64_t)’:
/usr/local/include/libavutil/common.h:154: error: ‘UINT64_C’ was not declared in this scope
...

解决办法: 

涉及到标准c和c99的问题,在出问题的文件中加上下面三句话就好了 

#ifndef UINT64_C
#define UINT64_C(value)__CONCAT(value,ULL)
#endif

2.6 报错内容: 

In file included from ffmpeg.cpp:26:
ffmpeg.h:29:28: error: ffmpeg/avcodec.h: No such file or directory
...

 解决办法:

版本遗留问题,修改下路径就行了。其实这是一类问题,接下来还会遇到好多次,以这个为例展例下,其它的照此修改就OK了。

vi player/plugin/audio/ffmpeg/ffmpeg.h

在第30行进行修改,替换成完整路径:

#include <ffmpeg-spice/libavcodec/avcodec.h> 

2.7 报错内容: 

ffmpeg.cpp: In function 'codec_data_t* ffmpeg_create(const char*, const char*, int, int, format_list_t*, audio_info_t*, const uint8_t*, uint32_t, audio_vft_t*, void*)':
ffmpeg.cpp:180: error: 'AVCODEC_MAX_AUDIO_FRAME_SIZE' was not declared in this scope
ffmpeg.cpp: In function 'int ffmpeg_decode(codec_data_t*, frame_timestamp_t*, int, int*, uint8_t*, uint32_t, void*)':

 解决办法:

vi /usr/include/ffmpeg-spice/libavcodec/avcodec.h

查找 AVCODEC_MAX_AUDIO_FRAME_SIZE,得到如下结果: 

复制其值到文件player/plugin/audio/ffmpeg/ffmpeg.h,并把Q去掉:

vi player/plugin/audio/ffmpeg/ffmpeg.h

添加如下内容:

#define AVCODEC_MAX_AUDIO_FRAME_SIZE 192000 

2.8 报错内容: 

media_utils.cpp: In function 'int create_media_for_iptv(CPlayerSession*, const char*, int, control_callback_vft_t*)':
media_utils.cpp:613: error: invalid conversion from 'const char*' to 'char*'

 解决办法:

vi player/src/media_utils.cpp

在613行,对name变量进行强制类型转换,如图所示:

 2.9 报错内容:

../server/mp4live/video_util_resize.h:93: error: conflicting declaration 'uint8_t* fV'
../server/mp4live/video_util_resize.h:91: error: 'fV' has a previous declaration as 'const uint8_t* fV'
../server/mp4live/video_util_resize.h:94: error: redefinition of 'uint32_t tvStride'
../server/mp4live/video_util_resize.h:94: error: 'uint32_t tvStride' previously declared here


void CopyYuv(const uint8_t *fY, const uint8_t *fU, const uint8_t *fV,
             uint32_t fyStride, uint32_t fuStride, uint32_t fvStride2,
             uint8_t *tY, uint8_t *tU, uint8_t *fV2,
             uint32_t tyStride, uint32_t tvStride, uint32_t tvStride2,
             uint32_t w, uint32_t h); 


video_ffmpeg.cpp:124: error: 'struct AVCodecContext' has no member named 'frame_rate'
video_ffmpeg.cpp:125: error: 'struct AVCodecContext' has no member named 'frame_rate_base'
video_ffmpeg.cpp:136: error: 'struct AVCodecContext' has no member named 'aspect_ratio'

好,编译成功,make install 即可使用。

三、安装使用

1、安装

make install

2、使用mp4live

E-Mail : Mike_Zhang@live.com

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索编译
, int
, array
, const
is
centos 7 mpeg 4 aac、centos mpeg4 aac插件、centos mpeg4 aac、centos mpeg 1、centos7 mpeg,以便于您获取更多的相关知识。

时间: 2024-09-19 09:01:22

CentOS6.2下编译mpeg4ip 图文教程的相关文章

Windows下tomcat安装图文教程(安装版)_Tomcat

下载tomcat安装文件,官方下载地址是:http://tomcat.apache.org/,本文以tomcat-7.0.26版本为例进行安装过程的说明: Windows下tomcat安装图文教程 1.双击apache-tomcat-7.0.26.exe开始tomcat的安装,见图1. 图1 2.点击Next,进入第二步,同意它的安装协议条款,见图2,点击I Agree继续安装. 图2 3.选择安装选项,默认是Normal,可以看图3,点开Tomcat,选中Service,以后将可以在管理的服务

Centos下编译安装Nginx教程详解_nginx

一.安装nginx时必须先安装相应的编译工具 yum -y install gcc gcc-c++ autoconf automake yum -y install zlib zlib-devel openssl openssl-devel pcre-devel 建立nginx 组 groupadd -r nginx useradd -s /sbin/nologin -g nginx -r nginx id nginx zlib:nginx提供gzip模块,需要zlib库支持 openssl:n

VMware中linux环境下oracle安装图文教程(一)_oracle

安装流程:前期准备工作--->安装ORACLE软件--->安装升级补丁--->安装odbc创建数据库--->安装监听器--->安装EM <前期准备工作> 安装配置系统环境 安装linux , 所有服务都不选择,只是选择安装开发工具,不要安装防火墙(当然也可以在后面关闭)打开终端,执行如下命令,检查安装包,没有的都要安装 make, glibc, libaiocompat-libstdc++, compat-gcc-34, compat-gcc-34-c++, gc

VMware中linux环境下oracle安装图文教程(二)ORACLE 10.2.05版本的升级补丁安装_oracle

首先我们解压 $ unzip p8202632_10205_LINUX.zip 解压后我们会发现多出了个文件夹,他是:Disk1,进入Disk1.然后执行安装: $ ./runInstaller 执行脚本 # /u01/app/oracle/10.2.0/db_1/root.shRunning Oracle 10g root.sh script...The following environment variables are set as:    ORACLE_OWNER= oracle   

CentOS6.6下安装配置Samba教程详解

安装Samba 查看Samba是否已安装 # rpm -qa | grep samba 通过yum直接安装Samba服务端和客户端 #yum -y install samba samba-client 配置Samba Samba的主配置文件为/etc/samba/smb.conf,这里主要达到在win下通过帐号登录linux共享即可,复杂的配置可参考最后的地址.直接在smb.conf后加上一段共享块. [global] workgroup = WORKGROUP            #工作组[

CentOS6.4下编译安装MariaDB数据库的方法

例子1 目前官方最新稳定版是 MariaDB-5.5.35 下载地址:https://downloads.mariadb.org/mariadb/5.5.35/ 在编译之前,首先得安装编译工具和其他一些依赖包:  代码如下 复制代码 yum groupinstall -y "Developmen Tools" yum install -y cmake openssl-devel zlib-devel cd /webapp wget https://downloads.mariadb.o

Win7下安装3DMAX2013图文教程

1.首先下载3Dmax2013中文破解版2.软件下载后,对其解包;完成后会自动弹出安装程序,如果未弹出手动到解包目录中打开;在下图界面中点击"安装"/"在此计算机上安装" 3.在许可协议界面我们选择"我接受"来同意安装 4.在注册界面输入序列号,然后点下一步(安装序列号为:666-69696969,产品密钥:128E1). 5.正在安装中..... 6.安装完成后运行程序(注意,从这步开始需要断开网络,也就是拔掉网线或禁用网卡),然后会自动弹出激

Linode下安装锐速图文教程

这里选的linode的centos5.6 64位的操作系统.安装的是锐速免费的20MB的免费版本.没有账户的先去注册账户把. 安装前的配置 首先登录到linode的官网.然后单击你的镜像(我的centos5.6,内核为:Latest 64 bit (3.17.2-x86_64-linode48)安装不了锐速,所以我要修改内核才可以的,linode是支持修改内核的.   点击完毕后,进入选择内核的地方,然后我们到官方看看支持的内核版本 http://dl.serverspeeder.com/ls.

CentOS6.5下编译安装mysql5.6.19

http://www.cnblogs.com/xiongpq/p/3384681.html