随着Web 应用发展的普及,在浏览器上播放媒体(视频、音频)的需求变得越来越普遍;很多的企业在尝试在网站加入多媒体内容,最常见的俩种方式:
1. 普通的 http 文件点播 ,直接通过网站前台 file upload 的方式上传文件MP4或者FLV,保存路径,客户端通过开源的flash 播放器 或者html5标签去播放服务器返回这个路径的视频文件,可能是mp4 或者FLV。
2. 加入流媒体服务器,通过流媒体来解决视频上传和视频播放的问题 web网站只解决 网页显示和网站逻辑。
下面将主要讲解这俩种方式的实现差别
什么是流媒体
流媒体(Streaming Media)是指采用流式传输的方式在网络上播放的媒体数据。 流媒体又叫流式媒体,它是指媒体提供商用一个视频、音频传送服务器把节目当成网络(TCP IP/UDP IP)数据包发出,传送到最终观看用户,用户通过解压设备对这些数据进行解压后,节目就会像发送前那样显示出来,流媒体,是边传边播的媒体,是多媒体的一种。边传边播是指媒体提供商在网络上传输媒体的“同时”,用户一边不断地接收并观看或收听被传输的媒体。“流”媒体的“流”指的是这种媒体的传输方式(流的方式),而并不是指媒体本身。
优势:
1. 支持 http(tcp)、支持rtmpf(upd)拉流(文件分片) 在网络延迟比较大的情况,稳定播放。
2. 支持数据加密,防盗链;自定义视频数据封包格式。
3. 按需下载,play或者seek到哪个位置就下载到那个数据分片,节省服务器和客户端的资源。
4. P2P 客户端之间数据共享节省带宽。
5. 支持直播实时串流。
劣势:
1. 有一定的费用,专业的流媒体公司实现。
2. 门槛较高,需要懂一些多媒体方便的基本知识,才能较好的维护好流媒体系统。
传统的FLV 和 MP4 视频上传和播放 (网站文件点播)
网站提供视频上传功能,以表单提交的方式提交MP4 或者FLV 文件,网站后台接收数据,直接写到磁盘上,以原有文件名或者新生成的文件名,返回路径给网站后台,网站管理员记录文件路径,网站前台或客户端请求观看是,服务端直接返回 播放URL,客户端可以用html5标签或者flash 播放器 进行播放,一旦开始播放,尽客户端和服务器端最大资源去下载视频数据,没有流控;一旦并发量大,网络到达极限,硬盘IO 也达到极限值。
优势:
1. 门槛低,普通的Web开发人员就能实现视频上传播放。
2. 没有任何费用,网站开发人员就能开发。
劣势:
1. 客户端耗最大资源下载、服务器耗尽资源给数据,消耗双方资源。
2. 没有数据加密和放到功能,直接另存为就能download 视频。
3. 在网络波动比较大的情况无法顺畅的播放,比如 跨运营商、跨国。
4. 没有P2P,客户端之间分享数据,降低服务器负荷。
5. 不支持直播。