如何编写客户端-服务器视频流传输程序

3
我正在开发一个实时工程:我需要编写一个视频流客户端-服务器应用程序,这个服务器将会向Web应用程序发送AVI/MPEG等文件。我有一些问题:
  1. 推荐使用什么协议来完成这个任务,http?rtp?还是其他的?

  2. 在Web应用程序中,我该如何向用户展示它?使用Flash播放器、Java小程序(我不确定是否可行)或HTML5,目前最佳的方法是什么?

希望这对您有所帮助。非常感谢您的帮助。提前致谢。 :)

1
请查看微软平滑流媒体,网址为http://www.microsoft.com/presspass/press/2009/apr09/04-20SmoothStreamingPR.mspx。 - Muath Ali
1个回答

5

有几种不同的方法可以实现这个(一些需要编程,而另一些则不需要)。选择哪一个取决于您的要求。

Red5 是一个明显的解决方案,只要您选择的播放器是Flash,就可以只关注Web端。

FlourineFx 为.NET提供了类似的环境,但需要更多的努力。

如果你想使用纯Windows/C#解决方案,我也用IIS和自定义服务器使用HttpListener成功地实现了这个。这里需要注意的是,它并不总是简单的。在吞吐量受限的环境中,会出现问题,因为HTTP没有RTP/RTMP/RTSP具有的时间校正,但在良好的网络中它工作了三个9(我只测试了一个播放器)。

更新

如果您谈论的是使用.NET进行实时流媒体传输,我建议您研究DirectShow(或相关的DirectX)API。有一个针对.NET的包装器可用,名为DirectShow.NET


谢谢您的回复。您提到使用IIS和HttpListener实时从设备(例如WebCam或等效设备)获取数据,是吗? - The Mask
请原谅我试图澄清(您的评论不是很清楚),您是在说您正在寻找一种可以从网络摄像头或类似设备进行流媒体传输的解决方案吗?如果是这样,那么这个要求与您在上面提出的问题显然有很大不同。我建议您考虑使用DirectShow(或更近期的DirectX库)来帮助您完成这项任务。但这并不是一个小任务。 - M.Babcock
正如你所说的一样。也许我在这个话题中使用了错误的词语。但我会接受你的答案并寻找DirectShow。如果你有关于DirectShow使用的信息,请给我提供链接。 :) - The Mask
实时可能与“直播”有所不同。我已经更新了我的答案,并附带了一个用于DirectShow的.NET包装器链接。 - M.Babcock

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接