> Какая разница, показывать потоковое видео в плеере в отдельном окне или в окне браузера?По большому счёту никакой. Но...
Но есть нюансы. Посмотри, как проигрывание делается в MPlayer или GStreamer. В первом используются фиктивные кадры, потому что это требовало минимальных изменений в MPlayer при добавлении поддержки VDPAU. Сейчас, похоже, все считают это нормальным, но выглядит всё равно жутковато. В GStreamer получше, там используются метабуферы, но это потребовало перековырять все остальные плагины, чтобы они их научились понимать. И всё равно есть достаточная степень кривизны — нет гарантии, что в цепочку не влезет какой-нибудь плагин, который выкачает картинку на CPU, просрав всю выгоду от аппаратного декодирования.
В общем, что костыли вставлять, что перерабатывать код для вывода видео — задачи сложные и объёмные. Если хоть на каком-то этапе выкачивать картинку из GPU, выгода теряется. Получаешь более сложный код, который работает не быстрее.
Кстати, интересно сравнить подход, использованный во Flash. Там для поддержки аппаратного декодирования сделали отдельный канал, StageVideo. За частично прозрачной сценой находится фон, на котором рендерится видео. Так как у кода нет доступа к содержимому видео, нет необходимости вообще хоть как-то поддерживать выгрузку кадров из памяти GPU.
В HTML5 JS код в любой момент может содрать текущий кадр из видео в canvas, а потом обрабатывать его как захочется. Всё круто, HTML5 могёт! Только сложность реализации аппаратного декодирования, которая и так была не маленькой, внезапно возрасла в разы.
Ах, да, ещё надо уметь синхронно скроллить. Если пользователь скроллит страницу, а видео окно за ним не поспевает, это выглядит ужасно.