由于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是否是这个的答案,或者只是另一个半心半意的尝试,它永远不会超过它此刻呢!我希望它不是后者,但我还没有看到很多东西来表明情况.
我正在研究的视频会议项目使用JMF来捕获视频和音频,并将其传输到另一个端点.问题是我的团队不希望产品的用户必须安装JMF.
我认为分享我们对这个问题的解决方案可能是值得的.有用.它运作良好.我的问题是:有没有人有更好的方法呢?
环境:Windows,XP及以上版本
将其安装在您的机器上
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
将dlls 复制到临时文件夹中
jmf.properties文件(在您的计算机上搜索它)JMFinit.java
JMRPropertiesGen.java
Registry.java
RegistryGen.java
JMFNoInstall
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文件需要与具有您的 …
你会认为 tere 是一个简单的解决方案,但没有:(
我的应用程序需要从 USB/火线(或任何连接)连接的相机捕获流(结果将是像output.flv这样的文件)。我希望我可以检测所有连接的摄像机并选择使用哪一个(同时使用一个或多个 --> 一个或多个输出文件)。应用程序必须是跨平台的。
找到的库:
您对此有何建议?