我正处于将有大量音频/视频输入和输出的应用程序的概念阶段。我想用Java来做;但不知何故,我还没有完全相信。你怎么看?到底能有多糟糕?有什么建议吗?
为什么我在想 Java:
- 这是我最熟悉的语言。
- 更容易的跨平台迁移将是一个奖励。
- 负担不起商业平台(如 .NET)或其他免费替代品(如 Python)不够好
- 我也略微倾向于 C++/Qt;但这对我来说需要更多时间,因为我在这方面并不出色,而且我有点担心可维护性。
我正处于将有大量音频/视频输入和输出的应用程序的概念阶段。我想用Java来做;但不知何故,我还没有完全相信。你怎么看?到底能有多糟糕?有什么建议吗?
为什么我在想 Java:
如果您有兴趣,请查看Xuggler。它展示了 FFmpeg 的所有功能,但是作为一个在 Windows、Mac 和 Linux 上运行的 Java API。优点是您可以从 Java 获得 FFmpeg 的所有功能。缺点是它需要安装 FFmpeg 本机 DLL/共享库。
更容易的跨平台迁移将是一个奖励。
音频和视频意味着您将处理每个受支持平台的专用本机库和 JNI 包装器;在这种情况下,Java 的跨平台论点并不真正适用。
我相信当你想写一个音频/视频应用程序时,你将使用的编程语言是第二重要的事情。最重要的是您的应用程序将使用的音频/视频框架,因为它定义了您的能力。
我知道两种流行的通用视频框架可用于访问大多数多媒体类型:Directshow 和 ffmpeg。Directshow与windows绑定,所以只剩下ffmpeg。
Ffmpeg 在 windows 和 unix 都有版本,虽然它是用 C 语言编写的,但它可以从很多语言中使用。
甚至还有一些 ffmpeg 的 java 包装器(例如,看看 xuggle)!
由于音频/视频处理中经常出现的性能问题以及视频/音频可用库的范围,C++ 将是首选。
关于熟悉 Java,您确实提出了一个很好的观点。如果时间紧迫,这一点更为重要。但是,如果您可以抽出一些时间来学习,C++ 将是非常值得的。
关于 .NET:包含您需要的一切的 .NET SDK 均可免费下载。获取一个免费的 IDE,比如SharpDevelop,你就可以开始运行了。花钱的是Visual Studio,你不需要Visual Studio来做.NET开发。
生锈的,
尝试做JavaFX Media API怎么样。最近,JavaFX的版本是 1.2.0,也带有 GUI 应用程序。它支持摇摆。语法基于脚本风格;但是,您可以将现有的 Swing 组件部署到 JavaFX 中。
我希望它有所帮助。
老虎
生锈,你最后做了什么?我也有一个我想做的视频应用程序,但我真的更喜欢 Java/JavaFX 而不是 C++。使用 Flash 和/或当前 JavaFX 视频支持的问题是 Flash 视频播放不是帧精确的。我真的需要能够像使用 QuickTime 一样在单个帧上停止/开始/踩踏。
有没有人尝试过使用 Xuggler 和 Java/JavaFX 进行播放?