SteamVR создает мерцание экрана загрузки при записи с использованием FFMPEG в единстве - PullRequest
0 голосов
/ 24 октября 2018

В мою игру Unity VR интегрирован плагин Heatmap (со SteamVR).Плагин использует информацию отслеживания глаз, чтобы генерировать тепловые карты в реальном времени, когда пользователь смотрит на различные элементы в игре.По мере создания тепловых карт весь вид камеры (пользователя) накладывается на информацию тепловых карт и записывается в файл MP4 с использованием FFMPEG.


Весь процесс работает нормально.Но у меня есть неприятная проблема, когда во время записи изображение с камеры пользователя нестабильно, продолжает мерцать и останавливается только после остановки записи.Это прерывает плавный ход его игры. Пока я сузил код, вызывающий проблему:

        public void Write(byte[] data)
    {
        if (_subprocess == null) return;

        _stdin.Write(data);
        _stdin.Flush();
    }

Насколько я понимаю, именно в этой части кода вызывается stdinput для записи вфайловая система.Итак, я предполагаю, что проблема должна быть связана с доступом к файловой системе, которая, в свою очередь, должна была вызывать некоторую задержку при записи каждого кадра в методе обновления.Поправь меня, если я здесь не прав.enter image description here

Экран загрузки, который появляется при каждой записи кадра, выглядит примерно так, как указано выше.Это прерывает плавный ход игры, а также делает запись бесполезной, поскольку пользователь продолжает фокусироваться на мерцании, а не на реальных объектах, представляющих интерес.Буду очень признателен, если кто-нибудь прояснит этот вопрос здесь?

1 Ответ

0 голосов
/ 28 октября 2018

Доступ к файловой системе всегда занимает огромное количество времени.Попробуйте перенести эту работу в другой поток или Coroutine .

...