我正在编写一个应用程序,使MJPEG流从iPhone到服务器。 我的问题是,我看到的JPEG是一个奇怪的彩色线集合。 如果需要更多信息,我可以发布特定的代码。从iPhone到服务器的MJPEG流
这些步骤如下:
- 通过
AVCaptureVideoDataOutput
- 获取帧并将其转换为一个
UIImage
- 从中
- 获取
NSData
UIImageJPEGRepresentation()
做一个NSMutableData
,敷以“内容 - 图像类型:image/jpeg“和--BOUNDARY
现在我想将它们作为UDP数据包发送到我的服务器。我在iPhone上使用asyncudpsocket,在PC上使用小型java数据云服务器。第一个问题是mtu。 Asyncudpsocket说消息太长,如果nsdata
大于9kb。 因此:
- 图象分成9KB块
- 给他们asyncudp插座
- 接受的TCP套接字对端口2020的PC上
- 收到DatagrammPackets并流式传输到连接的TCP套接字
- 打开Firefox与本地主机:2020年看
我测试过的每部分sepera的MJPEG特德,可以告诉他们没事。我可以在UIImageView
中显示图像,我可以发送,接收和显示来自套接字的字节,并且可以将JPEG流式传输到服务器上,然后在Firefox中观看它们。
图像适合一个datagrammpacket,如果他们足够小(有时是这种情况), ,我可以看到头,字节和边界..但为什么我的MJPEG流仍然显示我一个奇怪的彩色图像(而不是黑色或白色图像,应该是这种情况)?