2012-07-21 148 views
3

我最近了解到数据流和C#。我已经练习建立一个简单的服务器 - 客户端登录程序,像这样:通过局域网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#应用​​程序?

+0

看看这个答案[SO问题](http://stackoverflow.com/questions/342774/how-can-i-stream-webcam-video-with-c)有帮助。 – 2012-07-22 00:52:37

回答

2

像提到的评论,你应该检查出How can I stream webcam video with C#?。一般来说,你输出的都是字节。只要这些字节被格式化为播放器(例如闪光灯或silverlight或其他)可以理解的方式,则它可以播放该视频。

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

流媒体到互联网,短滚你自己的流媒体服务器,通常是通过挂钩到类似red-5wowzaadobe FMSrtspsilverlight streaming等完成

我会用这些解决方案挂接到的一个无论你从哪里获取视频数据。要点是,您从directshow捕获视频/音频数据包,然后将这些数据包(格式化,但解决方案需要)传输到其中一个流式传输平台。

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