המרת PPT לווידאו

בהשוואה למצגת PowerPoint (PPT או PPTX), סרטון ( MP4) הוא פורמט קובץ פופולרי יותר וקל יותר לפתיחה ברוב המכריע של המכשירים והפלטפורמות. לכן, כאשר אתה ממיר את ה-PowerPoint שלך לווידאו, התוכן שלך הופך לנגיש יותר וניתן לשיתוף בקרב קהל גדול יותר.

המרת PPT לווידאו ב-C++

במאמר זה, אנו מתכוונים להראות לך כיצד להמיר PPT לווידאו ב-C++.

קבל שני ממשקי API להמרת PPT לווידאו

צור וידאו ב- PowerPoint

ראשית, כדי להמיר מצגת PowerPoint לסרטון באופן פרוגרמטי, עליך להשיג את שני ממשקי ה-API הבאים:

  • Aspose.Slides עבור 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. API זה מאפשר לך ליצור סרטון על סמך השקופיות שנוצרו. הורד אותו כאן.

מידע: ייתכן שתרצה לבדוק את Aspose בחינם ממיר PowerPoint לווידאו מכיוון שהוא יישום חי של פעולת PowerPoint לווידאו שתוארה במאמר זה. הממיר מאפשר למשתמשים ליצור סרטונים מדהימים ממצגות.

המרת PPT לווידאו ב-C++

  1. הוסף נתיב אל ffmpeg.exe למשתנה הסביבה PATH.
  2. הפעל את PowerPoint לקוד וידאו C++.

קוד C++ זה מראה לך כיצד להמיר PPT לווידאו:

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

    // מוסיף צורת חיוך ולאחר מכן מחייה אותו
    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();
}

החל אפקטים ואנימציות בווידאו

אנימציות ואפקטים משפרים את שיעורי הערעור וההתלהבות של מצגות ומצגות. יש להם את אותה השפעה על סרטונים, במיוחד אלה שנוצרו ממצגות PowerPoint, אז אולי כדאי להשתמש באפקטים בסרטונים. Aspose.Slides מאפשר לך לעשות בדיוק את זה על ידי אספקת PresentationAnimationsGenerator, [PresentationPlayer](https:// reference.aspose.com/slides/cpp/class/aspose.slides.export.presentationplayer/), ומחלקות וסוגים רלוונטיים אחרים.

לדוגמה, אם תחליט להשתמש באנימציות ואפקטים בסרטון, תוכל להוסיף שקופית נוספת ומעבר לקוד של המצגת בדרך זו:

// מוסיף צורת חיוך ומפעיל אותו

// ...

// מוסיף שקופית חדשה ומעבר מונפש

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

לאחר מכן תוכל להחיל הגדרות הנפשה על פסקאות על אובייקטים כדי לגרום לאובייקטים אלה להופיע בזה אחר זה (עם ההשהיה בין ההופעות מוגדר לשניה):

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

    // מוסיף טקסט ואנימציות
    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);

    // ממיר מסגרות לווידאו
    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();
}

קבל רישיון חינם

אם אתה מחפש לנסות את תכונות Aspose.Slides ללא הגבלה, אנו ממליצים לך לקבל רישיון זמני בחינם.

סיכום

לאחר שהדרכתי אותך דרך הפעולות במאמר זה, אנו מאמינים שאתה יודע כעת כיצד להמיר PPT לווידאו ב-C++

למידע נוסף על Aspose.Slides features, עיין בתיעוד/). אם יש לך שאלות, תוכל לפרסם אותן ב[פורום] שלנו (https://forum.aspose.com/c/slides/).

ראה גם