@ASiD

Можно ли в html5 video изменить число кадров в секунду?

Добрый день. Есть не очень мощный "сервер" с кучей видео. Сейчас видео с него воспроизводится через проигрыватель в оригинальном качестве. Но если качество высокое, а каналы связи не очень широкие, видео начинает тормозить.
Понимаю, что изменить разрешение "на лету", скорее всего не получится, но можно ли в плеере изменить число кадров, отображаемых в секунду? Это бы снизило нагрузку на канал и, возможно, решило бы проблему.
  • Вопрос задан
  • 254 просмотра
Пригласить эксперта
Ответы на вопрос 3
profesor08
@profesor08 Куратор тега JavaScript
Избавь себя от головной боли, и залей на youtube.

Но если нравится, то оптимизируй видео для интернета, webm например.

Либо раскошеливайся на тариф подороже дешманского.
Ответ написан
@UPSA
anykey. Я не программист, я просто ленивый.
Нет. Число кадров в секунду (грубо - FPS) зашито в контейнер с видео.
Поищите про кодирование видео.
Например, https://ru.wikipedia.org/wiki/Audio_Video_Interleave, dwTotalFrames — указывает общее количество кадров в файле и dwMicroSecPerFrame — определяет количество микросекунд между кадрами, те при кодировании видео файла жестко определяется количество кадров в секунду. Но проигрыватели любят "лагать" - это и за пропуска кадров.
Вот еще ссылка htmlbook.ru/html5/video. Так что при слабом канале и видео 8К можно только добавить preload в тег video, что бы он начал закачиваться заранее.
Ответ написан
Комментировать
Dier_Sergio_Great
@Dier_Sergio_Great
Увлеченный человек
Нет, нельзя.
Видеохостинги заранее рендерят видео с разным битрейтом и разным разрешением.
так как это процедура трудная. То рендер как правило пускают в моменты простоя ЦПУ. Скажем падают запросы обращений на ютуб до 60% от максимльного, в этот момент начинается перерендер, под низкое разрешение с низким битрейтом. но это допустим для каналов с низкими посещениями. а для популярных каналов рендерят сразу. так как млиллионы зрителей хотят скачивать один файл с низким разрешением. Ну а после этого видео файл хранится на кеширующих серверах каждого региона. Например в каждой области России есть сервера для кеширования популярных роликов. Там как правило хранится фильмы в виде порезанных кусков по 20Мб (условно), Например ты во время просмотра меняешь качество, и качество меняется на самом деле по только когда у тебя закончится предыдущий кусок, а новый будет подгружаться уже с другим разрешением. Это позволяет менять параметры видео налету.
.
В любом случае число кадров в секунду исходит из того что каждый кадр хранит только изменнёные пиксели(не все, только малую часть) предыдущего кадра. Каждые 10-20 секунд в видео вставляется ключевой кадр со всеми пикселями.
Как Вы думаете если изъять промежуточный кадр, то следующие кадры будут правильно отображать данные?
Вы такой эфект уже видел при просмотре видео с лазерных дисков, когда в середине видео вдруг появляются белые квадраты с деталями из фильма. А потом спустя несколько секунд всё становится нормально. Нормально становится когда показывается ключевой кадр. А дефекты видео были, когда был испорчен один из промежуточных кадров, и Вы приэтом могли видеть как один промежуточный кадр даёт дефект на все последующие кадры. А ведь кадров то 25 в секунду. 1 кадр даже не виден глазу, а мы видим как дефект этого короткого кадра растягивается на долгие секунды.
А если Вы думаете что хранить видео в формате где каждый кадр является ключевым. То разочаруйтесь, такие видеоролики будут занимать 50Гбайт за 30 минут и качество будет их не 4К а всего 720 пикселей по вертикали.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы