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

daVinchi

Client
Регистрация
11.01.2019
Сообщения
60
Реакции
69
Баллы
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






 
Номер конкурса шаблонов
  1. Двенадцатый конкурс шаблонов

Вложения

Последнее редактирование модератором:
А куда интересно можно это применить )))
 
А куда интересно можно это применить )))

Ну, например:
- дорвейные YouTube-каналы - цель привлечь трафик на партнерский оффер. Ниши любые - товарка, дейтинг, казино, услуги, сервисы;
- перелив аудитории с ютуб в ту же телегу и куда душе угодно;
- SEO - ссылки, привлечение трафика на сайт, доп.ценность контента;
- попадались подобные слайд-шоу на Ozon.

При этом трафик идет как с самого YouTube, так и с поисковиков (Google, Yandex и т.д.).
 
Почему то выбивает шаблон ошибку,
123:
Развернуть Свернуть Копировать
Выполнение действия CSharp OwnCode: Масштабирование. Индекс за пределами диапазона. Индекс должен быть положительным числом, а его размер не должен превышать размер коллекции.
Имя параметра: index
или
Выполнение действия CSharp OwnCode: Формирование файла настроек. Индекс за пределами диапазона. Индекс должен быть положительным числом, а его размер не должен превышать размер коллекции.
Имя параметра: index

И просто цены бы не было, если бы была возможность делать вертикальные и горизонтальные видео и если картинки другого размера, то накладывать 2 эффекта scale и blur!
 
Последнее редактирование:
Почему то выбивает шаблон ошибку
Вероятнее всего, что-то не так указано во "Входных настройках".
"Количество изображений для генерации" и "Длительность слайда" указывается диапазоном. Например: 3-10, 4-8 или 5-5

Если проблема не уйдет, добавлю в шаблон доп. проверки или скинь скриншот входных настроек - посмотрю.
 
есть возможность бегущую строку на отдельное видео наложить?
На основе основного, сделал небольшой шаблон на 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
Наложение бегущей строки и фонового звука на mp4-видеофайл

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

может библиотек каких то не хватает у меня?
 
Последнее редактирование:
Поправил. Перекачай шаблон TickerCreatorZP.zp.
Только следи, чтобы не было русских букв в названиях и путях к видео и аудио.
Спасибо, работает, а можно вынести регулировку когда вставлять бегущую строку от начала ролика, через какое время? Или где ее можно самостоятельно настроить
 
а можно вынести регулировку когда вставлять бегущую строку от начала ролика, через какое время?
замени переменную 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
замени переменную 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
 
а можно вынести регулировку когда вставлять бегущую строку от начала ролика

замени переменную 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
119199



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

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

И просто цены бы не было, если бы была возможность делать вертикальные и горизонтальные видео и если картинки другого размера, то накладывать 2 эффекта scale и blur!
Аналогично кароч.
 
И просто цены бы не было, если бы была возможность делать вертикальные и горизонтальные видео и если картинки другого размера, то накладывать 2 эффекта scale и blur!
В прошлых конкурсных было, поищи там, называлось что-то про тикток, если не ошибаюсь
 
Вот тут ошибка
Пока все ошибки были связаны с невнимательностью.

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

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

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

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

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

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

Считай, 2 человека за тебя проголосовали потому что запустили кривой проект =)
 
Добрый день, на 7.3.1.0 запустится? - Работает проверил
Интересует вопрос такой: Он строки бегущий строки берет по порядку или рандомно, будет ли повторяться или нет, или можно сделать чтобы удалялись ?
 
Последнее редактирование:
Интересует вопрос такой: Он строки бегущий строки берет по порядку или рандомно, будет ли повторяться или нет, или можно сделать чтобы удалялись ?
Строки берутся рандомно, не удаляются и могут повторяться .

Чтобы строки из файла удалялись, в кубике "Бегущая строка" строки кода:
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
У меня ошибка "Выполнение действия CSharp OwnCode: Выбор mp3. Строка не распознана как действительный TimeSpan."
id действия 47113d60-7be4-4d38-9eee-923bfafce7f1
 
UPD: Это я походу где-то косякнул. Всё заново скачал, ничего трогал, запустил - всё работает.

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

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

Все лежит в корне c:\, как и рекомендовано.
Настройки не трогал.
 
Последнее редактирование:
какое ограничение символов для бегущей строки?
 
Последнее редактирование:
какое ограничение символов для бегущей строки?
Не сталкивался с ограничением. Но я никогда не использовал шаблон для генерации длинных видео.
В документации к FFmpeg про ограничения по символам бегущей строки ничего не нашел.

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

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