java 綁定 ffmpeg 開源項目:jjmpeg
簡介
jjmpeg 是一個 java 綁定到 ffmpeg 的非常便利的解碼和編碼庫。jjmpeg 具有很高的執行效率,可以運行在不同的平臺,而且控制起來也很簡單。除了具有 FFmpeg 接口的面向對象的特征之外,jjmpeg 還具有一些較高層次的對象,這些對象使 jjmpeg 對于編碼的視頻和音頻文件的讀寫幾乎和 ImageIO 對靜態影像的讀寫一樣簡便。
jdvb 是次級項目,它提供 Java 訪問 linux dvb 驅動(digital tv)的功能。它在進程和片方面做了很多工作,盡管它自己能夠和接收者通信而且能夠提取原始流(這樣反過來可以使用 jjmpeg 處理)。
構建
用于構建版本和基于 makefile 文件的自定義生成系統本機代碼。大多數配置項保存在 native/config.make,但也有一些放在 native//Makefile,取決于 target。
也有一些 netbeans/ant 腳本并用于開發(jjmpeg),但 ant (在 jjmpeg 中)并沒有用來構建發布。
關于綁定的擴展閱讀請參考 native/README。目前需要將生成的 Java 文件 AVAbstract.java 手工拷貝到 src 目錄,覆蓋已經存在該目錄下的同名文件。
使用
必須將 native/<platform>/[lib]jjmpeg.[so|dll] 庫放在 LD_LIBRARY_PATH 或者 java.library.path 來使用 jjmpeg。
同樣處理 native/<platform>/libjjdvb.so 庫,以使 Java 使用 jjdvb 里的類。
這些類大部分是未公開的,但都嚴格遵循相關 API。
這些類在運行時要使用 libavformat、libavcodec 和libswscale,所以這些系統應該具有這些庫 - 這些庫常常放在一個叫做 ffmpeg-libs 包里。
測試使用,可以運行:
java -Djava.library.path=path-to-lib-dir -classpath jjmpeg-0.7.0.jar au.notzed.jjmpeg.util.JJFileChooser
path-to-lib-dir 就是你的系統的 .so/.dll 文件目錄。
這條命令會創建一個預覽視頻的文件請求。
發布
jjmpeg 庫遵守 LGPL3 規范,相關具體要求在 license 里有列出。
遵守這些的最方便的方法就是在你自己發布時提供相應版本的完整的源代碼歸檔。注意 jjmpeg.jar 文件(不包含本地庫)必須是可以置換的。
鏈接
jjmpeg 托管在 google code 的 url:
http://code.google.com/p/jjmpeg
一個關于開發活動以及想法的日志:
http://a-hackers-craic.blogspot.com/search/label/jjmpeg
為 windows 構建的交叉編譯器:
http://sourceforge.net/projects/mingw-w64/files/mingw-w64/mingw-w64-snapshot/
* windows 構建 FFMPEG:
http://ffmpeg.zeranoe.com/builds/
你需要 dev 包來編譯/重新編譯本地庫,除非你僅僅需要共享版。
許可
jjmpeg 是一個開源軟件:你可以在遵循由自由軟件基金會發布的 GNU 通用許可證下的相關條款前提下重新發布或者修改它。
jjmpeg 發布的目的是希望它可以是(對大家)有用的,但它沒有任何擔保,甚至沒有隱含的擔保特定用途的適用性。更多細節請參考 GNU 通用許可證。
關于使用條款請參閱 COPYING.LESSER 和 COPYING 文件。
原文鏈接:https://code.google.com/p/jjmpeg/source/browse/trunk/jjmpeg/README。