日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

win7下ffmpeg编译动态链接库整理

發布時間:2023/12/10 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 win7下ffmpeg编译动态链接库整理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.寫在ffmpeg編譯前

關于ffmpeg的編譯過程google一搜,一大堆,ffmpeg編譯真的有那么難么?在我編譯成功后回頭來看,網上的資料過多,反而使自己走了很多的彎路。即便有些樓主親自測試后編譯成功了,由于受機器的環境、ffmpeg版本、以及個人操作的影響,導致在自己編譯的時候不成功。

有些帖子發表的時間已經很久了,其中提到的到的軟件現在也有了很大的更新,就如我后面提到的MinGW,較新的版本直接安裝就可以了,無需手動更新一些文件。我寫這篇文章的時間是2011/08/30。

系統環境:

操作系統:Windows?7?家庭普通版?Service?Pack?1

Ffmpeg版本:ffmpeg-0.6.3,ffmpeg-0.6

開發環境:VS2008

注:

1)?win7下的用戶要特別注意了,之前我在參考:http://www.chinavideo.org/viewthread.php?tid=9129&extra=page%3D1&page=1?

中的帖子編譯ffmpeg-0.6.3時,能夠生成lib文件,但在調用這些lib庫時卻出現了莫名奇妙的問題,而且在我make?install時也出現了permission?deny的錯誤。這想問題應該出在,Msys和MinGW時沒有使用管理員權限安裝。

2)?關于ffmpeg的版本,我在編譯ffmpeg-0.6.3時,能夠生成lib文件,但在編譯ffmpeg-0.6時,卻生成的是.dll.a和.def后綴的文件,關于這個問題,文章后面會有解決方法。

1.1?MinGW安裝以及ffmpeg0.6編譯lib

安裝過程和相關軟件的下載是參照這篇帖子:http://zhaostudy2.blog.163.com/blog/static/13535020520110179271153/

但仍有幾個重要的細節需要補充下:

1)?Win7下的用戶在安裝MinGW時,要選擇“以管理員身份運行”,這樣會避免在編譯ffmpeg-0.6.3時,生成的lib文件不能用的問題。同樣的,在運行Msys時,也要選擇“以管理員身份運行”。

2)?樓主提供的在csdn上提供的ffmpeg0.6我在照他的配置后并不能生成動態庫(lib),在官方網站上下載的ffmpeg0.6還是不能自動生成動態庫(lib),有可能是自帶MakeFile的問題。在該文章的留言中,也有用戶反映了這個問題。

3)?Source?forge上面的那個鏈接頁面已經更改,“Tools”文件夾已經消失,還好樓主在csdn上有備份,不得不佩服樓主的先見之明。

1.1.1?ffmpeg0.6編譯后不能生成lib文件的解決步驟:

以make后的ffmpeg0.6\libavcodec目錄下為例,注意到在該目錄中有一個avcodec-52.def的文件,對于該文件,在VS中是可以直接將def文件轉換成lib文件的!

關于如何轉換,直接參考:

http://blog.163.com/zhucongdzkd@126/blog/static/1399971932010814111127686/

里面也提到關于“沒有找到mspdb80.dll,因此這個應用程序未能啟動。重新安裝應用程序可能會修復此問題?!钡慕鉀Q方案。

我的命令行參數如下圖所示:


生成的lib可用!問題解決!

2.最終的編譯文檔

為防止前面引用的文章無法訪問,我再將我的編譯過程整理如下:

2.1MinGW下載及安裝

1)?MinGW下載地址:http://download.csdn.net/source/2988856

2)?MinGW安裝:win7下選擇“以管理員身份運行”運行exe文件,后面步驟使用默認選項安裝即可

2.2下載及編譯ffmpeg0.6.3動態鏈接庫

Ffmpeg0.6.3是可以直接編譯生成動態鏈接庫及.lib文件的。

Ffmpeg0.6.3官方下載地址:http://ffmpeg.org/releases/ffmpeg-0.6.3.tar.bz2

以管理員身份運行”運行MinGW32\MSYS\msys.bat文件

執行以下3條命令,

[plain] view plaincopy
  • <span?style="font-family:'Microsoft?YaHei';font-size:13px;">cd?/E/ffmpeg0.6.3??
  • ./configure?--enable-shared?--disable-static?--enable-memalign-hack???
  • make</span>??

  • 漫長的等待...


    執行完以上3條命令后在E:\ffmpeg0.6.3\libavcodec下就可以找到avcodec-52.lib和avcodec-52.dll,其他幾個lib開頭的文件夾下也有相應的.lib文件和.dll文件,至此,ffmpeg編譯動態鏈接庫成功完成。

    2.3下載及編譯ffmpeg0.6動態鏈接庫

    Ffmpeg0.6官方下載地址:http://ffmpeg.org/releases/ffmpeg-0.6.tar.bz2

    前面步驟與編譯ffmpeg0.6時一致,但只生成了dll文件和def文件,沒有生成lib文件。

    后面就要使用VS2008中提供的lib.exe工具將def文件轉換成lib文件。

    1)?在C:\Program?Files\Microsoft?Visual?Studio?9.0\VC\bin下雙擊lib.exe文件。若彈出“沒有找到mspdb80.dll,因此這個應用程序未能啟動。重新安裝應用程序可能會修復此問題。”

    將C:\Program?Files\Microsoft?Visual?Studio?9.0\Common7\IDE\mspdb80.dll復制到C:\Program?Files\Microsoft?Visual?Studio?9.0\VC\bin下,再次雙擊lib.exe文件,lib.exe就可以正常啟動了。


    注意:為避免今后使用VS遇到問題,在成功生成lib文件后,要將mspdb80.dll從C:\Program?Files\Microsoft?Visual?Studio?9.0\VC\bin目錄下刪除。

    2)?假設avcodec-52.def文件位于C:\test目錄下,執行如下命令:

    lib?/out:c:\test\avcodec.lib?/machine:IX86?/def:C:\test\avcodec-52.def

    即可生成lib文件


    至此,所有問題圓滿解決

    重要補充!!!

    與我的解決方法很相似,但更加詳細,還提到了無法生成.def文件時,修改config.mak文件的方法。http://blog.csdn.net/xiajia/article/details/6533182

    總結

    以上是生活随笔為你收集整理的win7下ffmpeg编译动态链接库整理的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。