注意:FFMPEG-Java 和 Jffmpeg 不是一回事。FFMPEG-Java 是 Freedom for Media in Java(缩写为 FMJ)的一个子项目。
这个项目遵循了 LGPL 许可。它具有可选的 GPL 组件来使用 FFMPEG 的 GPL swscale 库。如果你要使用 swscale 和 GPL,可以使用 ffmpeg-java-gpl.jar。这个项目的标准的 LGPL jar 是 ffmpeg-java.jar。
FFMPEG-Java 是一个使用 JNA 对 FFMPEG 的封装。它假定关于 FFMPEG 的动态库已经被编译好,并且放在你的库路径。
注意:本示例中禁用 mmx,因为它曾经造成了很多问题。
步骤一:拿到 FFMPEG 源码 http://ffmpeg.mplayerhq.hu
步骤二:构建/安装 FFMPEG
./configure --disable-mmx --enable-shared
make
sudo make install
步骤三:使用一个多媒体文件作为第一个参数,运行示例程序之一。
在一些 *nix 系统中,有时必须明确设置你的库路径。例如:
export LD_LIBRARY_PATH=/usr/local/lib
播放例子
在一个窗口播放视频:
java -cp ./ffmpeg-java.jar:./lib/jna.jar net.sf.ffmpeg_java.example.PlayerExample http://www.javasaver.com/testjs/jmf/anim/2005-11-26.mov
视频编解码例子
使用视频的前五帧在当前目录创建 5 ppm 的文件:
java -cp ./ffmpeg-java.jar:./lib/jna.jar net.sf.ffmpeg_java.example.AVCodecSample http://www.javasaver.com/testjs/jmf/anim/2005-11-26.mov
很好的关于设置编译环境的文档 - msys 和 mingw - 以及如何在 Windows 上构建 FFMPEG 可以在这里(打不开的话请翻墙)去查找。FFMPEG 提供的也可以,但一些关于图像编解码/格式(的内容)丢失了。
原文链接:http://fmj-sf.net/ffmpeg-java/getting_started.php。