Konvertieren Sie PPT in Video

Im Vergleich zu einer PowerPoint-Präsentation (PPT oder PPTX) ist ein Video ( MP4) ist ein beliebteres Dateiformat und lässt sich auf den meisten Geräten und Plattformen einfacher öffnen. Wenn Sie Ihre PowerPoint-Präsentation in ein Video konvertieren, werden Ihre Inhalte daher leichter zugänglich und können von einem größeren Publikum geteilt werden.

Konvertieren Sie PPT in Video in C++

In diesem Artikel möchten wir Ihnen zeigen, wie Sie PPT in C++ in Video konvertieren.

Holen Sie sich zwei APIs zum Konvertieren von PPT in Video

Erstellen Sie ein Video in PowerPoint

Um eine PowerPoint-Präsentation programmgesteuert in ein Video umzuwandeln, benötigen Sie zunächst diese beiden APIs:

  • Aspose.Slides for C++. This API allows you to generate a set of frames based on the slides in your PowerPoint presentation. Aspose.Slides for C++ is a popular API for creating, editing, converting, and manipulating PowerPoint presentations (without Microsoft PowerPoint or Office). See this Installation article to install it.
  • ffmpeg. Mit dieser API können Sie ein Video basierend auf den generierten Folien erstellen. Laden Sie es [hier] herunter (https://ffmpeg.org/download.html).

Info: Vielleicht möchten Sie Aspose kostenlos PowerPoint zu Video-Konverter ausprobieren, da es sich um eine Live-Implementierung des beschriebenen PowerPoint zu Video-Vorgangs handelt In diesem Artikel. Mit dem Konverter können Benutzer beeindruckende Videos aus Präsentationen erstellen.

Konvertieren Sie PPT in Video in C++

  1. Fügen Sie den Pfad zu „ffmpeg.exe“ zur Umgebungsvariablen „PATH“ hinzu.
  2. Führen Sie den PowerPoint-to-Video-C++-Code aus.

Dieser C++-Code zeigt Ihnen, wie Sie PPT in Video konvertieren:

void OnFrameTick(System::SharedPtr<PresentationPlayer> sender, System::SharedPtr<FrameTickEventArgs> args)
{
    System::String fileName = System::String::Format(u"frame_{0}.png", sender->get_FrameIndex());
    args->GetFrame()->Save(fileName);
}

void Run()
{
    auto presentation = System::MakeObject<Presentation>();
    auto slide = presentation->get_Slide(0);

    // Fügt eine Lächelnform hinzu und animiert sie dann
    System::SharedPtr<IAutoShape> smile = slide->get_Shapes()->AddAutoShape(ShapeType::SmileyFace, 110.0f, 20.0f, 500.0f, 500.0f);
    auto sequence = slide->get_Timeline()->get_MainSequence();
    System::SharedPtr<IEffect> effectIn = sequence->AddEffect(smile, EffectType::Fly, EffectSubtype::TopLeft, EffectTriggerType::AfterPrevious);
    System::SharedPtr<IEffect> effectOut = sequence->AddEffect(smile, EffectType::Fly, EffectSubtype::BottomRight, EffectTriggerType::AfterPrevious);
    effectIn->get_Timing()->set_Duration(2.0f);
    effectOut->set_PresetClassType(EffectPresetClassType::Exit);

    const int32_t fps = 33;

    auto animationsGenerator = System::MakeObject<PresentationAnimationsGenerator>(presentation);
    auto player = System::MakeObject<PresentationPlayer>(animationsGenerator, fps);
    player->FrameTick += OnFrameTick;
    animationsGenerator->Run(presentation->get_Slides());

    const System::String ffmpegParameters = System::String::Format(
        u"-loglevel {0} -framerate {1} -i {2} -y -c:v {3} -pix_fmt {4} {5}",
        u"warning", m_fps, "frame_%d.png", u"libx264", u"yuv420p", "video.mp4");
    auto ffmpegProcess = System::Diagnostics::Process::Start(u"ffmpeg", ffmpegParameters);
    ffmpegProcess->WaitForExit();
}

Anwenden von Effekten und Animationen in Videos

Animationen und Effekte erhöhen die Attraktivität und den Lernerfolg von Präsentationen und Diashows. Sie haben den gleichen Effekt auf Videos, insbesondere auf solche, die aus PowerPoint-Präsentationen erstellt wurden. Daher möchten Sie möglicherweise Effekte in Videos verwenden. Aspose.Slides ermöglicht Ihnen genau das, indem es den PresentationAnimationsGenerator, [PresentationPlayer](https:// reference.aspose.com/slides/cpp/class/aspose.slides.export.presentationplayer/) und andere relevante Klassen und Typen.

Wenn Sie sich beispielsweise für die Verwendung von Animationen und Effekten in einem Video entscheiden, können Sie dem Code für die Präsentation auf folgende Weise eine weitere Folie und einen Übergang hinzufügen:

// Fügt eine Lächelnform hinzu und animiert sie

// ...

// Fügt eine neue Folie und einen animierten Übergang hinzu

System::SharedPtr<ISlide> newSlide = presentation->get_Slides()->AddEmptySlide(presentation->get_Slide(0)->get_LayoutSlide());

System::SharedPtr<IBackground> slideBackground = newSlide->get_Background();

slideBackground->set_Type(BackgroundType::OwnBackground);

auto fillFormat = slideBackground->get_FillFormat();

fillFormat->set_FillType(FillType::Solid);

fillFormat->get_SolidFillColor()->set_Color(System::Drawing::Color::get_Indigo());

newSlide->get_SlideShowTransition()->set_Type(TransitionType::Push);

Anschließend können Sie Animationseinstellungen auf Absätze von Objekten anwenden, um diese Objekte nacheinander erscheinen zu lassen (wobei die Verzögerung zwischen dem Erscheinen auf eine Sekunde eingestellt ist):

void OnFrameTick(System::SharedPtr<PresentationPlayer> sender, System::SharedPtr<FrameTickEventArgs> args)
{
    System::String fileName = System::String::Format(u"frame_{0}.png", sender->get_FrameIndex());
    args->GetFrame()->Save(fileName);
}

void Run()
{
    auto presentation = System::MakeObject<Presentation>();
    auto slide = presentation->get_Slide(0);

    // Fügt Text und Animationen hinzu
    System::SharedPtr<IAutoShape> autoShape = slide->get_Shapes()->AddAutoShape(ShapeType::Rectangle, 210.0f, 120.0f, 300.0f, 300.0f);
    System::SharedPtr<Paragraph> para1 = System::MakeObject<Paragraph>();
    para1->get_Portions()->Add(System::MakeObject<Portion>(u"Aspose Slides for C++"));
    System::SharedPtr<Paragraph> para2 = System::MakeObject<Paragraph>();
    para2->get_Portions()->Add(System::MakeObject<Portion>(u"convert PowerPoint Presentation with text to video"));

    System::SharedPtr<Paragraph> para3 = System::MakeObject<Paragraph>();
    para3->get_Portions()->Add(System::MakeObject<Portion>(u"paragraph by paragraph"));
    auto paragraphs = autoShape->get_TextFrame()->get_Paragraphs();
    paragraphs->Add(para1);
    paragraphs->Add(para2);
    paragraphs->Add(para3);
    paragraphs->Add(System::MakeObject<Paragraph>());

    auto sequence = slide->get_Timeline()->get_MainSequence();
    System::SharedPtr<IEffect> effect = sequence->AddEffect(para1, EffectType::Appear, EffectSubtype::None, EffectTriggerType::AfterPrevious);

    System::SharedPtr<IEffect> effect2 = sequence->AddEffect(para2, EffectType::Appear, EffectSubtype::None, EffectTriggerType::AfterPrevious);

    System::SharedPtr<IEffect> effect3 = sequence->AddEffect(para3, EffectType::Appear, EffectSubtype::None, EffectTriggerType::AfterPrevious);

    System::SharedPtr<IEffect> effect4 = sequence->AddEffect(para3, EffectType::Appear, EffectSubtype::None, EffectTriggerType::AfterPrevious);

    effect->get_Timing()->set_TriggerDelayTime(1.0f);
    effect2->get_Timing()->set_TriggerDelayTime(1.0f);
    effect3->get_Timing()->set_TriggerDelayTime(1.0f);
    effect4->get_Timing()->set_TriggerDelayTime(1.0f);

    // Konvertiert Frames in Video
    const int32_t fps = 33;

    auto animationsGenerator = System::MakeObject<PresentationAnimationsGenerator>(presentation);
    auto player = System::MakeObject<PresentationPlayer>(animationsGenerator, fps);
    
    player->FrameTick += OnFrameTick;
    animationsGenerator->Run(presentation->get_Slides());

    const System::String ffmpegParameters = System::String::Format(
        u"-loglevel {0} -framerate {1} -i {2} -y -c:v {3} -pix_fmt {4} {5}",
        u"warning", m_fps, "frame_%d.png", u"libx264", u"yuv420p", "video.mp4");
    auto ffmpegProcess = System::Diagnostics::Process::Start(u"ffmpeg", ffmpegParameters);
    ffmpegProcess->WaitForExit();
}

Holen Sie sich eine kostenlose Lizenz

Wenn Sie die Funktionen von Aspose.Slides ohne Einschränkungen ausprobieren möchten, empfehlen wir Ihnen den Erwerb einer kostenlosen temporären Lizenz.

Abschluss

Nachdem wir Sie durch die Vorgänge in diesem Artikel geführt haben, glauben wir, dass Sie jetzt wissen, wie Sie PPT in Video in C++ konvertieren

Weitere Informationen zu den [Funktionen] von Aspose.Slides (https://docs.aspose.com/slides/cpp/features-overview/) finden Sie in unserer Dokumentation. Wenn Sie Fragen haben, können Sie diese in unserem Forum posten.

Siehe auch