Я ищу способ декодировать h264 (или любой другой формат видео) с помощью С#. Конечная цель состоит в том, чтобы иметь возможность декодировать изображения и строго контролировать воспроизведение в режиме реального времени. Проект, над которым я работаю, представляет собой произведение нелинейного видеоарта, в котором HD-материал должен зацикливаться и редактироваться на лету, воспроизводить определенные диапазоны кадров, а затем плавно переходить к следующему случайно выбранному диапазону кадров.
Я создал приложение, которое считывает файлы изображений (jpeg) с диска и воспроизводит их на экране по порядку, у меня есть полный контроль над тем, какой кадр загружается и когда он отображается, но при полном разрешении HD это занимает немного больше времени, чем я хочу. для загрузки изображений с жесткого диска (каждое размером около 500 КБ), я думаю, что использование сжатого формата видео будет меньше и, следовательно, быстрее для чтения и декодирования в конкретный кадр, однако я не могу найти какой-либо доступный способ сделать это.
Есть ли библиотеки, которые могут это сделать? т.е. извлечь произвольный кадр из видеофайла и передать его моему приложению за меньшее время, чем требуется для отображения кадра (работает со скоростью 25 кадров в секунду), я просмотрел библиотеки vlc и оболочки для ffmpeg, но я не знаю, что быть лучше или если бы был другой, еще лучший вариант. Кроме того, я не знаю, какой кодек будет лучшим выбором, поскольку некоторые из них основаны на ключевых кадрах, что делает извлечение произвольного кадра, вероятно, очень сложным.
Приветствуются любые советы, спасибо
MemoryMappedFile
, чтобы сделать чтение очень быстрым... - person Yahia   schedule 28.08.2011