视频点播原理

【摘要】视频点播是二十世纪90年代在国外发展起来的,英文称为“Video on Demand”,所以也称为“VOD”。

1 定义:

视频点播是二十世纪90年代在国外发展起来的,英文称为“Video on Demand”,所以也称为“VOD”。顾名思义,就是根据观众的要求播放节目的视频点播系统,把用户所点击或选择的视频内容,传输给所请求的用户。视频点播业务是近年来新兴的传媒方式,是计算机技术、网络通信技术、多媒体技术、电视技术和数字压缩技术等多领域融合的产物。

我们这里讲的点播原理是基于RTSP的点播的过程。

RTSP是实时流传输协议,该协议定义了一对多应用程序如何有效地通过IP网络传送多媒体数据。

2 点播过程:

客户端(一般是浏览器或者公共播放工具 如:vlc )发起视频点播请求,服务器做出响应,经过一系列的协商后,服务器建立起一个会话连接,然后服务器端准备视频数据,发送数据给客户端,客户端收到视频数据之后,进行解码的过程。

3 实现原理:

客户端发起一个 rtsp://10.67.208.104:554/11 请求,客户端与服务端经过以下过程的协商:

C表示客户端,S表示服务端

1.C->S:OPTION request //询问S有哪些方法可用

1.S->C:OPTION response //S回应信息中包括提供的所有可用方法

2.C->S:DESCRIBE request //要求得到S提供的媒体初始化描述信息

2.S->C:DESCRIBE response //S回应媒体初始化描述信息,主要是sdp

3.C->S:SETUP request //设置会话的属性,以及传输模式,提醒S建立会话

3.S->C:SETUP response //S建立会话,返回会话标识符,以及会话相关信息

4.C->S:PLAY request //C请求播放

4.S->C:PLAY response //S回应该请求的信息

5.S->C:发送流媒体数据

6.C->S:TEARDOWN request //C请求关闭会话

6.S->C:TEARDOWN response //S回应该请求

其中 1 2 3 4 5 步是完成视频点播过程,第6步是视频断开的交互;

以上过程可以理解为:

客户端发送一个rtsp://10.67.208.104:554/11 请求后,服务器提供OPTION(即是服务端支持的可用方法:setup 建立连接  teardown 关闭连接  pause 暂停 play播放 SCALE 快放 等等);

客户端发送会话描述的请求,服务器提供媒体会话描述信息(主要是SDP);

客户端提醒服务器建立会话连接,并确定传输模式;

客户端发送视频点播请求,服务器响应应该请求的信息

然后服务器端开始发送视频流

客户端接收到视频流后,对视频流进行解码,浏览视频流。

4 其他

如果有兴趣详细了解整个点播过程的童鞋可以在播放视频的时候用wireshark抓个报包来对照着去分析理解。

以上是对视频点播的一个狭义 的理解,欢迎补充。

转载请注明出处:华为企业云博客 https://portal.hwclouds.com/blogs

时间: 2024-11-03 21:43:51

视频点播原理的相关文章

JVM原理讲解和调优

一.什么是JVM JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的. Java语言的一个非常重要的特点就是与平台的无关性.而使用Java虚拟机是实现这一特点的关键.一般的高级语言如果要在不同的平台上运行,至少需要编译成不同的目标代码.而引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译.Java语言使用Java虚拟机屏蔽了与具体平台相关的信息

小米手环 / 运动手环 记步功能原理

很多朋友是第一次接触像小米手环这类运动计步产品,对于那么轻盈小巧的手环能够精准计步,甚至能详细完整的记录睡眠时间觉得非常神奇,本文就和大家详细说说在看不见的小米手环背板下,它是怎么工作的. 1. 手机上的运动步数是怎么来的? A:简单来说:小米手环能够精准计步由硬件和软件算法两方面组成,缺一不可. 硬件 是指小米手环里内置的那枚强悍的三轴加速度传感器ADXL362 (注1),军用级,大家知道想要达到军用级,这得有多苛刻.其实三轴加速度传感器不神秘,在大多数中高档手机里都有配备加速度传感器,只是在

Nginx为什么比Apache Httpd高效:原理篇

一.进程.线程? 进程是具有一定独立功能的,在计算机中已经运行的程序的实体.在早期系统中(如linux 2.4以前),进程是基本运作单位,在支持线程的系统中(如windows,linux2.6)中,线程才是基本的运作单位,而进程只是线程的容器.程序 本身只是指令.数据及其组织形式的描述,进程才是程序(那些指令和数据)的真正运行实例.若干进程有可能与同一个程序相关系,且每个进程皆可以同步(循 序)或异步(平行)的方式独立运行.现代计算机系统可在同一段时间内以进程的形式将多个程序加载到存储器中,并借

Jsp通过Filter实现UrlRewriter原理

web.xml文件: 1 <?xml version="1.0" encoding="UTF-8"?> 2 <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=&q

MyBatis框架中Mapper映射配置的使用及原理解析(七) MapperProxy,MapperProxyFactory

从上文<MyBatis框架中Mapper映射配置的使用及原理解析(六) MapperRegistry> 中我们知道DefaultSqlSession的getMapper方法,最后是通过MapperRegistry对象获得Mapper实例: public <T> T getMapper(Class<T> type, SqlSession sqlSession) { final MapperProxyFactory<T> mapperProxyFactory =

Android分包MultiDex原理详解

MultiDex的产生背景 当Android系统安装一个应用的时候,有一步是对Dex进行优化,这个过程有一个专门的工具来处理,叫DexOpt.DexOpt的执行过程是在第一次加载Dex文件的时候执行的.这个过程会生成一个ODEX文件,即Optimised Dex.执行ODex的效率会比直接执行Dex文件的效率要高很多. 但是在早期的Android系统中,DexOpt有一个问题,DexOpt会把每一个类的方法id检索起来,存在一个链表结构里面.但是这个链表的长度是用一个short类型来保存的,导致

状态检测防火墙原理

状态检测防火墙原理 防火墙发展到今天,虽然不断有新的技术产生,但从网络协议分层的角度,仍然可以归为以下三类: 1.包过滤防火墙: 2.基于状态检测技术(Stateful-inspection)的防火墙: 3.应用层防火墙 这三类防火墙都是向前兼容的,即基于状态检测的防火墙也有一般包过滤防火墙的功能,而基于应用层的防火墙也包括前两种防火墙的功能.由于<<浅>>文已讲了第一类防火墙,在这里我就讲讲基于状态检测技术的防火墙的实现原理. 为什么会有基于状态检测的防火墙呢?这就要先看看第一类

JS 实现无缝滚动动画原理(初学者入)

这段时间在教培训班的学生使用原生javascript实现无缝滚动的动画案例,做了这个原理演示的动画,分享给自学JS的朋友!博主希望对你们有帮助! 在讲解之前先看一下demo: demo:https://224137748.github.io/JS_warehouse/lunbo/domo.HTML源码:https://github.com/224137748/JS_warehouse/blob/master/lunbo/domo.HTML ps: 上面和下面的滚动进度是一致的,上面红色框是为了演

《金字塔原理》听书笔记

<金字塔原理>已经畅销 40 多年,不仅是麦肯锡经典培训教材,甚至成为了整个咨询业的标准,并被众多国际知名企业和世界知名院校用来进行员工培训内容.本书提供了关于思考和表达技巧的重要观念,帮助你强化思考架构能力和逻辑沟通能力,让你更高效地思考.表达和解决问题. 芭芭拉 · 明托,毕业于哈佛大学,是麦肯锡咨询公司第一位女咨询顾问.她在写作方面的优势得到了麦肯锡高层的赏识,由此负责提高麦肯锡公司员工的写作能力,并致力于探索条理清晰的文章所必需的思维结构.明托传授金字塔原理 40 年,帮助政府.企业.