linux下安裝mediainfo

若是rpm安裝了 zlib ,能夠到mediainfo的站點下載相應的rpm包,安裝可能簡單些java

下面使用源碼包安裝。linux

一.解壓c++

linux下用7za –x *****.7z解壓縮mediainfo源碼(mediainfo_0.7.51_AllInclusive.7z)ubuntu

 

二.編譯ide

http://downloads.sourceforge.net/project/libpng/ zlib /1.2.3/ zlib -1.2.3.tar.gz?r=http%3A%2F%2Fwww.oschina.net%2Fp%2F zlib &ts=1322643718&use_mirror=cdnetworks-kr-1函數

下載 zlib -1.2.3.tar.gz工具

Mediainfo 依賴libzlibzen以及libmediainfospa

編譯順序爲: libz, libzen, libmediainfo.net

(1)編譯libz命令行

  zlib /config

  zlib /make

  zlib /make install

 

執行完上面的命令,會在/usr/local/lib/目錄 下生成 libz.a

                    /usr/local/include目錄 下生成 zlib .h(這個文件移植沒用到)

(2)編譯libzen

根據ZenLib/Project/GNU/libzen_contrib.spec文件中的描述進行編譯,不是全部的命令都要執行,我主要執行了如下命令

ZenLib/Source/Doc下執行

 doxygen Doxyfile

(這個命令須要先安裝doxygen ,ubuntu sudo apt-get install doxygen

ZenLib/Project/GNU/Library目錄下執行:

chmod +x autogen

./autogen

     (這個命令須要安裝automake libtool ,在ubuntu sudo apt-get install automake

sudo apt-get install libtool)

configure  --enable-shared

 

make clean

make

makeinstall

 

執行完上面的命令,會在/usr/local/lib/目錄 下生成libzen.a   libzen.la    libzen.so   libzen.so.0   libzen.so.0.0  5個函數庫

 

(3)編譯libmediainfo

根據MediaInfoLib/Project/GNU/libmediainfo.spec文件中的描述進行編譯,不是全部的命令都要執行,我主要執行了如下命令

MediaInfoLib/Source/Doc/ 下執行

doxygen Doxyfile

MediaInfoLib/Project/GNU/Library下執行

chmod +x autogen

./autogen

configure --enable-shared

make clean

make

makeinstall

執行完上面的命令,會在/usr/local/lib/目錄 下生成 libmediainfo.a libmediainfo.la兩個函數庫

 

(4)編譯mediainfo

Mediainfo有兩個版本:CLI命令行版本  GUI圖形界面版本, 項目中只須要命令行版本的,因此這裏只選擇CLI目錄下的進行編譯

MediaInfo/Project/GNU/mediainfo.spec文檔中描述的有關CLI的部分進行編譯

MediaInfo/Project/GNU/CLI下執行

    chmod +x autogen

./autogen

Configure

make

makeinstall

執行完上面的命令,會在/usr/local/bin目錄 下生成mediainfo可執行文件

 

(5)到此爲此,全部的編譯和安裝都作完了,但還須要以下配置

   export  LD_LIBRARY_PATH=/usr/local/lib (由於linux默認的函數庫目錄爲/lib /usr/lib)

   export  PATH=$PATH:/usr/local/bin

6)運行mediainfo命令的格式問題:

       mediainfo 「—Inform=Video;%Duration%」 a.flv 

要在命令的格式部分加入」」號,才能正確輸出(window中可加能夠不加)

mediainfo  不能用大寫「MediaInfo」,應該用小寫。但在window中則能夠。

 

在java運行Runtime.exec()方法的格式爲  mediainfo —Inform=Video;%Duration% a.flv  不要加引號

 

三.移植

由於編譯須要一些工具如Doxygen, automake , libtool ,在ubuntuapt-get安裝很方便,因此選擇在ubuntu中編譯源碼後,再種植到別的系統(suse)中運行。

 

(1)       將函數庫放到/usr/lib /lib (不須要配置)

或者放到/usr/local/lib 中,這就須要到上面(5)的配置

  (2 )  檢查下函數庫的權限,修改成777(注意,這裏必須是777,不然Runtime.exec()時沒有權限)

(3)   將可執行文件mediainfo放到/usr/local/bin中,並作上面(5)中的配置

(4)  還有一個可能出現的問題

     libzen.so.0依賴/usr/lib/libstdc++.so.6 要求版本GLIBCXX-3.4.9或以上

    若是你的系統上這個函數庫的版本低了,就將libstdc++.so.6.0.13拷到/usr/lib下,並執行命令 ln –fs libstdc++.so.6.0.13  libstdc++.so.6 libstdc++.so.6連接到新的函數庫

相關文章
相關標籤/搜索