我最近了解了数据流和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 :(得分:2)
与提及的评论一样,您应该查看How can I stream webcam video with C#?。通常,所有流出的都是字节。只要这些字节的格式化方式可以让播放器(如闪光灯,银光灯等)能够理解,然后它就可以播放视频。
现在我不认为这篇文章真的涵盖了互联网流媒体方面。它真正触及了本地捕获和回放的更多内容。这就是directshow擅长的。它抽象了您过去必须处理的所有驱动程序废话,以捕获视频和音频帧数据。
流式传输到互联网,缺少滚动自己的流媒体服务器,通常是通过挂钩red-5,wowza,adobe FMS,rtsp,{{ 3}}等等。
我会使用其中一种解决方案来吸引您从哪里获取视频数据。要点是您从directshow捕获视频/音频数据包,然后将这些数据包(解决方案需要的格式化)汇集到其中一个流媒体平台。
另一个选择,虽然它更加“hackish”,但是将视频流式传输为silverlight streaming。这不会让你发送音频。 Motion jpeg基本上告诉客户端保持连接打开并不断下载新映像并替换旧映像。它就像一本网页翻页。这里的优点是你可以很容易地推出自己的运动jpeg代码,这将是一个有趣的小项目。