Комментарии 28
Спасибо за статью. Помню, как я, используя такой фон, смотрел видео в Paint в школе, когда там не VLC (единственный плеер) запретили :)
+19
А ещё можно было вставить скриншот в пэйнт, и видео играло уже в нём. Старый-старый прикол.
+16
Прочел статью и узнал, в чем же прикол! :)
А то недавно как раз смотрел удивленно на такой оживший скриншот :)
А то недавно как раз смотрел удивленно на такой оживший скриншот :)
+6
А я все никак не мог понять как такое возможно. Одна из тех космических штук, не поддающихся описанию.
+5
Многоэкранная среда убивает на корню идею переноса блока памяти с декодированным изображением в видеопамять, ведь окна могут перекрывать друг друга самым причудливым образом.Вообще-то проблема была не в этом, а в том, как вывести на экран разрешением 1024×768 картинку разрешением 720×512 тридцать раз в секунду. Если масштабировать каждый кадр — никакого процессора не хватит. Для того и придумали оверлей, в котором изображение масштабировала свободная видеокарта.
+3
Оверлеи не совместимы с композитными оконными менеджерами, поэтому начиная с висты их не используют, и сейчас снять скриншот плеера не представляет труда.
Этот пост затерялся во времени. :)
Этот пост затерялся во времени. :)
+20
Ну не совсем затерялся :)
msdn.microsoft.com/en-us/library/dd797814(v=vs.85).aspx
Starting in Windows 7, Direct3D 9 supports hardware overlays.
msdn.microsoft.com/en-us/library/dd797814(v=vs.85).aspx
Starting in Windows 7, Direct3D 9 supports hardware overlays.
0
Вот костыли-то…
+8
>На фоне нынешних рассуждений о том, «справится ли мой телефон/калькулятор/часы с проигрыванием HD-видео» отошел на задний план интересный исторический факт: немногим более 10 лет назад проблемой была даже не скорость декодирования видео (теплый ламповый MPEG декодировался тогда отдельными аппаратными декодерами;
так в нормальных программно-аппаратных решениях оно аппаратно и сейчас декодируется. гонять видекодеки на MCU — это как раз мерзостные веяния виндовса и интеля.
так в нормальных программно-аппаратных решениях оно аппаратно и сейчас декодируется. гонять видекодеки на MCU — это как раз мерзостные веяния виндовса и интеля.
+1
Помню давно делал скриншот с какого-то клипа… Когда увидел видео вместо скриншота, первым делом начал вспоминать, что я принимал в последние часы. Потом вырубил плеер и получил тёмное изображение. Забил и забыл…
Вот в чём дело, оказывается… Спасибо за статью!
Вот в чём дело, оказывается… Спасибо за статью!
+4
А почему бы не скриншотить кадры стандартными средствами плеера? В Media Player Classic есть такая функция, я ее часто юзаю… Или это дело принципа?)
0
Отличная статья! Сразу захотелось что-нибудь сделать.
0
Проблема hardware overlay не только в том, что нельзя просто так сделать скриншот, но еще и в том, что нельзя растянуть видео на несколько мониторов.
+1
Увидел в коде Detour* вспомнил про Microsoft Detours, полез на сайт и обнаружил, что MS раздаёт Detours бесплатно для некоммерческого использования. Правда бесплатная версия только 32-битная, но этого вполне достаточно для самообучения.
0
Ноги растут как раз оттуда. Для начала пользовался именно Microsoft Detours, потом, когда речь зашла о возможной финансовой выгоде, перешел на полностью бесплатный вариант.
0
А этот бесплатный вариант — это что-то своё или какая-то общедоступная библиотека? Если второе — можно ссылочку?
0
Я просто обернул в божий вид то, о чем говорилось в rsdn.ru/article/baseserv/IntercetionAPI.xml
Хотя, говорят сейчас вот это www.codeproject.com/KB/winsdk/LibMinHook.aspx крайне популярно: разумная лицензия, 64 бита.
Хотя, говорят сейчас вот это www.codeproject.com/KB/winsdk/LibMinHook.aspx крайне популярно: разумная лицензия, 64 бита.
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Скриншот видеоплеера без «черных» дыр