【问题标题】:Java HD Video Capture processing and streamingJava 高清视频捕获处理和流式传输
【发布时间】:2013-03-11 12:21:55
【问题描述】:
我有一个应用程序,它从高清摄像机捕获实时视频并将其流式传输到视频流服务器。我目前使用 Adobe Flash Media Live Encoder(FMLE) 将捕获的视频流发送到服务器。
问题是 FMLE 不支持 linux。我将 VLCJ 和 Xuggler 作为 FMLE 的可能替代品,并且它们提供了对编码媒体的更好控制,以便我们可以放入可选的运动检测器、过滤器等。是否可以使用 VLCJ 的视频捕获支持支持和处理xuggler 对我的应用程序的支持。我的意思是是否有任何通用接口可以让我将捕获的流从 vlcj 呈现给 Xuggler?
【问题讨论】:
标签:
video-streaming
video-capture
video-processing
xuggler
vlcj
【解决方案1】:
目前没有链接这两个库的好接口(据我所知),但您可以在两者之间传输原始数据。
VLCJ 的DirectMediaPlayer 有一个渲染回调,它提供了一个挂钩到原始像素数据(请参阅here 的特定示例。)通常这用于在 Java 层上直接进行像素操作(例如使视频灰度在上面的示例中)但是没有真正的理由为什么您不应该将数据传输到 Xuggler 的 IBuffer,然后将其包装到 IVideoPicture 中(从那里您就进入了 Xuggler 的土地。)
我自己从未尝试过这样做,因此您可能需要跳过一些额外的障碍 - 但原则上这似乎是可行的。如果您需要实时速度,我认为主要问题是速度;为高清视频在 CPU 上完成这一切对您的处理器要求不小。