تحويل PPT إلى فيديو

عندما تقوم بتحويل PowerPoint إلى فيديو ، فإنك تحصل على إمكانية وصول متزايدة وجمهور أكبر لعرضك التقديمي أو محتواك. تنسيق الفيديو MP4 هو تنسيق ملف شائع بشكل لا يصدق ، لذلك سيجد المزيد من الأشخاص أنه من الأسهل فتح أو تشغيل الفيديو مقارنة بـ [PPT](https : //docs.fileformat.com/presentation/ppt/) ملف. علاوة على ذلك ، يشاهد معظم الأشخاص مقاطع الفيديو ويستهلكونها أكثر من أشكال المحتوى الأخرى ، لذلك من المرجح أن يحصل الفيديو الخاص بك على جمهور أكبر مقارنة بالعرض التقديمي.

PowerPoint to Video بلغة Java

بحلول الوقت الذي تنتهي فيه من قراءة هذه المقالة ، ستكون قد تعلمت كيفية تحويل PowerPoint إلى فيديو في Java.

Java APIs لتحويل PPT إلى فيديو

قم بإنشاء فيديو في PowerPoint

لتحويل عرض PowerPoint تقديمي إلى فيديو برمجيًا ، فإنك تحتاج إلى:

  • API لإنشاء مجموعة من الإطارات من شرائح العرض التقديمي. نوصي باستخدام Aspose.Slides for Java.Aspose.Slides for Java هو واجهة برمجة تطبيقات شائعة لإنشاء عروض PowerPoint التقديمية وتحريرها وتحويلها ومعالجتها (بدون Microsoft PowerPoint أو Office).لتثبيت Aspose.Slides for Java ، راجع التثبيت.
  • وواجهة برمجة تطبيقات أخرى لإنشاء فيديو بناءً على الإطارات التي تم إنشاؤها. نوصي باستخدام ffmpeg (لجافا).

معلومات: قامت Aspose بتطوير [محول PowerPoint إلى فيديو] مجاني (https://products.aspose.app/slides/import/jpg-to-ppt) يسمح لك بإنشاء مقاطع فيديو مذهلة من العروض التقديمية. هذا المحول هو في الأساس تنفيذ مباشر لعملية تحويل PowerPoint إلى فيديو.

تحويل PPT إلى فيديو بجافا

  1. أضف هذا إلى ملف POM الخاص بك:
   <dependency>
     <groupId>net.bramp.ffmpeg</groupId>
     <artifactId>ffmpeg</artifactId>
     <version>0.7.0</version>
   </dependency>
  1. قم بتنزيل ffmpeg هنا.

  2. قم بتشغيل PowerPoint to video Java code.

يوضح لك كود Java هذا كيفية تحويل PPT إلى فيديو:

Presentation presentation = new Presentation();
try {
    // يضيف شكل ابتسامة ثم ينشطها
    IAutoShape smile = presentation.getSlides().get_Item(0).getShapes().addAutoShape(ShapeType.SmileyFace, 110, 20, 500, 500);
    ISequence mainSequence = presentation.getSlides().get_Item(0).getTimeline().getMainSequence();
    IEffect effectIn = mainSequence.addEffect(smile, EffectType.Fly, EffectSubtype.TopLeft, EffectTriggerType.AfterPrevious);
    IEffect effectOut = mainSequence.addEffect(smile, EffectType.Fly, EffectSubtype.BottomRight, EffectTriggerType.AfterPrevious);
    effectIn.getTiming().setDuration(2f);
    effectOut.setPresetClassType(EffectPresetClassType.Exit);

    final int fps = 33;
    ArrayList<String> frames = new ArrayList<String>();

    PresentationAnimationsGenerator animationsGenerator = new PresentationAnimationsGenerator(presentation);
    try
    {
        PresentationPlayer player = new PresentationPlayer(animationsGenerator, fps);
        try {
            player.setFrameTick((sender, arguments) ->
            {
                try {
                    String frame = String.format("frame_%04d.png", sender.getFrameIndex());
                    ImageIO.write(arguments.getFrame(), "PNG", new java.io.File(frame));
                    frames.add(frame);
                } catch (IOException e) {
                    throw new RuntimeException(e);
                }
            });
            animationsGenerator.run(presentation.getSlides());
        } finally {
            if (player != null) player.dispose();
        }
    } finally {
        if (animationsGenerator != null) animationsGenerator.dispose();
    }

    // تكوين مجلد ثنائيات ffmpeg. انظر هذه الصفحة: https://github.com/rosenbjerg/FFMpegCore#installation
    FFmpeg ffmpeg = new FFmpeg("path/to/ffmpeg");
    FFprobe ffprobe = new FFprobe("path/to/ffprobe");

    FFmpegBuilder builder = new FFmpegBuilder()
            .addExtraArgs("-start_number", "1")
            .setInput("frame_%04d.png")
            .addOutput("output.avi")
            .setVideoFrameRate(FFmpeg.FPS_24)
            .setFormat("avi")
            .done();

    FFmpegExecutor executor = new FFmpegExecutor(ffmpeg, ffprobe);
    executor.createJob(builder).run();
} catch (IOException e) {
    e.printStackTrace();
}

تطبيق المؤثرات والرسوم المتحركة في الفيديو

يتيح لك PowerPoint تطبيق الرسوم المتحركة على محتويات عروضك التقديمية وأيضًا استخدام الانتقالات بين الشرائح. هذه التأثيرات تجعل العرض (خاصة في شكل عرض شرائح) أكثر جاذبية وإثارة للاهتمام. عندما تقوم بتحويل عرض PowerPoint تقديمي إلى فيديو ، فمن المنطقي استخدام تأثيرات مماثلة في الفيديو الناتج و Aspose. تتيح لك الشرائح القيام بذلك بدقة.

لتوضيح استخدام التأثيرات والرسوم المتحركة في مقطع فيديو ، دعنا نضيف شريحة أخرى وننتقل إلى رمز العرض التقديمي في القسم السابق بهذه الطريقة:

// يضيف شكل الابتسامة وينعشها

// ...

// يضيف شريحة جديدة وانتقالًا متحركًا

ISlide newSlide = presentation.getSlides().addEmptySlide(presentation.getSlides().get_Item(0).getLayoutSlide());

newSlide.getBackground().setType(BackgroundType.OwnBackground);

newSlide.getBackground().getFillFormat().setFillType(FillType.Solid);

newSlide.getBackground().getFillFormat().getSolidFillColor().setColor(Color.MAGENTA);

newSlide.getSlideShowTransition().setType(TransitionType.Push);

ثم نقوم بتحريك الفقرات على الكائنات لجعل تلك الكائنات تظهر واحدة تلو الأخرى (مع ضبط التأخير بين المظاهر على ثانية):

Presentation presentation = new Presentation();
try {
    // يضيف النص والرسوم المتحركة
    IAutoShape autoShape = presentation.getSlides().get_Item(0).getShapes().addAutoShape(ShapeType.Rectangle, 210, 120, 300, 300);
    Paragraph para1 = new Paragraph();
    para1.getPortions().add(new Portion("Aspose Slides for Java"));
    Paragraph para2 = new Paragraph();
    para2.getPortions().add(new Portion("convert PowerPoint Presentation with text to video"));

    Paragraph para3 = new Paragraph();
    para3.getPortions().add(new Portion("paragraph by paragraph"));
    IParagraphCollection paragraphCollection = autoShape.getTextFrame().getParagraphs();
    paragraphCollection.add(para1);
    paragraphCollection.add(para2);
    paragraphCollection.add(para3);
    paragraphCollection.add(new Paragraph());

    ISequence mainSequence = presentation.getSlides().get_Item(0).getTimeline().getMainSequence();
    IEffect effect1 = mainSequence.addEffect(para1, EffectType.Appear, EffectSubtype.None, EffectTriggerType.AfterPrevious);
    IEffect effect2 = mainSequence.addEffect(para2, EffectType.Appear, EffectSubtype.None, EffectTriggerType.AfterPrevious);
    IEffect effect3 = mainSequence.addEffect(para3, EffectType.Appear, EffectSubtype.None, EffectTriggerType.AfterPrevious);
    IEffect effect4 = mainSequence.addEffect(para3, EffectType.Appear, EffectSubtype.None, EffectTriggerType.AfterPrevious);

    effect1.getTiming().setTriggerDelayTime(1f);
    effect2.getTiming().setTriggerDelayTime(1f);
    effect3.getTiming().setTriggerDelayTime(1f);
    effect4.getTiming().setTriggerDelayTime(1f);

    final int fps = 33;
    ArrayList<String> frames = new ArrayList<String>();

    PresentationAnimationsGenerator animationsGenerator = new PresentationAnimationsGenerator(presentation);
    try
    {
        PresentationPlayer player = new PresentationPlayer(animationsGenerator, fps);
        try {
            player.setFrameTick((sender, arguments) ->
            {
                try {
                    String frame = String.format("frame_%04d.png", sender.getFrameIndex());
                    ImageIO.write(arguments.getFrame(), "PNG", new java.io.File(frame));
                    frames.add(frame);
                } catch (IOException e) {
                    throw new RuntimeException(e);
                }
            });
            animationsGenerator.run(presentation.getSlides());
        } finally {
            if (player != null) player.dispose();
        }
    } finally {
        if (animationsGenerator != null) animationsGenerator.dispose();
    }

    // تكوين مجلد ثنائيات ffmpeg. انظر هذه الصفحة: https://github.com/rosenbjerg/FFMpegCore#installation
    FFmpeg ffmpeg = new FFmpeg("path/to/ffmpeg");
    FFprobe ffprobe = new FFprobe("path/to/ffprobe");

    FFmpegBuilder builder = new FFmpegBuilder()
            .addExtraArgs("-start_number", "1")
            .setInput("frame_%04d.png")
            .addOutput("output.avi")
            .setVideoFrameRate(FFmpeg.FPS_24)
            .setFormat("avi")
            .done();

    FFmpegExecutor executor = new FFmpegExecutor(ffmpeg, ffprobe);
    executor.createJob(builder).run();
} catch (IOException e) {
    e.printStackTrace();
}

احصل على رخصة مجانية

إذا كنت تتطلع إلى تجربة ميزات Aspose.Slides دون قيود ، فننصحك بالحصول على ترخيص مؤقت مجاني.

خاتمة

نعتقد أنك تعرف الآن كيفية تحويل PPT إلى فيديو وأيضًا تطبيق الرسوم المتحركة والانتقالات والتأثيرات الأخرى في عملك.

لمعرفة المزيد حول Aspose.Slides features ، راجع التوثيق.إذا كانت لديك أسئلة ، فيمكنك نشرها على المنتدى.

أنظر أيضا