linux mediainfo java,linux下安装mediainfo
如果rpm安裝了zlib,可以到mediainfo的站點下載相應的rpm包,安裝可能簡單些。
下面使用源碼包安裝。
一.解壓
在linux下用7za –x *****.7z解壓縮mediainfo源碼(mediainfo_0.7.51_AllInclusive.7z)
二.編譯
http://downloads.sourceforge.net/project/libpng/zlib/1.2.3/zlib-1.2.3.tar.gz?r=http%3A%2F%2Fwww.oschina.net%2Fp%2Fzlib&ts=1322643718&use_mirror=cdnetworks-kr-1
下載zlib-1.2.3.tar.gz
Mediainfo依賴libz和libzen以及libmediainfo
編譯順序為:libz, libzen, libmediainfo
(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.alibzen.la libzen.solibzen.so.0libzen.so.0.05個函數庫
(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)到此為此,所有的編譯和安裝都做完了,但還需要如下配置
exportLD_LIBRARY_PATH=/usr/local/lib (因為linux默認的函數庫目錄為/lib和/usr/lib)
exportPATH=$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,在ubuntu中apt-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鏈接到新的函數庫
總結
以上是生活随笔為你收集整理的linux mediainfo java,linux下安装mediainfo的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 测试开发【Mock平台】04实战:前后端
- 下一篇: 【unity 笔记】ugui艺术字体