一、项目背景
最近很多朋友希望我的 Flamingo 服务器支持 http 协议,我自己也想做一个微信小程序,小程序通过 http 协议连接通过我的 Flamingo 服务器进行聊天。
Flamingo 是一个开源的即时通讯软件,目前除了服务器端,还有 PC 端、Android 端,后面会支持更多的终端。
关于 Flamingo 的介绍和最新源码: https://github.com/balloonwj/flamingo 更新日志:https://github.com/balloonwj/fl
二、http 协议介绍
http 协议是应用层协议,一般建立在 TCP 协议的基础之上(当然你的实现非要基于 UDP 也是可以的),也就是说 http 协议的数据收发是通过 TCP 协议的。
http 协议分为 head 和 body 两部分,但是我们一般说的 html 文档中的 和 部分是 html 文档的 head 和 body,它们都是 http 协议的 body 部分。
http协议的格式如下:
GET或POST 请求的URL路径(一般是去掉域名的路径) HTTP协议版本号\r\n
字段1名: 字段1值\r\n
字段2名: 字段2值\r\n
......
字段n名 : 字段n值\r\n
\r\n
http协议包体内容
也就是说 http 协议由两部分组成:包头和包体,包头与包体之间使用一个\r\n分割,由于 http 协议包头的每一行都是以\r\n结束,所以 http 协议包头一般以\r\n\r\n(两个 \r\n )结束。
三、http 客户端实现
如果您能掌握以上说的 http 协议,你就可以自己通过代码组装 http 协议发送 http 请求了(也是各种开源 http 库的做法)。
四、http 服务器实现
我们这里简化一些问题,假设客户端发送的请求都是 GET 请求,当客户端发来 http 请求之后,我们拿到 http 包后就做相应的处理。我们以为我们的 Flamingo 服务器实现一个支持 http 格式的注册请求为例。【感兴趣的话点击此处,了解一下】
随着视频压缩技术的不断完善和计算机技术的发展,视频服务器已广泛应用于电视播出系统,视频服务器在多频道播出系统中的全面应用,使之成为电视台播出系统中最重要的组成部分,这一产品可大大提高电视播出的工作效率。其实,视频服务器还具备许多传统视频监控设备所不具备的优点,还可以开发出许多新颖的应用方式。(非监控领域)
一、视频服务器的构成
网络视频服务器是一种压缩、存储、处理视音频数据的专用计算机,它由视音频压缩编码器、大容量存储设备、输入/输出通道、网络接口、视音频接口、RS422串行接口、协议接口、软件接口、视音频交叉点矩阵等构成,同时,提供外锁相和视频处理功能。
视音频压缩编码器:由于视频数字化后,数据量很大,故要利用成熟的压缩技术,将视频数据在满足技术指标要求的条件下进行高压缩比的压缩,满足存储和传输要求。目前视频服务器一般采用H.264或MPEG—4等压缩编码器,用户可根据实际情况选择压缩码率和压缩结构,以适合于各种不同的播出场合,达到既节省硬盘空间,增加节目存储量,又能保证播出质量的目的。
大容量存储设备:视频服务器使用高速、宽带的SCSI接口硬盘或最先进的FC接口硬盘作为视音频素材存储介质。同时视音频数据的硬盘扩充也比较灵活。
输入/输出通道:视频服务器具备多通道输入/输出系统,使多路录入、播放能同时进行,实现多任务。
网络接口:视频服务器都带有网络接口,方便组网,实现数据共享。一般视频服务器都带有FC和以太网接口。FC光纤网采用IP协议作为视频服务器之间快速、实时复制和移动素材的交换网络,以太网用于传送控制数据和状态检测的信息。
视音频接口:视频服务器都带有标准视音频接口和模拟监视视频接口,方便监视各通道的视频信号。输入/输出信号可以在模拟、分量和SDI中选择。
RS422串行接口:视频服务器都带有多个RS422串行通讯接口,每个接口均可通过RS422通讯线由外部计算机控制实现记录与播放。
协议接口:视频服务器除提供各种控制硬件接口外,还提供协议接口。如RS422接口除支持RS422的Profile协议外,还支持 Louth、Odetics 、BVW等通过RS422控制的协议。
软件接口:视频服务器提供开放的软件接口,供用户或第三方厂商开发和构建新的应用方式。
视音频交叉点矩阵:视频服务器内带视、音频交叉点矩阵,视、音频通道调度灵活,同时可保证技术指标不受损。
另外,视频服务器提供外锁相和视频处理功能,方便构建专业化应用的视音频系统。
三、视频服务器的特点
网络视频服务器具有传统设备所不具备的许多特点,具体表现如下:
(1)将多通道、录制与播放等功能集于一体,传统设备中有多输入和多输出特性的设备是视音频切换矩阵,而具有录制和播放功能的设备是录像机,不言而喻,视频服务器在系统中可代替若干个录像机和一台小型切换矩阵。
(2)视频服务器用硬盘作为记录媒体,具有非线性特点,因而具有非线性设备所有的优点,如素材查找方便;素材可由多个输出通道共享;可同时或相继调出播放。
(3)素材记录在硬盘还未形成完整文件时,便可由输出通道调出播放,这点非常适用于延时播出和视频点播等领域。
(4)视频服务器容易实现向前或向后的变速播放,传统的录像机要实现这一点,要经过价格昂贵的特殊设备。
四、视频服务器在电视领域的应用
由于网络视频服务器具备上述优势,因此它将创造许多新颖的应用方式,以满足电视传媒的需要,并可大大提高生产率和降低设备维修和人力成本。视频服务器在电视领域中的应用主要有两个方面:一是利用视频服务器构建自动播出系统;二是利用视频服务器实现视频点播。
1.利用视频服务器构建自动播出系统
以往的播出系统是以磁带为主要介质,但随着视频压缩技术的不断完善和计算机技术的发展,在播出系统中采用视频服务器已经成为可能而且目前已在国内许多电视台使用,在今天建立播出系统时选择视频服务器作为一个信号源已经成为必然。以视频服务器为主体的硬盘播出系统,充分发挥硬盘存储的优势,避免了因录像机等设备出故障给播出带来的影响,充分发挥多通道资源共享的优越性,轻松实现各节目之间的串编播出和各种插播、定时播出之间的控制管理,以压缩文件的形式把节目存放在硬盘中,可以达到无失帧保存,所有节目从制作、编辑端口上载,从而简化了从制作到播出的工作流程,有利于提高工作效率。
在硬盘播出系统中,节目素材是以数字压缩方式存储和播出的。系统可采用MPEG―2或M—JPEG压缩格式。
硬盘播出系统可采用本地存储、镜像备份方式的RAID硬盘存列。RAID-1也称作“镜像”,即采用双盘完全复制方法来保护数据,避免了硬盘故障造成数据丢失和系统中断,其100%的冗余可以实现数据的快速恢复。每个视频服务器使用独立的存储硬盘即本地存储,各视频服务器之间完全互不干扰,再采用完全镜像备份,系统可靠性高。
硬盘播出系统可采用FC与以太网结合的双网结构,利用FC传输视音频信号,用以太网传送控制信号。
硬盘播出系统由视音频服务器、数据库服务器、采集工作站、预监工作站、播出工作站等子系统组成。两台视音频服务器进行备份。服务器通过光纤网互连。主服务器上的视音频素材通过光纤网拷贝到辅服务器上。由一套自动播控系统控制两套视音频服务器的播出工作站进行同步播出。这样系统非常可靠。同时,系统根据不同的用户设置不同的安全等级,使无关人员无法进入系统;有效地保证系统数据的安全性,同时在系统播出时,自动锁定各种其他违规操作,及时发出报警信号。
以视频服务器为主体的硬盘自动播出系统的具体应用方式有以下几种:
(1)广告自动播出
视频服务器首先用于重播次数多、时间短的广告节目。在这一应用方式中,视频服务器作为广告播出的专用设备,它受控于播出系统的自动控制软件,由视频服务器承担的播出只能按顺序一条一条地进行,广告播出的素材由广告编辑计算机负责控制,广告播出的顺序的编排和控制由广告播出计算机负责,而广告播出的起点和结束则由自动播控计算机实施对广告播出计算机的控制。这种应用方式不需要对已有的播出系统进行大的改动,原有的自动播控系统和软件还能继续使用,视频服务器在这里相当于多台录像机(取决于视频服务器的输入通道数目)和多台放像机(取决于视频服务器的输出通道数目)。因此原有的自动播控系统软件就能象控制录像机一样控制视频服务器进行广告播出。
(2)多频道自动播出系统
利用视频服务器的多通道特性能建立循环垫播系统,供多个频道的播出机房共用。在这一应用方式中,首先将各个频道的垫播素材通过VTR录入到视频服务器中,每个频道播出机房占用视频服务器的一个输出通道,视频服务器上的各个素材可分别播出。在这一应用方式中,可利用一对配置完全相同的视频服务器建立播出系统。主、备视频服务器各用对应的一个输出通道,作为互为备份的播出通道,主、备视频服务器之间采用光纤网(FC)互联,实现视音频素材共享、移动和复制,保证主、备视频服务器的素材完全一致。由一套自动播控系统控制两套视频服务器的播出工作站进行同步播出。
(3)电视节目延时播出系统
利用视频服务器建立电视节目延时播出系统是利用视频服务器的特性,即在素材写入硬盘时,不需完全形成一个素材文件的情况下,便可共享调用,使硬盘播出系统具备所谓即录即播(要稍许延时后才可播)的功能。这种方案比较适合于直播重要的实况节目。将实况播出先录入硬盘,按需要将实况播出时间延迟适当时间播出,节目导演和值班员利用这段时间在播放速率调整控制计算机上对现场不宜转播的画面进行剪切并替换为其它适宜素材,或以人眼不易分辨的速率,如0.8至1.2倍快速或慢速播放,以保持相应的迟时量。这种以先进技术手段为基础的障眼法,可控制不当素材的播出,同时实况转播效果又不受任何影响。
使用视频服务器的硬盘自动播出系统还有很多种具体应用方式,这里就不再一一列举了对比于传统录像带播出,硬盘自动播出系统的信号与素材都并非存于盒带之中,因此有零帧预卷、非线性检索、素材反复使用、资源共享等优点。具体的优点是:提高工作效率、具有更好的安全性、信息资源的共享和系统的先进性。
2.利用视频服务器实现视频点播
视频点播有两种方式即:准视频点播(NVOD)和视频点播(VOD)
(1)准视频点播(NVOD)
视频服务器是实现准视频点播(NVOD)播放的核心设备,利用其多通道特性和素材可共享的特性,实现一个节目相隔一段时间重播,收视者能在等待最短时间收看自己点播的节目。如:在视频服务器内一个时间长度为N的节目,经8个输出通道分别输出,第二个通道相对第一个通道延时N/8时间播放,第三个通道相对第二个通道延时N/8时间播放,依此类推。每个通道节目循环播放,那么第一个通道下一次开始播放的时间相对第八个通道也是延时N/8时间播放。这样相邻通道播放的是相同节目,但时间间隔均是N/8。用户点播时,其点播信息经节目请求计算机处理后,由节目播放控制计算机将马上要播放的通道号、授权等信息返送给用户接收设备,用户在N/8时间内就可看到自己点播的节目。
(2)视频点播(VOD)
视频服务器不仅可用于准视频点播系统,也可用于视频点播(VOD)系统。VOD的全称为Video On Demand,即视频点播技术,也称交互式电视点播系统,意即按需要的视频流播放。“在想看的时候看想看的节目”,用户可以根据自己的意愿选择收看电视节目,从根本上改变了过去被动式收看电视的不足,完全实现了由用户掌握获得信息的主动权。VOD还可以实现Internet、收发电子邮件、家庭购物、旅游指南、订票预约、股票交易等其他功能。因此可以说,这一技术的出现使用户可以按自己的需要来安排工作和娱乐时间,真正实现了由用户掌握收视主动权,极大地提高和改善了人们的生活质量和工作效率。
VOD 系统由前端系统、网络系统及客户系统三部分组成,而前端系统一般由视频服务器、各种档案管理服务器以及控制网络部分的设备组成。各种档案服务器主要完成一些用户信息管理和计费工作,以及影视材料的管理工作和安全保密等。控制网络部分主要完成各种服务器中的各种信息传递工作及后台的影视材料和数据的交换。视频服务器主要由存储系统和建立其上的各种控制器管理系统组成,其目标是实现压缩媒体数据的存储以及按请求进行媒体信息的检索和传输。视频服务器与传统的数据服务器在很多方面有显著不同,需要解决许多问题,来支持各种新功能。同时,它的高速数据传输能力保证了用户对大量影片、视频节目、游戏、商务信息以及其它服务的近乎即时访问。它的最大特点是可以实现多人从不同起点观看同一节目,从而避免了精彩节目被一个用户独占。
这种应用规模比较大,必须将多台多通道的视频服务器组成能共享大容量硬盘存储体和能处理传输流的宽带网络,才能满足众多用户对节目的各种点播需求。用户点播信息可以有两种路径传给点播受理服务器:一种是通过城市的有线电视HFC网络的上行通道传给点播受理服务器;另一种是通过通用浏览器在互联网上对节目进行选择后,将点播信息传给点播受理服务器。点播受理服务器将有关信息处理后,传给播放控制计算机,由它控制播放用户所点播的节目,并通过HFC下行通道传到用户终端。用户接收有两种形式:一种是普通电视机+机顶盒,另一种是计算机+接收卡,借助计算机显示器收看。
基于视频服务器的多频道数字播出系统具有传统的基于磁带录像机的模拟播出系统无可比拟的诸多优势,视频服务器采用开放式软硬件平台和标准或通用接口协议,系统扩展能力较强,能够与未来全数字、盘基化、网络化、多频道资源共享模式的节目制作、编辑和播出体系相衔接。盘基化或盘带结合的基于视频服务器多频道数字播出系统可以实现播出差错隔离和故障隔离,也可以实现延时播出,是电视节目播出由模拟向数字过渡的最佳方案。而从长远来看,视频点播具有巨大的潜在市场和深远的发展前景,因为从深层次来看,VOD不仅仅是视频节目点播的问题,它代表未来全功能网络化和数字交互式信息的应用发展趋势,是一种从内容、形式上更深层次上的互动,也是数字影院、交互视频新闻、广告等新应用的基础,具有广阔的发展潜力,VOD是未来信息高速公路构架的重要组成部分,是未来信息服务中宽带业务的灵魂。因此可以肯定,随着数字技术、多媒体技术和计算机技术的不断发展,视频服务器在电视领域中的应用将有更多的延伸。
网络视频服务器(DVS,Digital Video Server)主要用于以太网实时传输数字音视频的多媒体服务器,它能通过以太网(局域网/广域网)将实时的图像和声音同时通过网络传输。视频服务器可以在保留现有模拟视频监控设备的同时,将视频监视系统平滑升级到基于网络的视频监控系统,它非常适用于与现存的模拟CCTV(闭路电视监控)系统相集成。视频服务器为模拟视频设备带来了全新的功能特性,并彻底消除了系统对于同轴电缆、模拟监视器和DVR等专用设备的依赖。DVR将不再成为实现录像功能的必需品,因为在视频服务器的帮助下,视频图像可以通过标准的PC服务器来进行录制和管理。一台视频服务器通常具备1至4个模拟视频输入接口用于连接模拟摄像机,同时具备1个以太网接口用于连接到网络。与网络摄像机一样,它包含内置的Web服务器、图像压缩芯片以及操作系统,在这些部件的作用下,模拟视频输入将被转化为数字视频信号,并能够通过计算机网络进行传输和存储,从而大大简化了视频资源的访问和管理。
除了视频输入之外,视频服务器还可以通过同一个网络连接实现其他更多的功能和传输更多的信息,其中包括:数字化报警输入和输出(I/O接口,可用于触发服务器启动录像功能和传输视频,或者激活外部报警设备如警灯或打开房门等等)、音频、用于串行数据传输或PTZ设备控制的串行端口灯。通过图像缓存,视频服务器还可以发送报警前后的图像。视频服务器还可以连接更多的专用摄像机,例如高感光度黑白摄像机、微型摄像机或显微摄像机等等。
视频服务器用于监控领域,大家都很清楚,但不常见的应用,如流媒体。采用流媒体方式,即设立一台流媒体服务器,建立与视频服务器的连接,对该视频服务器的视频访问全部通过流媒体转发服务器软件模块来进行转发,使得该视频服务器的视频服务只占一个通道。这样保证与视频服务器只有一个连接,提高了播放性能和质量。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)