Використовуйте і 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