第23章  流媒体服务器架设

流媒体技术也称为流式传输技术,是指在网络上按时间先后次序传输和播放的连续音、视频数据流。随着网络速度的提高,以流媒体技术为核心的视频点播、在线电视、远程培训等业务开展得越来越广泛。本章主要介绍流媒体技术的基础知识、流媒体服务器的安装、运行、配置和使用等内容。

23.1  流媒体技术基础

流媒体是指利用流式传输技术传送的音频、视频等连续媒体数据,它的核心是串流(Streaming)技术和数据压缩技术,具有连续性、实时性、时序性3个特点,可以使用顺序流式传输和实时流式传输两种传输方式。本节主要介绍有关流媒体的技术基础。

23.1.1  流媒体传输的基本原理

实现流式传输需要使用缓存机制。因为音频或视频数据在网络中是以包的形式传输的,而网络是动态变化的,各个数据包选择的路由可能不尽相同,到达客户端所需的时间也就不一样,有可能会出现先发的数据包却后到。因此,客户端如果按照包到达的次序播放数据,必然会得到不正确的结果。使用缓存机制就可以解决这个问题,客户端收到数据包后先缓存起来,播放器再从缓存中按次序读取数据。

使用缓存机制还可以解决停顿问题。网络由于某种原因经常会有一些突发流量,此时会造成暂时的拥塞,使流数据不能实时到达客户端,客户端的播放就会出现停顿。如果采用了缓存机制,暂时的网络阻塞并不会影响播放效果,因为播放器可以读取以前缓存的数据。等网络正常后,新的流数据将会继续添加到缓存中。

虽然音频或视频等流数据容量非常大,但播放流数据时所需的缓存容量并不需要很大,因为缓存可以使用环形链表结构来存储数据,已经播放的内容可以马上丢弃,缓存可以腾出空间用于存放后续尚未播放的内容。

当传输流数据时,需要使用合适的传输协议。TCP虽然是一种可靠的传输协议,但由于需要的开销较多,并不适合传输实时性要求很高的流数据。因此,在实际的流式传输方案中,TCP协议一般用来传输控制信息,而实时的音视频数据则是用效率更高的RTP/UDP等协议来传输。流媒体传输的基本原理如图23-1所示。

在图23-1中,Web服务器只是为用户提供了使用流媒体的操作界面。客户机上的用户在浏览器中选中播放某***媒体资源后,Web服务器把有关这一资源的流媒体服务器地址、资源路径及编码类型等信息提供给客户端,于是客户端就启动了流媒体播放器,与流媒体服务器进行连接。

(点击查看大图)图23-1  流媒体传输原理

客户端的流媒体播放器与流媒体服务器之间交换控制信息时使用的是RTSP协议,它是基于TCP协议的一种应用层协议,默认使用的是554端口。RTSP协议提供了有关流媒体播放、快进、快倒、暂停及录制等操作的命令和方法。通过RTSP协议,客户端向服务器提出了播放某***媒体资源的请求,服务器响应了这个请求后,就可以把流媒体数据传输给客户端了。

需要注意的是,RTSP协议并不具备传输流媒体数据的功能,承担流媒体数据传输任务的是另一种基于UDP的RTP协议,但在RTP协议传输流媒体数据的过程中,RTSP连接是一直存在的,并且控制着流媒体数据的传输。一旦流媒体数据到达了客户端,流媒体播放器就可以播放输出了。流媒体的数据和控制信息使用不同的协议和连接时,还可以带来一个好处,就是播放流媒体的客户机和控制流媒体播放的客户机可以是不同的计算机。

点赞 0

流媒体转发服务器的数据传输原理,23.1.1 流媒体传输的基本原理相关推荐

  1. webrtc流媒体转发服务器

    webrtc流媒体转发服务器 定义 难点 建立连接 如何转发媒体流 如何高效转发媒体流 转发后如何保证视频质量 定义 由于webrtc是基于P2P技术的一个协议栈,大多数情况下能满足1-5人的同时并发 ...

  2. 流媒体转发服务器系统,流媒体转发服务器配置

    流媒体转发服务器配置 内容精选 换一换 ROMA Connect通过创建负载通道,可访问指定服务器中已部署的后端服务,并实现后端服务访问的负载均衡功能.ROMA Connect可访问同一云服务平台上的 ...

  3. 网络摄像头监控中什么情况下需要使用流媒体转发服务器?

    流媒体服务器是一台可以独立组网的网络视频监控系统核心设备,兼容DVR.DVS.IPC等多种品牌和编码类型的网络视频编码设备联网通讯,为内网和外网的多用户网络并发访问提供服务,满足C/S和B/S架构的联 ...

  4. 浅谈基于流媒体转发技术的IP数字监控系统

    http://wenku.baidu.com/link?url=vGEixi61Z8uDONcl0P-nJxsrbwXyWbXh5bE_1HukTfNue3sD3wNtXaOXmCUxbCuq38C3 ...

  5. 基于Java的音频转发服务器

    在空余时间用Java写了一个服务器,用于转发文字.图片.音频.视频等数据,下面简要展示一下.需要源码的同学请看到文章末尾,文章末尾有资源链接. 界面模块 登陆界面 启动程序,出现登陆界面,具体界面如下 ...

  6. 基于live555的流媒体代理转发服务器

    对于并发量并不大而且对性能要求不是很高的流媒体传输模块,live555还是很好的选择,下面说一下我所实现的流媒体代理服务器(目前只能实现对H264单视频的转发) 代理转发主要分为对RTSP的转发与对R ...

  7. 流媒体(视频)服务器调研

    这篇文章主要向大家介绍流媒体(视频)服务器调研,主要内容包括基础应用.实用技巧.原理机制等方面,希望对大家有所帮助. 标签:javascriptphphtmljavapythonlinuxandroi ...

  8. HLS流媒体服务器对性能要求,搭建hls直播流媒体服务器有什么要求?

    HLS的基本原理是,当视频流被推送到流媒体服务器时,服务器将接收到的流信息打包成一个全新的TS文件,即切片文件(三块),服务器建立一个m3u8索引文件来维护全新TS段的索引.当播放机获得直播时,从m3 ...

  9. C语言从头开始写一次hls视频转发服务器,支持H264和H265

    由于2020年后,谷歌浏览器将不再支持flashplay了,从而网页视频的播放,在谷歌浏览器上,不得不像其他办法,而hls是一个不错的方式,前端H5有现成的js标签,能直接支持苹果的hls,并且不用下 ...

最新文章

  1. 【AI实战】快速掌握TensorFlow(二):计算图、会话
  2. CSS-解决苹果点击高亮、安卓select灰色背景(select下拉框在IOS中背景变黑、出现阴影问题)
  3. 【Android 安全】DEX 加密 ( Proguard 简介 | Proguard 相关网址 | Proguard 混淆配置 )
  4. 【SSM框架系列】Spring IoC(控制反转) DI(依赖注入)注解开发
  5. java identifier expected,java – hibernate h2 embeddable list expected“identifier”
  6. 赛可达实验室发布2015测评认证标准
  7. Java时间类之间的转换案例——计算自己活了多少天
  8. 20155315 2016-2017-2 实验二《Java面向对象程序设计》实验报告
  9. 从今天起,我不再使用 Java Date了!
  10. java贪吃蛇难度设计_Java贪吃蛇应用的设计与实现
  11. solidworks 之迈迪齿轮设计方法 粗浅解释
  12. 视觉SLAM十四讲学习1 环境配置
  13. uniapp之app自动更新
  14. mate9 android os,华为Mate9评测:全新EMUI 5系统 永不卡顿的安卓机?
  15. Mc1.16forge官混教程/教补-#3 物品材质覆盖注意要点[分支1]
  16. 找了许久,终于找到一篇关于GStreamer架构的说的比较详细和底层的文章
  17. 用Java写一个PC端的WIFI-ADB管理软件
  18. MySQL 5.7 安装教程(全步骤、保姆级教程)
  19. 机器视觉系统不同检测场景的光源选择技巧
  20. opencv给图片加滑动条调节窗口大小

热门文章

  1. arctic数据库使用教程(1)---为啥要用arctic以及arctic的简单应用
  2. 说说 java包与导包
  3. 面向接口编程之粗暴理解
  4. 怎么给图片名称快速重命名?来跟我学着两个实用方法
  5. facebook rebound
  6. 1003 Universal Travel Sites (35 分)(C++)
  7. Codeforces713D(二维RMQ)
  8. ipfs搭建mysql_【IPFS + 区块链 系列】 入门篇 - IPFS环境配置
  9. QComboBox样式设置——Qt
  10. 智能家居网络系统的设计(一)