Linphone编译【转载】

Linphone依赖太多的库,以致于稍有疏失,就会在编译,运行出错,都是由于依赖库安装的问题。

1 基础知识
1.1 动态库的连接
很多人安装完库后,configure依然报告这个库没有。这是对linux动态库知识匮乏造成,也就是对pkg-config工具使用的问题。
例如:当我们执行./configure操作时,动态库的检查是通过监视每个安装库产生的.pc文件。
其步骤为:在/etc/ld.so.conf.d /usr/lib/pkconfig/ /usr/local/lib/pkconfig/ ...搜索.pc文件,获取版本信息。搜索的目录是通过$PKG_CONFIG_PATH来确定的。有的人并没有把/usr/local/lib 作为默认动态库路径,造成编译时出错,简单的办法就是将所有依赖库,都安装在 /usr/lib 下,即 ./configure --prefix=/usr。

另一个重要点是,在运行期,还要确认动态库的搜索路径。我们可以用pkg-config添加,删除系统中动态库的搜索路径, 在运行程序前。 通过 ldd 查看应用程序的依赖库,ldd会告诉你动态库的位置,哪些没有安装。

ps:把linphone 装载 /usr下会解决很多问题,原因自己体会吧。

2 关于linphone需要库
2.1 操作界面
linphone 有两种操作方式,终端和图形,分别对应于linphonec和linphone。
linphonec 依赖readline库实现,它提供了一套Console的SDK,可以轻松实现command,history的功能。在源码中对应console目录
linphone 依赖gtk+实现 ,所以要确定gtk+库的安装。

2.2 Codec
linphone 自己做了一套mediastream库,在源编译时,安装时会自动装进系统。其中gsm ,G.711, PCM a/u,都是在源码中提供的,视频theroa库,需要独立安装,还有h263 MP4V ...都是用ffmpeg库的,所以ffmpeg安装是必需的。

2.3 ffmpeg
ffmpeg是一套录制,转换各种音视频各式的工具集,也提供SDK的codec接口。主要包括ffmpeg ffplay ffserver libavcodec libavformat
其中很多编解码库依赖于第三方,比如xVid lampMP3 等等。

ffmpeg的编译大全
ffmpeg的编译大全

最近互联网视频共享的网站很火,公司也想搞类似的网站,初步是用fms+ffmpeg形式

fms负责在线录制,播放,ffmpeg则在后台处理上传的资源转换成一定的格式。

为了让ffmpeg支持的格式尽量多,所以特把我的编译笔记分享一下

环境:redhat as4

1。首先获取ffmpeg

很多人找不到怎么下载,其实之前ffmpeg可以通过cvs下载,不过最近他已经换成了更加强大的svn

如何使用SVN我这里不再介绍,网上还有大量的安装和使用的文章可以借鉴,这里简单罗列几个SVN辅助的软件:

SubVersion,从 http://subversion.tigris.org/ 下载,支持linux,我们这里就装这个

TortoiseSVN,从 http://tortoisesvn.tigris.org/ 下载,是很不错的SVN客户端程序,为windows外壳程序集成到windows资源管理器和文件管理系统的Subversion客户端,用起来很方便,commit动作变得就像Winrar右键压缩一样方便。


ok,那我们先装subversion,记住最好之前装过apr和apr-util,在apache.org网站能下到

wget http://subversion.tigris.org/downloads/subversion-1.3.2.tar.gz
tar zvxf subversion-1.3.2.tar.gz
cd subversion-1.3.2
./configure --with-apr=/usr/local/apr-httpd --with-apr-util=/usr/local/apr-util-httpd/
make
make install


到此,我们就可以通过svn命令获取最新的ffmpeg了

svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg

你会发现在你所在的目录,自动出现一个ffmpeg的目录,就是你下载的源代码。


我们还不能这么快编译ffmpeg,应该如果要让ffmpeg支持更多格式的转换,还需做一些前期工作


2.支持mp3,linux当然是lame,下载解压

cd lame-3.96.1
./configure --enable-shared --prefix=/usr
这里推荐尽量装在/usr下,默认是装在/usr/local下。这样ffmpeg编译都能顺利的找到库文件


3.支持Ogg Vorbis:
as4自带相应的rpm包,你可以安装一下如下rpm包
libvorbis, libvorbis-devel,libogg, libogg-devel


4.支持xvid x264,现在最流行的两种高质量的压缩格式
xvid的编译安装
wget http://downloads.xvid.org/downloads/xvidcore-1.1.0.tar.gz
tar zvxf xvidcore-1.1.0.tar.gz
./configure --prefix=/usr
make
make install

x264的获取同样是采用svn方式,看来svn取代cvs不远了
svn co svn://svn.videolan.org/x264/trunk x264
cd x264
./configure --prefix=/usr --enable-shared
make
make install


5.AC3和dts编码的支持
as4系统似乎已经支持ac3编码,编译的时候只要加--enable-a52 --enable-gpl参数就行

libdts编译参数
./configure --prefix=/usr
make
make install


6.mpg4 aac格式支持,由于服务器还针对手机用户服务,所以,类似aac,mpg4铃声格式的支持,我们也得做。这里我们安装faad2和faac就行
下载请到http://www.audiocoding.com/modules/mydownloads/

FAAD2的编译
cd faad2
autoreconf -vif
./configure --prefix=/usr --with-mp4v2 --enable-shared
make
make install

faac的编译
cd faac
chmod +x bootstrap
./bootstrap
./configure --prefix=/usr --with-mp4v2 --enable-shared
make
make install


7.支持3gp格式,这也是现在好多手机支持的格式,因为手机用户是我们的主要用户,所以也得支持编译

编译的时候加上--enable-amr_nb --enable-amr_wb参数就行,根据编译系统的提示,所以我们得下载一

些编译3gp所需得文件。

wget http://www.3gpp.org/ftp/Specs/archive/26_series/26.204/26204-510.zip
解压以后把里面的文件都拷贝到libavcodec/amrwb_float

wget http://www.3gpp.org/ftp/Specs/archive/26_series/26.104/26104-510.zip
解压以后把里面的文件都拷贝到libavcodec/amr_float


好了,基本ffmpeg支持的格式,我们基本都做好前期准备了,下面是ffmpeg的编译


./configure --prefix=/usr --enable-gpl --enable-shared --enable-mp3lame --enable-amr_nb --enable-amr_wb --enable-amr_if2 --enable-libogg --enable-vorbis --enable-xvid --enable-a52 --enable-a52bin --enable-faadbin --enable-dts --enable-pp --enable-faad --enable-faac --enable-x264 --enable-pthreads --disable-ffserver --disable-ffplay
make
make install

补充1:
关于3gp的编译,如果大家要编译--enable-amr_nb-fixed,那就不能跟--enable-amr_nb同时编译,我不大清楚这两者到底有什么区别,似乎fixed是修正版,管他呢,编译的方法:
wget http://www.3gpp.org/ftp/Specs/archive/26_series/26.073/26073-510.zip
解压以后把里面的文件都拷贝到libavcodec/amr目录下

修改libavcodec/amr/makefile 找到CFLAGS = -Wall -pedantic-errors -I. $(CFLAGS_$(MODE)) -D$(VAD) 换成CFLAGS = -Wall -I. $(CFLAGS_$(MODE)) -D$(VAD) -DMMS_IO

整体编译参数就是
./configure --prefix=/usr --enable-gpl --enable-shared --enable-mp3lame --enable-amr_nb-fixed --enable-amr_wb --enable-amr_if2 --enable-libogg --enable-vorbis --enable-xvid --enable-a52 --enable-a52bin --enable-dts --enable-pp --enable-faad --enable-faadbin --enable-faac --enable-x264 --enable-pthreads --disable-ffserver --disable-ffplay
make
make install

补充2:
有朋友说在当在cpu是x86的情况下,不能编译过去,我这里没发生过这情况,如果你真编译不过去,可以试着加上cpu=cpu

ok,一个强大的ffmpeg编译好了,不过目前管方的ffmpeg还不支持wma9和rmvb,不过网上有很多解决方法,大家去自己找找。

文章出处:http://www.diybl.com/course/3_program/gcs/2008617/126097.html


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/453950.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python助教的面试题_python面试题----持续更新中

为什么学习Python?通过什么途径学习的Python?Python和Java、PHP、C、C#、C等其他语言的对比?python 解释型语言,语法简洁优雅。C C 编译型语言,先编译后运行,偏底层。简述解释型和编译型编程语言&#xff1…

python3模块: requests

Python标准库中提供了:urllib等模块以供Http请求,但是,它的 API 太渣了。它是为另一个时代、另一个互联网所创建的。它需要巨量的工作,甚至包括各种方法覆盖,来完成最简单的任务。 发送GET请求 import urllib.requestf…

SUSE12系统安装及LVM设置详解

SUSE12自定义安装跟以往版本差不多,只是调整了一些功能安装顺序,例如网络设置放到很靠前,SUSE11的时候几乎是在后半部分,自定义分区也调整到网络设置之后,入口设置也隐秘,如果是熟悉suse11安装,…

在windows下编译FFMPEG-最新2009版本

转】在windows下编译FFMPEG-最新2009版本2010-11-17 18:50大家可以看到,此篇之前有很多个版本的“在windows下编译FFMPEG”,那些都是我在网上搜罗来的,在看了无数篇那些过期的、有借鉴价值的文章后,我终于成功在windows下编译出了…

CentOS7 安装nginx

1、官网下载安装包 官网:http://nginx.org/en/download.html 选择适合Linux的版本,这里选择最新的版本,下载到本地后上传到服务器或者centos下直接wget命令下载。 切换到/usr/local目录,下载软件包 # cd /usr/local # wget htt…

dvwa如何打开_DVWA详细 安装

Wamp就是Windows Apache Mysql PHP集成安装环境,即在window下的apache、php和mysql的服务器软件。PHP扩展、Apache模块,开启/关闭鼠标点点就搞定,再也不用亲自去修改配置文件了,WAMP它会去做。再也不用到处询问php的安装问题了&am…

CentOS7安装OpenFire

下载openfire wget http://download.igniterealtime.org/openfire/openfire-3.9.3-1.i386.rpm安装openfire yum install -y /home/openfire-3.9.3-1.i386.rpm安装运行库 yum install -y glibc.i686添加开启启动 chkconfig openfire on启动openfire服务 systemctlstart openfire…

CentOS 安装 php

大致步骤:下载–解压–编译–安装–配置 php官网: https://www.php.net/releases/ php5.6连接地址 http://hk1.php.net/get/php-5.6.36.tar.gz/from/this/mirror http://hk2.php.net/get/php-5.6.36.tar.gz/from/this/mirror 1.安装php 所依赖的软件 yu…

怎么利用ffmpeg和AviSynth给在windows下面为flv文件加水印

之前一直在找怎么为flv文件加上自己的水印,ffmpeg和vhook是在linux下面支持.在windows下面不支持.所以我就选择用ffmpeg和AviSynth为flv文件加水印.详细步骤如下: 1 首先当然下载ffmpeg和AviSynth了.具体的地址自己google一下就能找到很多.这里就不再详细介绍了. 一般情况ffm…

【Hibernate框架开发之九】Hibernate 性能优化笔记!(遍历、一级/二级/查询/缓存/乐观悲观锁等优化算法)...

1. 循环分页或者循环进行部分读取处理数据的时候,使用 session.clear() ; 2. 对应1N(N1)问题使用如下解决方式: 1): 使用createCriteria进行查询(join fetch) 2):HQL -> joi…

vscode中安装webpack_VSCode下手动构建webpack项目(示例代码)

1.执行npm install nrm -g,安装nrm,此模块主要用于切换npm镜像源,简化手动配置步骤2.执行 nrm ls,可以看到npm源地址列表,当前使用的是默认源,npm https://registry.npmjs.org/3.执行 nrm use taobao&#…

Python html 代码转成 word(docx)

安装 sudo apt install pandoc pip3 install pypandoc示例代码 import pypandochtml """ <h3>This is a title</h3> <p><img src"http://placehold.it/150x150" alt"I go below the image as a caption"></p…

最新ffmpeg编译和用eclipse进行源码调试

最近由于项目需要&#xff0c;必须修改ffmpeg的源码进行修改才能满足项目的需求&#xff0c;但以前我从来没有自己去编译和使用ffmpeg的源代码&#xff0c;一直都是用别人编译好了的sdk&#xff0c;再加上习惯了vs方便的编译环境&#xff0c;要在linux下对如此多的源代码进行编…

Django补充知识点——用户管理

内容概要 1、Form表单2、Ajax3、布局&#xff0c;Django母板4、序列化5、Ajax相关6、分页7、XSS攻击8、CSRF9、CBV、FBV 10、类中用装饰器的两种方法 11、上传文件 12、数据库正向查询、反向查询、多对多查询 13、jQuery对象和DOM对象可以互相转换 14、cookie和session 用户管理…

easypoi导出excel 效率_Spring Boot 入门(十二):报表导出,对比poi、jxl和esayExcel的效率...

关于poi、jxl和esayExcel的介绍自行百度。jxl最多支持03版excel&#xff0c;所以单个sheet页面最多只能导出65536条数据。我直接将excel导入到浏览器并打开&#xff0c;以下统计导出时长指将数据从数据库查询&#xff0c;并写入到excel的过程。不包括打开excel所消耗的时间为了…

Python html 代码转成图片、PDF

一、下载 1、python的imgkit、pdfkit库 pip install imgkit pip install pdfkit 2、wkhtmltopdf工具包 下载地址&#xff1a;https://wkhtmltopdf.org/downloads.html 下载之后安装&#xff0c;安装完成会生成两个程序&#xff0c;分别用来转图片和pdf&#xff1a; 二、使…

SpringEL expression:

2019独角兽企业重金招聘Python工程师标准>>> 这个异常有下面几种情况 1、你写的 EL 表达式有语法错误。 2、再者就是你取得变量是多级的话比如 student.address.prevince 属性model 关联有问题。 3、还有就是你取得值为空&#xff08;null&#xff09; 比如 Thymel…

利用qt和ffmpeg软件来制作视频裁剪工具

0 什么是ffmpeg? Libav&#xff08;旧称&#xff1a;FFmpeg&#xff09;是一个自由软件&#xff0c;可以运行音频和视频多种格式的录影、转档、流功能[1]&#xff0c;包含了libavcodec ─这是一个用于多个专案中音频和视频的解码器库&#xff0c;以及 libavformat ——一个音频…

fresco使用中圆角出现了黑边

其实并不是出现了黑边&#xff0c;而是图片上有颜色渗出 如何修改 在xml加入 fresco:roundWithOverlayColor "color/transparent" //就是把圆角覆盖图改为透明色 转载于:https://www.cnblogs.com/vete-l/p/7998122.html

Python 第三方库之 docxtpl (处理word文档)

项目官方文档 项目官方git docxtpl 软件包使用两个主要软件包&#xff1a; python docx&#xff0c;用于读取、写入和创建子文档jinja2用于管理插入到模板docx中的标记。jinja官网, jinja中文网站 简单示例 from docxtpl import DocxTemplatetpl DocxTemplate(test.docx)con…