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

Jes*_*dge 6 python video streaming image

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

我之前从未做过这样的事情,也不确定如何处理这个问题.你会怎么做?

Fre*_*Foo 5

快速简便的解决方案是

  1. 沿固定网格平铺屏幕
  2. 单独存储切片,通过强哈希索引(以消除重复,甚至在用户之间)
  3. 将整个屏幕存储为2-d瓦片哈希数组
  4. 从散列图块重建浏览器中的原始屏幕.

从一个屏幕到另一个屏幕,非常相似,只需加载几个瓷砖,所以这就是你的压缩.

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

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

Python中的图像处理可以使用PIL完成.