zoukankan      html  css  js  c++  java
  • 流媒体

    流媒体概念介绍

    所谓流媒体是指采用流式传输的方式在Internet播放的媒体格式。 流媒体又叫流式媒体,它是指商家用一个视频传送服务器把节目当成数据包发出,传送到网络上。用户通过解压设备对这些数据进行解压后,节目就会像发送前那样显示出来。

    “流”媒体的“流”指的是这种媒体的传输方式(流的方式),而并不是指媒体本身

    流媒体技术的出现改变了我们还未曾忘记的那种需要将整个音视频文件下载到本地计算机才能进行观看,为此要等上漫长时间的传统媒体播放方式。我们今天通过互联网看视频、看直播、听音乐,通过各种盒子(IPTV/OTT)看电视、听广播如此的方便,一键观看即点即用,其背后就是有着流媒体系统的支撑。

    打个比方,我们要吃饺子,一个是把饺子全都包好了,再煮来吃。另一个方法是一边包,一边煮,前面的人已经开始吃了,还有人继续在包。



    两种方法不同。第一种方法效率低,既然有些饺子已经包好了,为什么不先吃起来呢?

    流式传输特点

           以往传统看视频的方式是将整个视频文件下载到本地计算机硬盘,再通过本地播放器程序进行观看。而流式传输则是将连续视音频经压缩编码、数据打包后连续、实时的传送给接收设备,用户端在后续源源不断的数据包到达的同时对接收到的数据进行解压和播放。这个过程中,只需要等待几秒或几十秒的启动时间就可以正常观看视频了,剩余的部分就像“水流”一样在一边观看的同时一边下载。

    在对于音视频的传输分发上,我们会经常听到HTTP渐进式、HTTP流、RTMP、RTSP、HLS、HDS、DASH、Websocket等等专业术语。实际上,从传输方式上大致可以分为传统文件下载、HTTP渐进式下载、HTTP流式传输、实时流媒体传输四大类。

    HTTP渐进式是指通过支持Seek,终端播放器可从没下载完成部分中任意选取一个时间点开始播放,如此来满足不用等整个文件下载完快速播放的需求,一般MP4和FLV格式文件支持较好,打开一个视频拖拽到中部,短暂缓冲即可播放,点击暂停后文件仍将被持续下载就是典型的渐进式下载,目前大型点播网站如YouTube、优酷等均采用这种方式。

    HTTP流式传输或者HTTP流化技术,不同厂商有不同做法,但主要思路都是在服务端将媒体文件分割成一个个很小的独立切片文件,文件分片时需要同时产生用于跟踪切片的索引文件(描述文件),播放器再通过HTTP协议向服务端请求一个个小的媒体切片实现点播或直播的播放,我们平常听到的HLS(Apple)、HDS(Adobe)、MSS(Microsoft) 、DASH(MPEG通用标准)均属于HTTP流的范畴。下表总结了不同传输方式的特点:

    流媒体系统构成

    流媒体文件从采集到最终播放的路径就是一套完整的流媒体系统所需的组成部分。
    从系统层面来看,编码层负责对音视频文件编码压缩(h.264/h.265/VP9/AAC等);封装层负责对数据包进行容器封装(flv/ts等);协议层负责网络打包(RTMP/HTTP等);传输层负责网络传输(socket/st等);播放层负责对图像进行解码显示(FLASH/VLS/VIDEO JS等)。
    从我们所熟知的产品服务层面,一套完整的流媒体系统所需的组件一般包括:


    (1)编码器:用于流媒体文件生成的编码工具;
    (2)流媒体数据;直播信号、点播文件;
    (3)流媒体服务器:用于控制、传送流媒体数据的流媒体服务器;
    (4)传输网络:能够支持特定流式数据传输协议的传输网络;
    (5)多终端播放器:各操作平台用于显示流式数据的播放器。


    以上5大组件是一个流媒体系统所必须要的基本组件,随着近年来的迅猛发展,能够承载大规模流媒体应用的内容分发网络(CDN)也有必要纳入流媒体系统的范畴了。除了这些基本系统外,大型的运营及流媒体系统还会有流媒体内容制作生产、内容管理控制、数据监控等周边系统和中间件等。

    流媒体涉及技术

    流媒体技术诞生的主要目的是要在目前“尽力而为”的Internet上传输数据量非常大的音视频文件,所以流媒体技术最核心的就是音视频编解码技术和流式传输技术。

    然而,在今天这个“体验为王”的时代,我们需要面临的流媒体,不论从用户量级上还是应用场景上来说都是极为复杂的。靠堆砌几台流媒体服务器,架个开源的OBS和播放器简单实现功能的时代早已过去。从当下成熟的大型流媒体系统来看,要完成一个支撑高体验大规模的流媒体系统,必要要考虑的技术层面有以下三点:

    1.云计算基础服务相关技术

    这几年视音频技术、终端硬件平台、用户需求极速增长的同时,骨干网、跨运营商等基础设施的建设却明显没有跟上趟。这种现状下,要实现高稳定、高并发、低延时的流媒体应用,基于云架构的计算、网络、存储、CDN等底层基础服务已经变成了必须。硬件虚拟化,网络虚拟化能够最大程度保障视音频播放的稳定性;CDN内容分发网络能够有效应对高并发和突增流量的需求,对流媒体传输所有环节进行针对性优化能够大幅降低延时;对象存储满足了流媒体数据的大规模存储要求。

    2.视音频相关技术

    这个层面包括了视音频的编/解码、4K、VR等视音频核心技术能力,尤其是在新形势下移动端编码和播放的优化。这里面包括了对不同硬件平台、操作系统的实践,固网移动网等不同网络环境下的理解,以及在弱网情况下的解决方案等。另外,4K、VR、AR等新技术的发展能提升提升用户观看体验,甚至引发全新应用场景;新的编码标准如H.265等能进一步提升视音频编码效率,降低对网络带宽、CDN的消耗。

    3.场景化应用相关技术

    虽说流媒体的核心只是音视频编解码和流媒体传输,但针对当下不同垂直领域对于流媒体的应用,其中一些场景化功能需求,流媒体系统也不得不去考虑。比如秀场娱乐直播的实时录制,实时水印,实时鉴黄;社交直播的连麦;IPTV/OTT的时移回看;现场直播的云端导播;视频网站的版权保护等等

  • 相关阅读:
    cmanformat
    mysql-sql语言参考
    jQuery 判断多个 input checkbox 中至少有一个勾选
    Java实现 蓝桥杯 算法提高 计算行列式
    Java实现 蓝桥杯 数独游戏
    Java实现 蓝桥杯 数独游戏
    Java实现 蓝桥杯 数独游戏
    Java实现 蓝桥杯 算法提高 成绩排序2
    Java实现 蓝桥杯 算法提高 成绩排序2
    Java实现 蓝桥杯 算法提高 成绩排序2
  • 原文地址:https://www.cnblogs.com/fanlinqiang/p/7741198.html
Copyright © 2011-2022 走看看