美文网首页
流媒体基础介绍

流媒体基础介绍

作者: 吱吱菌啦啦 | 来源:发表于2019-09-26 11:18 被阅读0次

    什么是流媒体?

    流媒体是指采用流式传输的方式在Internet/Intranet播放的媒体格式,包含音频、视频、多媒体文件;流媒体在播放前不会下载整个文件,只将开始部分存入内存,在用户访问时对数据包进行缓存,让媒体数据正确地输出,流媒体数据流随时传送随时播放,只是在开始时有些延迟。

    流媒体传输的过程是什么样的?

    CDN:Content Delivery Network,第三⽅提供的⽹站资源加速下载或传输的⽹络,其原理是把同样的静态⽂件或者实时多媒体流同时发布到电信、移动、联通等运营商的⽹络内,⽅便⽤户就近下载实现更快、更稳定的传输速度。

    推流:客户端采集的⾳视频数据,经过编码和⽹络传输,发送给流媒体服务器的过程,服务器可能是⾃⼰搭建的,也可能是CDN提供的。

    拉流:客户端或者播放器从服务器下载(拉取)指定的媒体流并在本地播放的过程。

    流媒体相关协议及概念有哪些?

    WebSocket:WebSocket是一种在单个TCP连接上进行全双工通信的协议。

    WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSocket API中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。 HTML5定义了WebSocket协议,Websocket 通过HTTP1.1 协议的101状态码进行握手,信令传输一般用到此协议。

    RTP:RTP是基于UDP的一种流媒体传输协议,RTP本身不具备按时发送机制和质量服务,完全依赖底层服务去实现这个过程,相当于是基于UDP进行二次开发的一种协议。

    RTMP:Adobe开发的⼀种基于TCP的实时流媒体传输协议,有公开标准,所以主流的CDN⼚商都⽀持这种协议类型的数据流的分发。RTMP协议同时⽀持采集端推流和播放端拉流。RTMP 基于 flash ,无法在 iOS 的浏览器里播放,实时性比 HLS 要好。

    HLS:H5标准定义的⼀种将实时流切割、保存成m3u8分⽚⽂件,提供给播放器下载的协议。HLS只⽀持拉流,不⽀持推流。CDN⽀持将RTMP推送的媒体流⾃动转换成m3u8格式并提供HLS下载。

    主要用于PC和Apple终端的音视频服务,包括一个m3u(8)的索引文件,TS媒体分片文件和key加密串文件,用于直播和点播都可以。

    WebRTC:名称源自网页即时通信(英语:Web Real-Time Communication)的缩写,是一个支持网页浏览器进行实时语音对话或视频对话的API

    • 视频引擎(VideoEngine)WebRTC的视频部分,包含采集、编解码(I420/VP8)、加密、媒体文件、图像处理、显示、网络传输与流控(RTP/RTCP)等功能。

    • 音效引擎(VoiceEngine)WebRTC的音频部分,包含设备、编解码(iLIBC/iSAC/G722/PCM16/RED/AVT、NetEQ)、加密、声音文件、声音处理、声音输出、音量控制、音视频同步、网络传输与流控(RTP/RTCP)等功能。

    • 会议管理(Session Management)

    • iSAC:音效压缩

    • VP8:Google自家的WebM项目的视频编解码器

    • APIs(Native C++ API, Web API)

    相关文章

      网友评论

          本文标题:流媒体基础介绍

          本文链接:https://www.haomeiwen.com/subject/waekyctx.html