【问题标题】:Sending an image through UDP communication通过 UDP 通信发送图像
【发布时间】:2017-01-25 14:54:36
【问题描述】:

我正在尝试制作一个视频流应用程序,我可以在其中流式传输我的网络摄像头和我的桌面。到目前为止,为了确保一切正常,我已经通过 TCP 通信这样做了,而且确实如此,但速度很慢。 我知道通常在像这样的直播流中你会使用 UDP,但我无法让它工作。我已经创建了一个基本的 UDP 客户端和一个服务器,它可以发送短字符串,但是在发送整个图像时我找不到解决方案。我也在网上查过,但发现只有关于通过套接字发送图像的帖子,而且他们使用 TCP。 我使用 Python 2.7,pygame 来显示图像,PIL + VideoCapture 来保存它们,以及 StringIO + base64 以便将它们作为字符串发送。

【问题讨论】:

  • 你能分享你的代码吗?

标签: python image sockets stream udp


【解决方案1】:

我的通灵能力告诉我,UDP 数据包的大小已达到上限,略低于 64KB。您可能需要在发送时将图像字节分成多个数据包,并有一些逻辑将它们重新组合到接收端。您可能需要推出自己的标题格式。

不确定为什么需要对图像字节进行 base64 编码,这只会无缘无故地增加 33% 的网络开销。

虽然 UDP 的网络开销比 TCP 少,但它通常依赖于开发人员您自己的机制来进行流量控制、分段处理、丢失数据包等......

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-09
    • 2014-07-13
    • 1970-01-01
    相关资源
    最近更新 更多