相关疑难解决方法(0)

为JavaFX 2.2添加其他视频编解码器/ DVD支持

更新:

由于JFX的媒体方面是开源的,我自己也研究过这个问题,但确实有可能,但需要更改和重建JFX源代码(Java和C部分).这里描述的过程适用于任何想要的人.有一个去 - 我在这个例子中添加了MKV支持,但它应该与其他插件非常相似.

问题的其余部分因此主要是历史性的,但我会留在这里供参考.

背景

到目前为止,我一直在使用VLCJ在我的应用程序中播放视频.它可以工作,但是如果可能的话,我想看看我是否可以通过迁移到JavaFX来实现对常见编解码器的类似级别的支持,并为多个虚拟机节省了很多麻烦,以及VLCJ需要可靠地播放多个视频.我不会在这里讨论,但如果你对细节感兴趣,请看我对这个问题的回答.还有跨平台兼容性的问题,它适用于Mac和Linux,但我还没有弄清楚如何让它在Mac上显示(我相信有一些安全措施可以防止一个进程获得对另一个本机的访问权限)组件,但这又超出了这个问题的范围.)

它可以归结为这样一个事实:虽然它有效,但是如果有另一种解决方案更容易,那么很多维护和麻烦都可以使用多个虚拟机并稳定地将它们连接起来.VLC对于播放几乎任何东西都有相当的传奇支持,这就是为什么我到目前为止已经使用它了,我有兴趣看看我是否可以在JavaFX中得到类似的结果 - 或者至少它是否可以以跨平台的方式提供这样做的手段.

研究

JavaFX 2.0支持视频 - 太棒了!但目前官方的产品线支持"包含VP6视频和MP3音频的FLV".有没有办法扩展它以增加对更多编解码器的支持?没有我想支持的硬编解码器,它更多的是尽我所能,所以我正在寻找一种可扩展的方法来实现上述目标.

我想知道它是否会播放本机安装在机器上的编解码器的视频,并且它本身并不宣传自己(因为该功能显然是依赖于机器而不是跨平台的.)但是没有骰子,我尝试了一个数字常见的格式,除了它陈述的内容之外,它确实拒绝播放任何其他内容.

从查看JavaFX 1.3开始,它还支持其他依赖于平台的编解码器,具体取决于它的安装位置.有没有办法在JavaFX 2中获得这种行为?或者是否计划随后发布?我无法在路线图上找到任何有关它的信息或Oracle的任何评论.

我能从广泛搜索中找到的东西在这里意味着它可能是可能的,但似乎没有人知道如何.我也有兴趣知道它是否基于GStreamer,为什么GStreamer支持的所有格式都不包含在默认值中?

在使用JavaFX播放DVD方面,我绝对无处可去,所以我认为目前这只是一个禁忌.如果有人确实有任何想法或信息,我会全力以赴.

其他方法

我想知道的一种方法可能是将JMC jar从这里描述的旧JavaFX中删除,并尝试将其与JavaFX 2一起使用.我不认为任何人对这种方法有什么好运或类似的东西?

所有事情都失败了,如果任何人有任何信息或链接,如果/当支持其他编解码器将支持开箱即用,那么我也有兴趣听到这一点.或者,如果有人在Oracle有任何联系方式,我可以要求也会感激!我一直渴望在Java中获得体面的视频支持一段时间,我想这可以归结为是试图弄清楚JavaFX是否是这个的答案,或者只是另一个半心半意的尝试,它永远不会超过它此刻呢!我希望它不是后者,但我还没有看到很多东西来表明情况.

java video javafx codec vlcj

17
推荐指数
4
解决办法
9116
查看次数

如何使用JMF捕获视频,但不安装JMF

我正在研究的视频会议项目使用JMF来捕获视频和音频,并将其传输到另一个端点.问题是我的团队不希望产品的用户必须安装JMF.

我认为分享我们对这个问题的解决方案可能是值得的.有用.它运作良好.我的问题是:有没有人有更好的方法呢?

环境:Windows,XP及以上版本

  1. 下载适用于Windows的JMF
  2. 将其安装在您的机器上

  3. dll在jmf installs之后,在system32文件夹中找到以下内容:

    jmacm.dll
    jmam.dll
    jmcvid.dll
    jmdaud.dll
    jmdaudc.dll
    jmddraw.dll
    jmfjawt.dll
    jmg723.dll
    jmgdi.dll
    jmgsm.dll
    jmh261.dll
    jmh263enc.dll
    jmjpeg.dll
    jmmci.dll
    jmmpa.dll
    jmmpegv.dll
    jmutil. dll
    jmvcm.dll
    jmvfw.dll
    jmvh263.dll
    jsound.dll

  4. dlls 复制到临时文件夹中

  5. 找到该jmf.properties文件(在您的计算机上搜索它)
  6. 下载JMF源代码
    在源代码中,找到以下文件:

JMFinit.java
JMRPropertiesGen.java
Registry.java
RegistryGen.java

  1. 创建一个包; 我会叫它JMFNoInstall
  2. 添加步骤6中列出的文件
  3. 将一个名为Main的类添加到此包中:

 

package JMFNoInstall;
// add your imports and whatnot here
public class Main()
{
    public Main()
    {
        JMFinit.main(null);
        JMFPropertiesGen.main(null);
        Registry.main(null);
        RegistryGen.main(new String[] {
            new File(".").getAbsolutePath(),
            "registrylib"
        });
    }
}
Run Code Online (Sandbox Code Playgroud)

jmf.properties文件需要与具有您的 …

java jmf distribution java-native-library

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

使用哪个 Java 库从连接的摄像机录制视频?

你会认为 tere 是一个简单的解决方案,但没有:(

我的应用程序需要从 USB/火线(或任何连接)连接的相机捕获流(结果将是像output.flv这样的文件)。我希望我可以检测所有连接的摄像机并选择使用哪一个(同时使用一个或多个 --> 一个或多个输出文件)。应用程序必须是跨平台的。

找到的库:

  1. Xuggle - 不是很好的相机支持。适合处理图像和视频。
  2. JMF - 一个旧的 API 但如果我可以使用它,我会的。我在下载页面上没有看到 MAC OS X 链接。
  3. FMJ - 看起来像是 JMF 的更好版本,但找不到安装它的方法。
  4. LTI-CIVIL - FMJ 使用它。看起来它只从相机(而不是视频)捕获图像。我可以使用 Xuggle 根据从 LTI-CIVIL 拍摄的图像创建视频。和FMJ一样,安装起来很困难。

您对此有何建议?

java video cross-platform capture

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