Создание видео из фото (FFMPEG): эффекты, аудио, бегущая строка

daVinchi

Client
Регистрация
11.01.2019
Сообщения
59
Благодарностей
66
Баллы
18
VideoCreatorZP – шаблон ZennoPoster для создания видео (слайд-шоу) из изображений с различными эффектами.

Функционал шаблона:
  • генерация уникальных видео из изображений;
  • автоматическая подготовка изображений для генерации слайд-шоу средствами FFmpeg;
  • выбор разрешения итогового видео – от 240p до HD;
  • наложение бегущей строки (выбор шрифта, его цвета, размера, скорости движения, цвета и прозрачности фона);
  • наложение звука на видеоряд (аудиофайл обрезается под длину сгенерированного слайд-шоу);
  • наложение видео на mp3-файл (аудиофайл не обрезается, слайды распределяются равномерно в зависимости от его продолжительности);
  • выбор количества используемых картинок и их продолжительности показа в видео, а также возможность их случайного выбора;
  • возможность задать порядок использования картинок в слайд-шоу.

Состав шаблона:
  1. VideoCreatorZP.zp – шаблон ZennoPoster.
  2. creator.zip – архив рабочей директории с примерами исходных файлов и FFMPEG-утилитой.

Структура рабочей директории проекта:
Чтобы избежать проблем с кириллицей в файловых путях, рабочую директорию проекта лучше разместить в корневой директории компьютера, например на диске C:\.
c:\creator\_program\ffmpeg.exe- утилита командной строки для работы с видео
c:\creator\_audio\- папка для mp3-файлов
c:\creator\_fonts\- папка для шрифтов, используемых для генерации бегущей строки
c:\creator\_ticker\ticker.txt- txt-файл (содержит список текстов для бегущей строки)
c:\creator\img\- папка с изображениями
c:\creator\video\- папка для итоговых видео


Несколько пояснений по настройкам:
  • если нужно использовать точное количество картинок – указать в настройках, например, 7-7
  • «Последовательность использования изображений» – при выборе «По порядку» изображения, используемые в слайд-шоу, будут отсортированы по порядку нумерации и(или) по алфавиту.
  • при включении чекбокса «Наложение видео на mp3» – указанное в настройках количество картинок будет равномерно распределено по всей продолжительности аудиофайла (mp3-файл не будет обрезан под сгенерированный видеоряд).

Выбор эффектов:
  • режим «Слайд-шоу» (простая склейка картинок) – самая быстрая работа шаблона, но бегущая строка в этом режиме работать не будет
  • режим «Случайный эффект» - оптимальный вариант. Можно выбрать варианты перехода в местах «склейки» картинок. Выбранные в настройках эффекты будут применяться случайным образом. Бегущая строка работает.
  • фильтр «Масштабирование» - визуально красиво, но много времени занимает генерация видео.

settings-1.jpg


settings-2.jpg



 

Вложения

Для запуска проектов требуется программа ZennoPoster.
Это основное приложение, предназначенное для выполнения автоматизированных шаблонов действий (ботов).
Подробнее...

Для того чтобы запустить шаблон, откройте программу ZennoPoster. Нажмите кнопку «Добавить», и выберите файл проекта, который хотите запустить.
Подробнее о том, где и как выполняется проект.

Последнее редактирование:

heks

Client
Регистрация
01.10.2013
Сообщения
1 076
Благодарностей
256
Баллы
83
А куда интересно можно это применить )))
 

daVinchi

Client
Регистрация
11.01.2019
Сообщения
59
Благодарностей
66
Баллы
18
А куда интересно можно это применить )))
Ну, например:
- дорвейные YouTube-каналы - цель привлечь трафик на партнерский оффер. Ниши любые - товарка, дейтинг, казино, услуги, сервисы;
- перелив аудитории с ютуб в ту же телегу и куда душе угодно;
- SEO - ссылки, привлечение трафика на сайт, доп.ценность контента;
- попадались подобные слайд-шоу на Ozon.

При этом трафик идет как с самого YouTube, так и с поисковиков (Google, Yandex и т.д.).
 

clocky

Client
Регистрация
26.09.2019
Сообщения
334
Благодарностей
45
Баллы
28
Почему то выбивает шаблон ошибку,
123:
Выполнение действия CSharp OwnCode: Масштабирование. Индекс за пределами диапазона. Индекс должен быть положительным числом, а его размер не должен превышать размер коллекции.
Имя параметра: index
или
Выполнение действия CSharp OwnCode: Формирование файла настроек. Индекс за пределами диапазона. Индекс должен быть положительным числом, а его размер не должен превышать размер коллекции.
Имя параметра: index
И просто цены бы не было, если бы была возможность делать вертикальные и горизонтальные видео и если картинки другого размера, то накладывать 2 эффекта scale и blur!
 
Последнее редактирование:

daVinchi

Client
Регистрация
11.01.2019
Сообщения
59
Благодарностей
66
Баллы
18
Почему то выбивает шаблон ошибку
Вероятнее всего, что-то не так указано во "Входных настройках".
"Количество изображений для генерации" и "Длительность слайда" указывается диапазоном. Например: 3-10, 4-8 или 5-5

Если проблема не уйдет, добавлю в шаблон доп. проверки или скинь скриншот входных настроек - посмотрю.
 

clocky

Client
Регистрация
26.09.2019
Сообщения
334
Благодарностей
45
Баллы
28

daVinchi

Client
Регистрация
11.01.2019
Сообщения
59
Благодарностей
66
Баллы
18

Mavrikman

Client
Регистрация
21.01.2020
Сообщения
85
Благодарностей
18
Баллы
8
Привет, а есть возможность бегущую строку на отдельное видео наложить?
 

daVinchi

Client
Регистрация
11.01.2019
Сообщения
59
Благодарностей
66
Баллы
18
есть возможность бегущую строку на отдельное видео наложить?
На основе основного, сделал небольшой шаблон на C#.

Наложение бегущей строки и фонового звука на mp4-видеофайл

Для работы шаблона в рабочей директории должны быть:
c:\creator\_program\ffmpeg.exe- утилита командной строки для работы с видео
c:\creator\_fonts\- папка для шрифтов, используемых для генерации бегущей строки
c:\creator\_ticker\ticker.txt- txt-файл (содержит список текстов для бегущей строки)
c:\creator\video\- папка для итоговых видео

Указываем:
  • Путь к видеофайлу mp4
  • Путь к аудиофайлу mp3 (если нужен фоновый звук)
*В названиях и путях к видео и аудио не должно быть русских букв.

Выбираем режим работы:
  1. Бегущая строка
  2. Фоновый звук
  3. Бегущая строка и звук
Смотрим результат в папке: c:\creator\video\

settings.jpg
 

Вложения

Последнее редактирование:
  • Спасибо
Реакции: AleXPrischepA и Mavrikman

Mavrikman

Client
Регистрация
21.01.2020
Сообщения
85
Благодарностей
18
Баллы
8
Наложение бегущей строки и фонового звука на mp4-видеофайл

Привет, все указал в настройках, но видео не появляется в папке video

может библиотек каких то не хватает у меня?
 
Последнее редактирование:

daVinchi

Client
Регистрация
11.01.2019
Сообщения
59
Благодарностей
66
Баллы
18
  • Спасибо
Реакции: Mavrikman

Mavrikman

Client
Регистрация
21.01.2020
Сообщения
85
Благодарностей
18
Баллы
8
Поправил. Перекачай шаблон TickerCreatorZP.zp.
Только следи, чтобы не было русских букв в названиях и путях к видео и аудио.
Спасибо, работает, а можно вынести регулировку когда вставлять бегущую строку от начала ролика, через какое время? Или где ее можно самостоятельно настроить
 

daVinchi

Client
Регистрация
11.01.2019
Сообщения
59
Благодарностей
66
Баллы
18
а можно вынести регулировку когда вставлять бегущую строку от начала ролика, через какое время?
замени переменную argumets на следующую:
C#:
argumets = String.Format(@"-y -i {0} {1} -filter_complex ""drawbox=x=0:y={2}:w=in_w:h={3}:color={4}@{5}:t=fill:enable='between(t,8,22)',drawtext=enable='between(t,10,20)':fontfile='{6}':text={7}:fontsize={8}:fontcolor={9}:{10}x=W*(1-{11}*t):y=(H-{13})-ascent"": -vcodec libx264 -preset veryfast -f mp4 -pix_fmt yuv420p -max_muxing_queue_size 9999 {12}", input, argAudio, y, h, colorBox, transpBox, fontfile, ticker, fontsize, fontcolor, shadowcolor, speed, output, hText);
, где:
- время показа фоновой подложки 'between(t,8,22)' - с 8 секунды до 22 секунды видео
- время показа текста бегущей строки 'between(t,10,20)' - с 10 секунды до 20 секунды видео
 
  • Спасибо
Реакции: Mavrikman

Mavrikman

Client
Регистрация
21.01.2020
Сообщения
85
Благодарностей
18
Баллы
8
замени переменную argumets на следующую:
C#:
argumets = String.Format(@"-y -i {0} {1} -filter_complex ""drawbox=x=0:y={2}:w=in_w:h={3}:color={4}@{5}:t=fill:enable='between(t,8,22)',drawtext=enable='between(t,10,20)':fontfile='{6}':text={7}:fontsize={8}:fontcolor={9}:{10}x=W*(1-{11}*t):y=(H-{13})-ascent"": -vcodec libx264 -preset veryfast -f mp4 -pix_fmt yuv420p -max_muxing_queue_size 9999 {12}", input, argAudio, y, h, colorBox, transpBox, fontfile, ticker, fontsize, fontcolor, shadowcolor, speed, output, hText);
, где:
- время показа фоновой подложки 'between(t,8,22)' - с 8 секунды до 22 секунды видео
- время показа текста бегущей строки 'between(t,10,20)' - с 10 секунды до 20 секунды видео
Скопировал всю строку и заменил, пишет ошибка https://prnt.sc/5fsObcMRyIMq
 

daVinchi

Client
Регистрация
11.01.2019
Сообщения
59
Благодарностей
66
Баллы
18
а можно вынести регулировку когда вставлять бегущую строку от начала ролика
замени переменную argumets
Скопировал всю строку и заменил, пишет ошибка https://prnt.sc/5fsObcMRyIMq
Нужно заменить строку переменных, которые передают значения для формирования бегущей строки.

Заменить:
C#:
argumets = String.Format(@"-y -i {0} {1} -filter_complex ""drawbox=x=0:y={2}:w=in_w:h={3}:color={4}@{5}:t=fill,drawtext=fontfile='{6}':text={7}:fontsize={8}:fontcolor={9}:{10}x=W*(1-{11}*t):y=(H-{13})-ascent"": -vcodec libx264 -preset veryfast -f mp4 -pix_fmt yuv420p -max_muxing_queue_size 9999 {12}", input, argAudio, y, h, colorBox, transpBox, fontfile, ticker, fontsize, fontcolor, shadowcolor, speed, output, hText);
на:
C#:
argumets = String.Format(@"-y -i {0} {1} -filter_complex ""drawbox=x=0:y={2}:w=in_w:h={3}:color={4}@{5}:t=fill:enable='between(t,8,22)',drawtext=enable='between(t,10,20)':fontfile='{6}':text={7}:fontsize={8}:fontcolor={9}:{10}x=W*(1-{11}*t):y=(H-{13})-ascent"": -vcodec libx264 -preset veryfast -f mp4 -pix_fmt yuv420p -max_muxing_queue_size 9999 {12}", input, argAudio, y, h, colorBox, transpBox, fontfile, ticker, fontsize, fontcolor, shadowcolor, speed, output, hText);
 
  • Спасибо
Реакции: Mavrikman

sw_sw

Client
Регистрация
24.02.2017
Сообщения
694
Благодарностей
277
Баллы
63
119199



Вот тут ошибка

119200
 

sw_sw

Client
Регистрация
24.02.2017
Сообщения
694
Благодарностей
277
Баллы
63
Почему то выбивает шаблон ошибку,
123:
Выполнение действия CSharp OwnCode: Масштабирование. Индекс за пределами диапазона. Индекс должен быть положительным числом, а его размер не должен превышать размер коллекции.
Имя параметра: index
или
Выполнение действия CSharp OwnCode: Формирование файла настроек. Индекс за пределами диапазона. Индекс должен быть положительным числом, а его размер не должен превышать размер коллекции.
Имя параметра: index
И просто цены бы не было, если бы была возможность делать вертикальные и горизонтальные видео и если картинки другого размера, то накладывать 2 эффекта scale и blur!
Аналогично кароч.
 

Zedx

Client
Регистрация
12.06.2018
Сообщения
1 182
Благодарностей
822
Баллы
113
И просто цены бы не было, если бы была возможность делать вертикальные и горизонтальные видео и если картинки другого размера, то накладывать 2 эффекта scale и blur!
В прошлых конкурсных было, поищи там, называлось что-то про тикток, если не ошибаюсь
 

daVinchi

Client
Регистрация
11.01.2019
Сообщения
59
Благодарностей
66
Баллы
18
Пока все ошибки были связаны с невнимательностью.

При ошибке:
1. Читаем шапку и проверяем структуру рабочей директории проекта.
2. Если уже запускали шаблон и появлялась ошибка, лучше перезагрузить компьютер (так как в работе используется доп.утилита ffmpeg.exe некорректное завершение могло оставить зависшие процессы и ошибка без перезагрузки не уйдет).
3. Проверяем входные настройки.

Если запускаете в ZennoPoster - добавить +1 попытку (в 1 поток)
Если запускаете в ProjectMaker - запустить проект с начала (F5)

Если ошибка повторится, скиньте мне скриншот Входных настроек и Лог работы шаблона.
 
  • Спасибо
Реакции: Mavrikman

sw_sw

Client
Регистрация
24.02.2017
Сообщения
694
Благодарностей
277
Баллы
63
Пока все ошибки были связаны с невнимательностью.

При ошибке:
1. Читаем шапку и проверяем структуру рабочей директории проекта.
2. Если уже запускали шаблон и появлялась ошибка, лучше перезагрузить компьютер (так как в работе используется доп.утилита ffmpeg.exe некорректное завершение могло оставить зависшие процессы и ошибка без перезагрузки не уйдет).
3. Проверяем входные настройки.

Если запускаете в ZennoPoster - добавить +1 попытку (в 1 поток)
Если запускаете в ProjectMaker - запустить проект с начала (F5)

Если ошибка повторится, скиньте мне скриншот Входных настроек и Лог работы шаблона.
Да нет никакой невнимательности) С коробки шаб выдает ерроры, если глаки с субтитров и звука убрать. Мы с челом протестили, остальные даже не запускали =)
Ну сделай, будь ласка, обработку ошибок =)
 

daVinchi

Client
Регистрация
11.01.2019
Сообщения
59
Благодарностей
66
Баллы
18

sw_sw

Client
Регистрация
24.02.2017
Сообщения
694
Благодарностей
277
Баллы
63
В очередной раз проверил - всё работает. Работает и у меня, и у других.
Совет - внимательно перечитай.
Лень видео заливать =)
Удачи и успехов!

Считай, 2 человека за тебя проголосовали потому что запустили кривой проект =)
 

Mavrikman

Client
Регистрация
21.01.2020
Сообщения
85
Благодарностей
18
Баллы
8
Ну у меня работает наложение бегущей строки шаблон
 

KRINN

Client
Регистрация
04.06.2019
Сообщения
10
Благодарностей
0
Баллы
1
Добрый день, на 7.3.1.0 запустится? - Работает проверил
Интересует вопрос такой: Он строки бегущий строки берет по порядку или рандомно, будет ли повторяться или нет, или можно сделать чтобы удалялись ?
 
Последнее редактирование:

daVinchi

Client
Регистрация
11.01.2019
Сообщения
59
Благодарностей
66
Баллы
18
Интересует вопрос такой: Он строки бегущий строки берет по порядку или рандомно, будет ли повторяться или нет, или можно сделать чтобы удалялись ?
Строки берутся рандомно, не удаляются и могут повторяться .

Чтобы строки из файла удалялись, в кубике "Бегущая строка" строки кода:
C#:
    var tickerList = File.ReadAllLines(pathToTickers).ToList();
    tickerList.Shuffle(); // Перемешиваем список
    string fileString = tickerList[0]; // Получаем строку из списка
заменить на:
C#:
    var tickerList = File.ReadAllLines(pathToTickers).ToList(); // считываем содержимое файла в список
    if (tickerList.Count == 0)
        throw new Exception("Файл с текстом Бегущей строки пуст - остановка"); // Если файл пустой - остановка
    string fileString = tickerList[0]; // Получаем первую строку из списка
    tickerList.RemoveAt(0); // удаляем первую строку
    File.WriteAllLines(pathToTickers, tickerList); // сохраняем изменения в файл
 
  • Спасибо
Реакции: KRINN

Agent

Client
Регистрация
25.12.2018
Сообщения
155
Благодарностей
48
Баллы
28
У меня ошибка "Выполнение действия CSharp OwnCode: Выбор mp3. Строка не распознана как действительный TimeSpan."
id действия 47113d60-7be4-4d38-9eee-923bfafce7f1
 

webposter

Client
Регистрация
17.06.2014
Сообщения
21
Благодарностей
3
Баллы
3
UPD: Это я походу где-то косякнул. Всё заново скачал, ничего трогал, запустил - всё работает.

Запускаю из коробки в Project Maker.
Выскакивает ошибка:

Выполнение действия CSharp OwnCode: Случайный эффект. Индекс за пределами диапазона. Индекс должен быть положительным числом, а его размер не должен превышать размер коллекции.
Имя параметра: index

Все лежит в корне c:\, как и рекомендовано.
Настройки не трогал.
 
Последнее редактирование:

daVinchi

Client
Регистрация
11.01.2019
Сообщения
59
Благодарностей
66
Баллы
18
VideoCreatorZP_v1.2.zp - обновил шаблон, добавил проверку корректности настроек.
 

inbizin

Client
Регистрация
09.08.2018
Сообщения
4
Благодарностей
0
Баллы
1
какое ограничение символов для бегущей строки?
 
Последнее редактирование:

daVinchi

Client
Регистрация
11.01.2019
Сообщения
59
Благодарностей
66
Баллы
18
какое ограничение символов для бегущей строки?
Не сталкивался с ограничением. Но я никогда не использовал шаблон для генерации длинных видео.
В документации к FFmpeg про ограничения по символам бегущей строки ничего не нашел.

Бегущая строка формируется в кубике C# "Бегущая строка" (строка текста из файла ticker.txt размножается 10 раз с разбивкой пробелами):
C#:
    for(int i = 0; i < 10; i++)
        ticker += fileString + "                              "; // формируем бегущую строку
Затем получившийся текст из переменной ticker будет наложен на видео.
Если прокручиваемый текст длиннее получившегося видео - бегущая строка будет ограничена длиной видео.
Если текст бегущей строки короче продолжительности видео - он просто закончится раньше, чем закончится видео.
 
  • Спасибо
Реакции: inbizin и webposter

Кто просматривает тему: (Всего: 2, Пользователи: 1, Гости: 1)