ffmpeg - Водяной знак каждую х секунду затухания ввода и корректировки для разрешения видео

Я использую текущую команду ffmpeg для преобразования нескольких видео и создания водяного знака, который представляет собой прокручиваемый текст, который идет справа налево и направо каждые 120 секунд времени воспроизведения.

find /home/video/ -type f -execdir ffmpeg -i '{}' -filter:v "drawtext=fontfile=/root/FreeSans.ttf:text='QWERTY':fontcolor=white@1.0:fontsize=26:y=h-line_h-30:x=w/20*mod(t\,120),scale=854:480" -pix_fmt yuv420p -c:v libx264 -preset slow -b:v 1000k -minrate 500k -maxrate 2000k -bufsize 2000k -c:a aac -ar 44100 -b:a 128k -movflags +faststart '/home/video/new/{}.mp4' \;

Я хотел бы изменить водяной знак таким образом, чтобы он выглядел примерно так

enter image description here

Мне нужен текст, показанный выше исчезать каждые 120 секунд и длиться 15 секунд. Будьте смелым форматом и того же цвета (черный).

"qwerty qwerty qwerty qwerty" новая строка
"qwerty qwerty qwerty qwerty"

Еще одна проблема, с которой я сталкиваюсь в настоящее время Я использую это с разными видеокадрами. Например, если видео только 800x600, текст будет очень большим. Если видео размером 1920x1080, текст будет очень маленьким. Я хотел бы, чтобы размер текста регулировался в зависимости от частоты кадров. С точки зрения размера экрана это должно выглядеть так.

2
задан 12 April 2019 в 22:27

1 ответ

Одним из способов является использование ASS субтитров с фильтром субтитров :

 ffmpeg -i input -filter_complex "subtitles=fade.ass" -c:a copy output

Преимущества:

  • Затухание и синхронизация контролируется файлом ASS.
  • Размер текста будет автоматически изменен в соответствии с размером видео.
  • Субтитры более настраиваемы, чем DrawText.
  • Текст может автоматически переноситься при необходимости, в отличие от текста.
  • ffmpeg Команда проста.

Недостаток:

  • Каждый экземпляр представляет собой отдельную строку в файле ASS. Ничего страшного для коротких видео. Возможно, есть способ решить эту проблему с помощью функции ASS или караоке, но я не знаю, как это происходит.

Пример файла ASS (создан в Aegisub 3.2.2):

[Script Info]
; Script generated by Aegisub 3.2.2
; http://www.aegisub.org/
Title: Default Aegisub file
ScriptType: v4.00+
WrapStyle: 0
ScaledBorderAndShadow: yes
YCbCr Matrix: None

[Aegisub Project Garbage]
Last Style Storage: Default
Video Position: 749

[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,Arial,20,&H00000000,&H000000FF,&H00000000,&H00000000,-1,0,0,0,100,100,0,0,1,0,0,2,10,10,10,1

[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:00.00,0:00:15.00,Default,,0,0,0,,{\fad(500,500)}qwerty qwerty qwerty qwerty\Nqwerty qwerty qwerty qwerty
Dialogue: 0,0:02:00.00,0:02:15.00,Default,,0,0,0,,{\fad(500,500)}qwerty qwerty qwerty qwerty\Nqwerty qwerty qwerty qwerty
Dialogue: 0,0:04:00.00,0:04:15.00,Default,,0,0,0,,{\fad(500,500)}qwerty qwerty qwerty qwerty\Nqwerty qwerty qwerty qwerty
Dialogue: 0,0:06:00.00,0:06:15.00,Default,,0,0,0,,{\fad(500,500)}qwerty qwerty qwerty qwerty\Nqwerty qwerty qwerty qwerty
0
ответ дан 12 April 2019 в 22:27

Другие вопросы по тегам:

Похожие вопросы: