相关疑难解决方法(0)

用Java处理视频(DVD,.avi .mkv)

在环顾四周寻找一个体面的图书馆用Java播放视频之后,我已经不知所措了.周围的每个人都在尖叫不要使用JMF,因为它已经过时,过时而且需要用户安装它,其他替代品如VLCJ似乎很好,如果它们工作但仍然相对不稳定并依赖大量本机代码,并且至于处理DVD,在免费图书馆看起来像金尘!

当前选项:

  • 现在JavaFX 2正在获得动力,这是我一直在认真研究的东西(因此我的问题在这里)但是到目前为止我没有运气试图弄清楚如何让它比标准的FLV视频更糟糕.
  • VLCJ的工作做得很好(参见我目前的答案),目前我正在努力.它使用libvlc来做任何事情,因为它可以播放几乎任何文件并且开箱即用DVD.最大的问题是你必须为每个玩家使用多个虚拟机才能使其稳定运行,这意味着响应速度相对较慢.我还没有这种方法在Mac上工作.
  • JMF是荒谬的过时,可怕的,就我而言,并不是一个真正的选择.我过去玩过它,经验不是很好!
  • FMJ表示这是JMF的替代下降.我还没有像我和其他大多数人那样让它发挥作用,这本身就让我对它的质量和理解感到厌倦,即使我设法让它发挥作用!
  • Xuggler非常适合它的功能,它有很棒的教程,而且编写得非常好.虽然它对于低级转码工作很有用,播放视频并以正确的顺序和同步等方式获取帧只是一个正常工作的噩梦,并再次添加更多代码,这意味着更多的维护,可能更多的错误等等...
  • 我还没有尝试过任何愤怒的GStreamer-Java,虽然它似乎不支持DVD播放(它是一个我正在研究的开源应用程序,所以商业插件也不是一个选项)并且它的编解码器支持不会似乎是最宽的.
  • JCodec是一项有趣的工作,是我见过的唯一一个从纯Java角度实现视频支持的工作 - 但目前缺乏对格式的支持,这是一个相对较新的项目.
  • 在我想要支持的每个平台的不同本地库中自己写一些东西.这是绝对的最后选择,因为它需要额外的维护和编码时间.

基于以上(或其他任何你能想到的),人们会推荐哪些选项,还有其他任何我错过的合理选择吗?或者其他任何人认为可能在不久的将来可用?

java api video media-player

27
推荐指数
1
解决办法
2万
查看次数

从JAR文件加载库文件

我正在尝试使用System.load()Java 加载DLL .我得到这个例外:

Exception in thread "main" java.lang.UnsatisfiedLinkError: C:\Documents and Settings\dvargo\Local Settings\Temp\jmacm.dll: Can't load this .dll (machine code=0x0) on a IA 32-bit platform
        at java.lang.ClassLoader$NativeLibrary.load(Native Method)
        at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1803)
        at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1699)
        at java.lang.Runtime.load0(Runtime.java:770)
        at java.lang.System.load(System.java:1003)
        at GlobalUtilities.DllManager.dynamicallyLoadDLL(DllManager.java:160)
        at GlobalUtilities.DllManager.dynamicallyLoadDLLs(DllManager.java:182)
        at JMFManager.JMFRunner.dynamicallyLoadJMFDllsFromResource(JMFRunner.java:152)
        at JMFManager.JMFRunner.main(JMFRunner.java:164)

这是什么意思?

编辑:

我的jar文件中有一些dll.我将它们从jar文件中取出并使用以下代码将它们写入temp文件夹:


    private static ArrayList buf;
    public static InputStream soundStreams;

    public static File getResourceFile(String resourceName, File dest)
    {
        InputStream is = null;
        BufferedReader br = null;
        int line;
        ArrayList list = new ArrayList();

        try
        { …
Run Code Online (Sandbox Code Playgroud)

java exception

1
推荐指数
1
解决办法
2663
查看次数

标签 统计

java ×2

api ×1

exception ×1

media-player ×1

video ×1