优化服务器策略 播放器接入服务器请求数据的时间点的视频不一定是关键帧,那么需要等到下一个关键帧的到来,如果关键帧的周期是 2s 的话,那么等待的时间可能会在 0~2s 的范围内,这段等待的时间会影响首屏的加载时间。如果服务器有缓存,则播放端在接入的时候,服务器可以向前找最近的关键帧发给播放端,这样就可以省去等待的时间,可以大大的减少首屏的加载时间。
衡量图像重建的质量
QoE指标
视频质量
rebuffer的次数
平滑切换
逐行扫描与隔行扫描
每一帧图像由电子束顺序地一行接着一行连续扫描而成,这种扫描方式称为逐行扫描。把每一帧图像通过两场扫描完成则是隔行扫描,两场扫描中,第一场(奇数场)只扫描奇数行,依次扫描1、3、5…行,而第二场(偶数场)只扫描偶数行,依次扫描2、4、6…行。隔行扫描技术在传送信号带宽不够的情况下起了很大作用,逐行扫描和隔行扫描的显示效果主要区别在稳定性上面,隔行扫描的行间闪烁比较明显,逐行扫描克服了隔行扫描的缺点,画面平滑自然无闪烁。在电视的标准显示模式中,i表示隔行扫描,p表示逐行扫描。
YUYV格式(YUV4:2:2)
YUV是指亮度参量和色度参量分开表示的像素格式,其中“Y”表示明亮度(Luminance或Luma),也就是灰度值;而“U”和“V”表示的则是色度(Chrominance或Chroma),作用是描述影像色彩及饱和度,用于指定像素的颜色。
YUV码流的存储格式与其采样方式有密切的关系,主流的采样方式有三种:YUV4:4:4、YUV4:2:2、YUV4:2:0。
下面三个图比较直观的显示了三种采样方式。其中黑点表示采样像素点的Y分量,空心圆表示采样像素点的UV分量。
MJPEG
M-JPEG源于JPEG压缩技术,其中每一帧图像都分别使用JPEG编码,不考虑视频流中不同帧之间的变化,只单独对某一帧进行压缩。
1.就压缩率来说,H.264远远优于M-JPEG,H.264的压缩比一般能达到1:50甚至1:100以上,而M-JPEG压缩比一般小于1:20;同时由于高压缩率,经H.264压缩出的图像数据量远远小于M-JPEG,更利于实时传输,占用网络带宽更少。
2.图像质量:由于M-JPEG压缩率较小,所以能达到跟原图像接近的画质和清晰度。而H.264为了满足高压缩率,所以在图像质量上略有损失。
H.265又称为HEVC(全称High Efficiency Video Coding,高效率视频编码,本文统称为H.265),是ITU-T H.264/MPEG-4 AVC标准的继任者。H.265旨在在有限带宽下传输更高质量的网络视频,理论上H.265比H.264效率提高30-50%(尤其是在更高的分辨率情形下),H.265标准也同时支持4K(4096×2160)和8K(8192×4320)超高清视频。
是国人写的一款非常优秀的开源流媒体服务器,可用于直播/录播/视频客服等多种场景,其定位是运营级的互联网直播服务器集群。
一个简单高效的实时视频服务器,支持RTMP/WebRTC/HLS/HTTP-FLV/SRT
WebSocket(为了实现客户端、浏览器实时与服务器通信)
是HTML5的一种新的协议,Websocket是真正实现了全双工通信的服务器向客户端的互联网技术,是单个TCP连接上进行全双工通信协议
全双工通讯传输协议
允许数据在两个方向上同时传输 。双向传输的意思
半双工:可以双向传输,但是同一时刻只能一个方向传输
半工:单向传输数据
WebSocket拥有完整的应用层协议,包含一套标准的API
Socket是一组接口,是应用层与TCP/IP协议通信的中间软件抽象层,
http是短连接,请求之后会关闭连接。
WebSocket长连接,只需通过一次请求初始化连接,然后所有的请求和响应都是通过这个TCP连接进行通信。
与http协议有良好的兼容性
建立在TCP协议之上,与http同属于'应用层
数据量小、性能开销小、通信高效
可以发送文本和二进制
可以与任意服务器通信
握手阶段采用http协议,默认端口是80和443
协议标识字符ws、加密wss
服务器可以主动向客户端请求
simulcast和SVC
它们会在发送端增大码流的发送,将数据先传给服务端,然后由服务端根据接收端带宽的不同,选择合适的码流下发。对于网络较差的用户,传输清晰度低的码流,对于网络较好的用户,传输高清晰度的码流。所以这两种技术对于发送方的带宽和质量有非常高的要求。
Simulcast直译过来是多播的意思,其实就是一个客户端发送多条不同码率大小的流,为了达到这样的效果,客户端会对同一帧画面进行不同分辨率的编码来达到降低码率的目的。
可伸缩视频编码SVC(Scalable Video Coding)技术是H.264标准的一个扩展,最初由JVT在2004年开始制定。H.264 SVC是H.264标准的扩展部分,SVC扩展部分引入了一种传统H.264 AVC不存在的概念——编码流中的层。基本层编码最低层的时域、空域和质量流;增强层以基本层作为起始点,对附加信息进行,从而在解码过程中重构更高层的质量、分辨率和时域层。通过解码基本层和相邻增强层,解码器能生成特定层的视频流。
SVC与Simulcast最大的区别:SVC上传的是一路码流,但这一路码流是由多层构成的。服务端会按照不同接收端的带宽大小,选择传输不同的层。而Simulcast上传的是多路流,一般分为小、中、大三路。Simulcast的好处在于,每一路流都是独立的,所以可以对每一路流使用硬件编解码器,而 SVC的分层方式目前没有硬件支持,所以无法通过硬件加速。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。