Используйте 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 исходного таймера имеет размер 29x52 пикселей, а ее положение в верхнем левом углу составляет 256 пикселей по горизонтали и 94 пикселей по вертикали. Я могу обрезать область одной цифры, как этоffmpeg -f lavfi -i testsrc -vf crop=29:52:256:94 -t 10 timer1.mp4