Конвертация 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 |
---|---|---|
Панорама | ||
Колесо Обозрения | ||
Конвейер | ||
Вращение | ||
Орбита | ||
Полет |