向多个客户端提供视频和音频数据的方法

文档序号:85385阅读:337来源:国知局
专利名称:向多个客户端提供视频和音频数据的方法
技术领域
本发明涉及用于向多个客户端提供视频和音频数据的方法,并且尤其涉及使用实时传送协议提供经由诸如TCP-IP或者UDP之类的网际协议发送的视频和音频数据的方法。
背景技术
视频服务器用于远程监控系统、广播系统和Internet教育系统。当前,为了在通信网络中使用视频服务器,必须单独安装用于实时传输的流(streaming)服务器。例如,电信公司或者Internet服务供应商(ISP)可以单独安装流服务器。

发明内容本发明提供了一种用于控制视频服务器而不用单独安装用于在通信网络中进行实时传输的流服务器的方法。
根据本发明的实施例,提供了一种控制视频服务器的方法,该视频服务器经由通信网络实时地向多个客户端提供视频和音频数据。模拟音频信号和模拟视频信号分别被转换为数字音频数据和数字视频数据。对数字音频数据和数字视频数据进行压缩。对所压缩的数字音频数据和数字视频数据进行打包(packetize),以生成音频包和视频包。根据实时传送协议将音频包和视频包转换为音频/视频RTP包。根据TCP/UDP-IP将音频/视频RTP包发送到客户端。
根据本发明的另一个方面,提供了一种计算机可读介质,其上存储有用于执行该方法的计算机可执行指令。
通过参考附图对示范性实施例进行详细描述,本发明的上述及其它特征和优点将变成更为明显,其中图1说明了使用根据本发明实施例的视频服务器的通信网络系统。
图2是示出图1中的视频服务器的硬件的框图;图3是示出由图2中的控制器执行的软件的框图;图4是示出由图3中的流服务器引擎使用以便使用SIP执行例程与客户端进行通信的过程的流程图;以及图5是示出由图3中的流服务器引擎使用、以便响应于传输损失率和来自客户端的发送/接收时间信息自适应地控制当前传输速率和压缩比的过程的流程图。
具体实施方式现在将参考其中显示了本发明的示例性实施例的附图,更充分地描述本发明。然而,本发明可以许多不同的形式实现,而且不应该被看作是局限于此处所阐述的实施例;相反,提供这些实施例以便使这个公开将会是彻底和完整的,而且将充分地向本领域技术人员表达本发明的原理。在所有附图中,类似参考数字表示类似的单元。
图1说明了根据本发明的实施例配置的系统。该系统包括客户端计算机10、通信网络12、视频服务器14、照相机141、和麦克风142。客户端计算机10和视频服务器14与通信网络12通信链接,而照相机141和麦克风142与视频服务器14通信链接。将来自麦克风142的模拟音频信号和来自照相机141的模拟视频信号输入到视频服务器14。视频服务器14将模拟音频信号和模拟视频信号转换为数字音频数据和数字视频数据,并且经由通信网络12将数字音频数据和数字视频数据发送到客户端10。
参见图2,现在将描述在本发明的实施例中如何配置图1中的视频服务器14的示例。在这个实施例中,视频服务器14包括第一模数转换器21,第二模数转换器22,视频编码器23,音频编码器24,同步信号生成器25,控制器26,存储器27,和通信接口28。
第一模数转换器21从一个或多个照相机141(参见图1)接收模拟视频信号SVI,并且将这些信号转换为数字视频数据DSVI。第一模数转换器21然后将数字视频数据提供给视频编码器23。第二模数转换器22从一个或多个麦克风142(参见图1)中接收模拟音频信号SAU,并且将该模拟音频信号转换为数字音频数据DSAU。第二模数转换器22然后将数字音频数据提供给音频编码器24。
视频编码器23根据MPEG-4标准压缩从第一模数转换器21接收的数字视频数据DSVI,并且将压缩的视频数据BSVI提供给控制器26。音频编码器24根据自适应差分脉冲码调制(ADPCM)压缩从第二模数转换器22接收的数字音频数据DSAU,并且将压缩的音频数据BSAU提供给控制器26。
控制器26根据来自同步信号生成器25的垂直同步信号SVSYN、以及经由通信接口28接收的客户端信息(即,从图1中的客户端计算机10接收的信息)生成控制信号SCA和SCV。将控制信号SCA和SCV分别应用到音频编码器24和视频编码器23。此外,控制器26将从音频编码器24接收的压缩音频数据BSAU和从视频编码器23接收的压缩视频数据BSVI转换为音频/视频实时传送协议(RTP)包,其包括依据RTP而增加的流头部。在这个转换处理期间,音频数据和视频数据被暂时存储在存储器27中。
音频/视频RTP包通过通信接口28和通信网络12(图1)从控制器26发送到客户端10(图1)。因为音频/视频RTP包根据RTP进行发送,所以不需要为了使用视频服务器14而在通信网络12中安装用于实时传输的流服务器。在一个实施例中,在发送之前,将音频/视频RTP包封装在TCP/UDP-IP(传输控制协议/用户数据报协议-网际协议)包中。
为了发送音频/视频RTP包,为每个客户端计算机10测量动态改变的网络带宽,并且响应于所测量的网络带宽,调整每个客户端计算机10的当前传输速率和压缩比。将在下面参考图5详细说明实现这个调整所执行的步骤。
参见图3,现在将描述图2中的控制器26在本发明的实施例中执行的软件。软件包括视频打包例程31、音频打包例程32、RTP执行例程33、TCP/UDP-IP执行例程34、会话发起协议(SIP)执行例程35、和流服务器引擎36。流服务器引擎36控制每个例程31-35的执行。视频打包例程31接收以位流形式从视频编码器(图2中的23)输入的压缩视频数据BSVI,并且对其进行打包以生成一个或多个视频包。音频打包例程32接收以位流形式从音频编码器(图2中的24)输入的压缩音频数据BSAU,并且对其进行打包以生成一个或多个音频包。
将由音频打包例程32生成的音频包和由视频打包例程31生成的视频包输入到RTP执行例程33中。RTP执行例程33将来自音频打包例程32的音频包和来自视频打包例程31的视频包转换为一个或多个音频/视频RTP包,这些RTP包包括流头部。RTP执行例程35还可以连同生成音频/视频RTP包一起,生成一个或多个RTP控制协议(RTCP)包或者一个或多个实时流协议(RTSP)包。
TCP/UDP-IP执行例程34将从RTP执行例程33接收的音频/视频RTP包封装为TCP/UDP-IP包,并且将这些TCP/UDP-IP包发送到客户端计算机10(图1)。
协同会话发起协议(SIP)执行例程35一起,流服务器引擎36发送/接收有关网络状态的信息(其动态改变),并且往返于客户端计算机10发送/接收通信消息。SIP执行例程35生成用于控制RTP执行例程33的RTP控制信号。SIP执行例程35还基于从客户端计算机10(图1)接收的信息生成控制信号SCA和SCV。SIP执行例程将控制信号SCA和SCV分别提供给音频编码器和视频编码器(图4中的24和23)。将参考图4和5说明在执行这些操作的过程中所执行的步骤。
参见图4,现在将描述当流服务器引擎36(图3)使用SIP执行例程35(图3)与客户端计算机10(图1)进行通信时(在本发明的实施例中)所执行的步骤。当在步骤S401中从特定客户端接收了访问请求消息时,在步骤S402中将请求客户端等待片刻的响应消息发送到给客户端。然后,在步骤S403,在访问等待列表中登记该客户端的信息。
在步骤S404,检查该访问等待列表。如果在该访问等待列表中存在未经授权的客户端,则在步骤S405,从访问等待列表中删除未经授权的客户端的信息。这可以阻挡有非法目的的黑客入侵。此外,这可以阻挡试图在其中网络带宽没有保证的差的网络环境中进行访问的客户端的连接。
在步骤S406,检查列表中期望访问的下一个客户端。如果信息是正常的(例如,该客户端被授权可以访问),则在步骤S407中将与该客户端相对应的信息输入到RTP执行例程中。因此,RTP执行例程(图3中的33)开始为该客户端生成一个或多个音频/视频RTP包。然后在步骤S408,从访问等待列表中删除用于该客户端的信息。
如果在步骤S409中从客户端接收了访问结束消息,则在步骤S410中将访问结束确认消息发送到该客户端。此外,在步骤S411,将有关结束了访问的客户端的信息输入到RTP执行例程33。因此,RTP执行例程33完成对用于该客户端的一个或多个音频/视频RTP包的生成。
重复步骤S401到S411直到在步骤S412中用户生成了结束信号为止。
图5是示出由图3中的流服务器引擎36(在本发明的实施例中)执行的步骤的流程图,该流服务器引擎36执行所述步骤用于响应于作为传输损失率的包损失率p、以及作为从客户端接收的发送/接收时间信息的往返时间(round trip time,RTT)信息,自适应地控制当前传输速率RNOW和压缩比。
为了确定包损失率p,客户端计算机(图1中的10)检查包括在从视频服务器(图1中的14)接收的音频/视频RTP包的头部中的序列号。RTT信息包括发送时间和接收时间。客户端计算机将包括在从视频服务器(图1中的14)接收的音频/视频RTP包的头部中的网络时间协议(NTP)时戳作为接收时间(LSR在视频服务器端的发送时间)发送到视频服务器。此外,客户端测量从客户端发送RTCP包到视频服务器的发送时间(DLSR在视频服务器端的接收时间),并且将所测量的发送时间发送到视频服务器。
因此,一旦在步骤S501中从客户端(在RTCP包中)接收了RTT信息,即包损失率p、发送时间LSR和接收时间DLSR,则该处理就转到步骤S502,其中对发送时间LSR和接收时间DLSR进行求和以获得RTT。
随后,在步骤S503,计算第一容许最大传输速率RALL,其与最大传输单位(MTU)(TCP性能模型中的参数)成正比并且与RTT成反比。在一个实施例中,使用以下的等式计算第一容许最大传输速率RALL。
RALL=1.22×MTURTT×p1/2]]>当第一容许最大传输速率RALL在设置的范围、例如5Kbps(千位每秒)到100Mbps(兆位每秒)的范围之外时,在步骤S504和S505中调整第一容许最大传输速率RALL。当第一容许最大传输速率RALL低于例如5Kbps时,将第一容许最大传输速率RALL调整为5Kbps。当第一容许最大传输速率RALL高于100Mbps,将它调整为100Mbps。
在步骤S506到S514中,响应于包损失率p调整该第一容许最大传输速率RALL,以获得第二容许最大传输速率RALL,并且响应于第二容许最大传输速率RALL控制当前的传输速率(RNOW→RNEW)和压缩比。具体而言,当在步骤S506中包损失率p为零时,设置比当前传输速率RNOW高一个设定速率X的虚拟当前传输速率RNOW×(1+X),然后在步骤S508,将第一容许最大传输速率RALL与该虚拟当前传输速率RNOW×(1+X)进行比较。
如果在步骤S508中确定第一容许最大传输速率RALL不高于虚拟当前传输速率RNOW×(1+X),则在步骤S513,将第二容许最大传输速率RALL设置为等于第一容许最大传输速率RALL。也就是说,将新的当前传输速率RNEW设置为第二容许最大传输速率RALL,并且因此新的当前传输速率RNEW变为等于第一容许最大传输速率RALL。
如果在步骤S508中确定第一容许最大传输速率RALL高于虚拟当前传输速率RNOW×(1+X),这意味着第一容许最大传输速率RALL具有最大的容限,则在步骤S511中将第二容许最大传输速率RALL设置为等于虚拟当前传输速率RNOW×(1+X),并且在步骤S512,控制视频编码器(图2中的23)和音频编码器(图2中的24),以便除了执行“帧内(intra-frame)压缩”之外还执行“帧间(inter-frame)压缩”。如本领域中众所周知的那样,“帧内压缩”除去了空间冗余,而“帧间压缩”除去了时间冗余。
如上所述,第一容许最大传输速率RALL的容限可用于提高传输和接收性能。
如果在步骤S506中确定包损失率p在1和4之间(包括1和4),则在步骤S510,将第二容许最大传输速率RALL设置为0.8乘以当前传输速率RNOW。如果在步骤S510中确定包损失率p等于或者大于5,则在步骤S509,将第二容许最大传输速率RALL设置为0.5乘以当前的传输速率RNOW。
然后,在步骤S513,将新的当前传输速率RNEW设置为第二容许最大传输速率RALL。因此,在步骤S514,自适应地控制新的当前传输速率RNEW,以便等于容许的最大传输速率RALL,并且自适应地控制视频编码器(图2中的23)和音频编码器(图2中的24)的压缩比。重复步骤S501到S514直到用户在步骤S515中生成结束信号为止。
根据图5中的自适应控制过程,可以自动测量用于每个客户端的动态改变的网络带宽,并且响应于所测量的网络带宽而自适应地控制每个客户端的当前传输速率RNOW和压缩比。这最大化了发送和接收效率。
根据本发明的各种实施例控制视频服务器的方法可以存储在视频服务器上的计算机可读介质中。计算机可读介质是任何数据存储设备,这些数据存储设备可以存储此后可由计算机系统读取的数据。计算机可读介质的示例包括只读存储器(ROM)、随机存取存储器(RAM)、CD-ROM、磁带、软盘、光数据存储设备、和载波(诸如通过Internet的数据传输)。计算机可读介质还可以分布在联网的计算机系统上,以便以分布式方式存储和执行计算机可读代码。
如上所述,本发明包括用于控制视频服务器的方法以及用于存储用于执行该方法的代码的计算机可读介质。在本发明的各种实施例中,根据实时传送协议将音频包和视频包转换为一个或者多个音频/视频RTP包。因此,不需要为了使用视频服务器而安装单独的用于在通信网络中进行实时传输的流服务器。此外,可以为每个客户端自动测量动态改变的网络带宽,并且可以响应于所测量的网络带宽而自适应地控制每个客户端的当前传输速率和压缩比。这可以最大化发送/接收效率。
虽然已经参考本发明的示范性实施例特别地显示和描述了本发明,但是本领域的技术人员应当理解可以在其中进行各种形式和细节的改变而没有背离由权利要求
所定义的本发明的精神和范围。
权利要求
1.一种用于经由通信网络向多个客户端提供视频和音频数据的方法,该方法包含将模拟音频信号转换为数字音频数据;将模拟视频信号转换为数字视频数据;压缩所述数字音频数据和数字视频数据;对所述压缩的数字音频数据和数字视频数据进行打包,以生成音频包和视频包;将所述音频包和视频包转换为实时传送协议包;以及使用联网协议将所述实时传送协议包发送到客户端。
2.如权利要求
1所述的方法,其中,所述联网协议是TCP-IP。
3.如权利要求
1所述的方法,其中,当将实时传送协议包发送到客户端时,根据会话发起协议而向客户端发送和从客户端接收通信消息。
4.如权利要求
1所述的方法,还包含当将实时传送协议包发送到多个客户端时,获得有关多个客户端的信息;以及使用所获得的信息来配置如何将所述音频包和视频包转换为实时传送协议。
5.如权利要求
1所述的方法,还包含当从多个客户端中的一个客户端接收到访问请求消息时,发送响应消息,该响应消息向该客户端通知可实现访问但是该客户端应该等待;以及在访问等待列表中登记有关该客户端的信息。
6.如权利要求
5所述的方法,还包含确定在所述访问等待列表中是否有未经授权的客户端;以及,基于该确定步骤,从所述访问等待列表中删除未经授权的客户端。
7.如权利要求
6所述的方法,还包含标识访问等待列表中经授权的客户端;以及使用从访问等待列表获得的有关所述经授权的客户端的信息,将音频包和视频包转换为实时协议包。
8.如权利要求
5所述的方法,还包含检测客户端要获得访问的尝试;使用所述客户端的已登记的信息,将音频包和视频包转换为实时传送协议包。
9.如权利要求
8所述的方法,还包含当发送步骤完成时,从访问等待列表中删除所述登记的信息。
10.如权利要求
1所述的方法,还包含当从多个客户端中的一个客户端接收了访问结束消息时,向该客户端发送访问结束确认消息;以及停止为该客户端生成实时协议包。
11.如权利要求
1所述的方法,还包含从多个客户端中的每个客户端接收有关传输损失率、发送时间、和接收时间的数据;以及基于所述传输损失率、发送时间、和接收时间,控制实时传送协议包的当前传输速率。
12.一种用于经由通信网络向多个客户端提供视频和音频数据的方法,该方法包含将模拟音频信号转换为数字音频数据;将模拟视频信号转换为数字视频数据;压缩所述数字音频数据和数字视频数据;对所述压缩的数字音频数据和数字视频数据进行打包,以生成音频包和视频包;将所述音频包和视频包转换为实时传送协议包;以及将给客户端的所述实时传送协议包封装为网际协议包;从多个客户端中的每一个接收传输损失率数据、发送时间数据、和接收时间数据;以及基于所接收的传输损失、发送时间和接收时间数据控制压缩步骤的压缩率。
13.如权利要求
12所述的方法,其中,多个客户端中的每一个通过检查包括在实时传送协议包的头部中的序列号,来确定传输损失率。
14.如权利要求
12所述的方法,其中,当将实时发送协议包发送到多个客户端时,连同实时传送协议包一起发送实时协议控制包。
15.如权利要求
14所述的方法,其中,传输损失率数据、发送时间数据、和接收时间数据包括在实时协议控制包中。
16.如权利要求
15所述的方法,其中,多个客户端中的每一个通过对包括在实时协议控制包中的发送时间数据和接收时间数据进行求和,来确定发送时间和接收时间。
17.如权利要求
12所述的方法,还包含计算第一容许最大传输速率,其与作为TCP性能模型的参数的MTU成正比,并且与传输损失率、发送时间、和接收时间成反比;响应于传输损失率,调整所述第一容许最大传输速率,以获得第二容许最大传输速率;以及响应于第二容许最大传输速率,控制当前传输速率和压缩比。
18.如权利要求
17所述的方法,其中当传输损失率为零时,执行下述步骤计算比当前传输速率高一个设定速率的虚拟当前传输速率;当第一容许最大传输速率不高于虚拟当前传输速率时,将第二容许最大传输速率设置为等于第一容许最大传输速率;当第一容许最大传输速率高于虚拟当前传输速率时,将第二容许最大传输速率设置为等于虚拟当前传输速率;以及在压缩了数字音频数据和数字视频数据之后执行帧间压缩。
19.如权利要求
17所述的方法,其中,在响应于第二容许最大传输速率控制当前传输速率和压缩比的步骤中,控制新的当前传输速率以便等于第二容许最大传输速率。
20.一种其上存储有计算机可执行指令的计算机可读介质,所述计算机可执行指令用于执行下述步骤分别将模拟音频信号和模拟视频信号转换为数字音频数据和数字视频数据;压缩所述数字音频数据和数字视频数据;对所述压缩的数字音频数据和数字视频数据进行打包,以生成音频包和视频包;根据实时传送协议将音频包和视频包转换为实时传送协议包;以及经由网际协议将实时传送协议包发送到多个客户端。
专利摘要
提供了一种用于控制视频服务器的方法,该视频服务器经由通信网络实时地向多个客户端提供视频和音频数据。模拟音频信号和模拟视频信号分别被转换为数字音频数据和数字视频数据。对数字音频数据和数字视频数据进行压缩。对所压缩的数字音频数据和数字视频数据进行打包,以生成音频包和视频包。根据实时传送协议将音频包和视频包转换为音频/视频RTP包。根据TCP/UDP-IP将音频/视频RTP包发送到客户端。
文档编号H04L12/56GK1992721SQ200610091745
公开日2007年7月4日 申请日期2006年6月12日
发明者李在薰 申请人:三星Techwin株式会社导出引文BiBTeX, EndNote, RefMan
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1