Konvertera PPTX till video i C++

Kraftfull plattformsoberoende C++ API för att konvertera PowerPoint till video med C++-kod

Konvertera PowerPoint till video med Aspose.Slides

Aspose.Slides for C++ är ett kraftfullt C++-bibliotek som används för att skapa, redigera och manipulera presentationer och även konvertera PowerPoint-presentationer till andra dokument och videor . I det här fallet, för att konvertera PowerPoint till video, måste du använda Aspose.Slides bredvid ffmpeg.

Så här fungerar PPTX till videokonverteringsprocessen: Aspose.Slides används för att generera en uppsättning bildrutor (från presentationsbilderna) och sedan används FFMpegCore (ffmpeg) för att skapa en video baserad på bildrutorna.

Hur man konverterar PPTX till video

  1. Installera Aspose.Slides for C++ genom att följa instruktionerna här . Ladda ner ffmpeg här.

  2. Lägg till sökväg till ffmpeg.exe till miljövariabeln PATH.

  3. Kopiera, klistra in och kör sedan C++ PowerPoint till videokod.

Konvertera PowerPoint till video i C++

Använd denna C++-kod för att konvertera PPTX till video:

C++-kod för att konvertera PowerPoint till video


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);

    // Adds a smile shape and then animates it
    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();
}

Andra omvandlingar som stöds

Du kan också konvertera PowerPoint till filer i andra format