Конвертация PowerPoint в Видео
Конвертировав вашу презентацию PowerPoint в видео, вы получите
- Увеличение доступности: Все устройства (независимо от платформы) по умолчанию имеют встроенные видеоплееры, в отличие от приложений для открытия презентаций, поэтому пользователям легче открывать или воспроизводить видео.
- Большее охват: С помощью видео вы можете достичь широкой аудитории и донести до нее информацию, которая в противном случае могла бы показаться скучной в презентации. Большинство опросов и статистики предполагают, что люди больше смотрят и потребляют видео, чем другие формы контента, и обычно предпочитают такой контент.
Конвертация PowerPoint в Видео с помощью Aspose.Slides
В Aspose.Slides 24.4 мы реализовали поддержку конвертации презентаций в видео.
- Используйте Aspose.Slides для генерации набора кадров (из слайдов презентации), соответствующих определенному FPS (кадров в секунду)
- Используйте стороннюю утилиту, такую как ffmpeg, для создания видео на основе кадров.
Конвертация PowerPoint в Видео
- Используйте команду pip install для добавления Aspose.Slides в ваш проект:
- выполните
pip install Aspose.Slides==24.4.0
- выполните
- Скачайте ffmpeg здесь или установите через менеджер пакетов.
- Убедитесь, что ffmpeg в
PATH
, в противном случае запустите ffmpeg, используя полный пут к бинарнику (например,C:\ffmpeg\ffmpeg.exe
на Windows или/opt/ffmpeg/ffmpeg
на Linux) - Запустите код конвертации PowerPoint в видео.
Этот код на Python демонстрирует, как конвертировать презентацию (содержащую фигуру и два анимационных эффекта) в видео:
import aspose.slides as slides
import subprocess
with slides.Presentation() as presentation:
smile = presentation.slides[0].shapes.add_auto_shape(slides.ShapeType.SMILEY_FACE, 110, 20, 500, 500)
effect_in = presentation.slides[0].timeline.main_sequence.add_effect(smile, slides.animation.EffectType.FLY, slides.animation.EffectSubtype.TOP_LEFT, slides.animation.EffectTriggerType.AFTER_PREVIOUS)
effect_out = presentation.slides[0].timeline.main_sequence.add_effect(smile, slides.animation.EffectType.FLY, slides.animation.EffectSubtype.BOTTOM_RIGHT, slides.animation.EffectTriggerType.AFTER_PREVIOUS)
effect_in.timing.duration = 2
effect_out.preset_class_type = slides.animation.EffectPresetClassType.EXIT
fps = 33
with slides.export.PresentationEnumerableFramesGenerator(presentation, fps) as frames_stream:
for frame_args in frames_stream.enumerate_frames(presentation.slides):
frame = "frame_{:04d}.png".format(frame_args.frames_generator.frame_index)
frame_args.get_frame().save(frame)
cmd_line = ["ffmpeg", "-r", str(fps), "-i", "frame_%04d.png", "-y", "-s", "720x540", "-pix_fmt", "yuv420p", "smile.webm"]
subprocess.call(cmd_line)
Виде efekty
Вы можете применять анимации к объектам на слайдах и использовать переходы между слайдами.
Анимации и переходы делают слайд-шоу более увлекательными и интересными — и они делают то же самое и для видео. Давайте добавим еще один слайд и переход к коду для предыдущей презентации:
import aspose.pydrawing as drawing
# Добавляет фигуру смайла и анимирует ее
# ...
# Добавляет новый слайд и анимированный переход
new_slide = presentation.slides.add_empty_slide(presentation.slides[0].layout_slide)
new_slide.background.type = slides.BackgroundType.OWN_BACKGROUND
new_slide.background.fill_format.fill_type = slides.FillType.SOLID
new_slide.background.fill_format.solid_fill_color.color = drawing.Color.indigo
new_slide.slide_show_transition.type = slides.TransitionType.PUSH
Aspose.Slides также поддерживает анимацию текстов. Так что мы анимируем абзацы на объектах, которые будут появляться один за другим (с задержкой, установленной на одну секунду):
import aspose.slides as slides
import subprocess
with slides.Presentation() as presentation:
# Добавляет текст и анимации
auto_shape = presentation.slides[0].shapes.add_auto_shape(slides.ShapeType.RECTANGLE, 210, 120, 300, 300)
para1 = slides.Paragraph()
para1.portions.add(slides.Portion("Aspose Slides для .NET"))
para2 = slides.Paragraph()
para2.portions.add(slides.Portion("конвертация презентации PowerPoint с текстом в видео"))
para3 = slides.Paragraph()
para3.portions.add(slides.Portion("абзац за абзацем"))
auto_shape.text_frame.paragraphs.add(para1)
auto_shape.text_frame.paragraphs.add(para2)
auto_shape.text_frame.paragraphs.add(para3)
auto_shape.text_frame.paragraphs.add(slides.Paragraph())
effect = presentation.slides[0].timeline.main_sequence.add_effect(para1, slides.animation.EffectType.APPEAR, slides.animation.EffectSubtype.NONE, slides.animation.EffectTriggerType.AFTER_PREVIOUS)
effect2 = presentation.slides[0].timeline.main_sequence.add_effect(para2, slides.animation.EffectType.APPEAR, slides.animation.EffectSubtype.NONE, slides.animation.EffectTriggerType.AFTER_PREVIOUS)
effect3 = presentation.slides[0].timeline.main_sequence.add_effect(para3, slides.animation.EffectType.APPEAR, slides.animation.EffectSubtype.NONE, slides.animation.EffectTriggerType.AFTER_PREVIOUS)
effect4 = presentation.slides[0].timeline.main_sequence.add_effect(para3, slides.animation.EffectType.APPEAR, slides.animation.EffectSubtype.NONE, slides.animation.EffectTriggerType.AFTER_PREVIOUS)
effect.timing.trigger_delay_time = 1
effect2.timing.trigger_delay_time = 1
effect3.timing.trigger_delay_time = 1
effect4.timing.trigger_delay_time = 1
# Конвертирует кадры в видео
fps = 33
with slides.export.PresentationEnumerableFramesGenerator(presentation, fps) as frames_stream:
for frame_args in frames_stream.enumerate_frames(presentation.slides):
frame = "frame_{:04d}.png".format(frame_args.frames_generator.frame_index)
frame_args.get_frame().save(frame)
cmd_line = ["ffmpeg", "-r", str(fps), "-i", "frame_%04d.png", "-y", "-s", "720x540", "-pix_fmt", "yuv420p", "text_animation.webm"]
subprocess.call(cmd_line)
Классы Конвертации Видео
Чтобы позволить вам выполнять задачи по конвертации PowerPoint в видео, Aspose.Slides предоставляет PresentationEnumerableAnimationsGenerator.
PresentationEnumerableAnimationsGenerator позволяет вам установить размер кадра для видео (которое будет создано позже) и значение FPS (кадров в секунду) через его конструктор. Если вы передаете экземпляр презентации, будет использоваться Presentation.SlideSize
.
Чтобы заставить все анимации в презентации воспроизводиться одновременно, используйте метод PresentationEnumerableAnimationsGenerator.enumerate_frames. Этот метод принимает коллекцию слайдов и позволяет последовательно получать EnumerableFrameArgs. Затем EnumerableFrameArgs.get_frame() позволяет вам получить кадр видео:
import aspose.slides as slides
with slides.Presentation("animated.pptx") as presentation:
fps = 33
with slides.export.PresentationEnumerableFramesGenerator(presentation, fps) as frames_stream:
for frame_args in frames_stream.enumerate_frames(presentation.slides):
frame_args.get_frame().save(f"frame_{frame_args.frames_generator.frame_index:04d}.png")
Затем сгенерированные кадры могут быть собраны для создания видео. Смотрите раздел Конвертация PowerPoint в Видео.
Поддерживаемые Анимации и Эффекты
Входные:
Тип Анимации | Aspose.Slides | PowerPoint |
---|---|---|
Появление | ![]() |
![]() |
Затухание | ![]() |
![]() |
Влет | ![]() |
![]() |
Плавный Влет | ![]() |
![]() |
Разделение | ![]() |
![]() |
Стирание | ![]() |
![]() |
Фигура | ![]() |
![]() |
Колесо | ![]() |
![]() |
Случайные Полосы | ![]() |
![]() |
Увеличение и Поворот | ![]() |
![]() |
Масштабирование | ![]() |
![]() |
Поворот | ![]() |
![]() |
Упругость | ![]() |
![]() |
Усиление:
Тип Анимации | Aspose.Slides | PowerPoint |
---|---|---|
Пульсация | ![]() |
![]() |
Цветовая Пульсация | ![]() |
![]() |
Качение | ![]() |
![]() |
Вращение | ![]() |
![]() |
Увеличение/Уменьшение | ![]() |
![]() |
Десатурация | ![]() |
![]() |
Потемнение | ![]() |
![]() |
Осветление | ![]() |
![]() |
Прозрачность | ![]() |
![]() |
Цвет Объекта | ![]() |
![]() |
Дополнительный Цвет | ![]() |
![]() |
Цвет Линии | ![]() |
![]() |
Цвет Заполнения | ![]() |
![]() |
Выход:
Тип Анимации | Aspose.Slides | PowerPoint |
---|---|---|
Исчезление | ![]() |
![]() |
Затухание | ![]() |
![]() |
Улетающий Эффект | ![]() |
![]() |
Плавный Улет | ![]() |
![]() |
Разделение | ![]() |
![]() |
Стирание | ![]() |
![]() |
Фигура | ![]() |
![]() |
Случайные Полосы | ![]() |
![]() |
Уменьшение и Поворот | ![]() |
![]() |
Масштабирование | ![]() |
![]() |
Поворот | ![]() |
![]() |
Упругость | ![]() |
![]() |
Движущиеся Пути:
Тип Анимации | Aspose.Slides | PowerPoint |
---|---|---|
Линии | ![]() |
![]() |
Арки | ![]() |
![]() |
Повороты | ![]() |
![]() |
Формы | ![]() |
![]() |
Петли | ![]() |
![]() |
Пользовательская Дорога | ![]() |
![]() |
Поддерживаемые Эффекты Перехода Слайдов
Субтитры:
Тип Анимации | Aspose.Slides | PowerPoint |
---|---|---|
Морф | ![]() |
![]() |
Затухание | ![]() |
![]() |
Толчок | ![]() |
![]() |
Тянущий Эффект | ![]() |
![]() |
Стирание | ![]() |
![]() |
Разделение | ![]() |
![]() |
Раскрытие | ![]() |
![]() |
Случайные Полосы | ![]() |
![]() |
Фигура | ![]() |
![]() |
Открытие | ![]() |
![]() |
Закрытие | ![]() |
![]() |
Вспышка | ![]() |
![]() |
Полосы | ![]() |
![]() |
Захватывающие:
Тип Анимации | Aspose.Slides | PowerPoint |
---|---|---|
Падение | ![]() |
![]() |
Драпировка | ![]() |
![]() |
Занавес | ![]() |
![]() |
Ветер | ![]() |
![]() |
Престиж | ![]() |
![]() |
Фрактура | ![]() |
![]() |
Давление | ![]() |
![]() |
Сдергивание | ![]() |
![]() |
Сгибание Страницы | ![]() |
![]() |
Самолет | ![]() |
![]() |
Оригами | ![]() |
![]() |
Растворение | ![]() |
![]() |
Шашечница | ![]() |
![]() |
Заслон | ![]() |
![]() |
Часы | ![]() |
![]() |
Рябь | ![]() |
![]() |
Сот | ![]() |
![]() |
Сверкание | ![]() |
![]() |
Вихрь | ![]() |
![]() |
Резка | ![]() |
![]() |
Переключение | ![]() |
![]() |
Переворот | ![]() |
![]() |
Галерея | ![]() |
![]() |
Куб | ![]() |
![]() |
Двери | ![]() |
![]() |
Коробка | ![]() |
![]() |
Гребень | ![]() |
![]() |
Масштабирование | ![]() |
![]() |
Случайный | ![]() |
![]() |
Динамическое Содержимое:
Тип Анимации | Aspose.Slides | PowerPoint |
---|---|---|
Панорама | ![]() |
![]() |
Колесо Обозрения | ![]() |
![]() |
Конвейер | ![]() |
![]() |
Вращение | ![]() |
![]() |
Орбита | ![]() |
![]() |
Полет | ![]() |
![]() |