Я использую тензор потока для сегментации видеообъектов, но теперь я знаю, как сделать это только на изображении (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 могут быть не в состоянии перезапускаться, я хочу найти решение, как показано ниже:
- конвертировать видео в поток (java, потому что я использую на Android)
- читать поток, чтобы получить 1-й кадр, выполнить сегментацию объекта (для этого нужно 150 мс ~ 1 с, должен выполняться в дочернем потоке) изаписать сегментированный кадр в новый поток (называемый сегментированным потоком).
- повторите описанные выше шаги, наконец, преобразуйте сегментированный поток в видео.
можете ли вы научить меня конвертировать видео втечьполучить кадр из потока? Спасибо!