【问题标题】:Best way to create FLV stream from screenshots从屏幕截图创建 FLV 流的最佳方法
【发布时间】:2010-01-20 23:40:28
【问题描述】:

我想创建一个从我的 directx 应用程序中获取的图像生成的 FLV 流,以最终显示在网页上。

我目前的计划是(已经)将屏幕截图作为 JPG:s 从 dx 应用程序发送到在 Linux 上运行的客户端。此客户端将 JPG:s 转换为 MJPEG 流。 ffmpeg 将 MJPEG 流转换为 FLV - 最终在浏览器的 Flash Player 中。

类似的东西;

  1. 在windows机器上运行dx app,监听连接发送截图JPG:s到
  2. 在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, other solutions.. 我没有太多视频编码经验,但我非常了解“通用编程”的方法。

首选 C 或 C++,但 Java 或 Python 也可以。不过我想要它很快- 它必须实时创建,dx 应用程序中的一帧应尽快在浏览器中结束:-)

哦,未来的计划是它应该是交互式的,这样我就可以从浏览器中的 web 应用程序与 DX 应用程序进行通信/控制。也可以添加这些信息。有点像基于网络的 VCR,电影是从 DX 应用程序实时渲染的。

谢谢,

【问题讨论】:

  • 作为记录,我设法让 DX 应用程序通过 HTTP 将 JPG:s 作为 MJPEG 发送到这一点。 ffmpeg 接受了这一点,并能够从中吐出 MPG 视频。所以现在剩下要做的就是 FLV 流了,为此我将尝试 ffserver。

标签: streaming directx real-time jpeg video-encoding


【解决方案1】:

在 Linux 上使用 gstreamer。您可以使用您喜欢的任何编解码器将几乎任何输入和输出组合拼凑在一起。学起来有点麻烦。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-11
    • 2012-12-20
    • 2014-06-23
    • 2010-10-03
    • 1970-01-01
    • 2011-03-21
    相关资源
    最近更新 更多