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.pswp.cn/news/453950.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/453950.shtml
英文地址,請注明出處:http://en.pswp.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…