Конвертируйте презентации PowerPoint в видео на Python
Конвертировав вашу презентацию 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 |
|---|---|---|
| Панорама | ![]() |
![]() |
| Колесо Обозрения | ![]() |
![]() |
| Конвейер | ![]() |
![]() |
| Вращение | ![]() |
![]() |
| Орбита | ![]() |
![]() |
| Полет | ![]() |
![]() |

