Chuyển đổi PPTX thành video trong C++

API C++ đa nền tảng mạnh mẽ để chuyển đổi PowerPoint sang video bằng mã C++

Chuyển đổi PowerPoint sang video bằng Aspose.Slides

Aspose.Slides for C++ là một thư viện C++ mạnh mẽ được sử dụng để tạo, chỉnh sửa và thao tác với bản trình bày, đồng thời chuyển đổi bản trình bày PowerPoint sang các tài liệu và video khác . Trong trường hợp này, để chuyển đổi PowerPoint thành video, bạn cần sử dụng Aspose.Slides cùng với ffmpeg.

Đây là cách hoạt động của quá trình chuyển đổi PPTX sang video: Aspose.Slides được sử dụng để tạo một tập hợp các khung (từ các trang trình bày) và sau đó FFMpegCore (ffmpeg) được sử dụng để tạo video dựa trên các khung.

Cách chuyển đổi PPTX sang video

  1. Cài đặt Aspose.Slides cho C++ bằng cách làm theo hướng dẫn tại đây . Tải xuống ffmpeg tại đây.

  2. Thêm đường dẫn đến ffmpeg.exe vào biến môi trường PATH.

  3. Sao chép, dán rồi chạy mã C++ PowerPoint to video.

Chuyển PowerPoint sang video trong C++

Sử dụng mã C++ này để chuyển đổi PPTX thành video:

Mã C++ để chuyển đổi PowerPoint thành 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();
}

Các chuyển đổi được hỗ trợ khác

Bạn cũng có thể chuyển đổi PowerPoint sang các tệp ở các định dạng khác