我正在使用Xuggle来播放来自ip-camera的隔行视频,并且确实需要deinterlace选项,它存在于FFMpeg中(Xuggle是一个基于FFMpeg库的java包装器)。
不幸的是,Xuggle没有公开deinterlace选项(“-vf yadif”,如果我没有错)。所以,我对Java BufferedImage反隔行扫描的纯java解决方案感兴趣,或者使某些方法让Xuggle这样做。
现在我简单地复制奇数行甚至丢弃。它很快但质量当然不是很好。
// Interlaced image
BufferedImage img = (BufferedImage) event.getImage();
//duplicate odd lines
WritableRaster raster = img.getRaster();
for (int i = 0; i < raster.getHeight(); i += 2) {
int[] arr2 = null;
raster.setPixels(0, i + 1, raster.getWidth(), 1,
raster.getPixels(0, i, raster.getWidth(), 1,arr2));
}
//now img is deinterlaced
有人可以在这方面帮助我吗?
答案 0 :(得分:0)
我通过JNI使用了FFMPEG的yadif过滤器。 Java实现非常缓慢。