Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从服务器流式传输大量屏幕截图_Python_Image_Video_Streaming - Fatal编程技术网

Python 从服务器流式传输大量屏幕截图

Python 从服务器流式传输大量屏幕截图,python,image,video,streaming,Python,Image,Video,Streaming,假设我有一个工具,它每10秒拍摄一次用户桌面的屏幕截图,然后将图像上传到服务器。24小时后从服务器上删除图像。我想允许用户在浏览器中查看这些屏幕截图。假设每个图像有300K,在24小时内上传了5000张,即1.5GB的数据。这些都是png图像,通常一个屏幕截图与前一个屏幕截图没有什么不同,所以我想我可以很好地压缩它们——但我不确定这是如何工作的。我想允许用户在浏览器中查看这些图像。我想要一个滑块下的图像,以便用户可以跳到任何点在24小时内。我想像YouTube播放器这样的东西会很理想。用户可以跳

假设我有一个工具,它每10秒拍摄一次用户桌面的屏幕截图,然后将图像上传到服务器。24小时后从服务器上删除图像。我想允许用户在浏览器中查看这些屏幕截图。假设每个图像有300K,在24小时内上传了5000张,即1.5GB的数据。这些都是png图像,通常一个屏幕截图与前一个屏幕截图没有什么不同,所以我想我可以很好地压缩它们——但我不确定这是如何工作的。我想允许用户在浏览器中查看这些图像。我想要一个滑块下的图像,以便用户可以跳到任何点在24小时内。我想像YouTube播放器这样的东西会很理想。用户可以跳转、数据流传输等。图像质量很重要,因为用户需要能够读取屏幕截图中的文本。我更喜欢Python解决方案


我以前从未做过类似的事情,也不知道如何解决这个问题。您会怎么做?

快速简便的解决方案是

  • 沿固定网格平铺屏幕
  • 单独存储磁贴,按索引索引(以消除重复,即使在用户之间)
  • 将整个屏幕存储为二维平铺哈希数组
  • 在浏览器中从散列分幅重建原始屏幕
  • 从一个屏幕转到另一个,非常相似的屏幕,只需加载几个瓦片,就可以进行压缩

    实现一个简单的引用计数方案以再次移除磁贴。您甚至可能希望在用户之间共享屏幕部件,以进一步减少存储空间

    尝试不同尺寸的瓷砖,找出哪种效果最好;这可能取决于屏幕分辨率、用户活动和用于存储元素的图形格式


    Python中的图像处理可以用来完成。

    如果用户当前在图像K处,并且希望加载图像H,那么假设截图基本相同,您可以只发送H和K之间的图像


    您可以提前计算差异,并将其存储到缓存或数据库中,以便更快地访问(但会有大量数据),或者您可以动态计算差异。

    有人告诉我,这不会“快速且容易”实现:),但肯定很酷+如果没有其他人有更好的建议,我会接受。@Jesse:好吧,它很快就很容易描述,而且不需要视频编解码器的知识。但我承认有很多角落的案例需要考虑:“嗯,是的,我得到了那么多。”1.5GB的数据流是个棘手的部分。