CN101296236A - 多用户实时访问多媒体数据的方法、系统及数据客户端 - Google Patents

多用户实时访问多媒体数据的方法、系统及数据客户端 Download PDF

Info

Publication number
CN101296236A
CN101296236A CNA2008101148392A CN200810114839A CN101296236A CN 101296236 A CN101296236 A CN 101296236A CN A2008101148392 A CNA2008101148392 A CN A2008101148392A CN 200810114839 A CN200810114839 A CN 200810114839A CN 101296236 A CN101296236 A CN 101296236A
Authority
CN
China
Prior art keywords
data
user
module
address
frame
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA2008101148392A
Other languages
English (en)
Other versions
CN101296236B (zh
Inventor
黄让涛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
GUANGDONG ZHONGXING ELECTRONICS Co Ltd
Original Assignee
Vimicro Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Vimicro Corp filed Critical Vimicro Corp
Priority to CN2008101148392A priority Critical patent/CN101296236B/zh
Publication of CN101296236A publication Critical patent/CN101296236A/zh
Application granted granted Critical
Publication of CN101296236B publication Critical patent/CN101296236B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明公开了多用户实时访问多媒体数据的方法、系统及数据客户端。其中方法包括:当用户确定要读取多媒体数据时,通过Web浏览器向Web服务器发送HTTP请求,Web服务器收到该HTTP请求,启动一个数据客户端,数据客户端向Web服务器侧的数据服务器发送注册请求;数据服务器接收注册请求,通过为用户分配的用户专用通道实时将当前多媒体数据地址发送给数据客户端,数据客户端根据该地址从多媒体数据缓冲区读取多媒体数据,并通过Web浏览器提供给用户。本发明实现了同一时刻多用户实时访问同一多媒体数据,且每个数据客户端可以独立处理自己的多媒体数据,不会对其他用户造成影响。

Description

多用户实时访问多媒体数据的方法、系统及数据客户端
技术领域
本发明涉及数据访问技术领域,具体涉及多用户实时访问多媒体数据的方法、系统及Web服务器侧的数据客户端和数据服务器。
背景技术
随着嵌入式系统的发展,人们可以通过网络浏览视频等多媒体数据,这些视频可能是其他用户上传到网络上的,也可能用户自己安装的网络摄像头采集的,然后用户可通过网络远程访问该视频。目前,同一时刻只允许单个用户浏览网络上的同一视频,而由于用户数目较大,在同一时刻常常有多个用户对同一视频有访问需求,目前还未有多用户实时访问同一多媒体数据如:视频的解决方案。
发明内容
本发明提供多用户实时访问多媒体数据的方法、系统及Web服务器侧的数据客户端和数据服务器,以实现同一时刻多个用户实时访问同一多媒体数据。
本发明的技术方案是这样实现的:
一种多用户实时访问多媒体数据的方法,包括:
用户确定要读取Web服务器侧的多媒体数据,通过Web浏览器向Web服务器发送HTTP请求,Web服务器收到该HTTP请求,启动一个数据客户端,数据客户端向Web服务器侧的数据服务器发送注册请求;
数据服务器接收注册请求,通过为用户分配的用户专用通道实时将当前的多媒体数据地址发送给数据客户端,数据客户端根据该地址从多媒体数据缓冲区读取多媒体数据,并通过Web浏览器提供给用户。
所述方法进一步包括:数据服务器预先设置支持的最大同时访问用户数,建立与最大同时访问用户数相同的用户专用通道;
所述数据服务器接收注册请求之后进一步包括:判断已接入用户数是否小于所述最大同时访问用户数,若小于,将一条所述用户专用通道分配给该用户。
所述数据服务器接收注册请求之后、通过为用户分配的用户专用通道实时将当前的多媒体数据地址发送给数据客户端之前进一步包括:
数据服务器为该用户建立一条用户专用通道。
所述数据服务器接收注册请求之后进一步包括:为数据客户端设置一个保活标志,且初始化为有效;
且,所述数据客户端定时将该保活标志置为有效;
所述数据服务器定时检测所有数据客户端的保活标志,若发现保活标志置为有效,则将保活标志重置为无效;若发现保活标志置为无效,则释放数据客户端占用的资源。
所述方法进一步包括:数据服务器预先设置一个全局读指针,该指针初始时指向多媒体数据缓冲区的第一帧数据,且,每隔预定移动间隔,全局读指针下移一帧,
所述数据服务器实时将当前的多媒体数据地址发送给数据客户端为:当数据服务器发现全局读指针移动时,将移动后的全局读指针作为每个接入用户当前的多媒体数据地址分别发送给每个数据客户端;
且,所述数据客户端根据该地址从多媒体数据缓冲区读取多媒体数据包括:当数据客户端要根据所述地址从多媒体数据缓冲区读取一帧数据时,判断该帧数据是否在预设的有效数据范围内,若是,读取该数据;否则,丢弃该数据。
所述判断该帧数据是否在预设的有效数据范围内包括:
判断全局读指针与当前要读取的多媒体数据对应的地址的差值是否小于预设值,若小于,判定该帧数据在预设有效数据范围内。
所述预定移动间隔通过以下步骤得到:
数据服务器统计将一个多媒体数据地址发送给数据客户端、数据客户端根据该地址从多媒体数据缓冲区读取一帧数据,并将该帧数据通过Web浏览器提供给用户所耗费的时长,该时长即为所述预定移动间隔。
所述多媒体数据为采用帧间编码的视频数据,
所述判定该帧数据在预设有效数据范围内之后、读取该数据之前进一步包括:
判断前一帧数据是否被丢弃,若被丢弃,判断要读取的该帧数据是否为I帧,若为I帧,则读取该帧数据;若不为I帧,则丢弃该帧数据;若未被丢弃,则读取该帧数据。
所述多媒体数据为采用帧间编码的视频数据,
所述判定该帧数据不在预设有效数据范围内之后、丢弃该数据之前进一步包括:
判断要读取的该帧数据是否包含VOL头,若包含,则读取该帧数据;否则,丢弃该帧数据。
所述数据客户端读取多媒体数据并通过web浏览器提供给用户之后进一步包括:
数据客户端接收用户发来的指示停止访问数据的HTTP请求后,向数据服务器发送注销请求,数据服务器收到注销请求,注销数据客户端,并释放数据客户端占用的资源。
所述多媒体数据为音频和/或视频数据。
一种多用户实时访问多媒体数据的系统,包括:Web服务器、数据客户端和数据服务器,其中,
Web服务器,接收Web浏览器发来的指示访问多媒体数据的HTTP请求,启动一个数据客户端;
数据客户端,启动后向数据服务器发送注册请求,接收数据服务器发来的当前多媒体数据地址,根据该地址从多媒体数据缓冲区读取多媒体数据,并通过web浏览器提供给用户;
数据服务器,接收注册请求,通过为用户分配的用户专用通道实时将当前多媒体数据地址发送给数据客户端。
所述数据服务器包括:注册处理模块和数据地址传输模块,其中:
注册处理模块,接收数据客户端发来的注册请求,确定数据客户端对应的用户专用通道,将数据客户端标识和用户专用通道标识放入多媒体数据缓冲区参数中;
数据地址传输模块,从多媒体数据缓冲区的参数中读取所有接入用户的用户专用通道标识,将多媒体数据地址通过各用户专用通道发送给各数据客户端。
所述数据服务器进一步包括:保活标志设置模块和保活处理模块,其中:
保活标志设置模块,为每个数据客户端设置一个初始化为有效的保活标志;
保活处理模块,定时检测所有数据客户端的保活标志,若发现保活标志置为有效,则将保活标志重置为无效;若发现保活标志置为无效,则释放数据客户端占用的资源。
所述数据服务器进一步包括:全局读指针维护模块和多媒体数据地址发送触发模块,其中:
全局读指针维护模块,维护一个全局读指针,该指针初始时指向多媒体数据缓冲区的第一帧数据,且,每隔预定移动间隔,全局读指针下移一帧;
多媒体数据地址发送触发模块,检测到全局读指针移动,将移动后的全局读指针作为每个接入用户当前的多媒体数据地址分别发送给数据地址传输模块。
一种Web服务器侧的数据客户端,包括:
注册模块,根据Web浏览器发来的指示访问多媒体数据的HTTP请求,向Web服务器侧的数据服务器发送注册请求;
多媒体数据处理模块,接收数据服务器发来的多媒体数据地址,根据该地址从多媒体数据缓冲区读取多媒体数据,并通过web浏览器提供给用户。
所述数据客户端进一步包括:
保活标志更新模块,定时将数据服务器为自身设置的保活标志置为有效。
所述多媒体数据处理模块包括:多媒体数据读取模块和丢帧确定模块,其中:
多媒体数据读取模块,接收数据服务器发来的多媒体数据地址,当要从多媒体数据缓冲区读取一帧数据时,将该帧数据的地址发送给丢帧确定模块,接收丢帧确定模块返回的多媒体数据地址和读取指示,根据该地址从多媒体数据缓冲区读取数据,并通过Web浏览器提供给用户,接收丢帧确定模块返回的多媒体数据地址和丢弃指示,丢弃该帧数据;
丢帧确定模块,接收多媒体数据读取模块发来的多媒体数据地址,判断该地址对应的数据是否在预设的有效数据范围内,若是,将该地址和读取指示返回给多媒体数据读取模块;否则,将该地址和丢弃指示返回给多媒体数据读取模块。
所述丢帧确定模块包括:
丢帧标志维护模块,用于维护丢帧标志,且丢帧标志初始化为未丢帧;
丢帧检测模块,接收多媒体数据读取模块发来的多媒体数据地址,判断该地址对应的数据是否在预设的有效数据范围内,若在有效数据范围内,则从丢帧标志维护模块获取丢帧标志,若其指示丢帧,判断所述地址对应数据是否为I帧,若为I帧,则将所述地址和读取指示返回给多媒体数据读取模块;若不为I帧,则将所述地址和丢弃指示返回给多媒体数据读取模块;若其指示未丢帧,则将所述地址和读取指示返回给多媒体数据读取模块;若不在有效数据范围内,则判断所述地址对应数据是否包含VOL头,若包含,则将所述地址和读取指示返回给多媒体数据读取模块;否则,将所述地址和丢弃指示返回给多媒体数据读取模块。
一种Web服务器侧的数据服务器,包括:注册处理模块和数据地址传输模块,其中:
注册处理模块,接收数据客户端发来的注册请求,确定数据客户端对应的用户专用通道,将数据客户端标识和用户专用通道标识放入多媒体数据缓冲区参数中;
数据地址传输模块,从多媒体数据缓冲区的参数中读取所有接入用户的用户专用通道标识,将多媒体数据地址通过各用户专用通道发送给各数据客户端。
所述数据服务器进一步包括:
用户专用通道建立模块,建立与支持的最大同时访问用户数相同的用户专用通道;
且,所述注册处理模块在接收注册请求之后进一步,判断已接入用户数是否小于所述最大同时访问用户数,若小于,将一条用户专用通道分配给用户,将数据客户端标识、用户专用通道标识放入多媒体数据缓冲区的参数中。
所述数据服务器进一步包括:
用户专用通道建立模块,根据注册处理模块发来的建立指示,建立一条用户专用通道,将建立好的用户专用通道标识返回给注册处理模块;
所述注册处理模块在接收注册请求之后进一步,向用户专用通道建立模块发送建立指示,将用户专用通道建立模块返回的用户专用通道标识、数据客户端标识放入多媒体数据缓冲区的参数中。
所述数据服务器进一步包括:保活标志设置模块和保活处理模块,其中:
保活标志设置模块,为每个数据客户端设置一个初始化为有效的保活标志;
保活处理模块,定时检测所有数据客户端的保活标志,若发现保活标志置为有效,则将保活标志重置为无效;若发现保活标志置为无效,则释放数据客户端占用的资源。
所述数据服务器进一步包括:全局读指针维护模块和多媒体数据地址发送触发模块,其中:
全局读指针维护模块,维护一个全局读指针,该指针初始时指向多媒体数据缓冲区的第一帧数据,且,每隔预定移动间隔,全局读指针下移一帧;
多媒体数据地址发送触发模块,检测到全局读指针更新,将更新的全局读指针作为每个接入用户当前的多媒体数据地址分别发送给数据地址传输模块。
与现有技术相比,本发明在用户确定要读取多媒体数据时,通过Web浏览器向Web服务器发送HTTP请求,Web服务器收到该HTTP请求,启动一个数据客户端,数据客户端向Web服务器侧的数据服务器发送注册请求;数据服务器接收注册请求,通过为用户分配的专用通道实时将当前多媒体数据地址发送给数据客户端,数据客户端根据该地址从多媒体数据缓冲区读取多媒体数据,并通过Web浏览器提供给用户,实现了同一时刻多用户实时访问同一多媒体数据,且每个数据客户端可以独立处理自己的多媒体数据,不会对其他用户造成影响。
且,本发明实施例通过对视频数据的丢帧处理,保证了多媒体数据的实时性。
附图说明
图1为本发明实施例提供的多用户实时访问多媒体数据的流程图;
图2为一种视频数据缓冲区的结构;
图3为本发明实施例提供的在多用户实时访问多媒体数据时避免资源浪费的流程图;
图4为本发明实施例提供的以采用帧间编码的视频数据为例,保证多用户访问多媒体数据的实时性的流程图;
图5为本发明实施例提供的多用户实时访问多媒体数据的系统组成示意图;
图6为本发明实施例提供的Web服务器侧的数据客户端的结构示意图。
具体实施方式
下面结合附图及具体实施例对本发明再作进一步详细的说明。
本发明实施例中提到的多媒体数据可以是视频、音频数据等。
图1为本发明实施例提供的多用户实时访问多媒体数据的流程图,如图1所示,其具体步骤如下:
步骤101:Web服务器侧的数据服务器设定支持的最大同时访问用户数目A,建立一个消息通道,建立A个用户专用通道。
若数据服务器采用Linux操作系统,则消息通道和专用通道以先入先出(FIFO,First In First Out)队列的形式存在,消息通道和专用通道都为有名管道,有名管道可在磁盘文件系统建立时通过mknod命令创建。
消息通道用于传输数据服务器和各数据客户端之间交互的消息如:注册请求/响应、注销请求/响应等,专用通道用于数据服务器向数据客户端传输私有读指针。
步骤102:数据服务器设置一个全局读指针,该全局读指针初始时指向多媒体数据缓冲区中的第一帧数据,并计算全局读指针的移动间隔。
全局读指针的移动间隔的含义如下:设定该移动间隔为T,则每隔T时长,全局读指针移动到下一帧。全局读指针的移动间隔应该与数据服务器将私有读指针发给数据客户端、数据客户端从多媒体数据缓冲区读取一帧数据,并将该帧数据传送给Web浏览器所耗费的时长相等,这样可以保证多媒体数据播放的实时性。数据服务器可以预先统计将私有读指针发给数据客户端、数据客户端从多媒体数据缓冲区读取一帧数据,并将该帧数据传送给Web浏览器所耗费的时长,并将该时长作为全局读指针的移动间隔。
图2给出了一种视频数据缓冲区的结构,如图2所示,通常,整个视频数据缓冲区的大小为1MB。缓冲区的前256个字节由驱动程序使用,其中,buf指向数据开始的位置,该指针指向的地址是内核空间地址,应用程序如:视频数据服务器和视频数据客户端无法直接访问内核空间从而不使用该指针;bufsize表示数据区的大小(为1MB-4096B);wp、rp分别为当前视频数据的写、读指针,wp由驱动程序维护,应用程序不会去修改;rp指向每帧的开始,由视频数据服务器维护。第257~4096个字节用于存放视频控制/记录参数,如:全局读指针等。第4097~1M个字节存放视频数据,视频数据以帧为单位存放在缓冲区中,每帧数据所占的空间以4字节对齐,前4个字节中存放本帧视频数据的实际长度,后续字节存放视频数据,若视频数据的长度不能被4整除,则在视频数据最后填充0~3个字节的无用数据,以使该帧数据总长度为4字节的倍数。
步骤103:用户确定要访问多媒体数据,通过Web浏览器向Web服务器发送指示访问多媒体数据的超文本传输协议(HTTP,Hyper Text TransferProtocol)请求。
步骤104:Web服务器收到HTTP请求,启动一个数据客户端,数据客户端通过消息通道向Web服务器侧的数据服务器发送注册请求。
若Web服务器采用Linux操作系统,则启动一个数据客户端即启动一个数据客户端进程。
步骤105:数据服务器收到注册请求,判断当前接入的用户数目a是否小于A,若是,执行步骤106;否则,通过消息通道向数据客户端返回注册失败响应,本流程结束。
步骤106:数据服务器确定用户注册成功,以写/非阻塞方式打开一个用户专用通道,将该用户专用通道分配给该用户,并在多媒体数据缓冲区的控制/记录参数中记录该用户编号、用户专用通道编号、数据客户端标识,并在控制/记录参数中将该用户的访问标志置为“接入”,通过消息通道向数据客户端返回注册成功响应。
用户编号与专用通道编号可相同,以方便管理。
写/阻塞方式指的是,只有在数据客户端以读方式打开用户专用通道后,数据服务器才可以向该用户专用通道写入数据如:私有读指针;而采用写/非阻塞方式后数据服务器可以随时向该用户专用通道写入数据如:私有读指针,无需等待数据客户端以读方式打开该用户专用通道。
步骤107:数据客户端收到注册成功响应,根据自身标识在多媒体数据缓冲区的控制/记录参数中读取到用户专用通道编号,以只读/阻塞方式打开该用户专用通道。
采用只读/阻塞方式后,数据客户端只能从用户专用通道上读取数据如:私有读指针,且,只有从用户专用通道读取到一个数据如:私有读指针后,才根据该数据如:私有读指针进行下一步处理如:从多媒体数据缓冲区读取数据。
步骤108:数据服务器检测到全局读指针移动到下一帧数据,将当前的全局读指针作为当前每个接入用户的私有读指针,从多媒体数据缓冲区的控制/记录参数中读取所有接入用户的用户专用通道编号,将私有读指针分别放入每个接入用户的用户专用通道上,用户对应的数据客户端从自己的用户专用通道上读取该私有读指针。
全局读指针会每隔一个步骤102中计算出的移动间隔移向下一帧,只要全局读指针发生了移动,数据服务器就会将最新的全局读指针分别放入每个接入用户的用户专用通道上。
步骤109:数据客户端根据私有读指针从多媒体数据缓冲区读取数据,将读取的数据通过HTTP响应返回给Web浏览器,Web浏览器将数据提供给用户。
若Web服务器采用Linux操作系统,则由于原始多媒体数据是存放在存储设备中的,而数据客户端不能直接访问该存储设备,因此,必须预先建立存储映射I/O关系,数据客户端根据私有读指针以及该映射关系,可以从该存储设备直接读取数据。
步骤110:用户确定要停止访问多媒体数据,通过Web浏览器向Web服务器发送指示停止访问的HTTP请求。
步骤111:数据客户端收到该HTTP请求,向数据服务器发送注销请求。
步骤112:数据服务器收到该注销请求,注销数据客户端,并释放该数据客户端对应的资源如:释放用户专用通道,将数据缓冲区的控制/记录参数中的用户接入标志置为“回收”等等。
在图1所示实施例中,数据服务器是根据支持的最大同时访问用户数目预先建立好用户专用通道,在实际应用中,也可不预先建立好用户专用通道,而是在步骤106中用户注册成功后,再为用户建立一个用户专用通道,然后执行步骤106中“以写/非阻塞方式打开一个用户专用通道”的动作。
由于种种原因,数据客户端可能发生异常而中止工作,若此时仍保留为该数据客户端分配的资源如:用户专用通道等,则会造成资源的浪费,本发明实施例给出以下解决方案:
图3为本发明实施例提供的在多用户访问多媒体数据时避免资源浪费的流程图,如图3所示,其具体步骤如下:
步骤301:数据服务器确定用户注册成功,在多媒体数据缓冲区的控制/记录参数中为数据客户端设置一个保活标志,并将保活标志初始化为“1”。
数据服务器确定用户注册成功即图1所示步骤106。
步骤302:数据客户端定时将多媒体数据缓冲区中自身的保活标志置“1”。
步骤303:数据服务器定时检查多媒体数据缓冲区中各数据客户端的保活标志。
步骤304:对于每个数据客户端的保活标志,数据服务器判断保活标志是否为“1”,若是,执行步骤305;否则,执行步骤306。
步骤305:数据服务器确定数据客户端正常,并将该保活标志清零,转至步骤303。
步骤306:数据服务器确定数据客户端异常,注销数据客户端,并释放该数据客户端对应的资源如:释放专用通道、释放多媒体数据缓冲区中的保活标志、将多媒体数据缓冲区中的用户接入标志置为“回收”等等,转至步骤303。
在实际应用中,由于种种原因,数据客户端处理一帧多媒体数据的时长即:从多媒体数据缓冲区读取一帧数据,并将该帧数据发给Web浏览器所耗费的时长可能大于全局读指针的移动间隔,这就无法保证多媒体数据的实时性,本发明实施例给出了如下解决方案:
图4为本发明实施例提供的以采用帧间编码如:MPEG4编码的视频数据为例,保证多用户访问多媒体数据的实时性的流程图,如图4所示,其具体步骤如下:
步骤401:视频数据客户端预先设置一个有效视频数据范围,并设置一个丢帧标志,初始化丢帧标志为“0”。
步骤402:视频数据客户端要从视频数据缓冲区读取一帧视频数据,判断要读取的视频数据是否在有效视频数据范围内,若是,执行步骤403;否则,执行步骤407。
视频数据客户端要从视频数据缓冲区读取一帧视频数据即图1所示步骤109。
具体地,视频数据客户端可通过以下方式判断要读取的视频数据是否在有效视频数据范围内:
视频数据客户端判断glo_rp-useri_rp<m是否成立,若成立,确定要读取的视频数据在有效视频数据范围内;否则,确定要读取的视频数据在有效视频数据范围外。其中,useri_rp为视频数据客户端要读取的视频数据对应的私有读指针,glo_rp为视频数据客户端从视频数据缓冲区中的控制/记录参数中读取的全局读指针,m为预先设定的值,单位为字节。
步骤403:视频数据客户端判断丢帧标志是否为1,若是,执行步骤405;否则,执行步骤404。
步骤404:视频数据客户端从视频数据缓冲区读取该帧,转至步骤402。
步骤405:视频数据客户端判断要读取的帧是否为I帧,若是,执行步骤406;否则,执行步骤407。
步骤406:视频数据客户端从缓冲区读取该帧视频数据,将丢帧标志清零,转至步骤402。
步骤407:视频数据客户端丢弃该帧数据即:不读取该帧数据,转至步骤402。
采用MPEG4编码的视频数据主要由I帧和P帧组成,其中,P帧的解码要依赖于最近的I帧以及最近的I帧与该P帧之间的P帧,而I帧可以独立解码,因此,若当前要读取的帧为P帧,且前一帧被丢弃,则就将当前要读取的P帧丢弃,以免解码错误;而若当前要读取的帧为I帧,即使前一帧被丢弃,该I帧也可成功解码,从而无需丢弃。
步骤408:判断要读取的帧是否包含视频对象层(VOL,Video ObjectLayer)头,若是,执行步骤409;否则,执行步骤410。
步骤409:从视频数据缓冲区读取该帧,将丢帧标志清零,转至步骤402。
VOL头通常包含在I帧中,由于VOL头中可能包含了更新的图像分辨率等参数,后续P帧的解码依赖于VOL头,丢弃该帧会导致解码错误,因此,不能丢弃该帧。
步骤410:丢弃该帧,并将丢帧标志置1,转至步骤402。
若多媒体数据为音频数据,则通常不作丢帧处理;若多媒体数据为采用帧内编码的视频数据,则只要要读取的视频数据在有效视频数据范围外,就直接丢弃该帧数据。
图5为本发明实施例提供的多用户实时访问多媒体数据的系统组成示意图,如图5所示,其主要包括:Web服务器50、数据客户端51和数据服务器52,其中,
Web服务器50:接收Web浏览器发来的指示访问多媒体数据的HTTP请求,启动一个数据客户端。
数据客户端51:启动后向数据服务器52发送注册请求,接收数据服务器52发来的私有读指针,根据该私有读指针从多媒体数据缓冲区读取数据,并通过web浏览器提供给用户。
数据服务器52:接收数据客户端51发来的注册请求,为多媒体数据缓冲区设置一个全局读指针,全局读指针总是指向最新的多媒体数据,当多媒体数据缓冲区的全局读指针更新时,将该更新的全局读指针作为每个接入用户的私有读指针,将私有读指针通过为每个接入用户分配的用户专用通道发送给数据客户端51。
Web服务器50、数据客户端51和数据服务器52通常位于同一设备上。
如图6所示,数据客户端51主要包括:注册模块511和多媒体数据处理模块512,其中:
注册模块511:根据Web浏览器发来的HTTP请求,向数据服务器52发送注册请求,接收数据服务器52发来的注册成功响应,向多媒体数据处理模块512发送开始指示。
多媒体数据处理模块512:接收注册模块511发来的开始指示,根据自身标识从多媒体数据缓冲区的控制/记录参数获取用户专用通道编号,从用户专用通道上读取数据服务器52发来的私有读指针,根据该私有读指针从多媒体数据缓冲区读取数据,并通过web浏览器提供给用户。
如图6所示,多媒体数据处理模块512可包括:多媒体数据读取模块5121和丢帧确定模块5122,其中:
多媒体数据读取模块5121:接收注册模块511发来的开始指示,根据自身标识从多媒体数据缓冲区的控制/记录参数获取用户专用通道编号,从用户专用通道上读取数据服务器52发来的私有读指针,当要从多媒体数据缓冲区读取一帧数据时,将该帧数据的私有读指针发送给丢帧确定模块5122,接收丢帧确定模块5122返回的私有读指针和读取指示,根据该私有读指针从多媒体数据缓冲区读取数据,并通过Web浏览器提供给用户,接收丢帧确定模块5122返回的私有读指针和丢弃指示,丢弃该帧数据。
丢帧确定模块5122:接收多媒体数据读取模块5121发来的私有读指针,判断该指针对应的数据是否在预设的有效数据范围内,若是,将该指针和读取指示返回给多媒体数据读取模块5121;否则,将该指针和丢弃指示返回给多媒体数据读取模块5121。
如图6所示,丢帧确定模块5122可包括:丢帧标志维护模块51221和丢帧检测模块51222,其中:
丢帧标志维护模块51221:用于维护丢帧标志,且丢帧标志初始化为未丢帧。
丢帧检测模块51222:接收多媒体数据读取模块5121发来的私有读指针,判断该指针对应的数据是否在预设的有效数据范围内,若在有效数据范围内,则从丢帧标志维护模块51221获取丢帧标志,若其指示丢帧,判断所述指针对应数据是否为I帧,若为I帧,则将所述指针和读取指示返回给多媒体数据读取模块5121;若不为I帧,则将所述指针和丢弃指示返回给多媒体数据读取模块5121;若其指示未丢帧,则将所述指针和读取指示返回给多媒体数据读取模块5121;若不在有效数据范围内,则判断所述指针对应数据是否包含VOL头,若包含,则将所述指针和读取指示返回给多媒体数据读取模块5121;否则,将所述指针和丢弃指示返回给多媒体数据读取模块5121。
在实际应用中,数据客户端51还可包括:保活标志更新模块:定时将数据服务器为自身设置的保活标志置为有效。
数据服务器52主要包括:注册处理模块和数据地址传输模块,其中:
注册处理模块:接收数据客户端51发来的注册请求,确定数据客户端对应的用户专用通道,将数据客户端标识和用户专用通道编号放入多媒体数据缓冲区的控制/记录参数中。
数据地址传输模块:当多媒体数据缓冲区的全局读指针更新时,将更新的全局读指针作为每个接入用户的私有读指针,从多媒体数据缓冲区的控制/记录参数中读取所有接入用户的用户专用通道编号,将私有读指针通过各接入用户的用户专用通道发送给各数据客户端51。
数据服务器还可包括:用户专用通道建立模块,建立与支持的最大同时访问用户数相同的用户专用通道。
同时,所述注册处理模块521在接收注册请求之后进一步,判断已接入用户数是否小于所述最大同时访问用户数,若小于,将一条用户专用通道分配给用户,将用户编号、数据客户端标识、用户专用通道编号放入多媒体数据缓冲区的控制/记录参数中,并在控制/记录参数中将用户的访问标志置为“接入”。
或者,用户专用通道建立模块,根据注册处理模块521发来的建立指示,建立一条用户专用通道,将建立好的用户专用通道编号返回给注册处理模块521。
同时,注册处理模块521在接收注册请求之后进一步,向用户专用通道建立模块发送建立指示,将用户专用通道建立模块返回的用户专用通道编号、用户编号放入多媒体数据缓冲区的控制/记录参数中,并在控制/记录参数中将用户访问标志置为“接入”。
数据服务器还可包括:保活标志设置模块和保活处理模块,其中:
保活标志设置模块:为每个数据客户端设置一个初始化为有效的保活标志;
保活处理模块:定时检测所有数据客户端的保活标志,若发现保活标志置为有效,则将保活标志重置为无效;若发现保活标志置为无效,注销数据客户端,并且释放数据客户端占用的资源。
或者,数据服务器还可包括:全局读指针维护模块和多媒体数据地址发送触发模块,其中:
全局读指针维护模块:维护一个全局读指针,该指针初始时指向多媒体数据缓冲区的第一帧数据,且,每隔预定移动间隔,全局读指针下移一帧。
多媒体数据地址发送触发模块:检测到全局读指针更新,将更新的全局读指针作为每个接入用户的私有读指针分别发送给数据地址传输模块。
实验证明:当在分辨率为640*480的视频图像阵列(VGA,Video GraphicArray)图像质量下,有10个用户同时访问视频数据时,若在10Mbps局域网中,采用本发明实施例视频时延不大于1s;若在512kbps公网中,采用本发明实施例视频时延不大于4s。
以上所述仅为本发明的过程及方法实施例,并不用以限制本发明,凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (24)

1、一种多用户实时访问多媒体数据的方法,其特征在于,该方法包括:
用户确定要读取Web服务器侧的多媒体数据,通过Web浏览器向Web服务器发送超文本传输协议HTTP请求,Web服务器收到该HTTP请求,启动一个数据客户端,数据客户端向Web服务器侧的数据服务器发送注册请求;
数据服务器接收注册请求,通过为用户分配的用户专用通道实时将当前的多媒体数据地址发送给数据客户端,数据客户端根据该地址从多媒体数据缓冲区读取多媒体数据,并通过Web浏览器提供给用户。
2、如权利要求1所述的方法,其特征在于,所述方法进一步包括:数据服务器预先设置支持的最大同时访问用户数,建立与最大同时访问用户数相同的用户专用通道;
所述数据服务器接收注册请求之后进一步包括:判断已接入用户数是否小于所述最大同时访问用户数,若小于,将一条所述用户专用通道分配给该用户。
3、如权利要求1所述的方法,其特征在于,所述数据服务器接收注册请求之后、通过为用户分配的用户专用通道实时将当前的多媒体数据地址发送给数据客户端之前进一步包括:
数据服务器为该用户建立一条用户专用通道。
4、如权利要求1所述的方法,其特征在于,所述数据服务器接收注册请求之后进一步包括:为数据客户端设置一个保活标志,且初始化为有效;
且,所述数据客户端定时将该保活标志置为有效;
所述数据服务器定时检测所有数据客户端的保活标志,若发现保活标志置为有效,则将保活标志重置为无效;若发现保活标志置为无效,则释放数据客户端占用的资源。
5、如权利要求1所述的方法,其特征在于,所述方法进一步包括:数据服务器预先设置一个全局读指针,该指针初始时指向多媒体数据缓冲区的第一帧数据,且,每隔预定移动间隔,全局读指针下移一帧,
所述数据服务器实时将当前的多媒体数据地址发送给数据客户端为:当数据服务器发现全局读指针移动时,将移动后的全局读指针作为每个接入用户当前的多媒体数据地址分别发送给每个数据客户端;
且,所述数据客户端根据该地址从多媒体数据缓冲区读取多媒体数据包括:当数据客户端要根据所述地址从多媒体数据缓冲区读取一帧数据时,判断该帧数据是否在预设的有效数据范围内,若是,读取该数据;否则,丢弃该数据。
6、如权利要求5所述的方法,其特征在于,所述判断该帧数据是否在预设的有效数据范围内包括:
判断全局读指针与当前要读取的多媒体数据对应的地址的差值是否小于预设值,若小于,判定该帧数据在预设有效数据范围内。
7、如权利要求5所述的方法,其特征在于,所述预定移动间隔通过以下步骤得到:
数据服务器统计将一个多媒体数据地址发送给数据客户端、数据客户端根据该地址从多媒体数据缓冲区读取一帧数据,并将该帧数据通过Web浏览器提供给用户所耗费的时长,该时长即为所述预定移动间隔。
8、如权利要求5所述的方法,其特征在于,所述多媒体数据为采用帧间编码的视频数据,
所述判定该帧数据在预设有效数据范围内之后、读取该数据之前进一步包括:
判断前一帧数据是否被丢弃,若被丢弃,判断要读取的该帧数据是否为I帧,若为I帧,则读取该帧数据;若不为I帧,则丢弃该帧数据;若未被丢弃,则读取该帧数据。
9、如权利要求5所述的方法,其特征在于,所述多媒体数据为采用帧间编码的视频数据,
所述判定该帧数据不在预设有效数据范围内之后、丢弃该数据之前进一步包括:
判断要读取的该帧数据是否包含视频对象层VOL头,若包含,则读取该帧数据;否则,丢弃该帧数据。
10、如权利要求1所述的方法,其特征在于,所述数据客户端读取多媒体数据并通过web浏览器提供给用户之后进一步包括:
数据客户端接收用户发来的指示停止访问数据的HTTP请求后,向数据服务器发送注销请求,数据服务器收到注销请求,注销数据客户端,并释放数据客户端占用的资源。
11、如权利要求1所述的方法,其特征在于,所述多媒体数据为音频和/或视频数据。
12、一种多用户实时访问多媒体数据的系统,其特征在于,该系统包括:Web服务器、数据客户端和数据服务器,其中,
Web服务器,接收Web浏览器发来的指示访问多媒体数据的HTTP请求,启动一个数据客户端;
数据客户端,启动后向数据服务器发送注册请求,接收数据服务器发来的当前多媒体数据地址,根据该地址从多媒体数据缓冲区读取多媒体数据,并通过web浏览器提供给用户;
数据服务器,接收注册请求,通过为用户分配的用户专用通道实时将当前多媒体数据地址发送给数据客户端。
13、如权利要求12所述的系统,其特征在于,所述数据服务器包括:注册处理模块和数据地址传输模块,其中:
注册处理模块,接收数据客户端发来的注册请求,确定数据客户端对应的用户专用通道,将数据客户端标识和用户专用通道标识放入多媒体数据缓冲区参数中;
数据地址传输模块,从多媒体数据缓冲区的参数中读取所有接入用户的用户专用通道标识,将多媒体数据地址通过各用户专用通道发送给各数据客户端。
14、如权利要求13所述的系统,其特征在于,所述数据服务器进一步包括:保活标志设置模块和保活处理模块,其中:
保活标志设置模块,为每个数据客户端设置一个初始化为有效的保活标志;
保活处理模块,定时检测所有数据客户端的保活标志,若发现保活标志置为有效,则将保活标志重置为无效;若发现保活标志置为无效,则释放数据客户端占用的资源。
15、如权利要求13或14所述的系统,其特征在于,所述数据服务器进一步包括:全局读指针维护模块和多媒体数据地址发送触发模块,其中:
全局读指针维护模块,维护一个全局读指针,该指针初始时指向多媒体数据缓冲区的第一帧数据,且,每隔预定移动间隔,全局读指针下移一帧;
多媒体数据地址发送触发模块,检测到全局读指针移动,将移动后的全局读指针作为每个接入用户当前的多媒体数据地址分别发送给数据地址传输模块。
16、一种Web服务器侧的数据客户端,其特征在于,所述数据客户端包括:
注册模块,根据Web浏览器发来的指示访问多媒体数据的HTTP请求,向Web服务器侧的数据服务器发送注册请求;
多媒体数据处理模块,接收数据服务器发来的多媒体数据地址,根据该地址从多媒体数据缓冲区读取多媒体数据,并通过web浏览器提供给用户。
17、如权利要求16所述的数据客户端,其特征在于,所述数据客户端进一步包括:
保活标志更新模块,定时将数据服务器为自身设置的保活标志置为有效。
18、如权利要求16或17所述的数据客户端,其特征在于,所述多媒体数据处理模块包括:多媒体数据读取模块和丢帧确定模块,其中:
多媒体数据读取模块,接收数据服务器发来的多媒体数据地址,当要从多媒体数据缓冲区读取一帧数据时,将该帧数据的地址发送给丢帧确定模块,接收丢帧确定模块返回的多媒体数据地址和读取指示,根据该地址从多媒体数据缓冲区读取数据,并通过Web浏览器提供给用户,接收丢帧确定模块返回的多媒体数据地址和丢弃指示,丢弃该帧数据;
丢帧确定模块,接收多媒体数据读取模块发来的多媒体数据地址,判断该地址对应的数据是否在预设的有效数据范围内,若是,将该地址和读取指示返回给多媒体数据读取模块;否则,将该地址和丢弃指示返回给多媒体数据读取模块。
19、如权利要求18所述的数据客户端,其特征在于,所述丢帧确定模块包括:
丢帧标志维护模块,用于维护丢帧标志,且丢帧标志初始化为未丢帧;
丢帧检测模块,接收多媒体数据读取模块发来的多媒体数据地址,判断该地址对应的数据是否在预设的有效数据范围内,若在有效数据范围内,则从丢帧标志维护模块获取丢帧标志,若其指示丢帧,判断所述地址对应数据是否为I帧,若为I帧,则将所述地址和读取指示返回给多媒体数据读取模块;若不为I帧,则将所述地址和丢弃指示返回给多媒体数据读取模块;若其指示未丢帧,则将所述地址和读取指示返回给多媒体数据读取模块;若不在有效数据范围内,则判断所述地址对应数据是否包含VOL头,若包含,则将所述地址和读取指示返回给多媒体数据读取模块;否则,将所述地址和丢弃指示返回给多媒体数据读取模块。
20、一种Web服务器侧的数据服务器,其特征在于,该数据服务器包括:注册处理模块和数据地址传输模块,其中:
注册处理模块,接收数据客户端发来的注册请求,确定数据客户端对应的用户专用通道,将数据客户端标识和用户专用通道标识放入多媒体数据缓冲区参数中;
数据地址传输模块,从多媒体数据缓冲区的参数中读取所有接入用户的用户专用通道标识,将多媒体数据地址通过各用户专用通道发送给各数据客户端。
21、如权利要求20所述的数据服务器,其特征在于,所述数据服务器进一步包括:
用户专用通道建立模块,建立与支持的最大同时访问用户数相同的用户专用通道;
且,所述注册处理模块在接收注册请求之后进一步,判断已接入用户数是否小于所述最大同时访问用户数,若小于,将一条用户专用通道分配给用户,将数据客户端标识、用户专用通道标识放入多媒体数据缓冲区的参数中。
22、如权利要求20所述的数据服务器,其特征在于,所述数据服务器进一步包括:
用户专用通道建立模块,根据注册处理模块发来的建立指示,建立一条用户专用通道,将建立好的用户专用通道标识返回给注册处理模块;
所述注册处理模块在接收注册请求之后进一步,向用户专用通道建立模块发送建立指示,将用户专用通道建立模块返回的用户专用通道标识、数据客户端标识放入多媒体数据缓冲区的参数中。
23、如权利要求20~22任一所述的数据服务器,其特征在于,所述数据服务器进一步包括:保活标志设置模块和保活处理模块,其中:
保活标志设置模块,为每个数据客户端设置一个初始化为有效的保活标志;
保活处理模块,定时检测所有数据客户端的保活标志,若发现保活标志置为有效,则将保活标志重置为无效;若发现保活标志置为无效,则释放数据客户端占用的资源。
24、如权利要求20~22任一所述的数据服务器,其特征在于,所述数据服务器进一步包括:全局读指针维护模块和多媒体数据地址发送触发模块,其中:
全局读指针维护模块,维护一个全局读指针,该指针初始时指向多媒体数据缓冲区的第一帧数据,且,每隔预定移动间隔,全局读指针下移一帧;
多媒体数据地址发送触发模块,检测到全局读指针更新,将更新的全局读指针作为每个接入用户当前的多媒体数据地址分别发送给数据地址传输模块。
CN2008101148392A 2008-06-12 2008-06-12 多用户实时访问多媒体数据的方法、系统及数据客户端 Active CN101296236B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2008101148392A CN101296236B (zh) 2008-06-12 2008-06-12 多用户实时访问多媒体数据的方法、系统及数据客户端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2008101148392A CN101296236B (zh) 2008-06-12 2008-06-12 多用户实时访问多媒体数据的方法、系统及数据客户端

Publications (2)

Publication Number Publication Date
CN101296236A true CN101296236A (zh) 2008-10-29
CN101296236B CN101296236B (zh) 2011-06-08

Family

ID=40066248

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008101148392A Active CN101296236B (zh) 2008-06-12 2008-06-12 多用户实时访问多媒体数据的方法、系统及数据客户端

Country Status (1)

Country Link
CN (1) CN101296236B (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101741808A (zh) * 2008-11-17 2010-06-16 纬创资通股份有限公司 网络实时多媒体传送方法及服务器
CN102209038A (zh) * 2011-06-15 2011-10-05 中山大学 一种交互式流媒体缓冲的实现方法及其装置
CN102523309A (zh) * 2009-07-31 2012-06-27 同方威视技术股份有限公司 响应客户端的请求获取并返回实时数据的方法和设备
CN105100014A (zh) * 2014-05-16 2015-11-25 北京天宇各路宝智能科技有限公司 一种整合式业务管理的工作方法及系统
CN105429864A (zh) * 2015-12-28 2016-03-23 北京致远协创软件有限公司 数据交换中心、系统、方法、数据发送及接收方法、装置
CN105589754A (zh) * 2014-09-15 2016-05-18 通用电气航空系统有限责任公司 用于访问共享存储器中的数据的机制和方法
CN109474665A (zh) * 2018-09-30 2019-03-15 咪咕文化科技有限公司 一种信息处理方法、装置和计算机存储介质
CN110380993A (zh) * 2019-07-12 2019-10-25 中国电信集团工会上海市委员会 一种基于ovsdb的流表保护方法
CN111273934A (zh) * 2020-02-21 2020-06-12 北京百度网讯科技有限公司 页面更新的方法及装置

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10623450B2 (en) * 2016-12-01 2020-04-14 Accenture Global Solutions Limited Access to data on a remote device

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6070184A (en) * 1997-08-28 2000-05-30 International Business Machines Corporation Server-side asynchronous form management
JP2004348666A (ja) * 2003-05-26 2004-12-09 Seiko Epson Corp クライアント・サーバシステム、サーバ、および情報処理システム
CN1476197A (zh) * 2003-07-18 2004-02-18 迪 邓 一种在互联网上实现大规模在线视音频播放的方法
CN101114867B (zh) * 2006-07-25 2012-12-19 深圳Tcl工业研究院有限公司 一种多信道同步传输的方法及系统

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101741808A (zh) * 2008-11-17 2010-06-16 纬创资通股份有限公司 网络实时多媒体传送方法及服务器
CN102523309A (zh) * 2009-07-31 2012-06-27 同方威视技术股份有限公司 响应客户端的请求获取并返回实时数据的方法和设备
CN102209038A (zh) * 2011-06-15 2011-10-05 中山大学 一种交互式流媒体缓冲的实现方法及其装置
CN102209038B (zh) * 2011-06-15 2015-11-25 中山大学 一种交互式流媒体缓冲的实现方法及其装置
CN105100014A (zh) * 2014-05-16 2015-11-25 北京天宇各路宝智能科技有限公司 一种整合式业务管理的工作方法及系统
CN105589754A (zh) * 2014-09-15 2016-05-18 通用电气航空系统有限责任公司 用于访问共享存储器中的数据的机制和方法
CN105429864A (zh) * 2015-12-28 2016-03-23 北京致远协创软件有限公司 数据交换中心、系统、方法、数据发送及接收方法、装置
CN109474665A (zh) * 2018-09-30 2019-03-15 咪咕文化科技有限公司 一种信息处理方法、装置和计算机存储介质
CN109474665B (zh) * 2018-09-30 2021-08-06 咪咕文化科技有限公司 一种信息处理方法、装置和计算机存储介质
CN110380993A (zh) * 2019-07-12 2019-10-25 中国电信集团工会上海市委员会 一种基于ovsdb的流表保护方法
CN111273934A (zh) * 2020-02-21 2020-06-12 北京百度网讯科技有限公司 页面更新的方法及装置
CN111273934B (zh) * 2020-02-21 2023-08-01 北京百度网讯科技有限公司 页面更新的方法及装置

Also Published As

Publication number Publication date
CN101296236B (zh) 2011-06-08

Similar Documents

Publication Publication Date Title
CN101296236B (zh) 多用户实时访问多媒体数据的方法、系统及数据客户端
CN113423018B (zh) 一种游戏数据处理方法、装置及存储介质
EP2409240B1 (en) Variable rate media delivery system
US8392615B2 (en) Dynamic variable rate media delivery system
EP2359536B1 (en) Adaptive network content delivery system
US8612668B2 (en) Storage optimization system based on object size
US8489760B2 (en) Media file storage format and adaptive delivery system
CN101425969B (zh) 调度方法、调度装置和调度系统
CN100481028C (zh) 一种利用缓存实现数据存储的方法和装置
KR102274466B1 (ko) 실시간 캐싱 기법을 이용한 동영상 스트리밍 방법 및 그 시스템
CN101237571A (zh) 一种监控系统中的视频编码的存储方法及设备
WO2016127693A1 (zh) 一种发送业务数据的方法和存储系统
CN112328185A (zh) 一种基于分布式存储的智能预读方法
CN102045372A (zh) 一种实现远程静态化的网站内容发布方法和系统
CN100589557C (zh) 一种提高客户端vcr操作的响应速度的方法
CN103209212B (zh) 基于RIA的Web网管客户端中的数据缓存方法及系统
CN110213643B (zh) 一种流媒体缓存方法、装置及终端设备
CN110740374A (zh) 一种多媒体数据的处理方法、装置、计算机设备和存储介质
CN114025184A (zh) 一种视频直播方法及电子设备
KR100375797B1 (ko) 컨텐츠 전달 및 분산서버를 이용한 웹사이트 홍보 대행 방법
CN114501044B (zh) 直播数据处理方法、装置、设备和存储介质
CN117785933A (zh) 一种数据缓存方法、装置、设备及可读存储介质
JP5280077B2 (ja) 情報提供装置、情報提供方法および情報提供システム
TW509863B (en) Multimedia data stream boosting method and streaming booster
JP2011128740A (ja) クライアント装置およびシステム

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20160516

Address after: 519031 Guangdong city of Zhuhai province Hengqin Baohua Road No. 6, room 105 -478

Patentee after: GUANGDONG ZHONGXING ELECTRONICS CO., LTD.

Address before: 100083, Haidian District, Xueyuan Road, Beijing No. 35, Nanjing Ning building, 15 Floor

Patentee before: Beijing Vimicro Corporation