TSINGSEE青犀视频云边端架构视频平台EasyDSS内视频文件批量下载中各种常见压缩文件介绍

在EasyDSS的部分开发定制项目中,客户提出对点播文件的批量下载功能,具体要求为选中n(n>=1)个点播文件后,点击下载,后台将多个文件打包成一个压缩文件提供给用户下载。

这就要求我们研发人员必须对各种压缩格式进行研究和学习,具备基本的了解和使用方法。

压缩分类

有损压缩

在压缩后无法还原成原始数据,常用在视频和图像的压缩中,比如声音或者图片,部分信息缺少对于人耳和人眼是无差别的,因此可以进行压缩。mp3、rmvb等均是有损压缩。

无损压缩

比较适合此次开发的要求,因此本文中重点介绍此种压缩方式。

常见压缩文件

zip文件格式

最常见的压缩格式,zip的压缩通常比rar和7z文件的压缩率低,但是因为其可以自行解压,并且速度很快,因此最为流行。在EasyDSS的文件打包中,此种方式最受欢迎。

rar文件格式

有专利的一种压缩格式,属于商业软件。因为WinRAR的存在,所以在中国rar文件比较流行。因为WinRAR是收费软件,随着近几年免费压缩软件的出现,WinRAR也开始推出个人免费版。rar文件的压缩率比zip的压缩率高。

7z格式

免费开源的一种压缩格式,并且提供对应的软件。其压缩率最高,也支持跨平台。属于新一代的压缩格式,但是目前大众使用的比较少。一般程序员或者软件爱好者会使用此种格式。

xz格式

新一代的压缩格式,压缩率很高,使用此种压缩格式的用户更少。并且该种格式只能压缩一个文件。

tar格式

此种格式并不是一种压缩格式,而仅仅是一种归档格式,并不会压缩。在下文中描述下归档和压缩的区别。

其余压缩文件,大多数是采用不同的压缩算法压缩,并且无法对多个文件进行归档操作,因此不再进行介绍。

压缩和归档的区别

在Windows操作系统中,如果说打包一个文件,就是将多个文件压缩成一个压缩文件,因此基本都存在压缩操作。

在Linux操作系统中,对于多个文件的操作并不是那么简单。Linux中将多个文件打包成一个文件行为称之为归档,一般采用.tar格式。归档并不会对文件进行压缩,仅仅是简单的将多个文件存储在一个格式中,因此对 cpu 的消耗非常小并且速度比压缩快。而EasyDSS、EasyNVR等视频平台大多数都是部署在Linux系统中。

对tar文件的再次压缩,一般才是真正的压缩,比如a.tar文件采用xz压缩后,最终生成的文件就是a.tar.xz文件。

在了解压缩、归档还有各种压缩格式的优缺点后,采用tar包的方式,消耗服务器的性能最小,虽然生成的文件比较大,但是客户对文件并无要求,因此最终决定采用tar文件格式开发新功能。

原文地址:https://www.cnblogs.com/TSINGSEE/p/13995516.html