Я использую текущую команду 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' \;
Я хотел бы изменить водяной знак таким образом, чтобы он выглядел примерно так
Мне нужен текст, показанный выше исчезать каждые 120 секунд и длиться 15 секунд. Будьте смелым форматом и того же цвета (черный).
"qwerty qwerty qwerty qwerty" новая строка
"qwerty qwerty qwerty qwerty"
Еще одна проблема, с которой я сталкиваюсь в настоящее время Я использую это с разными видеокадрами. Например, если видео только 800x600, текст будет очень большим. Если видео размером 1920x1080, текст будет очень маленьким. Я хотел бы, чтобы размер текста регулировался в зависимости от частоты кадров. С точки зрения размера экрана это должно выглядеть так.
Одним из способов является использование ASS субтитров с фильтром субтитров :
ffmpeg -i input -filter_complex "subtitles=fade.ass" -c:a copy output
Преимущества:
ffmpeg
Команда проста. Недостаток:
Пример файла 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