HI,欢迎来到起点商标网!
24小时服务QQ:2880605093

一种基于移动流媒体技术的实景骑行训练系统的制作方法

2021-01-11 14:01:25|240|起点商标网
一种基于移动流媒体技术的实景骑行训练系统的制作方法

本发明涉及自动化技术领域、流媒体技术领域以及视频控制领域,具体涉及一种基于移动流媒体技术的实景骑行训练系统。



背景技术:

近十年移动互联网技术快速发展,第三代、第四代移动通信技术(3th/4thgenerationmobilenetworks)以及光纤通信技术已经在市场上广泛应用,极大地便利了我们的生活。去年11月1日,第五代移动通信技术也已经正式商用,相较于3g、4g,其信道容量更大、空中接口延时更低、连接密度和流量密度更高。通信技术的改变和提升为超高清视频更迅速的传输带来了可能性。另一方面,市场上的智能手机、平板等移动端设备的处理器日新月异,性能不断提高;2k、4k屏也逐步搭配在手机、平板上,如索尼xperia1旗舰手机等。因此,超高清视频的实时处理和播放也具备了可行性和必要性。

近几年,智能骑行系统以其不受时间和天气限制、能智能控制骑行阻力、可视化显示各种骑行数据的特点,逐渐在骑行圈风靡起来。目前大众化的操作系统市场windows、android和ios三分天下,而骑行台软件主流还是基于windows平台的,android和ios设备上的移动骑行应用功能单一,并不完善。近两年高性能的android和ios的平板电脑或大屏手机等移动设备逐渐流行,骑行用户越来越多地想要在android和ios设备上使用智能骑行系统,因此开发一款基于android或ios的骑行应用势在必行。

在此背景下,开发一款基于移动流媒体技术的实景骑行训练系统具有重要意义。应用流媒体技术,让视频能够边下边播,很好地解决高清实景赛道视频过大而移动设备存储空间有限的矛盾。用户可以使用android骑行训练客户端将android移动设备通过蓝牙连接到智能骑行台,通过数据网络或wifi与服务器平台建立网络连接并从服务器平台上获取高清实景赛道列表,不需要将赛道完整下载到本地就可以在线选择自己喜爱的实景赛道进行实景骑行训练。同时,用户可以根据实时显示的训练数据直观地了解自身的训练情况,也可以将训练数据存储到服务器平台以便随时查看。



技术实现要素:

为克服现有移动端骑行训练系统开发程度不充分、无法体验实景骑行的缺陷,本发明提供了基于移动流媒体技术的实景骑行训练系统,包括基于移动流媒体技术的服务器平台和android骑行训练客户端,应用流媒体技术,让视频能够边下边播,很好地解决高清实景赛道视频过大而移动设备存储空间有限的矛盾,用户可以使用android骑行训练客户端将android移动设备通过蓝牙连接到智能骑行台,建立网络连接并从服务器平台上获取高清实景赛道列表,不需要将赛道完整下载到本地就可以在线选择自己喜爱的实景赛道进行实景骑行训练;同时,用户可以根据实时显示的训练数据直观地了解自身的训练情况,也可以将训练数据存储到服务器平台以便随时查看。

本发明解决其技术问题所采用的技术方案是:

一种基于移动流媒体技术的实景骑行训练系统,包括基于移动流媒体技术的服务器平台和android骑行训练客户端,所述服务器平台对用户信息、比赛信息、视频赛道信息数据进行组织和管理,提供用户连接管理、用户信息存储、流媒体赛道点播服务;android实景骑行训练客户端包含ui界面及相应activity、btservice模块、netservice模块及流媒体播放器模块,能够通过蓝牙连接骑行台,通过tcp/ip协议连接服务器平台,通过流媒体播放器点播流媒体服务器上的高清赛道视频,让用户能够使用android设备进行基于移动流媒体技术的实景骑行训练。

进一步,所述基于移动流媒体技术的服务器平台包括应用程序服务器、流媒体服务器和数据库服务器;

所述应用程序服务器,与数据库服务器、流媒体服务器直接交互,提供管理用户连接、收集和响应用户请求服务;

所述流媒体服务器,依照应用程序服务器解析的用户请求,为用户提供内容发现及高清实景赛道视频的流媒体点播服务;

所述数据库服务器,用于存储用户数据、比赛信息、视频赛道信息数据,配合应用程序服务器提供用户信息验证、赛事赛道信息查询、训练数据存储服务。

更进一步,所述流媒体服务器基于darwinstreamingserver设计,采用实时流协议rtsp以完成流媒体点播服务,包含以下三种类型的模块:内容管理模块,负责管理与媒体源相关的rtsp请求和响应,每个模块负责解释客户的请求,读取和解析它们的支持文件或者网络源,并且以rtsp和rtp的方式进行响应;服务器支持模块,执行服务器数据的收集和记录功能;访问控制模块,提供鉴权和授权功能,以及操作url路径提供支持。

再进一步,所述应用程序服务器采用“生产者-消费者”模式,即通过连接池和线程池来管理网络消息,并采用了输入输出完成端口(iocp)模型:利用哈希表建立并维护连接池以管理基于tcp/ip协议的socket长连接,依据cpu核心数量开辟固定数量的线程池和内存池;创建一个iocp对象,将其与连接池与线程池关联起来;连接池中各socket长连接收到的网络协议先通过iocp,再根据信号量同步互斥地往消息队列中添加;当线程池中存在空闲线程时取消息队列头部的消息进行处理。

所述android实景骑行训练客户端包含ui界面及相应activity、btservice模块、netservice模块及流媒体播放器模块;

所述ui界面及相应activity,为用户提供可视化的ui界面,处理部分简单的用户请求,或调用其他功能模块进行处理用户请求;

所述btservice模块,采用标准蓝牙3.0协议,能够与支持标准蓝牙3.0协议的骑行台设备进行连接;

所述netservice模块,负责建立与服务器平台的tcp长连接,并提供消息的收发的接口与服务器进行交互;

所述流媒体播放器模块,用于播放高清流视频赛道,并能够依据骑行速度调整播放倍率。

进一步,所述android实景骑行训练客户端的流媒体播放器模块基于vitamio开源多媒体播放框架实现,配合btservice模块及netservice模块完成基于移动流媒体技术的实景训练功能,其步骤如下设计:

步骤1:初始化netservice建立与应用程序服务器的tcp连接后,通过netservice的实例,调用其send()方法,向应用程序服务器发送请求获取视频赛道文件信息列表;

步骤2:解析回执协议,在ui界面上显示赛道列表,获取rtsp链接;

步骤3:待用户选择赛道后,启动新的实景训练activity,并启动netservice、及btservice相应的broadcastreceiver;初始化一个vitamio的videoview,在其上初始化各训练数据显示标签;

步骤4:调用playvideo()传入流媒体视频的rtsp链接并向流媒体服务器发起rtsp会话请求,同时设置相关参数,读取赛道坡度等数据;

步骤5:待与流媒体服务器建立rtsp会话,开始播放实景赛道视频;骑行过程中,依据坡度计算骑行档位,并通过btservice的send()方法发送给下位机以骑行阻力;同时,依据btservice的接收到的骑行速度调整视频播放倍率;

步骤6:待实景视频播放完毕或用户主动退出,向流媒体服务器请求结束rtsp会话,并释放相关资源;同时,向应用程序服务器发送协议将训练数据保存到数据库服务器中。

再进一步,所述android实景骑行训练客户端的流媒体播放器模块,采用骑行速度控制播放倍率算法,其步骤如下:

步骤1:对视频做拉伸预处理并存入数据库中:规定拉伸后视频一倍速播放时对应的骑行速度vs,已知v0为视频录制时的标准骑行速度,则拉伸倍数为

步骤2:播放时,根据骑行速度调整视频播放倍率。规定根据播放器的最小播放倍数nmin,最大播放倍数nmax,规定最小有效骑行速度为vminkm/h,最大有效骑行速度为vmax,则当骑行台传递上来骑行速度为v时,流媒体视频播放倍率

其中,vs为7.1中得到的拉伸后视频一倍速播放时对应的骑行速度。

本发明的有益效果在于:

1.针对目前移动端的骑行训练软件功能单一、无法体验实景骑行的乐趣的不足,本发明基于移动流媒体技术设计了一种适合于移动设备的实景骑行训练系统,让用户不用将视频下载到本地即可进行高清实景骑行训练,解决了高清实景赛道视频过大而移动设备内存普遍较小的矛盾。

2.针对目前骑行平台的服务器稳定性差的不足,本发明设计了应用程序服务器、流媒体服务器、数据库服务器协同工作的架构,基于darwinstreamingserver设计rtsp流媒体服务器,基于mysql设计数据库服务器,并在应用程序服务器上采用“生产者-消费者”模式,即通过连接池和线程池来管理网络消息,并采用iocp完成端口模型,能够减少线程上下文切换的开销,加快请求的相应速度的同时增大服务器的吞吐量,从而提高了服务器的稳定性和工作效率。

3.针对android多媒体框架功能拓展性差的不足,本发明引入了vitamio开源多媒体播放框架,开发了android实景骑行训练客户端,并采用骑行速度控制播放倍率算法,使骑行训练更具沉浸感和趣味性。

附图说明

图1为本发明基于移动流媒体技术的实景骑行训练系统之服务器平台的架构图。

图2为本发明基于移动流媒体技术的实景骑行训练系统之应用程序服务器“生产者-消费者”模式的示意图。

图3为本发明基于移动流媒体技术的实景骑行训练系统之android实景骑行客户端的逻辑框架。

图4为本发明基于移动流媒体技术的实景骑行训练系统之基于移动流媒体技术的实景训练流程图。

具体实施方式

下面结合附图来说明本发明的具体实施过程。

参照图1~图4,服务器平台对用户信息、比赛信息、视频赛道信息数据进行组织和管理,提供用户连接管理、用户信息存储、流媒体赛道点播服务;android实景骑行训练客户端包含ui界面及相应activity、btservice模块、netservice模块及流媒体播放器模块,能够通过蓝牙连接骑行台,通过tcp/ip协议连接服务器平台,通过流媒体播放器点播流媒体服务器上的高清赛道视频,让用户能够使用android设备进行基于移动流媒体技术的实景骑行训练。

图1为本发明一种基于移动流媒体技术的实景骑行训练系统之服务器平台的架构图。如图1所示,所述服务器平台包括应用程序服务器、流媒体服务器和数据库服务器三个部分。其中,应用程序服务器面向用户,建立并管理与所有客户端的基于tcp/ip协议的长连接,能够收集客户端发来的网络协议并进行解析和处理,并且与流媒体服务器和数据库服务器直接交互,因此能够提供包括用户验证、信息查询及修改、训练数据保存等等功能;流媒体服务器是提供移动流媒体服务的主体,基于实时流协议rtsp设计,包含内容管理模块、服务器支持模块、访问控制模块,能够为用户提供流媒体内容发现及高清视频赛道点播服务;数据库服务器基于mysql设计,其中存储了用户数据、赛事信息、视频赛道信息等等,配合应用程序服务器提供用户信息验证、赛事赛道信息查询、训练数据存储等等服务。

上述服务器平台中的流媒体服务器基于darwinstreamingserver设计,darwinstreamingserver简称dss,是apple公司提供的开源实时流媒体播放服务器程序。上述流媒体服务器使用模块来响应各种请求及完成任务,包含以下三种类型的模块:内容管理模块,包括qtssfilemodule、qtssreflectormodule、qtssrelaymodule、qtssmp3streamingmodule等,负责管理与媒体源相关的rtsp请求和响应,比如一个文件或者一个广播。每个模块负责解释客户的请求,读取和解析它们的支持文件或者网络源,并且以rtsp和rtp的方式进行响应;服务器支持模块,包括qtsserrorlogmodule、qtssaccesslogmodule、qtsswebstatsmodule、qtsswebdebugmodule、qtssadminmodule、qtssposixfilesystemmodule等,执行服务器数据的收集和记录功能;访问控制模块,包括qtssaccessmodule、qtsshomedirectorymodule、qtsshttpfilemodule、qtssspamdefensemodule等,提供鉴权和授权功能,以及操作url路径提供支持。

上述流媒体服务器采用实时流协议rtsp完成流媒体服务。rtsp在体系结构上位于rtp和rtcp之上,它使用tcp或rtp完成数据传输。一次基本的rtsp操作过程包括:

步骤1:客户端向流媒体服务器发出的option请求查询流媒体服务器可用方法;

步骤2:客服端向服务器发送describe请求,流媒体服务器通过一个sdp包向客户端返回指定媒体流的媒体名称、流数量、封装格式等描述信息;

步骤3:客户端向服务器发送setup请求要求建立rtsp会话,这个请求里包含了传输方式为tcp或udp、客户端用于接收流媒体数据的端口等等;流媒体服务器通过对tcp端口的监听,读入请求;流媒体服务器解析请求内容,回应客户端请求等待,同时调入相应的流媒体文件;

步骤4:客户端发送play请求,服务器端将流媒体文件形成rtp包,分发流媒体数据,并获得反馈传输质量的rtcp包;

步骤5:服务器还将处理快进、快退和暂停等来自客户端的播放控制命令;

步骤6:收到客户端的teardown请求,数据包发送完毕,关闭连接,释放占用的资源。

图2为本发明基于移动流媒体技术的实景骑行训练系统之应用程序服务器“生产者-消费者”模式的示意图。如图2所示,上述应用程序服务器维护固定数量的线程池和连接池,采用了输入输出完成端口(iocp)模型。iocp是支持多个同时发生的异步i/o操作的应用程序编程接口。iocp对象内部有一个先进先出(fifo)队列,用于存放iocp所关联的输入输出端的服务请求完成消息。请求输入输出服务的进程不接收io服务完成通知,而是检查iocp的消息队列以确定io请求的状态。

具体地,利用哈希表建立并维护连接池以管理基于tcp/ip协议的socket长连接,并通过心跳机制监视所有长连接的状态。依据cpu核心数量开辟固定数量的线程池和内存池,通过管理线程池和内存池来有序地处理消息队列中的任务。创建一个iocp对象,将其与连接池与线程池关联起来。连接池中各socket长连接收到的网络消息先进入iocp,再根据信号量同步互斥地往消息队列中添加。如果当前线程池中有线程处于空闲状态,那么空闲线程就会从消息队列中取出头部的任务进行处理,否则就等待某个线程处理完当前任务再取出消息队列中头部的任务进行处理。

图3为本发明基于移动流媒体技术的实景骑行训练系统之android实景骑行客户端的逻辑框架。如图3所示,所述android实景骑行客户端包含ui界面及相应activity、btservice模块、netservice模块及流媒体播放器模块等主要功能模块。ui界面及相应activity,为用户提供可视化的ui界面,能够处理部分简单的用户请求,或调用btservice模块、netservice模块、流媒体播放器模块等其他功能模块进行处理用户请求;btservice模块,采用标准蓝牙3.0协议,能够与支持标准蓝牙3.0协议的骑行台设备进行连接,提供send()方法向骑行台发送档位数据以控制骑行阻力,同时能够接收骑行台发送的速度等信息,并在android程序内部通过broadcast机制广播给需要处理该信息的activity;netservice模块,负责建立与服务器平台的tcp长连接,随android实景骑行客户端启动而启动,提供send()方法将需要服务器处理的消息发送给服务器,同时能够接收和预处理服务器发送来的信息,并在android程序内部通过broadcast机制广播给需要处理该信息的activity;流媒体播放器模块,基于vitamio开源多媒体播放框架实现,用于播放高清流视频赛道,采用依据骑行速度调整播放倍率算法,配合btservice模块及netservice模块完成基于移动流媒体技术的实景训练功能。

图4为本发明基于移动流媒体技术的实景骑行训练系统之基于移动流媒体技术的实景训练流程图。上述android实景骑行训练客户端的流媒体播放器模块主要功能是进行流媒体赛道视频的播放,并根据骑行速度调整播放倍率,同时实时地显示骑行数据。由于android本身的多媒体框架功能有限,android实景骑行训练客户端导入了vitamio开源多媒体播放框架模块,利用其进行流视频赛道的播放显示和播放倍率调整;通过btservice模块,在骑行过程中控制调整骑行台档位以模拟骑行阻力,同时接收骑行台发送的速度等信息用于显示和调整播放倍率;通过netservice模块,向服务器平台发送相关请求包括用户验证、赛道信息获取、训练数据存储等,同时接收服务器发送的消息以完成相应操作。具体步骤如下:

步骤1:初始化netservice建立与应用程序服务器的tcp连接后,通过netservice的实例,调用其send()方法,向应用程序服务器发送请求获取视频赛道文件信息列表;

步骤2:解析回执协议,在ui界面上显示赛道列表,获取rtsp链接;

步骤3:待用户选择赛道后,启动新的实景训练activity,并启动netservice、及btservice相应的broadcastreceiver;初始化一个vitamio的videoview,在其上初始化各训练数据显示标签;

步骤4:调用playvideo()传入流媒体视频的rtsp链接并向流媒体服务器发起rtsp会话请求,同时设置相关参数,读取赛道坡度等数据;

步骤5:待与流媒体服务器建立rtsp会话,开始播放实景赛道视频;骑行过程中,依据坡度计算骑行档位,并通过btservice的send()方法发送给下位机以骑行阻力;同时,依据btservice的接收到的骑行速度控制视频播放倍率;

步骤6:待实景视频播放完毕或用户主动退出,向流媒体服务器请求结束rtsp会话,并释放相关资源;同时,向应用程序服务器发送协议将训练数据保存到数据库服务器中。

考虑android设备播放器在播放倍率上有所限制,原先在pc端使用的线性的依据骑行速度调整播放倍率算法在android使用效果不佳,因此本发明专门设计了适应于android设备的依据骑行速度调整播放倍率算法。通常,android多媒体播放框架的播放倍率可调整范围通常有局限,本发明中使用到的vitamio亦是如此。假设播放倍率下限为0.5,上限为2.0,视频拍摄时的标准速度为30km/h,那么可以计算出原先线性的依据骑行速度调整播放倍率算法有效骑行速度范围为15km/h到60km/h。然而实际情况下,骑行速度一般集中在8km/h到30km/h,因此原先算法应用在android客户端上时的有效速度的取值范围与实际骑行速度范围相差过大,且区分度差。

本发明中依据骑行速度调整播放倍率算法能够适应播放倍率的限制,在限制的倍率范围内保持一定的区分度,具体步骤如下:

步骤1:在视频存入服务器之前,先对视频做拉伸预处理,降低视频一倍速播放时对应的骑行速度。规定拉伸后视频一倍速播放时对应的骑行速度vs,此速度依据该赛道骑行时实际骑行速度分布取中位数而得。已知v0为视频录制时的标准骑行速度,则拉伸倍数为预处理操作通过视频拉伸把视频一倍率播放时对应的骑行速度降低到一个合理值,拉长了正常骑行速度对应的播放倍率区间,压缩了骑行时极少或不可能出现的速度值对应的播放倍率区间,同时提高了非高速骑行时的区分度。

步骤2:播放时,根据骑行速度调整视频播放倍率。规定根据播放器的最小播放倍数nmin,最大播放倍数nmax,规定最小有效骑行速度为vminkm/h,最大有效骑行速度为vmax,则当骑行台传递上来骑行速度为v时,流媒体视频播放倍率

其中,vs为7.1中得到的拉伸后视频一倍速播放时对应的骑行速度。此算法规定了最低和最高有效骑行速度,低于此速度时播放倍率将取到最小值或最大值;当速度处于有效区间内时,若骑行速度低于vs则速度在nmin到1倍率之间变动,若骑行速度低于vs则速度在1倍率到nmax之间变动。

起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。

此文章来源于网络,如有侵权,请联系删除

tips