जावा का उपयोग करके प्रस्तुतियों में वीडियो फ्रेम का प्रबंधन

परिचय

एक अच्छी तरह से रखा गया वीडियो प्रस्तुति में आपके संदेश को अधिक प्रभावशाली बना सकता है और आपके दर्शकों के साथ जुड़ाव स्तर को बढ़ा सकता है।

PowerPoint आपको प्रस्तुति में एक स्लाइड में वीडियो जोड़ने के दो तरीके प्रदान करता है:

  • स्थानीय वीडियो जोड़ें या एम्बेड करें (आपके मशीन पर संग्रहीत)
  • ऑनलाइन वीडियो जोड़ें (YouTube जैसे वेब स्रोत से)।

आपको प्रस्तुति में वीडियो (वीडियो ऑब्जेक्ट) जोड़ने की अनुमति देने के लिए, Aspose.Slides प्रदान करता है IVideo इंटरफ़ेस, IVideoFrame इंटरफ़ेस, और अन्य प्रासंगिक प्रकार।

एम्बेडेड वीडियो फ्रेम बनाना

यदि वह वीडियो फ़ाइल जिसे आप अपनी स्लाइड में जोड़ना चाहते हैं स्थानीय तौर पर संग्रहीत है, तो आप वीडियो को अपनी प्रस्तुति में एम्बेड करने के लिए एक वीडियो फ्रेम बना सकते हैं।

  1. एक Presentation क्लास का उदाहरण बनाएं।
  2. इंडेक्स के माध्यम से स्लाइड का रेफ़रेंस प्राप्त करें।
  3. एक IVideo ऑब्जेक्ट जोड़ें और वीडियो फ़ाइल पथ पास करके वीडियो को प्रस्तुति में एम्बेड करें।
  4. वीडियो के लिए फ्रेम बनाने के लिए एक IVideoFrame ऑब्जेक्ट जोड़ें।
  5. संशोधित प्रस्तुति को सहेजें।
// Presentation क्लास का इंस्टेंस बनाता है
Presentation pres = new Presentation("pres.pptx");
try {
    // वीडियो लोड करता है
    FileInputStream fileStream = new FileInputStream("Wildlife.mp4");
    
    IVideo video = pres.getVideos().addVideo(fileStream, LoadingStreamBehavior.KeepLocked);

    // पहली स्लाइड प्राप्त करता है और एक वीडियोफ़्रेम जोड़ता है
    pres.getSlides().get_Item(0).getShapes().addVideoFrame(10, 10, 150, 250, video);

    // प्रस्तुति को डिस्क पर सहेजता है
    pres.save("pres-with-video.pptx", SaveFormat.Pptx);
} catch (IOException e) {
} finally {
    if (pres != null) pres.dispose();
}

वैकल्पिक रूप से, आप वीडियो को उसके फ़ाइल पथ को सीधे addVideoFrame(float x, float y, float width, float height, IVideo video) मेथड में पास करके जोड़ सकते हैं:

Presentation pres = new Presentation();
try {
	ISlide sld = pres.getSlides().get_Item(0);
	IVideoFrame vf = sld.getShapes().addVideoFrame(50, 150, 300, 150, "video1.avi");
} finally {
	if (pres != null) pres.dispose();
}

वेब स्रोतों से वीडियो के साथ वीडियो फ्रेम बनाना

Microsoft PowerPoint 2013 and newer प्रस्तुति में YouTube वीडियो का समर्थन करते हैं। यदि आप जिस वीडियो का उपयोग करना चाहते हैं वह ऑनलाइन उपलब्ध है (जैसे YouTube पर), तो आप उसे वेब लिंक के माध्यम से अपनी प्रस्तुति में जोड़ सकते हैं।

  1. एक Presentation क्लास की इंस्टेंस बनाएं।
  2. इंडेक्स के माध्यम से स्लाइड का रेफ़रेंस प्राप्त करें।
  3. एक IVideo ऑब्जेक्ट जोड़ें और वीडियो का लिंक पास करें।
  4. वीडियो फ्रेम के लिए थंबनेल सेट करें।
  5. प्रस्तुति को सहेजें।
// एक प्रस्तुति फ़ाइल का प्रतिनिधित्व करने वाला Presentation ऑब्जेक्ट बनाता है 
Presentation pres = new Presentation();
try {
    addVideoFromYouTube(pres, "Tj75Arhq5ho");
    pres.save("out.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}
private static void addVideoFromYouTube(Presentation pres, String videoID)
{
    // एक videoFrame जोड़ता है
    IVideoFrame videoFrame = pres.getSlides().get_Item(0).getShapes().addVideoFrame(
            10, 10, 427, 240, "https://www.youtube.com/embed/" + videoID);
    videoFrame.setPlayMode(VideoPlayModePreset.Auto);

    // थंबनेल लोड करता है
    String thumbnailUri = "http://img.youtube.com/vi/" + videoID + "/hqdefault.jpg";
    URL url;

    try {
        url = new URL(thumbnailUri);
        videoFrame.getPictureFormat().getPicture().setImage(pres.getImages().addImage(url.openStream()));
    } catch (MalformedURLException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

वीडियो कैप्शन प्रबंधित करें

Aspose.Slides आपको PowerPoint प्रस्तुतियों में वीडियो फ्रेमों के लिए क्लोज्ड कैप्शन प्रबंधित करने की सुविधा देता है। कैप्शन WebVTT प्रारूप में संग्रहीत होते हैं और उन्हें IVideoFrame.getCaptionTracks मेथड के माध्यम से एक्सपोज़ किया जाता है।

वीडियो फ्रेम में कैप्शन जोड़ें

  1. एक Presentation क्लास की इंस्टेंस बनाएं।
  2. प्रस्तुति में एक वीडियो जोड़ें।
  3. स्लाइड में एक IVideoFrame ऑब्जेक्ट जोड़ें।
  4. getCaptionTracks द्वारा लौटाए गए ICaptionsCollection का उपयोग करके एक WebVTT कैप्शन ट्रैक जोड़ें।
  5. संशोधित प्रस्तुति को सहेजें।
Presentation presentation = new Presentation();
try {
    byte[] videoData = Files.readAllBytes(Paths.get("video.mp4"));
    IVideo video = presentation.getVideos().addVideo(videoData);

    ISlide slide = presentation.getSlides().get_Item(0);
    IVideoFrame videoFrame = slide.getShapes().addVideoFrame(0, 0, 100, 100, video);

    // एक WebVTT फ़ाइल से नया कैप्शन ट्रैक जोड़ता है।
    videoFrame.getCaptionTracks().add("English", "track.vtt");

    presentation.save("video_with_captions.pptx", SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

ICaptionsCollection इंटरफ़ेस एक ओवरलोड भी प्रदान करता है जो आपको स्ट्रिम से कैप्शन जोड़ने देता है।

वीडियो फ्रेम से कैप्शन निकालें

  1. वीडियो वाली प्रस्तुति को लोड करें।
  2. लक्ष्य IVideoFrame ऑब्जेक्ट खोजें।
  3. ICaptionsCollection में कैप्शन ट्रैक्स के माध्यम से इटरैट करें।
  4. प्रत्येक कैप्शन ट्रैक को .vtt फ़ाइल में सहेजें।
Presentation presentation = new Presentation("video_with_captions.pptx");
try {
    ISlide slide = presentation.getSlides().get_Item(0);
    for (IShape shape : slide.getShapes()) {
        if (shape instanceof IVideoFrame) {
            IVideoFrame videoFrame = (IVideoFrame)shape;
            for (ICaptions captionTrack : videoFrame.getCaptionTracks()) {
                // कैप्शन ट्रैक को एक WebVTT फ़ाइल में सहेजता है।
                String filePath = captionTrack.getCaptionId().toString() + ".vtt";
                Files.write(Paths.get(filePath), captionTrack.getBinaryData());
            }
        }
    }
} finally {
    presentation.dispose();
}

प्रत्येक ICaptions ऑब्जेक्ट कैप्शन पहचानकर्ता, लेबल, बाइनरी डेटा, और कैप्शन टेक्स्ट को UTF-8 स्ट्रिंग के रूप में एक्सपोज़ करता है।

वीडियो फ्रेम से कैप्शन हटाएँ

  1. वीडियो वाली प्रस्तुति को लोड करें।
  2. लक्ष्य IVideoFrame ऑब्जेक्ट प्राप्त करें।
  3. ICaptionsCollection से कैप्शन ट्रैक्स हटाएँ।
  4. संशोधित प्रस्तुति को सहेजें।
Presentation presentation = new Presentation("video_with_captions.pptx");
try {
    ISlide slide = presentation.getSlides().get_Item(0);
    IVideoFrame videoFrame = (IVideoFrame)slide.getShapes().get_Item(0);

    // वीडियो फ्रेम से सभी कैप्शन हटाता है।
    videoFrame.getCaptionTracks().clear();

    presentation.save("video_without_captions.pptx", SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

यदि आपको केवल एक ही कैप्शन ट्रैक हटाना है, तो clear के बजाय remove या removeAt मेथड का उपयोग करें।

स्लाइड्स से वीडियो निकालें

वीडियो को स्लाइड्स में जोड़ने के अलावा, Aspose.Slides आपको प्रस्तुतियों में एम्बेडेड वीडियो निकालने की सुविधा भी देता है।

  1. वीडियो वाली प्रस्तुति को लोड करने के लिए एक Presentation क्लास की इंस्टेंस बनाएं।
  2. सभी ISlide ऑब्जेक्ट्स के माध्यम से इटरैट करें।
  3. सभी IShape ऑब्जेक्ट्स के माध्यम से इटरैट करके एक VideoFrame खोजें।
  4. वीडियो को डिस्क पर सहेजें।
// एक Presentation ऑब्जेक्ट बनाता है जो एक प्रस्तुति फ़ाइल का प्रतिनिधित्व करता है 
Presentation pres = new Presentation("VideoSample.pptx");
try {
    for (ISlide slide : pres.getSlides()) 
    {
        for (IShape shape : slide.getShapes()) 
        {
            if (shape instanceof VideoFrame) 
            {
                IVideoFrame vf = (IVideoFrame) shape;
                String type = vf.getEmbeddedVideo().getContentType();
                int ss = type.lastIndexOf('-');
                byte[] buffer = vf.getEmbeddedVideo().getBinaryData();

                // फाइल एक्सटेंशन प्राप्त करता है
                int charIndex = type.indexOf("/");
                type = type.substring(charIndex + 1);

                FileOutputStream fop = new FileOutputStream("testing2." + type);
                fop.write(buffer);
                fop.flush();
                fop.close();
            }
        }
    }
} catch (IOException e) {
} finally {
    if (pres != null) pres.dispose();
}

अक्सर पूछे जाने वाले प्रश्न

एक VideoFrame के लिए कौन से वीडियो प्लेबैक पैरामीटर बदले जा सकते हैं?

आप प्लेबैक मोड (ऑटो या क्लिक पर) और लूपिंग को नियंत्रित कर सकते हैं। ये विकल्प VideoFrame ऑब्जेक्ट की प्रॉपर्टीज़ के माध्यम से उपलब्ध हैं।

क्या वीडियो जोड़ने से PPTX फ़ाइल आकार प्रभावित होता है?

हाँ। जब आप एक स्थानीय वीडियो एम्बेड करते हैं, तो बाइनरी डेटा दस्तावेज़ में शामिल हो जाता है, इसलिए प्रस्तुति का आकार फ़ाइल आकार के अनुपात में बढ़ता है। जब आप एक ऑनलाइन वीडियो जोड़ते हैं, तो एक लिंक और थंबनेल एम्बेड होते हैं, जिससे आकार वृद्धि कम रहती है।

क्या मैं मौजूदा VideoFrame में वीडियो को उसकी स्थिति और आकार बदले बिना बदल सकता हूँ?

हाँ। आप फ्रेम के भीतर वीडियो कंटेंट को बदल सकते हैं जबकि आकार और जियोमेट्री समान रहती है; यह मौजूदा लेआउट में मीडिया को अपडेट करने का सामान्य परिदृश्य है।

क्या एम्बेडेड वीडियो का कंटेंट टाइप (MIME) निर्धारित किया जा सकता है?

हाँ। एक एम्बेडेड वीडियो का एक content type होता है जिसे आप पढ़ और उपयोग कर सकते हैं, उदाहरण के तौर पर जब उसे डिस्क पर सहेजना हो।