c# - 如何编写客户端-服务器视频流

标签 c# .net video streaming rtp

我正在从事实时工作的项目:我必须编写一个视频流式客户端-服务器应用程序,此服务器会将 AVI/MPEG 等发送到 Web 应用程序。我有一些问题:

  1. 建议执行此操作的协议(protocol)是什么,http?实时协议(protocol)?或其他?

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

我希望这对你来说是干净的。非常感谢任何帮助。提前致谢。 :)

最佳答案

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

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

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

如果您使用的是纯 Windows/C# 解决方案,我也使用 HttpListener 使用 IIS 和自定义服务器完成了此操作,并取得了很大成功。我要在这里补充的警告是,它并不总是那么简单。在吞吐量有限的环境中,你会遇到问题,因为 HTTP 没有 RTP/RTMP/RTSP 所具有的时间校正,但在一个体面的网络中,它可以工作 3 个 9 的时间(虽然我只用一个播放器测试过).

更新

如果您正在谈论使用 .NET 进行直播流式传输,我建议您查看 DirectShow(或相关的 DirectX)API。有一个适用于 .NET 的包装器,名为 DirectShow.NET .

关于c# - 如何编写客户端-服务器视频流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9146770/

相关文章:

c# - Entity Framework - MySQL - 未知异常

c# - 如何找到 XML 文件中属性值的最大值?

c# - Serilog 没有写入 MsSql 服务器数据库,也没有显示任何错误

c# - 如何以编程方式单击 WPF 中的按钮?

image - FFMPEG - 将全帧图像添加到视频的开头

ruby - 使用 ruby​​ 读取视频文件元数据

c# - WCF 层

c# - 无法为引用可移植类库的程序集生成伪造品

.net - 内部连接以获取不在表中的那些

html - 如何以编程方式捕获 html5 视频( headless )