流式存储音频/视频

流式存储音频/视频

1.1.下载文件的传统方法:

传统的浏览器从服务器下载音频/视频文件:

① 用户从客户机(client machine)的浏览器上用 HTTP 协议向服务器请求下载某个音频/视频文件。

② 服务器如有此文件就发送给浏览器。在响应报文中就装有用户所要的音频/视频文件。整个下载过程可能会花费很长的时间

③ 当浏览器完全收下这个文件后,就可以传送给自己机器上的媒体播放器进行解压缩,然后播放。

1.2.具有元文件的万维网服务器

元文件就是一种非常小的文件,它描述或指明其他文件的一些重要信息。

① 浏览器用户使用 HTTP 的 GET 报文接入到万维网服务器。这个超链指向一个元文件。这个元文件有实际的音频/视频文件的统一资源定位符 URL。

② 万维网服务器把该元文件装入 HTTP 响应报文的主体,发回给浏览器。

③ 客户机浏览器调用相关的媒体播放器,把提取出的元文件传送给媒体播放器。

④ 媒体播放器使用元文件中的 URL ,向万维网服务器发送 HTTP 请求报文,要求下载音频/视频文件。

⑤ 万维网服务器发送 HTTP 响应报文,把该音频/视频文件发送给媒体播放器。媒体播放器边下载边解压缩边播放。

1.3.媒体服务器

  • 媒体服务器也称为流式服务器(streaming server) ,它支持流式音频和视频的传送。
  • 媒体播放器与媒体服务器的关系是客户与服务器的关系。
  • 媒体播放器不是向万维网服务器而是向媒体服务器请求音频/视频文件。
  • 媒体服务器和媒体播放器之间采用另外的协议进行交互。

使用媒体服务器

① ~③ 前三个步骤仍然和上一节的一样,区别就是后面两个步骤。

④ 媒体播放器使用元文件中的 URL 接入到媒体服务器,请求下载浏览器所请求的音频/视频文件。下载可以借助于使用 UDP 的任何协议,例如使用实时运输协议 RTP。

⑤ 媒体服务器给出响应,把该音频/视频文件发送给媒体播放器。媒体播放器在迟延了若干秒后,以流的形式边下载边解压缩边播放。

流媒体服务器应用二:现场直播

除了上述所讲的用户借助流媒体服务器播放音频视频之外,还可以使用流媒体服务器实现会议或球赛的现场直播。

  • 如图,通过摄像机拍摄得到实况数字视频,摄像头的一端连接计算机,在计算机上安装编码器软件,编码器软件能将摄像头采集到的视频进行编码,得到各种分辨率和格式的视频文件。
  • 编码完成后计算机把视频文件发送到流媒体服务器上,然后,最终用户就可以通过访问流媒体服务器来观看现场直播。
  • 用户观看的现场直播会因网络带宽不同而存在不同的时延。
  • 可以看到,编码器软件只给流媒体服务器发送一份视频文件,而流媒体服务器作为发布点则根据用户数量发送多份视频文件,所以流媒体服务器的带宽成为了限制多少用户同时在线看直播的瓶颈。
  • 另外,拥有编码器软件的计算机可以给多个流媒体服务器提供视频流,实现流媒体服务器的负载分摊,为更多用户提供视频直播服务。

1.4.现实案例

公司的领导在城市A给城市B和C的分公司员工开会,如图所示:

  • 城市A、B和C三个局域网通过Internet连接在一起,公司领导通过摄像机和计算机的编码软件录制视频。
  • 如果把流媒体服务器设置在城市A,那么城市B和C的员工想要观看领导讲话就需要连接到城市A的流媒体服务器上,并且有多少个员工观看,城市A的流媒体服务器就需要发送多少份视频文件。
  • 假设城市B有50名员工,城市C有60名员工,那么城市A的流媒体服务器就要通过Internet分别给城市B和C发送50和60份视频文件,这样网络的带宽明显不够,直接影响直播效果。解决办法如下图所示:

  • 分别在城市B和C各部署一个流媒体服务器,那么城市A负责编码视频文件的计算机只需要通过Internet给城市B和C各发送一份视频文件即可。
  • 城市B和C的员工再通过访问本城市的流媒体服务器即可观看直播,这样便解决了带宽问题。

通过以上例子可以知道:如果流媒体服务器作为现场直播的视频音频流的话,可以当作是一个视频音频的分发点。

原文地址:https://www.cnblogs.com/AhuntSun-blog/p/12332825.html

时间: 2024-07-30 10:29:02

流式存储音频/视频的相关文章

【官方文档】Nginx模块Nginx-Rtmp-Module学习笔记(三)流式播放Live HLS视频

HTTP Live Streaming(HLS)是由Apple Inc.实施的非常强大的流视频协议.HLS使用穿过防火墙,代理的HTTP事务,并可以轻松地通过CDN进行分发.因此,该技术能够比RTP或其他基于UDP的协议达到更大的观众观众.今天在线直播的许多视频都是由使用HLS的昂贵系统进行托管,但它们通常很昂贵,需要大量的服务器资源.本教程将向您展示如何设置一个非常实惠的Ubuntu 14.04 VULTR VPS,只使用开源软件来进行HLS直播流事件. 第一步是根据Vultr Doc" Ub

互联网影音Steam流式传输-网络直播点播

什么是stream流式传输 流式传输定义很广泛,现在主要指通过网络传送流媒体(如视频.音频)的技术总称.其特定含义为通过Internet 将影视节目传送到PC机,移动端Pad,安卓手机,苹果手机及网络机顶盒(OTT-TV或IPTV的具体应用). 我们也常见一个词"串流",也就是流式传输的一种形象说法.就是指一连串的影像资料压缩后,经过网络分析分段传送资料,在网络上即时传输影音以供观赏的一种技术和过程:串流传输可传送现场live影音或预存与服务器上的影片,当观看者在收看这些影音档时,影音

iOS 音频视频制作

--iOS多媒体 概览 随着移动互联网的发展,如今的手机早已不是打电话.发短信那么简单了,播放音乐.视频.录音.拍照等都是很常用的功能.在iOS中对于多媒体的支持是非常强大的,无论是音视频播放.录制,还是对麦克风.摄像头的操作都提供了多套API.在今天的文章中将会对这些内容进行一一介绍: 音频 音效 音乐 音频会话 录音 音频队列服务 视频 MPMoviePlayerController MPMoviePlayerViewController AVPlayer 摄像头 UIImagePicker

从Storm和Spark Streaming学习流式实时分布式计算系统的设计要点

0. 背景 最近我在做流式实时分布式计算系统的架构设计,而正好又要参见CSDN博文大赛的决赛.本来想就写Spark源码分析的文章吧.但是又想毕竟是决赛,要拿出一些自己的干货出来,仅仅是源码分析貌似分量不够.因此,我将最近一直在做的系统架构的思路整理出来,形成此文.为什么要参考Storm和Spark,因为没有参照效果可能不会太好,尤其是对于Storm和Spark由了解的同学来说,可能通过对比,更能体会到每个具体实现背后的意义. 本文对流式系统出现的背景,特点,数据HA,服务HA,节点间和计算逻辑间

流式传输的两大主流种类及流式传输特点

转自:http://blog.csdn.net/hguisu/article/details/7418087 流式传输定义很广泛,现在主要指通过网络传送媒体(如视频.音频)的技术总称.其特定含义为通过Internet 将影视节目传送到PC机.实现流式传输有两种方法:实时流式传输(Realtime streaming)和顺序流式传输(progressive streaming).(百度百科) 在网络上传输音/视频(英文缩写A/V)等多媒体信息目前主要有下载和流式传输两种方案.A/V文件一般都较大,

Calcite中的流式SQL

Calcite中的流式SQL Calcite中的流式SQL总体设计思路 总体语法应该兼容SQL,这个是和目前流处理SQL的发展趋势是一致的. 如果部分功能标准SQL中没有包含,则尽量采用业界标杆(Oracle).比如模式匹配的功能,目前流处理中还没有针对语法达成共识,那么在设计上,就采用Oracle data warehouse的Match Recognize的方式.还有滑窗功能. 如果还有功能目前业界标杆都没有,那么就通过函数的方式拓展,翻滚窗口和跳动窗口,这两个窗口在标准SQL中都是不包含的

流式处理框架对比

分布式流处理是对无边界数据集进行连续不断的处理.聚合和分析的过程,与MapReduce一样是一种通用计算框架,期望延迟在毫秒或者秒级别.这类系统一般采用有向无环图(DAG).DAG是任务链的图形化表示,用它来描述流处理作业的拓扑.在选择不同的流处理系统时,通常会关注以下几点: 运行时和编程模型:平台框架提供的编程模型决定了许多特色功能,编程模型要足够处理各种应用场景. 函数式原语:流处理平台应该能提供丰富的功能函数,比如,map或者filter这类易扩展.处理单条信息的函数;处理多条信息的函数a

翻译-In-Stream Big Data Processing 流式大数据处理

相当长一段时间以来,大数据社区已经普遍认识到了批量数据处理的不足.很多应用都对实时查询和流式处理产生了迫切需求.最近几年,在这个理念的推动下,催生出了一系列解决方案,Twitter Storm,Yahoo S4,Cloudera Impala,Apache Spark和Apache Tez纷纷加入大数据和NoSQL阵营.本文尝试探讨流式处理系统用到的技术,分析它们与大规模批量处理和OLTP/OLAP数据库的关系,并探索一个统一的查询引擎如何才能同时支持流式.批量和OLAP处理. 在Grid Dy

流式数据中的数学统计量计算

在科技飞速发展的今天,每天都会产生大量新数据,例如银行交易记录,卫星飞行记录,网页点击信息,用户日志等.为了充分利用这些数据,我们需要对数据进行分析.在数据分析领域,很重要的一块内容是流式数据分析.流式数据,也即数据是实时到达的,无法一次性获得所有数据.通常情况下我们需要对其进行分批处理或者以滑动窗口的形式进行处理.分批处理也即每次处理的数据之间没有交集,此时需要考虑的问题是吞吐量和批处理的大小.滑动窗口计算表示处理的数据每次向前移N个单位,N小于要处理数据的长度.例如,在语音识别中,每个包处理