流媒体与直播技术学习笔记
2017-07-07 14:56
323 查看
https://zhuanlan.zhihu.com/p/22221170?refer=c_46929389
经纬度
10 个月前
(1)流媒体
流媒体指的是这样的一种媒体传输方式,媒体提供方编码、压缩和分发媒体流(相关的数据包),终端用户不断地获取、解码并播放媒体,区别于以前先下载整个媒体文件后观看。
(2)流式传输
通过网络传送媒体的技术总称。实现方法:
1. 顺序流式传输(Progressive streaming)
涵义:顺序下载,在下载文件的同时用户可观看再线媒体。
特点:在给定时刻,用户只能观看已下载的那部分,而不能跳到还未下载的前头部分,顺序流式传输不象实时流式传输在传输期间根据用户连接的速度做调整。由于标准的HTTP服务器可发送这种形式的文件,也不需要其他特殊协议,故也称为HTTP流式传输。是一种点播技术。
2. 实时流式传输(Realtime streaming)
涵义:实时流式传输指保证媒体信号带宽与网络连接匹配,使媒体可被实时观看到。
特点:需要专用的流媒体服务器与传输协议。实时流式传输总是实时传送,特别适合现场事件,也支持随机访问,用户可快进或后退以观看前面或后面的内容。直播技术。
关键词:缓存、协议。
客户端与Web服务器之间使用HTTP/TCP交换控制信息,获取相关参数初始化A/V(指Audio/Video)Helper程序,A/VHelper程序及A/V服务器运行RTSP协议(实时流控制协议),以交换A/V传输所需的控制信息。A/V服务器使用RTP/UDP协议(RTP,实时传输协议)将A/V数据传输给A/V客户程序(一般可认为客户程序等同于Helper程序),在传输中它们要被分解为许多包,在网络中进行断续的异步传输,然后进入客户端以环形链表结构(丢弃已经播放的内容)为基础的高速缓存系统(弥补延迟和抖动的影响,并保证数据包的顺序正确),最后A/V客户程序使用专有的播放器进行解码播出。
(1)智能流技术
自动检测网络状况,并将音视频的属性调整到最佳,使用用户收到与其网络速度相符的媒体流,从而获取最佳的用户体验。
(2)分流(splitting)技术
一般只在直播中使用。发送服务器将媒体流发送到分布在各地的多个接收服务器,客户端可以就近访问服务器获得较高质量的媒体流,同时减少带宽使用。推流为将直播内容推送至服务器的过程;拉流为服务器已有直播内容,用指定地址进行拉取的过程。
(3)缓存(caching)技术
解决由于异步网络、网络延迟和抖动导致的数据包错序的问题,数据包先缓存在本地,而缓存系统使用环形链表结构丢弃掉已经播放的内容,防止缓存溢出。
(4)内容分发网络(CDN)技术
架构在IP网络之上的一个内容叠加网,通过引入主动内容管理、全局负载均衡和内容缓存等技术,将用户请求的流媒体内容发布到距离用户最近的网络边缘,从而提供响应速度,减轻骨干网络的压力。
(1)直播中使用的流媒体协议
RTMP, Real Time Messaging Protocol(实时消息传输协议)的首字母缩写。该协议基于TCP,是一个协议族,包括RTMP基本协议及RTMPT/RTMPS/RTMPE等多种变种。RTMP是一种设计用来进行实时数据通信的网络协议,主要用来在Flash/AIR平台和支持RTMP协议的流媒体/交互服务器之间进行音视频和数据通信。RTMP
基于 flash 无法在 iOS 的浏览器里播放,但是实时性比 HLS 要好。
HLS,HTTP Live Streaming(HTTP直播流技术),Apple的动态码率自适应技术。主要用于PC和Apple终端的音视频服务。包括一个m3u(8)的索引文件,TS媒体分片文件和key加密串文件。
(2)直播的模块划分
视频录制端:一般是电脑上的音视频输入设备或者手机端的摄像头或者麦克风,目前以移动端的手机视频为主。技术:webRTC(用途:H5视频录制)
视频播放端:可以是电脑上的播放器,手机端的 Native 播放器,还有就是 H5 的 video 标签等,目前还是已手机端的 Native 播放器为主。技术:HLS协议或RTMP协议(用途:视频播放)、ffmpeg(用途:使用RTMP协议时进行移动端视频解码)
视频服务器端:一般是一台 nginx 服务器,用来接受视频录制端提供的视频源,同时提供给视频播放端流服务。技术:RTMP协议(用途:上传视频流)、nginx rtmp-module 或 SRS(simple-rtmp-server)(用途:流服务器)
流媒体 - MBA智库百科
流媒体技术及应用
如何搭建一个完整的视频直播系统? - 知乎
2016年移动视频直播应用行业报告-TalkingData
流媒体网络直播视频直播
流媒体与直播技术学习笔记
经纬度
10 个月前
基本概念
(1)流媒体流媒体指的是这样的一种媒体传输方式,媒体提供方编码、压缩和分发媒体流(相关的数据包),终端用户不断地获取、解码并播放媒体,区别于以前先下载整个媒体文件后观看。
(2)流式传输
通过网络传送媒体的技术总称。实现方法:
1. 顺序流式传输(Progressive streaming)
涵义:顺序下载,在下载文件的同时用户可观看再线媒体。
特点:在给定时刻,用户只能观看已下载的那部分,而不能跳到还未下载的前头部分,顺序流式传输不象实时流式传输在传输期间根据用户连接的速度做调整。由于标准的HTTP服务器可发送这种形式的文件,也不需要其他特殊协议,故也称为HTTP流式传输。是一种点播技术。
2. 实时流式传输(Realtime streaming)
涵义:实时流式传输指保证媒体信号带宽与网络连接匹配,使媒体可被实时观看到。
特点:需要专用的流媒体服务器与传输协议。实时流式传输总是实时传送,特别适合现场事件,也支持随机访问,用户可快进或后退以观看前面或后面的内容。直播技术。
流媒体技术原理
关键词:缓存、协议。客户端与Web服务器之间使用HTTP/TCP交换控制信息,获取相关参数初始化A/V(指Audio/Video)Helper程序,A/VHelper程序及A/V服务器运行RTSP协议(实时流控制协议),以交换A/V传输所需的控制信息。A/V服务器使用RTP/UDP协议(RTP,实时传输协议)将A/V数据传输给A/V客户程序(一般可认为客户程序等同于Helper程序),在传输中它们要被分解为许多包,在网络中进行断续的异步传输,然后进入客户端以环形链表结构(丢弃已经播放的内容)为基础的高速缓存系统(弥补延迟和抖动的影响,并保证数据包的顺序正确),最后A/V客户程序使用专有的播放器进行解码播出。
流媒体相关技术
(1)智能流技术自动检测网络状况,并将音视频的属性调整到最佳,使用用户收到与其网络速度相符的媒体流,从而获取最佳的用户体验。
(2)分流(splitting)技术
一般只在直播中使用。发送服务器将媒体流发送到分布在各地的多个接收服务器,客户端可以就近访问服务器获得较高质量的媒体流,同时减少带宽使用。推流为将直播内容推送至服务器的过程;拉流为服务器已有直播内容,用指定地址进行拉取的过程。
(3)缓存(caching)技术
解决由于异步网络、网络延迟和抖动导致的数据包错序的问题,数据包先缓存在本地,而缓存系统使用环形链表结构丢弃掉已经播放的内容,防止缓存溢出。
(4)内容分发网络(CDN)技术
架构在IP网络之上的一个内容叠加网,通过引入主动内容管理、全局负载均衡和内容缓存等技术,将用户请求的流媒体内容发布到距离用户最近的网络边缘,从而提供响应速度,减轻骨干网络的压力。
直播的实现
(1)直播中使用的流媒体协议RTMP, Real Time Messaging Protocol(实时消息传输协议)的首字母缩写。该协议基于TCP,是一个协议族,包括RTMP基本协议及RTMPT/RTMPS/RTMPE等多种变种。RTMP是一种设计用来进行实时数据通信的网络协议,主要用来在Flash/AIR平台和支持RTMP协议的流媒体/交互服务器之间进行音视频和数据通信。RTMP
基于 flash 无法在 iOS 的浏览器里播放,但是实时性比 HLS 要好。
HLS,HTTP Live Streaming(HTTP直播流技术),Apple的动态码率自适应技术。主要用于PC和Apple终端的音视频服务。包括一个m3u(8)的索引文件,TS媒体分片文件和key加密串文件。
(2)直播的模块划分
视频录制端:一般是电脑上的音视频输入设备或者手机端的摄像头或者麦克风,目前以移动端的手机视频为主。技术:webRTC(用途:H5视频录制)
视频播放端:可以是电脑上的播放器,手机端的 Native 播放器,还有就是 H5 的 video 标签等,目前还是已手机端的 Native 播放器为主。技术:HLS协议或RTMP协议(用途:视频播放)、ffmpeg(用途:使用RTMP协议时进行移动端视频解码)
视频服务器端:一般是一台 nginx 服务器,用来接受视频录制端提供的视频源,同时提供给视频播放端流服务。技术:RTMP协议(用途:上传视频流)、nginx rtmp-module 或 SRS(simple-rtmp-server)(用途:流服务器)
参考文档
流媒体 - MBA智库百科流媒体技术及应用
如何搭建一个完整的视频直播系统? - 知乎
2016年移动视频直播应用行业报告-TalkingData
流媒体网络直播视频直播
相关文章推荐
- 【流媒体】【学习笔记】HTTP Live Streaming (HLS) 视频直播技术
- 流媒体技术学习笔记之(十八)互联网草案HTTP直播流2017年5月
- 流媒体技术学习笔记之(十四)FFmpeg进行笔记本摄像头+麦克风实现流媒体直播服务
- 流媒体技术学习笔记之(十)HLS协议直播延时优化(35s到10S)
- 直播技术学习笔记(一)
- 流媒体技术学习笔记之(八)海康、大华IpCamera RTSP地址和格式
- 流媒体技术学习笔记之(三)Nginx-Rtmp-Module统计某频道在线观看流的客户数
- 流媒体技术学习笔记之(十六)H264编码profile & level控制
- 流媒体技术学习笔记之(六)FFmpeg官方文档先进音频编码(AAC)
- 流媒体技术学习笔记之(一)nginx+nginx-rtmp-module+ffmpeg搭建流媒体服务器
- 流媒体技术学习笔记之(七)进阶教程OBS参数与清晰度流畅度的关系
- 流媒体技术学习笔记之(十二)Linux(Ubuntu)环境运行EasyDarwin
- 流媒体技术学习笔记之(十三)Windows安装FFmpeg
- 流媒体技术学习笔记之(十七)FFmpeg 3.3《希尔伯特》-新版本的亮点
- 流媒体技术学习笔记之(十一)Windows环境运行EasyDarwin
- 流媒体技术学习笔记之(九)减少VLC 延迟的方法
- 流媒体技术学习笔记之(五)码流、码率、采样率、比特率、帧速率、分辨率、高清视频的概念
- 流媒体技术学习笔记之(二)RTMP和HLS分发服务器nginx.conmf配置文件(解决了,只能播放RTMP流而不能够播放HLS流的原因)
- 流媒体技术学习笔记之(十八)Ubuntu 16.04.3 如何编译 FFmpeg 记录
- 流媒体技术学习笔记之(十五)FFmpeg编码遇到的错误、警告、Debug记录