我正在研究用于对某些场景进行半实时检测的图像处理问题。我的目标是让实时视频以某种方式在我的 Java 代码中以 Motion JPEG 帧的形式出现。
我熟悉Java 媒体框架,遗憾的是,我认为我们可以认为这是一个有效的死 API。我也熟悉Axis 盒子,虽然我真的很喜欢他们的解决方案,但如果我对我的特定兴趣点提出任何批评性反馈,我将不胜感激。
出于本次讨论的目的,这就是我定义“最佳”的方式:
- 延迟 - 如果我使用此视频流控制相机,我希望尽可能将往返延迟保持在 100 毫秒以下。这是从我的控制输入到我看到可见变化之间的时间来衡量的。稍后编辑:要记住的另一件事是相机控制可能是手动和自动(事件触发器)的组合。即使高质量的提要单独存档,我们也需要立即查看这些图片。
- 成本免费/开源总比不免费好。
- 可调整的编解码器参数 - 我需要能够针对某些情况调整编解码器。有时,高速低分辨率流实际上更容易处理。
- 与 Java 的“集成”——将这个解决方案与我的代码挂钩有多麻烦?我是否通过套接字发送数据包?点击网址?安装 Direct3D / JNI 组合?
- Windows/Linux/两者?- 我更喜欢与操作系统无关的解决方案,因为我必须提供多种操作系统,但可能有一种解决方案对其中一种而言是最佳的,而对另一种则不是。
注意:我知道其他图像/视频捕获编解码器,这不是这个问题的重点。由于帧精度的损失,我对流 API(例如 MPEG4)特别不感兴趣。但是,如果我的问题有一个解决方案可以提供另一个帧精确的数据流,请加入。
跟进这个问题:在这一点上,我强烈倾向于购买Axis 视频编码器等设备,而不是尝试在软件中或直接在 PC 上捕获视频。但是,如果有人有其他选择,我很乐意听到他们的声音。