मैं फ्रेम द्वारा java8-64bit फ्रेम में एक एमपी 4 फ़ाइल पढ़ना चाहता हूं और प्रत्येक हार्ड फ्रेम को मेरे हार्डडिस्क में एक जेपीजी के रूप में लिखना चाहता हूं। मेरा पहला प्रयास एक दृश्य घटक पर फ़ाइल फ़ाइल खेलने के लिए जावाएफएक्स 2.2 मीडिया प्लेयर का उपयोग करना था। मैंने सोचा कि शायद एक नया फ्रेम लोड होने के बाद एक ईवेंट प्राप्त करने के लिए पर्यवेक्षक को पंजीकृत करने का विकल्प होगा और घटक सतह पर चित्रित करने के लिए तैयार होगा लेकिन ऐसा लगता है कि ऐसी कोई विधि नहीं है। यह उन फ्रेम/पिक्सेल को पकड़ने के लिए पर्याप्त होगा जो घटक पर चित्रित किए गए हैं।फ़्रेम द्वारा वीडियो फ्रेम को कैसे पढ़ा जाए?
क्या यह मीडिया प्लेयर का उपयोग करके किया जा सकता है? मीडिया प्लेयर का उपयोग करने का कारण यह है कि यह बीसीएस है जो मुझे सबसे आसान समाधान था। मैं vlcj, बस 32 बिट, और gstreamer लेकिन tryed भाग्य :(बिना
मैं अब तक मिल गया:
player.setOnNextFrameReady(final Event evt) { writeImage(evt.getFrame()) };
धन्यवाद:
public class VideoGrabber extends extends JFrame {
// code for scene setup omitted
final MediaView view = createMediaView(...)
// some other stuff happens here
// now start the video
view.getMediaPlayer().seek(Duration.ZERO);
view.getMediaPlayer().play();
view.getMediaPlayer().setOnEndOfMedia(new Runnable()
{ // save image when done
BufferedImage img = new BufferedImage(getWidth(), getHeight(), BufferedImage.TYPE_INT_BGR
view.paint(img.getGraphics());
ImageIO.write(img, "JPEG", new File("pic-"+System.currentTimeMillis()+".jpg"));
});
// somewhere else to create
private MediaView createMediaView(String url)
{
final Media clip = new Media(url);
final MediaPlayer player = new MediaPlayer(clip);
final MediaView view = new MediaView(player);
view.setFitWidth(VID_WIDTH);
view.setFitHeight(VID_HEIGHT);
return view;
}
वहाँ किसी भी तरह निम्न करने के लिए एक तरीका है!
बहुत अच्छा, मैं इसे आज़मा दूंगा। – Chris