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

Есть ли способ получить дескриптор окна окна, в котором в данный момент воспроизводится видео. Это единственная информация, которую будет иметь моя программа.


обновлено, чтобы включить информацию, неправильно предоставленную в качестве ответа

Я думаю, что я должен объяснить, чего именно я хочу достичь здесь.

Я действительно хотел делиться / передавать свои DVD-данные на удаленный компьютер. В настоящее время я делаю захват экрана / видео в неподвижные кадры и отправляю его на удаленную систему, но теперь я не хочу видеть воспроизводимое видео на моем хост-компьютере. Я мог бы придумать несколько возможных решений,

1.) Если мы можем захватить данные из скрытого / свернутого окна.

Провел некоторое расследование и, похоже, это невозможно. Пожалуйста, добавьте свои мысли.

2.) Конвертируйте формат данных DVD в формат ffmpeg и транслируйте его.

Не имею понятия, сможем ли мы преобразовать формат данных. Если большинство форматов DVD позволяют скрывать, я могу пойти на эту опцию, но не уверен, насколько это может быть сложно.

3.) Создает виртуальную поверхность, воспроизводит данные DVD на этой поверхности и захватывает экран этой поверхности.

Снова не уверен, будет ли DVD воспроизводиться на той виртуальной / поддельной поверхности, созданной драйвером режима ядра.

1 ответ

Вероятно, в Windows используются три основных механизма воспроизведения; DirectShow (WMP, MPC), ffmpeg (VLC, MPlayer) и QuickTime.

Если вы посмотрите поближе на DirectShow, то увидите, что он поддерживает аппаратные оверлеи, рендеринг с окнами и без окон, а также поддержку поверхности Direct3d.

Даже если вы сосредоточитесь на одном приложении, у вас будут проблемы, поскольку вы не знаете, какой тип рендерера используется. Возможно, вы сможете найти дочернее окно, которое всегда имеет ту же позицию и размеры, что и видео, но тогда вы полагаетесь на вещи, которые могут меняться между версиями и т. Д.

Другие вопросы по тегам