我有一个应用程序可以从高清摄像头捕获实时视频并将其流式传输到视频流服务器。我目前使用Adobe Flash Media Live Encoder(FMLE)将捕获的视频流发送到服务器。
问题是FMLE不支持linux。我认为VLCJ和Xuggler是FMLE的可能替代方案,并且这些可以更好地控制编码媒体,这样我们就可以放入可选的运动检测器,滤波器等。是否可以使用VLCJ的视频捕获支持和处理为我的应用程序支持xuggler。我的意思是有没有任何常见的接口,我可以将捕获的流从vlcj呈现给Xuggler?
答案 0 :(得分:0)
没有现有的良好界面链接两个库(我知道),但您可以在两者之间管道原始数据。
VLCJ的DirectMediaPlayer
有一个渲染回调,它提供原始像素数据的钩子(有关特定示例,请参阅here。)通常,这用于Java层上的直接像素操作(例如在上面的示例中制作视频灰度)但是没有真正的理由说明为什么你不能将数据传输到Xuggler的IBuffer,然后将其包装到IVideoPicture中(从那里你就是在Xuggler中)土地。)
我自己从来没有尝试过这样的事情,所以可能会有一些额外的箍你需要跳过 - 但原则上它肯定是可能的。主要问题是,如果你需要它,我认为速度是实时的;在高清视频的CPU上执行此操作对处理器的要求不小。