m4s缓存到哪,如何把m4s合在一起

首页 > 经验 > 作者:YD1662022-11-07 16:09:29

查看原文:

点击关注“八戒技术团队”,阅读更多技术干货

短视频目前在互联网上非常火爆,因为视频比文字更能清晰的表达创作的内容,大家每天都可能在刷抖音、B站的视频。作为开发人员,不管是否从事音视频开发,都应该了解一下相关的技术。

一、基础概念

首先给大家介绍视频的三个基础概念:

1.帧数

在一秒内播放的帧数就是每秒帧数率。

视频标准帧率:24帧

2.分辨率

视频图像在一个单位尺寸内的精密度。

常见分辨率:1280*720

3.码率

数据传输时单位时间传送的数据位数,单位:kbps。

码率和质量成正比,但是文件体积也和码率成正比。

二、视频格式

视频格式实质是视频编码方式,可以大致分为两种大类:

一、适合本地播放的本地影像视频(从网上下载的视频如:MP4)

m4s缓存到哪,如何把m4s合在一起(1)

如上图,这是一个常见的MP4格式视频,有很多视频的基础信息。MP4、AVI、MKV等都是本地视频文件的后缀,是一种包含视频各种信息的封装格式,可以理解为一种打包,把所有的视频数据和音轨封装在一起。

二、适合在网络中播放的网络流媒体影像视频(如B站上的视频)

【视频协议】是针对网络流媒体而言的,也就是只有在有网络时通过浏览器或者移动端APP才能看到的视频,目前常见的协议有RTSP、RTMP、HLS、HTTP等。

一般来讲,视频流从加载到准备播放是需要经过解协议、解封装、解编码这样的过程,其中协议指的就是流媒体协议;封装指的是视频的封装格式;而编码又分为视频编码和音频编码。

如果平台上的视频出于对版权的考虑,要进行加密,一般是怎么处理的呢?

三、视频BLOB加密

这种加密是在前端比较常见的一种加密方式,我们以B站上的一个视频为例:

m4s缓存到哪,如何把m4s合在一起(2)

打开浏览器按下F12,可以看到视频的资源地址是一串以 blob 开头的地址,这跟我们常见的地址有些不一样,而且如果你直接打开这个地址是无效的。

BLOB,它的全称为big binary large object,译为二进制大对象。一般来说,首先由后端,比如 JAVA 将视频转换为blog对象传给前端,前端在拿到blog对象后,再通过URL.createObjectURL生成临时地址,赋值给video标签的src属性,就可以实现这个效果了。前端的大致代码如下:

m4s缓存到哪,如何把m4s合在一起(3)

四、视频切片加密

我们知道看视频的话是需要很大的流量的,对于绝大多数用户来说,他们不一定会把视频看完,如果是加载一个小视频,那还没有什么大问题,但如果是加载一个大视频的话,这就会浪费大量的流量,并且加载过程会持续占用带宽。这个时候我们会用到视频分片处理。

试想一下,如果我们把视频切成一段一段的,每次只加载一段,看完了再加载一段,这样能有效的节省资源。还是以B站的一个视频为例,在F12中的Network里可以看到,网站一直在一段一段的请求视频流的数据。(PS:这个m4s是HTML的一种格式)

m4s缓存到哪,如何把m4s合在一起(4)

首页 12下一页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.