Я хочу использовать VLC в качестве основы для видеопроигрывателя в своем приложении, написанном на С# (поскольку VLC является одним из немногих игроков, которые могут правильно декодировать формат Im, с которым работает Im), но основные задачи, которые мне нужны, выполните следующие действия:
- Возможность просмотра отдельных кадров в видеофайле, как вперед и назад.
- Отображение точной метки времени для каждого кадра до миллисекунды, а также возможность передачи метки времени приложение.
Прямо сейчас я делаю это с помощью расширения VLC LUA script, но время, которое VLC возвращает через vlc.var.get(ввод, "время" ), не имеет точности и может отличаться для одного и того же кадра в одном и том же видео файл через несколько файлов. Просмотр рамки не работает слишком надежно. Кроме того, полученные таким образом значения не могут автоматически передаваться в другое приложение.
Я попытался использовать обертку LibVLC.NET для libVLC, но я все еще не мог перемещаться между кадрами, а возвращаемые значения миллисекундного счета были довольно странными. Его почти как VLC (libVLC) не возвращает фактическое значение времени во время воспроизведения, а скорее какое-то округленное значение, значение с существенной задержкой при чтении с точностью до миллисекунды. Стандартный интерфейс VLC не может отображать точные значения времени до миллисекунды и не просматривать между кадрами.
Есть ли жизнеспособный способ выполнить две вышеупомянутые задачи с помощью VLC, как-то запустить VLC из приложения, написанного с использованием .NET? Или мне нужно посмотреть другие варианты?