@DWZ

Что и как декодирует видео в браузере?

Подскажите, пожалуйста, как происходит декодирование видео при его воспроизведении в браузере под Windows7? Вот скрипт дёрнул с сервера несколько мегабайт, которые представляют собой, скажем, TS-файл или кусок файла MP-4. Что происходит дальше? Кто дальше разбирается в этой мешанине байтов? Кто разбирает формат, что вот тут у нас звук, а тут изображение? Кто разжимает изображение в конечный вид, который мы видим на экране? Скрипт? Браузер? ОС? Видеоплата?

Используются ли при этом стандартные кодеки, установленные в системе? Кто их вызывает? Что и в каком виде подаётся на вход и что имеем на выходе? Кто решает, что надо использовать именно этот кодек?

Как всё это взаимодействует друг с другом? Где про это почитать? (Ответ "В Интернете/Гугле" - не принимается ;) )
  • Вопрос задан
  • 657 просмотров
Пригласить эксперта
Ответы на вопрос 3
Zoominger
@Zoominger Куратор тега Windows
System Integrator
Кто дальше разбирается в этой мешанине байтов? Кто разбирает формат, что вот тут у нас звук, а тут изображение? Кто разжимает изображение в конечный вид, который мы видим на экране?

Кодек.

Используются ли при этом стандартные кодеки, установленные в системе?

Обычно они встроены в браузер.

Ну мне как-то нечего больше добавить. Видео декодируется, внезапно, кодеком, который подрублен в браузер. Гуглите по "H264", например, или чо там.
Ответ написан
gbg
@gbg Куратор тега Windows
Любые ответы на любые вопросы
Зависит от браузера и операционной системы.
Chrome честно использует куски из ffmpeg, а если видеокарта поддерживает (а она обычно поддерживает), то декодирует прямо на ней.

Видеофайл, обычно, это сложный контейнер, содержащий много потоков данных - звук, видео, субтитры и так далее. Процесс упаковки в контейнер называется муксинг, распаковки - демуксинг. Соответственно, кусок сначала попадает в демуксер и из него вынимаются нужные потоки.
Демуксер может быть частью ffmpeg или gstreamer, может быть частью DirectX, может быть частью Андроида (AMediaFormat).

После демуксера конкретно видео поступает в декодер - аппаратный (на видеокарте) или программный, а потом на экран.

Программный декодер опять же может быть частью ffmpeg или gstreamer, или из DirectX (это к вопросу, используются ли установленные кодеки)
Ответ написан
@alex1478
Грубо говоря всё работает так:
Видео декодируется браузером по алгоритму декодирования данного формата видео. Декодирование происходит средствами процессора, картинка тоже создаётся самим браузером внутри окна. Всё окно браузера, за исключением рамок окна, создаётся самим браузером средствами процессора. Эта картинка отдаётся на видеокарту, которая выводит её на экран, совмещая с остальными элементами DE.
Если браузер поддерживает аппаратное декодирование на видео карте, то на видеокарту отдаётся окно браузера с пустотой вместо видео и поток байт самого видео с указанием координат, слоя, позрачности и тд. Видео карта это всё совмещает и выводит.
Но опять же говорю что это очень грубое описание процесса, слишком много нюансов.
Ответ написан
Ваш ответ на вопрос

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

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