當前位置:首頁 » 編程軟體 » ffmpegffplay編譯

ffmpegffplay編譯

發布時間: 2022-03-12 14:46:37

❶ 如何用vc6編譯ffmpeg,並單步調試

目前官方ffmpeg的最新版本為0.9, 我們就以此為例:

1. 下載最新git版本的源代碼(http://ffmpeg.zeranoe.com/builds/, 本例下載的是2011-12-12版本)
2. 放到MSYS環境里配置,生成config.h文件。mingw gcc是能順利編譯通過整個項目的,並生成最新版的ffmpeg。
3. 建立vc6工程,把相關代碼都加入到工程中。由於在vc生成的obj都在一個目錄下,所以需要修改文件名,讓其不重名。
4. 安裝intel compiler 11編譯器,單獨提取其icl.exe及相關include目錄,替換掉vc6自帶的cl.exe, 在工程設置里加上/Qstd=c99,用於支持C99語法。
5. 安裝intel compiler 10編譯器,單獨提取lib目錄,因為此版本調試庫的結構能完美支持vc6的調試信息。
6. 在vc6的options里設置include/exe/lib查找目錄,指向intel編譯器。
7. 開始修改代碼,添加C99的相關linux頭文件, 用於支持vc6, (unistd.h, stdint.h, inttypes.h, getopt.h)
8. 添加C99和linux的相關實現代碼,ffmpeg需要用到: getopt_long, strtoll, gettimeofday, atoll, usleep等
9. 修改windows的相關兼容代碼,GetWindowLongPtr -> GetWindowLong, GWLP_USERDATA
10. 去除硬體加速libavcodec代碼,和依賴庫代碼。選擇所需要的模塊,修改相關的allcodec.c, alldevices.c, allfilters.c, allformats.c
11. 加上鏈接庫,sdl.lib, winmm.lib, dxguid.lib, wsock32.lib
12. 在os_support.c里,把<winsock2.h>移動到文件最前面。
13. 如果是ffmpeg, 已經能順利編譯了。如果是ffplay,還需要編譯靜態sdl, 並鏈接。
14. 等等,音頻運行不正確?有雪花聲?因為還需要替換所有文件里的<math.h>為<mathimf.h>, 默認的rint等數學函數和gcc不兼容。
15. ok, 大功告成,純C版本完美運行。
16. 由於ffmpeg0.9在c文件里,添加了一些intel compiler不支持的mmx語法,所以編譯mmx/sse加速版本時,一小部分.c文件需要依賴mingw gcc編譯成.o文件,再通過vc6的lib.exe工具轉換成lib,讓vc6鏈接上。當然還要加上yasm編譯的很多匯編obj.

❷ linux 編譯 ffmpeg 怎麼沒有ffplay

在cygwin軟體包中安裝 ar 這個軟體包。 或者下載ar.exe放在c:/windows/ar.exe 中就能繼續編譯了

❸ linux下怎麼變異ffmpeg

1、下載ffmpeg。

wget http://down1.chinaunix.net/distfiles/ffmpeg-0.4.9-p20051120.tar.bz2

我是在這個網址上下載ffmpeg-0.4.9-p20051120.tar.bz2,看網上有人用的是svn下載,但是我的機子中沒有svn客戶端,然後就在網上搜索,下載了這個版本。如果利用svn可以下載ffmpeg最新的版本。

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

2、解壓

tar xvfj ffmpeg-0.4.9-p20051120.tar.bz2

得到解壓後的目錄是ffmpeg-0.4.9-p20051120,名字太長,利用mv命令改為ffmpeg

mv ffmpeg-0.4.9-p20051120.tar.bz2 ffmpeg

3、配置

./configure --enable-shared --prefix=/usr/local/ffmpeg

其中:--enable-shared 是允許其編譯產生動態庫,在以後的編程中要用到這個幾個動態庫。--prefix設置的安裝目錄。

4、編譯並安裝

make
make install

5、安裝之後在/usr/local/ffmpeg會看到有三個目錄

lib 動態鏈接庫位置
include 編程要用到頭文件
bin 執行文件所在的目錄

6、為了以後方便編程,我們把lib中的三個鏈接庫libavcodec.so libavformat.so libavutil.so復制到/usr/lib下。把include目錄下的ffmpeg目錄復制到/usr/include下。

這里我這樣復制了還是不對,-lavcodec -lavutil -lavformat的時候,提示找不到庫
然後我把 /usr/local/ffmpeg/lib 所有文件復制到 /usr/local/lib才可以的
執行bin目錄下的ffplay,可以去播放音頻或者視頻文件。例如播放1.mp3

./ffplay 1.mp3

另外,bin目錄下還有兩個文件:ffmpeg和ffserver

ffmpeg是一個很好的視頻和音頻的格式轉化工具。網上有很多它的說明文檔。如果不想生成ffserver,只要在./configure的時候加--disable-ffserver即可。

7、編程

如果寫了一個test.c文件,要包含ffmpeg的頭文件,可以這樣寫:

#include

編譯:gcc -o test test.c -lavformat -lavcodec -lavtuil (前提是有第6步的操作)

如果沒有第6部的操作,則編譯的時候如下:

gcc -o test test.c -I/usr/local/ffmpeg/include -L/usr/local/ffmpeg/lib -lavformat -lavcodec -lavtuil

編譯成功之後,執行的時候還是需要動態庫的支持,還是要把那三個動態庫文件復制到/usr/lib或者/lib中,不然執行的時候會說找不到動態庫鏈接。還有一個方法可以解決這個問題,就是把/usr/local/ffmpeg/lib這個目錄加入到/etc/ld.so.config中,然後執行 ldconfig,或者重啟電腦,這樣執行的時候系統就可以從/usr/local/ffmpeg/lib這個目錄下去找這三個動態庫文件了。

以上的方式是採用動態庫編譯ffmpeg的,如果在configure的時候不加上--enable-shared的,則採用靜態鏈接的方式,不會生成那三個動態庫。同時生成的ffplay、ffmpeg的執行文件也比較的大,因為他們不需要動態庫的支持,就可以執行。但是不利於再次開發,所以我採用動態鏈接的方式。configure中還有很多的選項,可以通過./configure --help查看,也可以直接查看configure文件。這在配置的時候很重要。

❹ 兄弟們有沒有在windows下編譯ffmpeg中ffplay時

在cygwin軟體包中安裝 ar 這個軟體包。
或者下載ar.exe放在c:/windows/ar.exe 中就能繼續編譯了

❺ 編譯 ffmpge libpostproc庫沒有

ffmpeg是音視頻的分離,轉換,編碼解碼及流媒體的完全解決方案,其中最重要的就是libavcodec庫。它被mplayer或者xine使用作為解碼器。還有,國內比較流行的播放器影音風暴或MyMPC的後端ffdshow也是使用ffmpeg的解碼庫的。

ffmpeg軟體包經編譯過後將生成三個可執行文件,ffmpeg,ffserver,ffplay。其中ffmpeg用於對媒體文件進行處理,ffserver是一個http的流媒體伺服器,ffplay是一個基於SDL的簡單播放器。

ffmpeg中有五個庫文件,libavcodec,libavformat,libavutil,libswscale,libpostproc,其中庫libavcodec,libavformat用於對媒體文件進行處理,如格式的轉換;libavutil是一個通用的小型函數庫,該庫中實現了CRC校驗碼的產生,128位整數數學,最大公約數,整數開方,整數取對數,內存分配,大端小端格式的轉換等功能;libswscale,libpostproc暫時不知道何用。

❻ 如何在MAC下編譯出32位的ffmpeg庫

你的系統應該是64位的,但是如果你的XCode也是64位的就有可能出錯,XCode3.2以後的版本都是64位的,想編譯成32位的,試試用XCode3.0

❼ 如何讓FFmpeg在iOS上完美編譯

編譯mac上基於ffmepg的軟體需要先下載兩個程序:iFrameExractor和ffmpeg編譯步驟:1、在終端下:cd/iFrameExtractor/ffmpeg建議開始就執行sudo-s(獲取許可權命令)2、在終端下輸入./configure--prefix=/iFrameExtractor/ffmpeg--libdir=iFrameExtractor/ffmpeg/lib--enable-gpl--enable-static--disable-shared--enable-swscale--enable-zlib--enable-bzlib--disable-ffmpeg--disable-ffplay--disable-ffserver--enable-pthreads3、執行make這里會有一堆的編譯情況。註:最好先升級CommandLineTools,避免編譯錯誤4、執行makeinstall。(執行完後到iFrameExtractor/ffmpeg/lib文件上去看看)出現個.a文件5、用xcode打開iFrameExractor工程,確認HeaderSearchPaths里有:"$(SRCROOT)/ffmpeg"路徑。$(SRCROOT)表示工程路徑。同時可以看到iFrameExractor工程下ffmpeg文件下的.a文件都不是紅色的了。6、真機上編譯(模擬器上i386,真機上是arm的,真機還分arm6和arm7以下是針對arm7的/configure--disable-doc--disable-ffmpeg--disable-ffplay--disable-ffserver--enable-cross-compile--arch=arm--target-os=darwin--cc=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc--as='gas-preprocessor/gas-preprocessor.pl/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc'--sysroot=/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk--cpu=cortex-a8--extra-cflags='-archarmv7'--extra-ldflags='-archarmv7-isysroot/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk'--enable-pic7、執行make和makeinstall就有上面的幾個.a文件,至此編譯結束。

熱點內容
ibatissqlnotin 發布:2025-01-22 14:42:25 瀏覽:326
java電子書軟體下載 發布:2025-01-22 14:41:41 瀏覽:729
tomcat遠程訪問 發布:2025-01-22 14:41:33 瀏覽:960
a演算法解決八數碼問題 發布:2025-01-22 14:32:39 瀏覽:273
python編譯exe 發布:2025-01-22 14:31:11 瀏覽:451
現在密碼箱多少錢 發布:2025-01-22 14:30:26 瀏覽:970
aspnet訪問access 發布:2025-01-22 14:14:15 瀏覽:924
鴻蒙系統和安卓的哪個耗電 發布:2025-01-22 14:12:46 瀏覽:577
上海大眾壓縮機 發布:2025-01-22 14:02:31 瀏覽:48
讀取excel的sql 發布:2025-01-22 13:59:58 瀏覽:865