在权衡文件大小,流量占用,和解压缩时的性能消耗问题时,大家设计时是怎么考虑的,有哪些坑要避免。
如果一个视频是压缩上传,那么解压是在哪里做的,是客户端下载解压并播放还是服务端解压传输给客户端再播放?
大家平时用什么压缩库(最好是 java 能调用的),不过我用 7zip 去压缩一个几个 G 大小的视频时,结果好像没省出多少空间,当然可能是因为视频文件本身就是经过压缩的。关于这个大家有什么建议?
最后有关文件资源安全问题,特别是视频,图片等是怎么防止被盗用的?
1
2kCS5c0b0ITXE5k2 2021-07-08 11:39:56 +08:00
现在的 cdn 都基本都带防盗链吧.
|
2
q197 2021-07-08 13:27:27 +08:00 1
外行回答一点:视频本身就是有损压缩的格式,“熵”比较高,不好压缩的,所以再次无损压缩没有意义。
|
3
expy 2021-07-08 13:51:27 +08:00
H.264/HEVC 编码本身就用了熵编码,再搞无损压缩没什么收益。
一般都是服务器再转码成多种分辨率。 https://en.wikipedia.org/wiki/Context-adaptive_binary_arithmetic_coding |
4
cpstar 2021-07-08 14:17:37 +08:00 1
在视频领域这个“压缩”可不是类似 winzip 、winrar 的压缩啊。
视频的压缩,普遍都是有损压缩,不存在“解压”这个概念,所谓的解压是基于有损的信息的重采样编码,效果肯定不行啊。 至于上传,上传分三步:客户端往服务器传,网络传输,服务器接收。那你觉得你所谓的“压缩”在哪一步完成呢?第一步?指望浏览器给你做视频压缩?第二步,网络交换机、路由器做压缩?第三步,服务器都已经接收到了原始数据,再压一遍,以后再“解压”,图啥?直接存储原始信息不好么。 然后客户端回显,现在 H5 的 video 标签,直接去服务器端请求数据,如果是本地能够解码的格式(比如 mp4 封装、h264 视频编码、mp3 音频编码)那就直接播放,如果不认编码格式,那就不能播放。 最后防盗链的一般手法是 host,二班手法是 header 里上 token,三班手法是 session,当然还有四五六班等等 |