【问题标题】:Is there a open-source video codec which can "play" .exe files?是否有可以“播放” .exe 文件的开源视频编解码器?
【发布时间】:2013-01-14 06:25:52
【问题描述】:

好吧,我想利用 Windows Media Player 在它的视频窗口中运行 .exe 应用程序。例如,应用程序可以是全屏 DirectX 或 OpenGL 应用程序,您可以在操作系统上执行。

我想知道是否有这样的编解码器,以便我可以根据需要对其进行调整?或者也许有一个具有很好的调整能力但不是(完全)开源的?

(我问这个问题是因为这个问题:https://superuser.com/questions/533730/how-to-run-an-directx-or-opengl-application-as-desktop-background

【问题讨论】:

    标签: windows opengl directx fullscreen codec


    【解决方案1】:

    这可能是我很长时间以来读到的最奇怪的请求。首先是坏消息:不,没有开源编解码器可以在 Windows Media Player 的视频窗口中播放“.exe”生成的输出。 “.exe”或更准确地说是 PE 文件(便携式可执行文件)包含程序代码,即被 CPU 解释为程序的数据。然而,视频不是程序,而是图像数据。

    视频编解码器是一种在格式之间转换视频数据的程序。例如,它可以将压缩的 h.264 解码为适合显示的原始 RGB 数据。视频编解码器有一定的限制,例如它们解码一系列帧。

    现在好消息:从技术上讲,编写这样的编解码器是可能的。不过,我无法使用 WMP 打开 .exe,因为 WMP 无法解释这些文件。但是您可以引入一个新的 FOURCC,一个标识特定视频编码格式的 4 字符代码,并使用该 FOURCC 注册一个特殊用途代码。然后,您使用该 FOURCC 创建一个特殊的 AVI 文件,其中包含对目标 .exe 的引用,而不是帧中的视频数据。当 WMP 尝试播放此文件时,它将启动此“编解码器”,而后者又可以启动 .exe。您需要在启动的应用程序和“编解码器”之间建立通信协议。必须创建一个离屏渲染表面,我会说进程之间共享的 PBuffer DC 最适合这一点,即“编解码器”创建 PBuffer,.exe 在其之上创建 OpenGL 上下文。然后编解码器将 PBuffer 的内容作为解码后的视频帧传递给 WMP。


    所以是的,可以完成这样的 hack。但这会很丑陋和奇怪。

    为什么不简单地为 WMP 编写一个可视化插件呢?那些也可以在视频窗口中运行,但它不需要如此丑陋的 hack。

    【讨论】:

    • 虽然我不是程序员,但我完全理解这个答案,我会标记这个答案,也许有一天,有人会创造这样的东西。拥有一个 DirectX 或 opemGL 动画的 walpaper 会很酷:$
    • @GamErix: 好吧,那就使用 X11(Linux 或 *BSD);) 你可以在根窗口上放置任何窗口,包括 OpenGL 动画。
    • @datenwolf 这太酷了,我总有一天一定要试试。我希望在 comp 中实时可视化活动:带有彩色块的内存图、高清地图、像高速公路交通一样流动的网络数据包、显示自动跟踪到所有连接的路线的网络地图等。“网格。数字前沿。我试图在信息簇通过计算机时描绘它们。它们是什么样子的?轮船?摩托车?电路像高速公路吗?我一直梦想着一个我认为我永远不会看到的世界。然后,有一天…… . "
    【解决方案2】:

    简单的回答:不。

    复杂的答案:你的标题毫无意义,因为在那里你不会谈论播放 exe 文件,而是试图拦截“各种 API”并将它们神奇地转换成视频。

    【讨论】:

    • 啊好吧:
    猜你喜欢
    • 2011-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-07
    • 1970-01-01
    • 2014-01-21
    • 2011-07-13
    • 1970-01-01
    相关资源
    最近更新 更多