我需要爲Mac構建ffmpeg,以便在Java應用程序中將MOV轉換爲FLV。我製作並安裝了LAME,然後安裝了FFMPEG,但我很困惑我應該抓住哪些文件以包含在Java應用程序中。什麼是二進制文件?我從ffmpegX的源文件中獲得的以前版本的大小爲10MB,但是位於/ usr/local/bin中的文件僅爲0.1mb。這是正確的文件,還是我需要包括什麼?構建二進制文件(用於ffmpeg)在哪裏?
我對於任何需要鍵入終端的東西都不是很瞭解,所以請原諒缺乏技術術語!
我需要爲Mac構建ffmpeg,以便在Java應用程序中將MOV轉換爲FLV。我製作並安裝了LAME,然後安裝了FFMPEG,但我很困惑我應該抓住哪些文件以包含在Java應用程序中。什麼是二進制文件?我從ffmpegX的源文件中獲得的以前版本的大小爲10MB,但是位於/ usr/local/bin中的文件僅爲0.1mb。這是正確的文件,還是我需要包括什麼?構建二進制文件(用於ffmpeg)在哪裏?
我對於任何需要鍵入終端的東西都不是很瞭解,所以請原諒缺乏技術術語!
我不是到目前爲止的Mac專家,但我有一些提示。如果使用動態鏈接構建庫,而另一個靜態鏈接可能會解釋大小差異。
至於位置,你使用了什麼? MacPorts,Fink或來源?如果你從源代碼建立取決於你使用什麼:) MacPorts和芬克有他們的具體位置的二進制文件(我不記得了,但文件應該有信息,否則大G有它;)
簡短的回答:/ usr/local/bin中的文件不是真正的二進制文件,就是真正的二進制文件的軟鏈接。如果您運行ls -l /usr/local/bin
,則任何鏈接都將顯示帶有箭頭的目標位置。但pszilard可能是正確的,該文件可能是實際的二進制文件,它與庫代碼動態鏈接。
龍答:如果您是從源代碼編譯,那麼你跑了以下三個命令
./configure
make
make install
第一個創建了一個名爲config.mak
的配置文件。在文件頂部附近,您將看到類似於以下內容的行:
prefix=/usr/local
LIBDIR=$(DESTDIR)${prefix}/lib
SHLIBDIR=$(DESTDIR)${prefix}/lib
INCDIR=$(DESTDIR)${prefix}/include
BINDIR=$(DESTDIR)${prefix}/bin
DESTDIR是可選的;這是無關的,除非你運行make install
與一個額外的參數。 BINDIR是實際的安裝位置。在我的系統(雪豹)那是/usr/local/bin/
。
如果您仍然遇到問題,請不要安裝該版本。如果您運行
make clean
make
該二進制文件將位於您的生成文件夾中。
請勿使用MacPorts或Fink。如果你自己編譯源代碼,從長遠來看,你會更高興。如果您堅持使用包管理器,請嘗試使用Homebrew http://mxcl.github.com/homebrew/。
想知道如果你想要一堆gnu工具,也可以使用其中的一些而不是Mac版本(例如ls),你會怎麼做?在這種情況下,逐個手動編譯所有依賴關係將會很麻煩。自制軟件是否有依賴管理? – pszilard 2010-09-22 23:13:22
我不確定,我自己也沒有用過自制軟件。我有足夠的與MacPorts不好的經驗切換到手動編譯,並沒有足夠的動機切換到更自動化的東西。 – AndrewF 2010-09-23 01:52:57