3

我最近了解了数据流和 C#。我已经练习构建一个简单的服务器客户端登录程序,如下所示:

public static TcpClient SocketCLiente = new TcpClient(); 
NetworkStream _serverStream = default(NetworkStream);
public static string IPServer="127.0.0.1";

byte[] outStream = System.Text.Encoding.ASCII.GetBytes(this._txtUserName.Text + "%" + this.txtPassword.Text + "$");
_serverStream.Write(outStream, 0, outStream.Length);

这适用于文本,但如果我想将视频流式传输到客户端怎么办?如何通过 LAN 将实时视频从我的网络摄像头流式传输到 ac# 应用程序?

4

1 回答 1

2

就像提到的评论一样,您应该查看如何使用 C# 流式传输网络摄像头视频?. 通常,您流出的所有内容都是字节。只要这些字节以播放器(例如 flash、silverlight 或其他任何东西)可以理解的方式格式化,它就可以播放视频。

现在我认为这篇文章并没有真正涵盖互联网流媒体方面。它确实更多地涉及在本地捕获和播放。这就是directshow擅长的。它抽象出您过去必须处理以捕获视频和音频帧数据的所有驱动程序废话。

流式传输到互联网,而不是滚动您自己的流式服务器,通常是通过连接到red-5wowzaadobe FMSrtspsilverlight 流等来完成的。

我会使用其中一种解决方案来连接您从哪里获取视频数据。要点是您从 directshow 捕获视频/音频数据包,然后将这些数据包(格式为解决方案所需的格式)汇集到这些流媒体平台之一。

另一种选择,虽然它更“hackish”,但将您的视频流式传输为motion jpeg。但是,这不会让您发送音频。Motion jpeg 基本上告诉客户端保持连接打开并不断下载新图像并替换旧图像。这就像一本用于网络的翻书。这里的优势是你可以很容易地滚动你自己的运动 jpeg 代码,这将是一个有趣的小项目。

于 2012-10-08T22:19:02.467 回答