У меня есть последовательность изображений jpg, которые я захватываю и визуализирую на экране, чтобы создать видео.Предоставление последовательности изображений в C# для создания видео
Я декомпрессию изображения из MemoryStream с помощью JpegBitmapDecoder и рендеринга его, установив Source на элемент управления Image. Это, похоже, работает нормально, но накладные расходы процессора довольно высоки. Изображения 1280x720, работающие со скоростью 30 кадров в секунду, и я могу почти не отставать от своего компьютера (Dual Core 2.8Ghz). Выполнение более высоких разрешений приводит к тому, что я удаляю рамки. Я хотел бы попытаться избавиться от использования процессора.
Большую часть времени, потраченное потраченное, похоже, находится в декодировании (простые тесты только на декодировании на моем компьютере показывают, что я могу декодировать около 40 кадров в секунду). Кто-нибудь знает, есть ли более быстрый декодер (DirectX? DirectShow? Что-то, что я могу разгрузить на видеокарту?)
Что касается рендеринга, то не похоже, что управление изображением предназначено для такого типа использования (Я был действительно удивлен, что это сработало вообще, я просто попробовал, потому что это было легко сделать). Есть ли другой способ визуализации отдельных кадров, которые могут быть быстрее?
Альтернативное решение может состоять в том, чтобы последовательно называть jpg, а затем открывать первый в VirtualDub, который затем воспроизводит их как видео. –
Я должен был быть более ясным. Я передаю изображения и хочу воспроизвести живое видео с потоковых изображений. – Dolphin
Какой метод вы используете для потоковой передачи изображений jpeg? Я пытаюсь почти точно так же, и я использую BinaryFormatter, чтобы инкапсулировать MemoryStream и отправить его. Интересно, есть ли лучший метод. – geometrikal