我正在使用 OpenIMAJ 在视频上绘制面部关键点,但它本身就卡在了第一步。这是我要运行的代码::
Video<MBFImage> video;
video = new XuggleVideo("file://E:/AV/out2.flv");//XuggleVideo("file:"+fileName);
VideoDisplay<MBFImage> display = VideoDisplay.createVideoDisplay(video);
display.addVideoListener(
new VideoDisplayListener<MBFImage>() {
public void beforeUpdate( MBFImage frame ) {
FaceDetector<DetectedFace,FImage> fd = new HaarCascadeDetector(40);
List<DetectedFace> faces = fd.detectFaces( Transforms.calculateIntensity(frame));
for( DetectedFace face : faces ) {
frame.drawShape(face.getBounds(), RGBColour.RED);
}
}
public void afterUpdate( VideoDisplay<MBFImage> display ) {
}
});
当我运行它时它会打印
file:///E:/AV/out2.flv URL file:///E:/AV/out2.flv 无法被 ffmpeg 打开。而是尝试打开指向 URL 的流。11:14:12.505 [Finalizer] 调试 com.xuggle.xuggler - 关闭悬空容器 (../../../../../../../csrc/com/xuggle/xuggler/Container. cpp:146)
在屏幕上,然后就消失了。如果我使用 video = new XuggleVideo(new File("E:/AV/out2.flv")); 结果是一样的
另外,如果我将文件保存在项目中,然后执行 video = new XuggleVideo(new File("out2.flv")); 我得到相同的结果。
如果我将链接放在浏览器中,我就可以访问该文件。出了什么问题?
更新:我得到了这个
out2.flv 12:03:06.485 [Finalizer] 调试 com.xuggle.xuggler - 关闭悬空容器 (../../../../../../../csrc/com/xuggle/xuggler /Container.cpp:146)
如果我使用video = new XuggleVideo("out2.flv");