通过LAN C#流式传输视频

时间:2012-07-21 23:50:08

标签: c# video streaming networkstream

我最近了解了数据流和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将实时视频从我的网络摄像头流式传输到c#应用程序?

1 个答案:

答案 0 :(得分:2)

与提及的评论一样,您应该查看How can I stream webcam video with C#?。通常,所有流出的都是字节。只要这些字节的格式化方式可以让播放器(如闪光灯,银光灯等)能够理解,然后它就可以播放视频。

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

流式传输到互联网,缺少滚动自己的流媒体服务器,通常是通过挂钩red-5wowzaadobe FMSrtsp,{{ 3}}等等。

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

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