我想创建一个从我的 directx 应用程序获取的图像生成的 FLV 流,最终出现在网页上。
我目前的计划是(已经)将屏幕截图作为 JPG:s 从 dx 应用程序发送到在 Linux 上运行的客户端。此客户端将 JPG:s 转换为 MJPEG 流。ffmpeg 将 MJPEG 流转换为 FLV - 最终在浏览器中的 Flash Player 中。
就像是;
- 在 Windows 机器上运行 dx 应用程序,它会监听连接以将截图 JPG:s 发送到
- 在linux机器上;./jpg_to_mjpeg_client | ffmpeg -f mjpeg -i - output.flv
我认为这个计划很好,但我现在卡住了。ffmpeg 似乎无法正确处理来自客户端的 MJPEG 流。我使用我在网上找到的一些代码从 JPG:s 创建 MJPEG 流,我知道 MJPEG 格式没有真正的规范,所以也许他们不使用相同的 MJPEG 格式或其他东西。
现在我正在为 dx 应用程序的每一帧发送 [JPG 缓冲区大小]、[JPG 缓冲区]。我想我也可以在那里编码一些流,但另一方面我也不想在渲染机器上浪费太多的 CPU。
你会怎么做?任何提示都非常感谢!库/API:s to use,其他解决方案..我根本没有太多视频编码经验,但我非常了解“通用编程”的方法。
首选 C 或 C++,但 Java 或 Python 也可以。不过我希望它很快 - 它必须实时创建,来自 dx 应用程序的一帧应该尽快在浏览器中结束:-)
哦,未来的计划是它应该是交互式的,这样我就可以从浏览器中的 web 应用程序与 DX 应用程序进行通信/控制。也可以添加这些信息。有点像基于网络的 VCR,电影是从 DX 应用程序实时渲染的。
谢谢,