Я пытаюсь добавить GIF и текст на видео, используя ffmpeg, что-то вроде tiktok. хочу, чтобы это было как в тиктоке, т.е. вверху справа гифка и текст, а через некоторое время слева внизу такая же гифка и текст на видео.
Как добавить водяной знак в виде gif и текста на видео с помощью ffmpeg
Ответы (3)
ffmpeg -i video.mp4 -ignore_loop 0 -i logo.gif -filter_complex "[0:v][1:v]overlay=x=10:y=10:format=auto:enable='lte(t,5)':shortest=1[bg];[bg][1:v]overlay=x=main_w-overlay_w-10:y=main_h-overlay_h-20:format=auto:enable='gte(t,5)':shortest=1,drawtext=text='@user1872811':fontsize=16:fontcolor=white:x=10:y=40:enable='lte(t,5)',drawtext=text='@user1872811':fontsize=16:fontcolor=white:x=w-tw-10:y=h-th-10:enable='gte(t,5)',format=yuv420p[v]" -map "[v]" -c:v libx264 -crf 18 -map 0:a -c:a copy -movflags +faststart output.mp4
Вам нужно будет настроить позиции x
и y
для наложения и отрисовки текста в зависимости от ширины x высоты GIF.
Адаптированы из:
- Текст на видео ffmpeg
- укажите период времени в фильтре ffmpeg drawtext
- Как расположить текст в рисованном тексте
- Как добавить водяной знак с помощью ffmpeg?
Также см:
person
llogan
schedule
01.08.2020
спасибо, это работает, но качество видео очень плохое .. есть идеи, как получить такое же качество видео?
- person user1872811; 12.08.2020
куда добавить эту опцию? после какой команды в основном?
- person user1872811; 02.09.2020
подскажите, пожалуйста, как сделать сначала справа вверху, а потом слева внизу?
- person user1872811; 07.09.2020
@user1872811 user1872811 Смотрите ссылки в ответе Как расположить текст drawtext или Как добавить водяной знак с помощью ffmpeg?
- person llogan; 08.09.2020
Цикл слева направо и сверху вниз:
ffmpeg -i video.mp4 -i watermark.png -filter_complex \
"[0:v][1:v]overlay=x='if(lt(mod(t,10),5),10,W-w-10)':y='if(lt(mod(t,10),5),10,H-h-10)'" \
-codec:a copy out.mp4
Петля сверху справа и снизу слева:
ffmpeg -i video.mp4 -i watermark.png -filter_complex \
"[0:v][1:v]overlay=x='if(lt(mod(t,10),5),W-w-10,10)':y='if(lt(mod(t,10),5),10,H-h-10)'" \
-codec:a copy out.mp4
Идея очень проста
- Возьмите каждые 10 секунд продолжительности, получите остаток секунды, т.е. мод (t, 10)
- если sec ‹ 5, установить верхнее положение, иначе нижнее положение
Обратите внимание, что я исключил текст, т.е. имя пользователя.
person
Ramesh Jangama
schedule
03.02.2021
ffmpeg -y -i out.mp4 -i 1080_Happy_Holidays_Red_Videvo.mov -i logo.png -filter_complex [0]scale=iw/4:-1[pip];[1][pip]overlay=100:100[водяной знак]; [водяной знак][2]overlay=main_w-overlay_w-10:main_h-overlay_h-10 output.mp4
У вас есть больше примеров на моем сайте, но здесь запрещено указывать URL. Отправить мне личное сообщение
person
Seb
schedule
01.08.2020
не могли бы вы объяснить свой ответ?
- person user1872811; 01.08.2020
что за сайт?
- person user1872811; 01.08.2020