Допустим, у меня есть:

  • Текстовый файл
  • Изображение 1920x1080

Я хотел бы создать видео, как это, где текст прокручивается, а аудио - это заданный MP3.

Я копал немного с ffmpeg, но безуспешно.

Вы можете помочь?

2 ответа2

2

Я попробовал мое любимое чтение (3 параграфа, обернутый в 80 символов) :-)

lorem-ipsum-generator -l -p 3 -s 1 | fold -w 80 -s > TEXT

Затем сгенерируйте видео:

ffmpeg -loop 1 \
       -i Blue-Planet-Earth-1920x1080.jpg  
       -vf drawtext="fontsize=20:fontcolor=white:fontfile=FreeSans.ttf:textfile=TEXT:y=h-200*t"  
       -t 8 output.mp4

Пояснения:

  • бесконечный цикл, так как у нас есть только одно изображение (поддержка нескольких изображений в последовательности или по конвейеру)
  • изображение
  • DrawText вполне читабелен , анимация сделана с использованием т
  • «-t 8» в течение 8 секунд (в конце)

Текст выходит за верхний предел и продолжает прокручиваться вверх.

Любой может теперь сгенерировать это.

(Спасибо FB!)

1

Вы можете использовать фильтр субтитров с субтитрами Advanced SubStation Alpha (ASS). Использование тега /move позволит вам прокрутить субтитры, указав начальную и конечную координаты x , y .

Преимущества над фильтром отрисовки текста включают больше параметров форматирования и возможность автоматически переносить текст. Недостатком является то, что координаты x , y не могут ссылаться на ширину и высоту текста, поэтому необходимо вручную указать соответствующие значения в теге /move .


Скриншот прокрутки субтитров

Пример файла ASS, созданного с помощью Aegisub:

[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

[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,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,0,0,100,100,0,0,1,1,1,5,10,10,10,1

[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:00.00,0:00:05.00,Default,,0,0,0,,{\move(190,350,180,-90)}Draw subtitles on top of input video using the libass library.\NTo enable compilation of this filter you need to configure FFmpeg wit{\i1}h --enable-liba{\i0}ss. This filter also requires a build with libavcodec and libavformat to convert the passed subtitles file to ASS (Advanced Substation Alpha) subtitles format.

Пример команды ffmpeg :

ffmpeg -loop 1 -i image.jpg -i audio.mp3 -filter_complex "subtitles=scroll.ass" -c:a copy -shortest output.mkv

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .