#ffmpeg
#ffmpeg
Вопрос:
Я хочу синтезировать видео с помощью предварительно разработанного шаблона.
структура шаблона
- фоновое видео: фон
- маска видео: маска
- видео на переднем плане: передний план
- содержание видео: контент
Конечный результат похож на видео ниже
результат: Это видео синтезировано мной с использованием moviepy (модуль Python для редактирования видео). Но это занимает слишком много времени для использования в производстве.
Итак, мне нужно наложить эти видео в одно видео.
Текущие проблемы
- Как преобразовать видео в маску с помощью ffmpeg?
- Как синтезировать эти видео в одно видео с помощью ffmpeg?
Комментарии:
1. Все эти файлы сейчас отсутствуют, что затрудняет понимание этого вопроса и ответа для других.
Ответ №1:
Используйте
ffmpeg -i cat.mp4 -i bg1.mp4 -i mask1.mp4 -i fg1.mp4 -filter_complex "[2]negate[a];[1][a]alphamerge[frame];[0][frame]overlay=format=auto[framed];[3]mergeplanes=0x00010200:format=yuva420p[fg];[framed][fg]overlay" out.mp4
Основной порядок операций таков: 1) прикрепите маску к видео bg, 2) наложите этот результат поверх содержимого. 3) наложите FG поверх второго результата.
Для достижения наилучших результатов создайте маску и для видео переднего плана, и если вы это сделаете, используйте alphamerge, как я сделал для видео bg, вместо mergeplanes, как я сделал.
Мне пришлось инвертировать маску BG, поскольку участки, окрашенные в белый цвет, представляют видимые области маски.
Комментарии:
1. Прежде всего, спасибо за ваш ответ, это правильное решение. Но есть ли какое-либо решение, которое может увеличить скорость? Потому что я обнаружил, что для выполнения обработки видео в секунду требуется около 1 секунды (на моем Mac). Желаю вам крепкого здоровья и удачной работы.
2. Добавить
-preset superfast
послеoverlay"
3.
shell ffmpeg -i bg1.mp4 -i mask1.mp4 -i fg1.mp4 -i cat.mp4 -filter_complex "[1]negate[m];[0][m]alphamerge[f];[3][f]overlay=format=auto[a];[2]mergeplanes=0x00010200:format=yuva420p[fg];[a][fg]overlay" -preset superfast -y out.mp4
Кажется, что скорость не улучшилась @Gyan4. Поделитесь полным журналом.
5. Из-за ограничения количества слов в комментариях, вот журнал! журнал