जावा का उपयोग करके प्रस्तुतियों में वीडियो फ्रेम प्रबंधित करें
परिचय
प्रेजेंटेशन में सही जगह पर रखा गया वीडियो आपके संदेश को अधिक प्रभावशाली बना सकता है और आपके दर्शकों के साथ सहभागिता स्तर को बढ़ा सकता है।
PowerPoint दो तरीकों से प्रेजेंटेशन की एक स्लाइड में वीडियो जोड़ने की अनुमति देता है:
- स्थानीय वीडियो जोड़ें या एम्बेड करें (आपके मशीन पर संग्रहीत)
- ऑनलाइन वीडियो जोड़ें (YouTube जैसे वेब स्रोत से)।
प्रेजेंटेशन में वीडियो (वीडियो ऑब्जेक्ट) जोड़ने के लिए, Aspose.Slides IVideo इंटरफ़ेस, IVideoFrame इंटरफ़ेस, और अन्य संबंधित प्रकार प्रदान करता है।
संलग्न वीडियो फ्रेम बनाएं
यदि आप अपनी स्लाइड में जोड़ने वाला वीडियो फ़ाइल स्थानीय रूप से संग्रहीत है, तो आप अपने प्रेजेंटेशन में वीडियो एम्बेड करने के लिए एक वीडियो फ्रेम बना सकते हैं।
- Presentation क्लास का एक इंस्टेंस बनाएं।
- इंडेक्स के माध्यम से स्लाइड का रेफ़रेंस प्राप्त करें।
- एक IVideo ऑब्जेक्ट जोड़ें और वीडियो फ़ाइल पाथ पास करके प्रेजेंटेशन में वीडियो एम्बेड करें।
- एक IVideoFrame ऑब्जेक्ट जोड़ें ताकि वीडियो के लिए एक फ्रेम बनाया जा सके।
- परिवर्तित प्रेजेंटेशन को सहेजें।
यह Java कोड दिखाता है कि स्थानीय रूप से संग्रहीत वीडियो को प्रेजेंटेशन में कैसे जोड़ें:
// 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 और नवीनतम संस्करण प्रेजेंटेशन में YouTube वीडियो का समर्थन करते हैं। यदि आप जिस वीडियो का उपयोग करना चाहते हैं वह ऑनलाइन उपलब्ध है (जैसे YouTube), तो आप इसे अपनी प्रेजेंटेशन में वेब लिंक के माध्यम से जोड़ सकते हैं।
- Presentation क्लास का एक इंस्टेंस बनाएं
- इंडेक्स के माध्यम से स्लाइड का रेफ़रेंस प्राप्त करें।
- एक IVideo ऑब्जेक्ट जोड़ें और वीडियो का लिंक पास करें।
- वीडियो फ्रेम के लिए थंबनेल सेट करें।
- प्रेजेंटेशन को सहेजें।
यह Java कोड दिखाता है कि वेब से वीडियो को PowerPoint प्रेजेंटेशन की स्लाइड में कैसे जोड़ें:
// एक 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 आपको वीडियो के किस भाग को चलाया जाए यह नियंत्रण करने की अनुमति देता है, इसके लिए trim-from-start और trim-from-end मानों को IVideoFrame.setTrimFromStart और IVideoFrame.setTrimFromEnd के माध्यम से सेट किया जाता है। दोनों मान मिलीसेकंड में निर्दिष्ट होते हैं और क्रमशः वीडियो की शुरुआत और अंत से कितनी समय पहले छोड़ना है, यह परिभाषित करते हैं। ये सेटिंग्स प्रेजेंटेशन में वीडियो प्लेबैक सेटिंग्स बदलती हैं; वे एम्बेडेड वीडियो बाइनरी डेटा को नहीं काटती या संशोधित नहीं करतीं।
ट्रिम सेटिंग्स निर्धारित करें
एक वीडियो फ्रेम बनाने और उसकी ट्रिम सेटिंग्स निर्धारित करने के लिए:
- Presentation क्लास का एक इंस्टेंस बनाएं।
- प्रेजेंटेशन में एक IVideo ऑब्जेक्ट जोड़ें।
- स्लाइड में एक IVideoFrame ऑब्जेक्ट जोड़ें।
- IVideoFrame.setTrimFromStart और IVideoFrame.setTrimFromEnd के माध्यम से trim-from-start और trim-from-end मान सेट करें।
- परिवर्तित प्रेजेंटेशन को सहेजें।
निम्न कोड उदाहरण एम्बेडेड वीडियो के पहले 2.5 सेकंड और अंतिम सेकंड को प्लेबैक के दौरान स्किप करता है:
Presentation presentation = new Presentation();
try {
FileInputStream videoStream = new FileInputStream("video.mp4");
try {
IVideo video = presentation.getVideos().addVideo(
videoStream, LoadingStreamBehavior.ReadStreamAndRelease);
ISlide slide = presentation.getSlides().get_Item(0);
IVideoFrame videoFrame = slide.getShapes().addVideoFrame(50, 50, 640, 360, video);
videoFrame.setTrimFromStart(2500f);
videoFrame.setTrimFromEnd(1000f);
presentation.save("video_with_trim.pptx", SaveFormat.Pptx);
} finally {
videoStream.close();
}
} finally {
presentation.dispose();
}
ट्रिम सेटिंग्स पढ़ें
मौज़ूदा ट्रिम सेटिंग्स की जांच करने के लिए, एक प्रेजेंटेशन लोड करें, पहले स्लाइड पर शैप्स में से एक IVideoFrame ऑब्जेक्ट खोजें, और मानों को IVideoFrame.getTrimFromStart और IVideoFrame.getTrimFromEnd के माध्यम से पढ़ें।
निम्न कोड उदाहरण पहले स्लाइड पर पहला वीडियो फ्रेम खोजता है और उसकी ट्रिम सेटिंग्स को मिलीसेकंड में रिपोर्ट करता है:
Presentation presentation = new Presentation("video_with_trim.pptx");
try {
ISlide slide = presentation.getSlides().get_Item(0);
for (IShape shape : slide.getShapes()) {
if (shape instanceof IVideoFrame) {
IVideoFrame videoFrame = (IVideoFrame) shape;
float trimFromStart = videoFrame.getTrimFromStart();
float trimFromEnd = videoFrame.getTrimFromEnd();
System.out.println("Trim from start: " + trimFromStart + " ms");
System.out.println("Trim from end: " + trimFromEnd + " ms");
break;
}
}
} finally {
presentation.dispose();
}
वीडियो कैप्शन प्रबंधित करें
Aspose.Slides PowerPoint प्रेजेंटेशनों में वीडियो फ्रेम के लिए बंद कैप्शन को प्रबंधित करने की अनुमति देता है। कैप्शन WebVTT फॉर्मेट में संग्रहीत होते हैं और IVideoFrame.getCaptionTracks मेथड के माध्यम से उपलब्ध होते हैं।
वीडियो फ्रेम में कैप्शन जोड़ें
एक वीडियो फ्रेम में कैप्शन जोड़ने के लिए:
- Presentation क्लास का एक इंस्टेंस बनाएं।
- प्रेजेंटेशन में एक वीडियो जोड़ें।
- स्लाइड में एक IVideoFrame ऑब्जेक्ट जोड़ें।
- getCaptionTracks द्वारा लौटाई गई ICaptionsCollection का उपयोग करके WebVTT कैप्शन ट्रैक जोड़ें।
- परिवर्तित प्रेजेंटेशन को सहेजें।
निम्न कोड आपको दिखाता है कि वीडियो फ्रेम में कैप्शन कैसे जोड़ें:
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 इंटरफ़ेस में एक ओवरलोड भी उपलब्ध है जो स्ट्रीम से कैप्शन जोड़ने की अनुमति देता है।
वीडियो फ्रेम से कैप्शन निकालें
वीडियो फ्रेम से कैप्शन निकालने के लिए:
- वीडियो वाला प्रेजेंटेशन लोड करें।
- लक्षित IVideoFrame ऑब्जेक्ट खोजें।
- ICaptionsCollection में कैप्शन ट्रैक्स पर इटरेट करें।
- प्रत्येक कैप्शन ट्रैक को
.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 स्ट्रिंग के रूप में प्रदर्शित करता है।
वीडियो फ्रेम से कैप्शन हटाएं
वीडियो फ्रेम से कैप्शन हटाने के लिए:
- वीडियो वाला प्रेजेंटेशन लोड करें।
- लक्षित IVideoFrame ऑब्जेक्ट प्राप्त करें।
- ICaptionsCollection से कैप्शन ट्रैक्स हटाएं।
- परिवर्तित प्रेजेंटेशन को सहेजें।
निम्न कोड आपको दिखाता है कि वीडियो फ्रेम से सभी कैप्शन कैसे हटाएं:
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 आपको प्रेजेंटेशनों में एम्बेडेड वीडियो निकालने की भी सुविधा देता है।
- वीडियो वाला प्रेजेंटेशन लोड करने के लिए Presentation क्लास का एक इंस्टेंस बनाएं।
- सभी ISlide ऑब्जेक्ट्स पर इटरेट करें।
- सभी IShape ऑब्जेक्ट्स पर इटरेट करके एक VideoFrame खोजें।
- वीडियो को डिस्क पर सहेजें।
यह Java कोड आपको दिखाता है कि प्रेजेंटेशन स्लाइड पर वीडियो कैसे निकालें:
// एक 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 के लिए कौन-से वीडियो प्लेबैक पैरामीटर बदले जा सकते हैं?
आप playback mode (ऑटो या क्लिक पर) और looping को नियंत्रित कर सकते हैं। ये विकल्प VideoFrame ऑब्जेक्ट की प्रॉपर्टीज़ के माध्यम से उपलब्ध हैं।
क्या वीडियो जोड़ने से PPTX फ़ाइल आकार प्रभावित होता है?
हाँ। जब आप स्थानीय वीडियो एम्बेड करते हैं, तो बाइनरी डेटा दस्तावेज़ में शामिल हो जाता है, जिससे प्रेजेंटेशन का आकार फ़ाइल के आकार के अनुपात में बढ़ जाता है। जब आप ऑनलाइन वीडियो जोड़ते हैं, तो एक लिंक और थंबनेल एम्बेड होते हैं, इसलिए आकार वृद्धि कम होती है।
क्या मैं मौजूदा VideoFrame में वीडियो को उसकी स्थिति और आकार बदले बिना बदल सकता हूँ?
हाँ। आप फ्रेम के भीतर video content को बदल सकते हैं जबकि शेप की ज्योमेट्री बरकरार रहती है; यह मौजूदा लेआउट में मीडिया अपडेट करने का आम परिदृश्य है।
क्या एम्बेडेड वीडियो का कंटेंट टाइप (MIME) निर्धारित किया जा सकता है?
हाँ। एम्बेडेड वीडियो का एक content type होता है जिसे आप पढ़ सकते हैं और उपयोग कर सकते हैं, उदाहरण के लिए जब आप इसे डिस्क पर सहेजते हैं।