2010-09-19 98 views
1

我需要爲Mac構建ffmpeg,以便在Java應用程序中將MOV轉換爲FLV。我製作並安裝了LAME,然後安裝了FFMPEG,但我很困惑我應該抓住哪些文件以包含在Java應用程序中。什麼是二進制文件?我從ffmpegX的源文件中獲得的以前版本的大小爲10MB,但是位​​於/ usr/local/bin中的文件僅爲0.1mb。這是正確的文件,還是我需要包括什麼?構建二進制文件(用於ffmpeg)在哪裏?

我對於任何需要鍵入終端的東西都不是很瞭解,所以請原諒缺乏技術術語!

回答

1

我不是到目前爲止的Mac專家,但我有一些提示。如果使用動態鏈接構建庫,而另一個靜態鏈接可能會解釋大小差異。

至於位置,你使用了什麼? MacPorts,Fink或來源?如果你從源代碼建立取決於你使用什麼:) MacPorts和芬克有他們的具體位置的二進制文件(我不記得了,但文件應該有信息,否則大G有它;)

2

簡短的回答:/ 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/

+0

想知道如果你想要一堆gnu工具,也可以使用其中的一些而不是Mac版本(例如ls),你會怎麼做?在這種情況下,逐個手動編譯所有依賴關係將會很麻煩。自制軟件是否有依賴管理? – pszilard 2010-09-22 23:13:22

+0

我不確定,我自己也沒有用過自制軟件。我有足夠的與MacPorts不好的經驗切換到手動編譯,並沒有足夠的動機切換到更自動化的東西。 – AndrewF 2010-09-23 01:52:57

相關問題