赞
踩
流媒体又叫流式媒体,是把连续的影像和声音信息经过压缩(编码)处理后放在网站服务器上,经过网络传输到终端用户上,播放器通过解压设备对这些数据进行解压(解码)后,节目就会像发送前那样显示出来。
视频的播放涉及到声音的采集,编码压缩,封装的格式,什么协议传输,到用户侧的时候选择的播放器和播放形式,一个完整的视频过程是端到端的
说视频之前,先要说说图像。图像,大家都知道,是由很多“带有颜色的点”组成的。这个点,就是“像素点”像素是图像显示的基本单位。我们通常说一幅图片的大小,例如是1920×1080,就是长度为1920个像素点,宽度为1080个像素点。乘积是2,073,600,也就是说,这个图片是两百万像素的。1920×1080,这个也被称为这幅图片的分辨率
帧率简单地说,帧数就是在1秒钟时间里传输的图片的数量,单位为fps。
由于人类眼睛的特殊生理结构,如果所看画面之帧率高于16的时候,就会认为是连贯的,此现象称之为视觉停留。
帧数越高画面越流畅,但相应的,文件就越大,需要耗费更多带宽、显卡和内存资源。
视频压缩中,每帧代表一幅静止的图像。而在实际压缩时,会采取各种算法减少数据的容量,其中IPB就是最常见的。
一个完整的视频处理过程如下图所示:
以一个分辨率为19201280,帧率为例,来一起做个简单估算:
假设一个像素大小24bit,那么一张图片大小为:1920128024=49766400bit=6220800Byte≈6.22MB
那么一秒钟文件大小为6.2230=186.6MB 每分钟为186.6*60≈11GB,一部电影假如100分钟,那么文件大小为1TB。
视频清晰度和比特率的关系,可以看到分辨率不变的情况喜爱,比特率越高也就是码率越高,视频越清晰,那思考下同样的码率下视频分辨率越高,视频越清晰吗?
同时如下也附了带宽、并发,比特率的计算,涉及比特率的计算比较复杂,一般主要遇到的问题是码率或者并发的计算。
摄像机把图像中的每个像素转换成RGB三个独立的信号,由于RGB不利用压缩,所以先转换为YUV格式处理 (YPbPr或YCbCr):YUV格式比RGB节省带宽,符合人眼特性,并且兼容黑白信号 (Y亮度信号,U、V 两个
色差信号),应用更广泛;视频会议系统中处理的都是YUV信号而不是RGB信号。
编码简单地说,就是压缩。各种五花八门的视频编码方式,都是为了让视频变得体积更小,有利于存储和传输。
编码又分为视频编码和音频编码,下面详细来说下音视频编码的情况。
视频编码经历了一个很长的发展史,目前视频的编码流派分为国际的,国内的,谷歌微软系的,不同的编码协议各有一定的差异和优劣势,主要也是基于应用场景,成本,成熟度来考量选型。:
H.264是MPEG-4标准的第十部分,目前国内使用比较多的视频压缩格式, 与其他编码格式相比,同等画面质量,文件体积最小。电脑及部分便携式视频设备都可播放。常见于高清视频中,压缩率高,图像清晰。H.264最大的优势是高性能,因此目前网络资源中的高清视频格式(即MKV、AVI、 MPG,TS)多采用H.264编码的视频流。
H265 也有 I、B、P 帧的概念,它们分别代表帧内编码帧、双向预测内插编码帧和前向预测编码帧。H265 中的 I 帧是一个完整的画面,不需要参考其他帧而生成;P 帧是参考前面的 I 帧或 P 帧而生成的,只包含与参考帧的差异部分;B 帧是参考前后的 I 帧或 P 帧而生成的,也只包含与参考帧的差异部分。H265 中的 I、B、P 帧都是由宏块(macroblock)组成的,每个宏块可以选择不同的编码模式和预测方式。
H265 相比 H264,在 I、B、P 帧的编码上有一些改进和优化,例如:
H.266和H.265都是用于4K、8K超高清视频的编解码标准,但是它们在使用场景上有一些差异,主要体现在以下几个方面:
总之,H.266和H.265都是用于4K、8K超高清视频的编解码标准,但是H.266在压缩效率和质量上有明显优势,而H.265在编解码复杂度和兼容性上有一定优势。不同的使用场景可以根据自身的需求和条件,选择合适的编解码标准。
VP8 是由 Google 开发并开源的一种视频编码格式,它与 H264 有类似的技术特点和性能表现,但没有专利费用的限制。它采用了帧内预测、帧间预测、变换、量化、熵编码等技术,可以实现高质量、低延迟、低复杂度的视频压缩。它还支持多种配置文件和级别,以适应不同的应用场景和设备。VP8 的优点是开源、免费、兼容性强,缺点是与 H264 相比没有明显的优势,并且难以满足超高清视频的需求 。
总的来说,VP8在浏览器上的支持比客户端上的支持更多,但也不是所有的浏览器和客户端都支持VP8。
VP8和H.264都是用于网络视频的编解码标准,但是它们在使用场景上有一些差异和优劣势,主要体现在以下几个方面:
总之,VP8和H.264都是用于网络视频的编解码标准,但是VP8在专利费用和授权问题上有明显优势,而H.264在压缩效率和质量、硬件支持和兼容性上有一定优势。不同的使用场景可以根据自身的需求和条件,选择合适的编解码标准。
VP9 是 VP8 的后续版本,它在 VP8 的基础上进行了改进和优化,可以实现更高的压缩比和更好的视频质量。它采用了更大的宏块(最大 64x64),更多的预测模式(10 个方向),更高的色深(最高 12 位),更灵活的并行处理等技术,可以有效地降低比特率和带宽消耗,提高画面清晰度和细节。它还支持 HDR 和 360 度全景视频等新特性。VP9 的优点是开源、免费、适应超高清视频,提升视频质量,缺点是编解码复杂度较高,需要较强的计算能力,并且与 H265 相比没有明显的优势 。
总的来说,VP9和H.265都是高效的视频编码标准,但是VP9在浏览器上的支持更好,而H.265在客户端上的支持更好。
AV1 是由 AOMedia(开放媒体联盟)开发并开源的一种视频编码格式,它是目前最先进的视频编码格式之一,它集成了 H265、VP9、Daala 等多种编码技术,可以实现更低的比特率和更好的视频质量。它采用了自适应变换选择、自适应运动矢量分辨率、自适应环路滤波器等技术,可以有效地减少编码噪声和失真,提高编码效率和灵活性。它还支持多视点视频、屏幕内容编码、超分辨率重建等新特性。AV1 的优点是开源、免费、适应未来视频技术的发展,提供最高的压缩性能,缺点是目前尚未广泛应用,并且编解码复杂度极高,需要极强的计算能力 。
AV1是VP9的后续版本,也是H.265的竞争者。因此在客户端或者浏览器的支持情况与VP9是类似的。
AVS是一系列由数字音视频编解码技术标准工作组制定的音视频编解码技术标准,包括系统、视频、音频、数字版权管理等四个主要技术标准和符合性测试支撑标准。AVS的目的是为了解决国内外专利费用高昂和授权复杂的问题,提供一种开放、自主、高效的视频编码方案。
AVS2.0是AVS的第二代标准,主要针对4K超高清视频,相比于第一代标准,AVS2.0有以下特点:
AVS2.0目前已经被广泛应用于国内的电视广播领域,如中央电视台的4K超高清频道和“百城千屏”公共大屏项目等。据测试,AVS2.0相比于H.265/HEVC和VP9,有着相当或略优的编码效率和质量,在相同质量下可以节省约30%的码率 。同时,AVS2.0也有着较低的专利费用和较好的兼容性。
AVS3是AVS的第三代标准,主要面向5G和8K视频,于2018年3月启动制定工作,并于2021年7月正式成为DVB标准体系中下一代视频编码标准之一。AVS3相比于AVS2.0有以下特点:
总之,AVS是一种国产自主的音视频编码标准,经过多年的发展和完善,已经形成了从高清到超高清到移动端的全覆盖体系,并在国内外取得了一定的市场份额和影响力。AVS的优势是免专利费、编码效率高、质量好、兼容性强,适用于各种场景和应用。AVS的劣势是编码时间长、复杂度高、硬件支持和国际化程度不足,需要更多的优化和推广。
Opus是一种完全开源,免费的,通用性高的音频编解码器,遵从IETF RFC 6716标准,整合了Skype的SILK编解码和Xiph.Org的CELT编解码的技术。Opus在网络上有着无与伦比的交互式语音和音乐传播功能,但也可以用来存储,在流媒体上使用。Opus支持从6 kbit/s的窄带单声道语音到510 kbit/s的宽带立体声音乐的各种比特率,支持从8 kHz(窄带)到48 kHz(全频)的各种音频带宽,支持从2.5 ms到60 ms的各种帧长,支持单声道和立体声两种通道数。Opus还提供了多种控制参数,如复杂度、丢包弹性、前向纠错、恒定/可变比特率、不连续传输等,以适应不同的场景和需求。
Opus的应用场景非常广泛,主要包括以下几类:
ACC是基于MPEG-2的音频编码技术,目的是取代MP3格式,是一种高压缩比的音频压缩算法。AAC压缩比通常为18:1,远胜mp3。由于采用多声道(48个音轨,15个低频(LFE)音轨,5.1多声道支持)、使用低复杂性的描述方式、多种语言的兼容能力及更高的解码效率,比几乎所有的传统编码方式在同规格情况下更胜一筹。一般来说,AAC可以在对比MP3文件缩小30%的前提下提供更好的音质。
MP3被设计用来大幅度地降低音频数据量,将音乐以1:10 甚至 1:12 的压缩率,压缩成容量较小的文件。bitrates对MP3来说是可变的,原则是bitrate越高声音文件中包含的原始声音信息越多,这样回放时声音品质也越高。就bitrates来说MP3可以分为2种:
1)MP3-CBR(Constant BitRate)在MP3编码的早期,整个文件使用一个固定的位元率。
2)MP3_VBR(Variable Bit Rate)可以让MP3文件的每一段甚至每一帧都可以有单独的bitrate,这样在保证音质的前提下最大程度的限制了文件的大小。这个方法类似于声音控制的磁带录音机不记录静止部分节省磁带消耗。
首先理解下什么是封装,举个例子:
那新问题来了为什么要封装,不封装行不行:
对于任何一部视频来说,只有图像,没有声音,肯定是不行的。所以,视频编码后,加上音频编码,要一起进行封装。
视频轨相当于饭,而音频轨相当于菜,封装格式就是一个饭盒,用来盛放饭菜的容器。
也可以这么理解封装处在传输前,或者下载后,播放前
封装格式是指将音频和视频的编码数据和同步信息打包到一个文件中,形成一个统一的格式,便于存储和传输。封装的目的是为了方便音视频的管理、播放和编辑,以及提供一些额外的信息和功能,如字幕、章节、元数据等。封装格式不影响音视频的质量,只影响文件的大小和可操作性。封装格式可以根据需要进行转换,但转换过程可能会损失一些元数据或附加信息。
音频和视频封装是指将音频和视频的编码数据和同步信息打包到一个文件中,形成一个统一的格式,便于存储和传输。音频和视频的编码数据是指将原始的音频和视频信号经过压缩算法处理后得到的数据,用于减少数据量和提高质量。同步信息是指音频和视频之间的时间关系,用于保证音视频的同步播放。
常见的音视频封装格式有AVI、RMVB、MKV、ASF、WMV、MP4、3GP、FLV等,不同的封装格式有不同的结构、功能和应用场景。一般来说,封装格式不影响音视频的质量,只影响文件的大小和可操作性。封装格式可以根据需要进行转换,但转换过程可能会损失一些元数据或附加信息。
以下是一些常见的音视频封装格式的介绍:
封装格式和传输协议是两个不同的概念,但有一定的联系和区别。
封装格式是指将音频和视频的编码数据和同步信息打包到一个文件中,形成一个统一的格式,便于存储和传输。封装格式只是为多媒体编码提供了一个“外壳”,也就是将所有的处理好的视频、音频或字幕都包装到一个文件容器内呈现给观众,这个包装的过程就叫封装。常见的封装格式有AVI、RMVB、MKV、ASF、WMV、MP4、3GP、FLV等。
传输协议是指在网络上进行音视频传输和播放时使用的一种规则或标准,用于保证音视频数据的有效性、完整性和实时性。传输协议在传输视音频数据的同时,也会传输一些信令数据,用于控制播放、调节网络状态等。常见的传输协议有HTTP、RTMP、RTSP、HLS等。
封装格式和传输协议的区别有以下几点:
封装格式和传输协议的联系有以下几点:
封装格式和传输协议都需要携带音视频数据和元数据。音视频数据是指经过压缩算法处理后得到的数据,用于减少数据量和提高质量;元数据是指关于音视频数据的一些信息,如时长、分辨率、帧率等。
封装格式和传输协议都可以根据需要进行转换。封装格式可以通过工具或程序将一个文件转换为另一个文件,例如将AVI转换为MP4;传输协议可以通过服务器或网关将一个流转换为另一个流,例如将RTMP转换为HLS。
封装格式和传输协议都要考虑兼容性和功能性。不同的封装格式和传输协议有不同的结构、功能和应用场景,需要根据目标平台、设备、网络等因素选择合适的封装格式和传输协议。
常见的封装格式及说明:
2019年初针对top视频厂商封装编码格式等做的调研结果如下:
(1)短视频客户视频封装格式还是以mp4为主(96%),少部分使用hls(腾讯和网易)、flv(网易)和TS(搜狐新闻)
(2)长视频封装格式以hls为主(75%),其次是mp4(25%),少部分有使用到dash(华为视频)、m4s(B站)、flv(B站)和f4v(爱奇艺PC端)(8%)
MP4格式:
FLV格式
FLV是一种流媒体格式,由Adobe公司推出,用于在互联网上传输和播放音视频数据。FLV的封装格式是由一个文件头和一个文件体组成,文件体由一系列的Tag和Tag Size对组成。每个Tag包含一个Tag Header和一个Tag Data,用于存储音频、视频或脚本数据。
FLV格式有以下优劣势:
优势:
文件体积小,便于传输和共享。
适合网络发展的需求,可以提供快速加载和低CPU占用率的视频体验。
资源丰富多样,可以找到各种类型的视频内容。
劣势:
视频质量不高,可能出现画面模糊或失真的情况。
不被所有播放器支持,需要安装特定的软件或插件才能观看。
不利于视频编辑,需要转换成其他格式才能进行剪辑或添加特效。
HLS:
m3u8,是HLS的索引文件,基本上可以认为就是.m3u格式文件,m3u8文件使用UTF-8字符编码。
HLS有以下优点:
可以适应不同的网络状况和设备能力,通过提供不同码率和分辨率的流,让客户端自动选择最合适的流。
可以方便地利用HTTP协议和CDN网络进行分发和加速,提高传输效率和用户体验。
可以支持加密和认证机制,保护版权和隐私。
HLS有以下缺点:
由于每个.ts文件都需要单独请求,会增加网络开销和延迟。
由于MPEG-TS格式不支持B帧,会降低视频质量和压缩效率。
由于HLS是苹果公司的专利技术,需要支付版权费用。
封装是静态,传输格式传输的是流式数据。
流媒体传输协议是指在网络上传输音频和视频数据的一种规范,它定义了数据的格式、封装、传输和解析等方面的细节。流媒体编码协议可以分为以下几类:
具体来说:
视频传输协议的选择与延迟、应用场景等有关系
如下是视频延迟的分类说明:
视频传输协议与延迟的关系如下图:
RTMP协议是一个互联网五层体系结构中应用层的协议。RTMP 协议中基本的数据单元称为消息(Message)。当RTMP协议在 互联网中传输数据的时候,消息会被拆分成更小的单元,称为 块(Chunk)。如下是RTMP从建联到传输到停止的过程展示:
RTMP是一种有状态协议,需要为每一个播放视 频流的客户端维护状态,RTMP对设备的性能损 耗大,占用CPU、内存等。
RTMP有以下优点:
组成M3U8说明:
TS文件说明:
HLS有以下优点:
HLS有以下缺点:
FLV是一种流媒体格式,全称为Flash Video,是由Adobe公司提出的一种视频封装格式,用于存储和传输音视频数据。
FLV的工作原理是将音视频数据分成一个个消息(Message),每个消息包含消息头和消息体。消息头中包含了消息类型、长度、时间戳等信息,用来标识和控制消息的传输。消息体中包含了实际的音视频数据或元数据的内容。
HTTP-FLV则是将RTMP封装在HTTP协议之上,一个无限大的http流的文件。
HTTP协议中有个content-length字段,服务器回复http请求的时候如果有这个字段,客户端就接收这个长度的数据然后就认为数据传输完成了。如果服务器回复http请求中没有这个字段,客户端就一直接收数据,直到服务器跟容户端的socket连接断开。HTTP-FLV直播就是利用第二个原理,服务器回复容户端请求的时候不加content-length字段,在回复了http内容之后,紧接着发送flv数据,客户端就一直接收数据了。(延迟为1-3s)
首屏更快(首屏比RTMP快的原因是,RTMP与服务端的交互会更久)
FLV有以下优点:
DASH是一种流媒体协议,全称为Dynamic Adaptive Streaming over HTTP,是一种基于HTTP的自适应比特率流技术,使高质量流媒体可以通过传统的HTTP网络服务器以互联网传递。
音视频分离说明:
DASH有以下优点:
HLS与DASH的区别:
DASH和HLS都是基于HTTP的自适应比特率流技术,都是将音视频流分割成小块,通过HTTP协议进行传输,客户端得到之后进行播放。但是它们也有一些区别,主要有以下几个方面:
WebRTC协议是一种用于在网页上实现实时音视频通信的技术,它由一组标准、协议和JavaScript API组成,使得浏览器之间可以直接建立点对点的连接,无需借助中间服务器或插件。WebRTC协议的特点有以下几个:
WebRTC协议的优势是:
WebRTC协议的劣势是:
SRT(Secure Reliable Transport)是一种基于UDP协议的开源互联网传输协议,其保留了UDP的核心思想和机制,解决了 复杂的传输时序问题,可以极大减少传输延迟。同时,SRT拥有AQR和FEC纠错技术,可以出色的抵抗网络抖动,确保传输的稳 定性。此外,SRT可支持H.264和HEVC等编码格式,并支持AES-128/256位加密,可提供质量大码率视频的安全传输。
SRT协议在弱网传输环境下的对比:
CMAF是一种通用媒体应用格式,是由苹果和微软邀请MPEG开发的一种基于HTTP的自适应比特率流技术,旨在解决不同流媒体协议之间的兼容性和效率问题。
通过将段分割成块,流服务器可以使段中的块已经可用,而整个块尚未完成。这改变了情况,因为玩家可以提前下载各个块,并且可以更快地填充缓冲区。这样可以大大减少端到端的等待时间
CMAF的特点有:
CMAF和DASH的区别主要有以下几个方面:
延迟都来自哪些环节产生呢,通过下面的图片可以看到:
因为存在延迟的积累,在流媒体直播的场景下就需要去做追赶,那通过哪些方面来做追帧呢:
追帧关键技术:
背景:直播过程中会出现延迟逐渐变大的情况
原因: buffer queue 变大,拉流端播放的内容和推流端相差时延增加。
解决办法:
Ø 控制max_buffer_size,
Ø 使用倍速播放,快速消耗BufferQueue
Ø 使用丢包(丢帧)策略。策略说明:
•有音频流和视频流,或者只有音频流情况下,当audio q达到一定的durati on,就丢掉前面一部分数据包,因为默认是AV_SYNC_AUDIO_MASTE R,视频会追上来。
•只有视频流情况,当video q达到一定的duration,就丢掉前面一部分数据包。
对齐技术关键点:
l 直播视频流时逐帧打入时间戳t1。业务系统推送内容时携带时间戳t2,
并在播放终端进行比对,当视频流帧所携带的时间戳t1与题目中t2相匹配时弹出内容。
l SEI字段
l 推流器/推流边缘
流媒体传输的安全性是指保护流媒体数据在网络中的传输过程不被窃听、篡改、伪造或重放,以及保护流媒体内容的版权和隐私。为了保障流媒体传输的安全性,有以下一些手段或技术:
DRM系统是指数字版权管理系统(Digital Rights Management System),是一种用于保护数字内容的版权和使用权限的技术和方案。DRM系统的工作原理如下:
DRM系统的工作流程如下:
DRM与加密的差异点分析:
因此,DRM系统和加密的区别在于:
常见的防盗链有refer、UA、时间戳,中心认证等,在流媒体场景中运用最多的是时间戳防盗链,简单说明下其原理:
时间戳防盗链是一种防止其他网站或用户非法使用或复制数字内容的技术,它通过在访问URL中添加过期时间和签名信息,来限制URL的有效期和合法性¹²。时间戳防盗链的工作原理如下:
流媒体对用户侧来说,其对长短视频的关注点可能有以下几个方面:
根据不同的视频时长,用户对长短视频的关注点也可能有所不同:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。