Задать вопрос
@sirocco
Инженер АСУТП

Как рисовать прямоугольники в ffmpeg?

Есть IP камера, которая определяет в видеопотоке людей, транспорт, или любой движущийся объект. Камера выдаёт в xml координаты объекта (координаты прямоугольника, который обрисовывает объект). Задача делать снапшот с потока камеры, на полученном снапшоте рисовать рамку по координатам объекта, ужимать полученный .jpg с 4к до 1080p и сохранять на локальном диске. (Далее всё это отправляется в мессенжер).
Сейчас я это делаю в NodeRED с помощью готовых нод, там и рамку можно нарисовать, и надпись наложить, и ресайзнуть. Но процесс занимает 15-20 сек (Raspberry 3). Перетащил всё это на Jetson Nano, процесс стал занимать 12 сек. Заметил, что все процессы идут в десятки раз быстрее, если использовать ffmpeg. Например ресайз через него занимает 0,12 сек, через ноду NodeRED - 6 сек.
Но не могу никак понять, как рисовать рамку или хотя бы линии в ffmpeg. Нашёл на просторах интернета код:
ffmpeg -i in.avi -vf "color=red@0.5:50x50 [c]; [in][c] overlay=10:10" out.avi
перерисовал его в
ffmpeg -i 01.jpg -vf "color=red@0.5:50x50 [c]; [in][c] overlay=10:10" out.jpg
и он рисует полупрозрачный квадрат, но выкидывает кучу ошибок. Также нигде не смог найти значение параметров [c]; [in][c]. Документацию смотрел, ничего не понял.
Как можно нарисовать на изображении простую линию?
  • Вопрос задан
  • 209 просмотров
Подписаться 2 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 2
@sirocco Автор вопроса
Инженер АСУТП
Разобрался. Вроде всё просто. Но не пойму как устранить ошибки.
ffmpeg -i /media/01.jpg -vf "drawbox=x=1400:y=200:w=200:h=500:t=3:c=yellow" -frames:v 1 /media/77772.jpg

Ругается:
The specified filename '/media/77772.jpg' does not contain an image sequence pattern or a pattern is invalid.
Use a pattern such as %03d for an image sequence or use the -update option (with -frames:v 1 if needed) to write a single image.
Как указать, что обрабатываться будет только один кадр?
Ответ написан
ffmpeg \
  -i /media/01.jpg \
  -vf "drawbox=x=1400:y=200:w=200:h=500:t=3:c=yellow" \
  -update \
  -frames:v 1 \
  /media/777003.jpg
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы