ffmpeg фільтр контексту - створити прозорий фон з текстом


11

Зараз я працюю з drawtextфільтром. Поки що я мав успіх лише в drawtextналаштуваннях опцій, щоб використовувати правильний шрифт і розміщувати текст горизонтально по центру. Як я можу drawtextдомогтися відображення тексту на відео, як показано нижче?

ffmpeg

ffmpeg -i "/media/test/test.mp4" -vf drawtext="fontfile=/usr/share/fonts/truetype/open-sans/OpenSans-Regular.ttf:text='Title of this Video':x=(w-tw)/2:y=(h-th)/2"  /media/test_edited.mp4"

Відповіді:


21

Використовуйте і drawboxдля поля, і drawtextдля тексту.

Червоний жук

ffmpeg -i input.mp4 -vf \
"format=yuv444p, \
 drawbox=y=ih/PHI:color=black@0.4:width=iw:height=48:t=fill, \
 drawtext=fontfile=OpenSans-Regular.ttf:text='Title of this Video':fontcolor=white:fontsize=24:x=(w-tw)/2:y=(h/PHI)+th, \
 format=yuv420p" \
-c:v libx264 -c:a copy -movflags +faststart output.mp4
  • drawtextє boxопція, але наскільки я можу сказати, вона не може бути довільною шириною і відносно розміру тексту, тому тому drawboxвикористовується замість цього.

  • formatФільтр використовується для поліпшення кольору drawboxобласті; інакше, залежно від вхідних та вихідних форматів, область може виглядати ненасиченою або однотонною. Потім formatфільтр знову використовується для того, щоб формат пікселів вихідного файлу був сумісним з усіма програвачами.

  • У цьому прикладі аудіокопіюється потік, тому що ви, можливо, не захочете його повторно кодувати.

  • Старі ffmpegкористувачі повинні використовувати їх t=maxзамість t=fill.


Ідеально, це поза сферою поточного питання, і мені може знадобитися створити нове запитання. Будь-які пропозиції, як додати snapchatтаймер. Наприклад, я зробив деякі випробування і FFmpeg містить джерело відеосигналу testsrc , який містить таймер: ffplay -f lavfi -i testsrc. Цифра 0 початкового таймера має розмір 29х52 пікселів, а його позиція у верхньому лівому куті становить 256 пікселів по горизонталі та 94 пікселів по вертикалі. Я можу обрізати область однієї цифри, як цеffmpeg -f lavfi -i testsrc -vf crop=29:52:256:94 -t 10 timer1.mp4
Code_Ed_Student

До питання я додав зображення з таймером. Таймер - це відлік часу, залежно від тривалості відео.
Code_Ed_Student

Так, я створитиму нове запитання до нього. Ви праві. 30. 29, 28...пр.
Code_Ed_Student

Опубліковано нове запитання: video.stackexchange.com/questions/15556/ffmpeg-video-with-timer
Code_Ed_Student


1

ffmpeg -i C: \ Користувачі \ Розробник_2 \ Відео \ 2.mkv -vf drawtext = "fontfile = C \: / Regular.ttf: text = 'apcis.tmou.org': fontcolor = white: fontsize = 24: box = 1: boxcolor=black@0.4: x = w-tw: y = h-th "C: \ inetpub \ wwwroot \ videos \ 1.mp4


це працює для мене, але я використовую boxcolor-white@0.9
sabre tabatabaee yazdi
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.