在windows下編譯FFMPEG-最新2009版本

轉】在windows下編譯FFMPEG-最新2009版本
2010-11-17 18:50
大家可以看到,此篇之前有很多個版本的“在windows下編譯FFMPEG”,那些都是我在網上搜羅來的,在看了無數篇那些過期的、有借鑒價值的文章后,我終于成功在windows下編譯出了FFMPEG。

?????? 不得不說,前人的經驗還是很重要的,但是隨著時間的推移,很多東西都改變了,所以,現在把最新的編譯方法記下,以便后人借鑒。

?

1.首先還是要先安裝MSYS(注意,要先安裝MSYS,后安裝MINGW)

http://sourceforge.net/projects/mingw/files/這里下載一個最新版的exe文件就可以了,以前的可能要自己去下載一些亂七八糟的不知道是什么的,現在只需要到 MSYS base System 文件夾下下載一個最新的exe安裝文件,這個是minimum的安裝文件。

我下載的是MSYS-1.0.11.exe,我安裝在D盤。

?

2.安裝MINGW

(這里普及一下常識,其實MINGW里面包含有GCC的編譯器,但是我只安裝了MSYS,沒有安裝MINGW的時候,編譯的時候就會提示出錯,因為沒有GCC編譯器,所以,必須安裝MINGW就是這個原因)

網址與步驟1的一樣,然后到Automated MinGW Installer這個文件夾下面,下載最新的MINGW安裝文件,這個也是最小安裝文件。

PS:我不得不感嘆,隨著科技的發展,真是越來越好了,以前要自己一個一個下,現在是人家都全部打包好,讓你直接安裝就OK了。

注意:安裝MINGW的時候,要將其安裝在MSYS的MINGW目錄下。例如:當時我的安裝目錄是D:/msys,然后,進去的話,可以發現,里面有一個MINGW文件夾,但是里面是空的。在安裝MINGW的時候,將其指向該目錄就可以了,我的是D:/msys/1.0/mingw。

?

3. 整合MSYS和MINGW(此步驟借鑒前人,但稍有修改)

(1)修改 msys.bat:
?用文本編輯器打開D:/msys/1.0/msys.bat,由于打算要用MSVC++鏈接到FFmpeg的庫,
?所以需要有.lib文件才行,這些.lib文件可以使用微軟的工具中的lib命令產生,
?所以要預先安裝VC++。
?把下面一行加到msys.bat的最前面,把路徑替換成機器上vcvars32.bat實際存在的路徑,
?比如我的在“D:/Program Files/Microsoft Visual Studio 8/VC/bin”,
?于是就添加:

call "D:/Program Files/Microsoft Visual Studio 8/VC/bin/vcvars32.bat"
(2)系統整合:
將D:/msys/1.0/etc/文件夾下的fstab.sample文件改名,改成fstab,然后,用文本編輯器打開fstab.
把這行:C:/mingw /mingw?改為:d:/msys/1.0/mingw /mingw32
在這個步驟中,大家要注意,并不是每個人的都是d:/msys/1.0/mingw /mingw32,也有可能是d:/msys/1.0/mingw /mingw,這個與版本有關,大家注意看自己的就OK了。
完成以上步驟,MSys+MinGW系統就配置完成了。
4.編譯(以下均摘自本博客中的版本三,不得不說版本三真的是挺好的了,編譯這個不僅有純FFMPEG的編譯,還有libavcodec的dll動態鏈接庫和libavcodec的lib靜態庫的編譯,太牛了~!!!
首先通過MSys安裝目錄下的msys.bat啟動MSys,這時會出現一個命令行窗口,
它是一個運行著 bash 的rxvt程序。
這是一個在Windows上運行并且就像是在使用一個真正的Linux shell。
不過使用這個shell時需要注意:
1. 目錄名使用左斜杠來分割,而非Windows所使用的右斜杠;
(比如"D:/ffmpeg"而非D:/ffmpeg")。

2. 盤符(例如"C:/")可以從根目錄處訪問(像這樣"/C/");
3. 文件名或目錄名中如果帶有空格,必須用雙引號括起(例如"/C/Program Files")。
  下面切換到存放FFmpeg源代碼的目錄,方法是輸入:cd /D/ffmpeg
  接下來要配置FFmpeg,這里先輸入:./configure --enable-memalign-hack
  --enable-memalign-hack選項是FFmpeg在Windows上編譯成功所必須指定的,
  待配置完成后,將回到命令提示符。
  如果沒有錯誤的話,就可以"make"具有基本功能的FFmpeg了,在提示符后輸入:make
  編譯的過程將持續很長時間。如果一切正常,結束后將返回提示符。
  這時程序已經編譯好了,在存放FFmpeg源代碼的目錄下可以找到ffmpeg.exe這個文件。
  如果希望把FFmpeg安裝到系統中,可以執行安裝步驟:"make install",
  這將會復制所有生成的重要文件到MSys的local文件夾下。

如果希望使用FFmpeg包含的libavcodec庫開發多媒體文件處理程序,還需要編譯libavcodec的dll動態鏈接庫,編譯過程和上述過程稍有差別,如下所述:
 首先切換到FFmpeg的源代碼目錄,
 在開始編譯前先使用"make distclean"清理上一次留下的中間文件(慎用!!之前的作者是說要用這個,我用完之后,電腦就崩潰了,重啟才OK,所以,大家慎用啊~!)
 然后向configure腳本多傳遞兩個參數:
 ./configure --enable-shared --disable-static --enable-memalign-hack
 如果沒有錯誤的話,在提示符后輸入:make

libavcodec的lib靜態庫,編譯過程和上述過程稍有差別,如下所述:
./configure --enable-static?--disable-shared?--enable-memalign-hack
如果沒有錯誤的話,在提示符后輸入:make
     
在FFmpeg目錄下有三個子目錄名字分別為:libavutil、libavcodec和libavformat;
如果在前述步驟中成功生成了動/靜態鏈接庫,例如我生成的是avcodec-51.lib、
avformat-51.lib 和 avutil-49.lib,MSVC++可以從這些文件中知道dll的導出函數。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/453946.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/453946.shtml
英文地址,請注明出處:http://en.pswp.cn/news/453946.shtml

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

相關文章

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…

域添加另一臺機器_巨杉Tech | SequoiaDB數據域概念解讀與實踐

近年來&#xff0c;銀行各項業務發展迅猛&#xff0c;客戶數目不斷增加&#xff0c;后臺服務系統壓力也越來越大&#xff0c;系統的各項硬件資源也變得非常緊張。因此&#xff0c;在技術風險可控的基礎上&#xff0c;希望引入大數據技術&#xff0c;利用大數據技術優化現有IT系…

Citrix XenServer 池要求

池要求 資源池是一臺或多臺服務器的同類或異類聚合&#xff0c;每個池最多包含 16 臺服務器。創建池或將服務器加入現有池前&#xff0c;應確保池中的所有服務器滿足下面介紹的要求。 硬件要求 XenServer 資源池中的所有服務器必須具有廣泛兼容的 CPU&#xff0c;也就是說&…

推薦一個接口文檔工具

ShowDoc 轉載于:https://www.cnblogs.com/LW-baiyun/p/8003975.html

自動轉換flv文件

在線轉化.誰有 把其他的視頻文件格式的視頻,經過上傳自動轉化FLV格式的一種插件.提供編程接口.給我一份.類似新浪網播客上傳視頻的一樣. (還有上傳是的哪個效果,進度條如何作的?)或者給我個參考地址什 ... 環境&#xff1a;redhat as41。首先獲取ffmpeg很多人找不到怎么下載,其…