需要通过USB将实时视频从USB发送到iPad,每秒至少15帧,512×512字节帧。
但只看到< USB每秒1帧(WIFI为4-6 fps)。 Loop是iPad应用程序使用NetworkComms.SendReceiveObject()来请求帧,而Windows应用程序使用NetworkComms.SendObject()来发送帧回复。
NetworkComms可以不间断地从Windows到iPad直接传输512 x 512字节帧吗?
如果发送100×100字节帧,则通过USB观看3.6 fps,通过WIFI观看30fps。 但是在期望的帧尺寸512×512处,USB是< 1fps,WIFI约为6fps。
奇怪WIFI更快。
Windows应用程序是带有NetworkComms.net的Visual Studio 2010 C#。 iPad应用程序是Xamarin Monotouch C#和NetworkComms.net。
答案 0 :(得分:1)
使用UDP broadcasting解决方案在以下位置执行连续,异步,单向流式处理: http://www.networkcomms.net/udp-broadcasting/
或者,更好的是,使用他们的TCP方法,它支持压缩以获得更快的速度。下载他们的优秀示例并在AdvancedSend.cs文件中查找示例代码。
警告:如果从Visual Studio运行,则运行速度极慢。当我运行C#.exe时,我通过USB从iPad-7到iPad获得44Mbps的吞吐量(这是iPad硬件的USB2.0)。
这是我的代码: // VISUAL STUDIO 2010 C#流媒体传输到IPAD:
for(;;)// thread的exec循环 { NetworkComms.SendObject(“Ultrasound Stream”,ultrasound_stream_sourceId,false,frame_to_iPad); }
//来自WINDOWS的IPAD STREAMING RECEIVER:
NetworkCommsDotNet.NetworkComms.AppendIncomingPacketHandler(“Ultrasound Stream”, (packetHeader,connection,incoming_bytes)=> { //处理incoming_bytes的代码在这里。 },false);