V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
OldCarMan
V2EX  ›  问与答

关于文件上传压缩的问题

  •  
  •   OldCarMan · 2021-07-08 11:37:24 +08:00 · 835 次点击
    这是一个创建于 994 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如题,问大家几个问题,有关文件上传下载的设计:

    • 在权衡文件大小,流量占用,和解压缩时的性能消耗问题时,大家设计时是怎么考虑的,有哪些坑要避免。

    • 如果一个视频是压缩上传,那么解压是在哪里做的,是客户端下载解压并播放还是服务端解压传输给客户端再播放?

    • 大家平时用什么压缩库(最好是 java 能调用的),不过我用 7zip 去压缩一个几个 G 大小的视频时,结果好像没省出多少空间,当然可能是因为视频文件本身就是经过压缩的。关于这个大家有什么建议?

    • 最后有关文件资源安全问题,特别是视频,图片等是怎么防止被盗用的?

    谢谢大家回复。

    5 条回复    2021-07-30 12:48:18 +08:00
    emeab
        1
    emeab  
       2021-07-08 11:39:56 +08:00
    现在的 cdn 都基本都带防盗链吧.
    q197
        2
    q197  
       2021-07-08 13:27:27 +08:00   ❤️ 1
    外行回答一点:视频本身就是有损压缩的格式,“熵”比较高,不好压缩的,所以再次无损压缩没有意义。
    expy
        3
    expy  
       2021-07-08 13:51:27 +08:00
    H.264/HEVC 编码本身就用了熵编码,再搞无损压缩没什么收益。
    一般都是服务器再转码成多种分辨率。

    https://en.wikipedia.org/wiki/Context-adaptive_binary_arithmetic_coding
    cpstar
        4
    cpstar  
       2021-07-08 14:17:37 +08:00   ❤️ 1
    在视频领域这个“压缩”可不是类似 winzip 、winrar 的压缩啊。
    视频的压缩,普遍都是有损压缩,不存在“解压”这个概念,所谓的解压是基于有损的信息的重采样编码,效果肯定不行啊。

    至于上传,上传分三步:客户端往服务器传,网络传输,服务器接收。那你觉得你所谓的“压缩”在哪一步完成呢?第一步?指望浏览器给你做视频压缩?第二步,网络交换机、路由器做压缩?第三步,服务器都已经接收到了原始数据,再压一遍,以后再“解压”,图啥?直接存储原始信息不好么。

    然后客户端回显,现在 H5 的 video 标签,直接去服务器端请求数据,如果是本地能够解码的格式(比如 mp4 封装、h264 视频编码、mp3 音频编码)那就直接播放,如果不认编码格式,那就不能播放。

    最后防盗链的一般手法是 host,二班手法是 header 里上 token,三班手法是 session,当然还有四五六班等等
    OldCarMan
        5
    OldCarMan  
    OP
       2021-07-30 12:48:18 +08:00
    @emeab
    @q197
    @expy
    @cpstar
    不好意思,可能是我举例的问题,大家都把关注点放到视频压缩了,之所以要考虑压缩,主要是传输对象不一定是视频,可能只是普通文件。
    谢谢大家回复。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2426 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 16:09 · PVG 00:09 · LAX 09:09 · JFK 12:09
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.