Как работать с каждым кадром видео, используя ffmpeg? - PullRequest
0 голосов
/ 07 февраля 2019

Я использую тензор потока для сегментации видеообъектов, но теперь я знаю, как сделать это только на изображении (png, jpg), я хочу сделать это на коротком видео (15 секунд), как получить кадр за кадромв последовательности и обработке между каждым кадром?

теперь я делю mp4 на pngs с помощью ffmpeg, затем делаю сегментацию для каждого pngs, наконец, объединяю pngs в mp4 и удаляю каждый pngs.split и составляем так:

ffmpeg -i video.mp4 -r 24 ./split/%03d.png
ffmpeg -f image2 -i imgFilePath -r 24 videoDesPath

но решение не очень хорошее, оно генерирует много imgs на диске и требует больше операций ввода-вывода, в случае сбоя процесса многие pngs могут быть не в состоянии перезапускаться, я хочу найти решение, как показано ниже:

  1. конвертировать видео в поток (java, потому что я использую на Android)
  2. читать поток, чтобы получить 1-й кадр, выполнить сегментацию объекта (для этого нужно 150 мс ~ 1 с, должен выполняться в дочернем потоке) изаписать сегментированный кадр в новый поток (называемый сегментированным потоком).
  3. повторите описанные выше шаги, наконец, преобразуйте сегментированный поток в видео.

можете ли вы научить меня конвертировать видео втечьполучить кадр из потока? Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...