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

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

用OPENCV視覺解數獨

用OPENCV視覺解數獨 2010-06-29 看到增強視覺網站上介紹老外用視覺解SUDOKU(http://www.cvchina.info/2011/05/29/video-sudoku-solver/),覺得應該不難,于是用OPENCV和訓練好的數字分類器,也試著做一個,純屬娛樂 基本思路如下&…

集成ffmpeg/x264:ERROR: libx264 not found的問題

集成ffmpeg/x264:ERROR: libx264 not found的問題--拔劍集成ffmpeg/x264碰到如下問題: ERROR: libx264 not found察看config.log,詳細信息如下:check_lib x264.h x264_encoder_encode -lx264check_header x264.hcheck_cppBEGIN/tmp/ffconf.isuazGlg.c1 …

[ActionScript 3.0] AS3.0 下雨及漣漪效果

幀代碼: stage.frameRate 80;function init(x1:Number,y1:Number) {var mc:MovieClipnew MovieClip();addChild(mc);mc.x x1;mc.y y1;mc.graphics.lineStyle(0.5,0xbbffff,0.6);mc.graphics.drawEllipse(-1,-0.3,2,0.6);mc.addEventListener(Event.ENTER_FRAME,f…

JS Math.round()方法原理

請先測試代碼&#xff1a; 1 <!doctype html>2 <html lang"en">3 4 <head>5 <meta charset"UTF-8" />6 <title>Math.round方法</title>7 <style type"text/css">8 …

一個通用Makefile的編寫

我們在 LinuxLinux Linux是一套免費使用和自由傳播的操作系統&#xff0c;它主要用于基于Intel系列CPU的計算機上。這個系統是由全世界各地的成千上萬的程序員設計和實現的&#xff0c;其目的是建立不受任何商品化軟件的版權制約的、全世界都能自由使用的Unix兼容產品。 環境下…

Cache替換算法:LRU與LFU的區別

LFU&#xff08;Least Frequently Used&#xff09;最近最少使用算法。它是基于“如果一個數據在最近一段時間內使用次數很少&#xff0c;那么在將來一段時間內被使用的可能性也很小”的思路。LRU&#xff08;Least Recently Used&#xff09;. 注意LFU和LRU算法的不同之處&…

001-Ansible-參考http://www.ansible.com.cn/docs/playbooks_intro.html#about-playbooks

1. Patterns 在Ansible中,Patterns 是指我們怎樣確定由哪一臺主機來管理. 意思就是與哪臺主機進行交互. ansible <pattern_goes_here> -m <module_name> -a <arguments>ansible webservers -m service -a "namehttpd staterestarted"同時讓我們提前…

linux下通用Makefile寫法

linux編譯多個源文件的程序比較麻煩&#xff0c;這下就需要通用的Makefile了&#xff0c;編譯的時候執行一下make命令就OK&#xff0c;下面介紹通用makfile的寫法。 假設現在有以下源文件&#xff1a;file1.h file1.c file2.h file2.c mainproc.c&#xff0c;程序的主函數在mai…

客服彈出框

html代碼&#xff1a; <head><meta http-equiv"Content-Type" content"text/html; charsetutf-8" /><title>QQ在線客服jquery特效</title><link rel"stylesheet" type"text/css" href"common/css/lay…

第三次畢業設計任務書

一. 進度計劃 時間 計劃進度 3.24-3.30 嘗試將kdd數據預處理用代碼實現 3.31-4.6 將kdd數據預處理用代碼實現以及與aprior算法的結合 二. 課題需求 2.1 數據預處理的功能和主要方法 在現實中,由于數據的來源、組織、存儲等的多樣性,海量的原始數據中一般都很難避免“臟數據…

電商第一季函數筆記(1)

1、isset (PHP 4, PHP 5, PHP 7) isset — 檢測變量是否設置 說明 bool isset ( mixed $var [, mixed $... ] ) 檢測變量是否設置&#xff0c;并且不是 NULL。 如果已經使用 unset() 釋放了一個變量之后&#xff0c;它將不再是 isset()。若使用 isset() 測試一個被設置成 NULL …

壓縮xvid ffmpeg x264 對比

壓縮xvid ffmpeg x264 對比 Xvid是基于MPEG4協議的編解碼器&#xff0c;x264是基于H.264協議的編碼器&#xff0c;ffmpeg集合了各種音頻&#xff0c;視頻編解碼協議&#xff0c;通過設置參數可以完成基于MPEG4,H.264等協議的編解碼&#xff0c;現在將其對比結果羅列如下&#…

JMS-activMq與spring進行整合

對JMS做了一個簡要介紹之后&#xff0c;接下來就講一下Spring整合JMS的具體過程。JMS只是一個標準&#xff0c;真正在使用它的時候我們需要有它的具體實現&#xff0c;這里我們就使用Apache的activeMQ來作為它的實現。所使用的依賴利用Maven來進行管理&#xff0c;具體依賴如下…

微信消息

微信消息 轉載于:https://www.cnblogs.com/linewman/p/9918298.html

make: 警告:檢測到時鐘錯誤。您的創建可能是不完整的。

我在make的時候也出現了同樣的問題&#xff0c;不過不是什么大問題&#xff0c;這個不影響編譯結果分析原因可能是&#xff1a; 服務器上的文件最后修改時間比當前時鐘要晚解決辦法&#xff1a; 用touch 命令把源程序的時間戳改一下 find . -type f -exec touch {} \;或者touch…

FileReader/FileWriter復制文件

public class Test{ /*FileReader/FileWriter讀寫亂碼&#xff0c;待處理*/ public static void main(String[] args) throws IOException{ FileReader fileReader null; FileWriter fileWriter null; try{ fileReader new FileReader("c:/123/666.doc"); fileWri…

machine ID問題 ( u-boot設置machine id , set mach_type 0x16a )

machine ID問題 machine ID問題跟CPU具體到型號相關&#xff0c;啟動時打印信息如下&#xff1a; Uncompressing Linux...........................................................................done,booting the kernel. Error:unrecoginized/unsupported machine ID(r1…

FFMPEG使用參數詳解

FFMPEG使用參數詳解 目前又開始測MPEG1和MPEG2的解碼&#xff0c;在準備編碼好的測試序列過程中&#xff0c;需要通過編碼器來進行原始視頻序列的編碼操作&#xff0c;以生成我們需要的測試數據。由于IPP example提供的Encoder不支持MPEG1&#xff0c;經過查詢&#xff0c;決定…

模擬支付寶、淘寶登錄1

1、進入支付寶首頁 GET https://auth.alipay.com/login/index.htm HTTP/1.1Accept: */*Accept-Language: zh-CNAccept-Encoding: gzip, deflateUser-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.2; WOW64; Trident/8.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; …

CSS層疊樣式表

HTML主要控制內容 CSS主要控制格式。 樣式表是用來指定樣式信息的句法機制。 之所以將CSS稱為層疊樣式表&#xff0c;是因為它可以在3個層次上進行定義。 內聯樣式表 內聯樣式表位于開始標簽中&#xff0c;其設置只對該元素起作用 文檔樣式表 文檔樣式表位于文檔的頭部區域&…