Я разрабатываю браузерное приложение / инструмент в Javascript, который запускает WebGL для анимации изображений, загружаемых пользователем. Анимация работает хорошо. Теперь я хочу, чтобы пользователь мог сохранять / экспортировать анимацию. В настоящее время я использую HTML MediaRecorder API для записи экрана браузера на лету / в режиме реального времени, создавая файл WEBM, который сохраняется в их P C.
В целом это работает достаточно хорошо. Однако, если анимируется очень большое изображение, ie 2048x2048 пикселей, при запуске процесса записи FPS браузера падает примерно до 12. Очевидно, что записанная анимация выглядит дерьмово. Теперь я могу определить FPS, и если он упадет ниже, скажем, 24 кадра в секунду, я могу соответственно замедлить анимацию. например, если fps падает до 12, я устанавливаю анимацию на половину скорости во время записи. После этого я могу запустить вывод видео в проигрывателе VL C, увеличить скорость воспроизведения до 200%, и видео выглядит плавным.
Итак, мой вопрос ... Могу ли я каким-то образом установить информацию о кодировке Файл WEBM, чтобы он нормально воспроизводился в плеере? Скажите игроку, что такое FPS? (ie 12 в приведенном выше примере). Или скажите, какова скорость воспроизведения?
Как узнать, что FPS записи по умолчанию с HTML MediaRecorder? Я пытался использовать инструменты FFMPEG для выходных файлов, но на самом деле не получил от него много полезной информации (возможно, здесь ошибка пользователя).
(здесь нуб-кодировка видео, так что я, вероятно, облажался с терминологией, но надеюсь, моя проблема / намерение объяснены достаточно четко)
РЕДАКТИРОВАТЬ: Можно ли заставить MediaRecorder API для записи в соответствии с кадром анимации? Похоже, что он работает независимо от фактического FPS браузера.