13676100082

短视频的技术原理?

什么是视频?

首先,作为还未入门视频技术的萌新,最最重要的就是要搞懂一件事,那究竟什么是**视频**?


很多同学第一个肯定想到什么“苍-老-师、武-藤-老-师”之类的经典avi教学视频。


侬脑子都想啥呢?没看错,当然是教学视频。作为喜欢学习、爱好学习和兴趣也是学习的三好同学,还能是啥?难道博主是这么肤浅的人吗?


扯远了,咱们还是回归主题。

视频的本质


其实视频就是连续的图像画面和连续的声音片段。


视频格式

只不过大多数时候,视频都需要存储到某些介质上,比如以前的磁带,软盘,光盘,蓝光光盘,U盘,存满各种老师精彩教学片段的硬盘等等。

视频本身只是数据,要存储视频数据,就需要以一定的格式去存放,还要标上这个视频名称、视频画面的宽和高(也就是分辨率),播放速度(也就是帧率)等等信息,这个东西就是视频格式,大家可以理解成是收纳箱,把视频存放起来,只不过这个视频格式又很多,比如常见的”mp4“、”aiv“,”avi“,”flv“等等格式。


视频编码和音频编码

虽然上面大家已经知道”mp4“、”aiv“,”avi“,”flv“等等这些格式只是个存储音视频数据的容器而已,但是我们还是没讲,这些容器里面究竟存放是什么样的音视频数据。

市面上绝大部分视频格式存放的都是**经过压缩过的音视频数据**,也就是所谓的h263、h264、h265(hevc)、vp8、vp9、av1**视频编码**以及mp3、aac、g711等**音频编码**。


除了部分早期视频编码mpeg和部分无损音频编码以外,大部分都是有损压缩,也就是通过缩减数据量来达到减少音视频体积的目的。


为什么要对视频数据进行压缩?

因为一个未经压缩过的视频体积过于巨大。


在详细回答这个问题之前,我们先来了解一下视频未经压缩前是什么样的数据。


图像像素格式和音频采样格式

视频未经压缩前的原始数据一般是**rgb图像像素、yuv分量数据**和**pcm声音采样格式**。


尽管图像和显示设备都是以rgb作为基本色彩来混合生成其他颜色,但是视频里又不得不提yuv分量数据,这是为什么呢?
这是为了兼容黑白电视,因为黑白电视只需要用到Y分量来控制亮度/灰阶就可以播放画面了。
从彩色电视就已经开始使用rgb像素数据来成像,但是谁让彩色电视比黑白电视晚出现几十年呢,所以不得不兼容老的黑白电视的格式,而且yuv比rgb数据占用数据更少,更适合传输和存储,因此yuv也就成为视频的主流像素格式了。


到这里,大家应该了解了,视频未经压缩前的原始数据大概是什么情况了,我们再次回到上面的问题,为什么要对视频数据进行压缩?


举个简单的例子:


*咱们假设有一个视频,它的分辨率是1920x1080,帧率是25fps,那么问题来了,这个视频一秒钟需要传输多少数据呢?*
答案是:**51,840,000字节/秒**,约等于**50,625kbps/s**,约等于**50M/s**。
别急着往下翻,这只是1秒钟的数据量而已,咱们平时看一部普通的电影,一般是100分钟对吧,100分钟就是6000秒钟,那么这部普通的未经压缩的电影视频应该是多少呢?
300,000M,也就是约等于:29G


一部100分钟电影未经压缩就需要接近30G的空间,这显然太大了,这得要多大的硬盘才能放得下老司机们的”老师们“。

现在可能大家家里普遍都装了100兆比特以上宽带了,但是以前连1兆比特的小水管都没有,所以搞音视频的前辈们就想出了一个”馊主意“,压缩视频,实在压缩不了,就算降低画质也要尽可能的压缩。

为什么有些视频就算压缩也压缩不了太多?

这是因为图像压缩的本质,其实就是基于对多个相同或者相似像素点的压缩,通过把相同或者相似的像素点提取出来作为”公因式“,唯一的像素点就没办法了,只能保留原样。也就是说,如果视频画面里的每个像素点都是整个画面唯一的颜色值,那么整个图像画面就没办法压缩。


后来又出现了基于像素运动估算的压缩算法,就是基于个画面组进行像素运动估计,因为大部分时候画面都是静止的,只有少部分的动态画面,所以就有人想出来这种方式,对静态画面进行压缩,对于动态画面少压缩,尽可能保证动态画面清晰。但是这样也有个缺点,那就是动态画面太多,视频压缩也不高就是了。



点播和直播

播放这些存储起来的视频就是**点播**。很多网站(油管、爱、优、腾、B站、抖yin等等)提供这种存储了大量的电影电视剧,然后提供各种广告和付费观看服务,就是我们日常中刷的最多的也是最为常见的**视频点播服务**。


而不需要存储,直接实时转发,能够以较低延迟就能看到实时画面和声音的就是**直播**。比如常见的虎 牙、dou鱼等等直播平台。