0
비디오를 무손실 형식으로 기록 할 수있는 응용 프로그램을 작성하려고합니다. 이 목적을 위해 저는 Webcam-Capture와 Xuggler 라이브러리를 사용합니다. 모든 것이 작동하지만 아웃 아웃 비디오에는 다음과 같은 아티팩트가 있습니다. 웹캠에서 무손실 형식으로 비디오를 기록하는 방법은 무엇입니까?
그리고이 현상은 모든 프레임에서 발생하는 것이 아니라 거의 5 가지 중 하나입니다. 내 코드 :
@FXML
public void record() {
File file = new File("output.wmv");
IMediaWriter writer = ToolFactory.makeWriter(file.getName());
Dimension size = WebcamResolution.VGA.getSize();
writer.addVideoStream(0, 0, ICodec.ID.CODEC_ID_RAWVIDEO, size.width, size.height);
Webcam webcam = Webcam.getDefault();
webcam.setViewSize(size);
webcam.open(true);
long start = System.currentTimeMillis();
for (int i = 0; i < 50; i++) {
System.out.println("Capture frame " + i);
BufferedImage image = ConverterFactory.convertToType(webcam.getImage(), BufferedImage.TYPE_3BYTE_BGR);
IConverter converter = ConverterFactory.createConverter(image, IPixelFormat.Type.YUV420P);
IVideoPicture frame = converter.toPicture(image, (System.currentTimeMillis() - start) * 1000);
frame.setKeyFrame(i == 0);
frame.setQuality(100);
writer.encodeVideo(0, frame);
// 10 FPS
try {
Thread.sleep(40);
} catch (InterruptedException e) {
e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
}
}
writer.close();
System.out.println("Video recorded in file: " + file.getAbsolutePath());
}
내가 뭘 잘못하고 있니?
정확히 필요한 링크는 무엇입니까? – Eugene