Я извлекаю отдельные видеокадры, запуская процесс ffmpeg из моего кода c #. По умолчанию эти образы записываются на диск. Однако, чтобы ускорить обработку, я хочу перенаправить стандартный вывод ffmpeg для получения потока и его дальнейшей обработки в моей программе.
Я использую аргументы, подобные этому:
-i \"" + Filename + "\" -vf \"scale=640:-1\" -an -vframes 100 -r 1 -f image2 -
Это перенаправляет поток байтов на стандартный вывод, который я могу перенаправить в свою программу, используя process.StartInfo.RedirectStandardOutput = true
.
Это может хорошо работать для видеопотоков, так как у меня есть только один вывод, но приведенный выше вызов будет создавать 10 одиночных изображений (при записи на жесткий диск ), как я могу проанализировать поток байтов из стандартного вывода и разбить на отдельные файлы?