嗯。我发现这似乎很有希望:
http://sourceforge.net/projects/mjpg-streamer/
好的。我会尽量解释清楚和详细地解释我想要做的事情。
我有一个小型仿人机器人,带有摄像头和wifi棒(这是机器人)。机器人的wifi平均传输速率为1769 on /s,该机器人有500 the的CPU和256 on的RAM,不足以进行任何严肃的计算(而且机器人上已经有运动、视觉、声纳、语音等模块运行)。
我有一台电脑,我用它来控制机器人。我正试着让机器人在房间里走来走去,看到机器人在电脑上看到的实时视频。
我已经开始工作了。机器人像我希望的那样走路,用相机拍照。这些图像正在通过UDP协议发送到我接收它们的PC上(我已经通过将传入的图像保存在磁盘上来验证了这一点)。
相机返回的图像是64x48px在YUV442颜色空间。我是发送有损压缩(JPEG)的图像,因为我试图获得最好的FPS在PC上。我正在用PIL库对机器人进行JPEG压缩。
我的问题:
一些代码样本。下面是我如何从机器人发送JPEG图像到PC (简写代码片段)。它运行在机器人上:
# lots of code here
UDPSock = socket(AF_INET,SOCK_DGRAM)
while 1:
image = camProxy.getImageLocal(nameId)
size = (image[0], image[1])
data = image[6]
im = Image.fromstring("YCbCr", size, data)
s = StringIO.StringIO()
im.save(s, "JPEG")
UDPSock.sendto(s.getvalue(), addr)
camProxy.releaseImage(nameId)
UDPSock.close()
# lots of code here以下是我如何在PC上接收图像。这在PC上运行:
# lots of code here
UDPSock = socket(AF_INET,SOCK_DGRAM)
UDPSock.bind(addr)
while 1:
data, addr = UDPSock.recvfrom(buf)
# here I need to create a stream from the data
# which contains JPEG image
UDPSock.close()
# lots of code here发布于 2010-10-27 17:03:55
看看你的第一个问题。虽然这里的解决方案使用了一组非流式图片。也许能帮上忙。该示例使用pyMedia。
一些你想要的东西。
如果您需要编辑二进制流:
发布于 2010-10-28 04:31:33
尝试侏儒并测试每个可用的编解码器以获得最佳性能。您可能需要一个非常轻量级的编解码器,比如烟雾或低配置文件H263或x264,您可能需要将分辨率降低到320x240。
您可以在视频编码和解码的延迟与所使用的带宽之间进行权衡,您可能会发现下降到160x120的原始数据包用于快速场景分析,并且只定期发送整个帧。您还可以将原始、低延迟、低分辨率、高更新提要与高压缩、高延迟、高分辨率、低更新提要混合使用。
https://stackoverflow.com/questions/4035365
复制相似问题