Мы можем получить дескриптор окна окна, которое воспроизводит видео?
Есть ли способ получить дескриптор окна окна, в котором в данный момент воспроизводится видео. Это единственная информация, которую будет иметь моя программа.
обновлено, чтобы включить информацию, неправильно предоставленную в качестве ответа
Я думаю, что я должен объяснить, чего именно я хочу достичь здесь.
Я действительно хотел делиться / передавать свои DVD-данные на удаленный компьютер. В настоящее время я делаю захват экрана / видео в неподвижные кадры и отправляю его на удаленную систему, но теперь я не хочу видеть воспроизводимое видео на моем хост-компьютере. Я мог бы придумать несколько возможных решений,
1.) Если мы можем захватить данные из скрытого / свернутого окна.
Провел некоторое расследование и, похоже, это невозможно. Пожалуйста, добавьте свои мысли.
2.) Конвертируйте формат данных DVD в формат ffmpeg и транслируйте его.
Не имею понятия, сможем ли мы преобразовать формат данных. Если большинство форматов DVD позволяют скрывать, я могу пойти на эту опцию, но не уверен, насколько это может быть сложно.
3.) Создает виртуальную поверхность, воспроизводит данные DVD на этой поверхности и захватывает экран этой поверхности.
Снова не уверен, будет ли DVD воспроизводиться на той виртуальной / поддельной поверхности, созданной драйвером режима ядра.
1 ответ
Вероятно, в Windows используются три основных механизма воспроизведения; DirectShow (WMP, MPC), ffmpeg (VLC, MPlayer) и QuickTime.
Если вы посмотрите поближе на DirectShow, то увидите, что он поддерживает аппаратные оверлеи, рендеринг с окнами и без окон, а также поддержку поверхности Direct3d.
Даже если вы сосредоточитесь на одном приложении, у вас будут проблемы, поскольку вы не знаете, какой тип рендерера используется. Возможно, вы сможете найти дочернее окно, которое всегда имеет ту же позицию и размеры, что и видео, но тогда вы полагаетесь на вещи, которые могут меняться между версиями и т. Д.