CN108924603B - 基于软件定义WiFi的多终端流媒体播放系统和方法 - Google Patents

基于软件定义WiFi的多终端流媒体播放系统和方法 Download PDF

Info

Publication number
CN108924603B
CN108924603B CN201810856285.7A CN201810856285A CN108924603B CN 108924603 B CN108924603 B CN 108924603B CN 201810856285 A CN201810856285 A CN 201810856285A CN 108924603 B CN108924603 B CN 108924603B
Authority
CN
China
Prior art keywords
user
playing
video
streaming media
information
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.)
Active
Application number
CN201810856285.7A
Other languages
English (en)
Other versions
CN108924603A (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.)
CERNET Corp
Original Assignee
Fudan University
CERNET 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 Fudan University, CERNET Corp filed Critical Fudan University
Priority to CN201810856285.7A priority Critical patent/CN108924603B/zh
Publication of CN108924603A publication Critical patent/CN108924603A/zh
Application granted granted Critical
Publication of CN108924603B publication Critical patent/CN108924603B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/436Interfacing a local distribution network, e.g. communicating with another STB or one or more peripheral devices inside the home
    • H04N21/4363Adapting the video stream to a specific local network, e.g. a Bluetooth® network
    • H04N21/43637Adapting the video stream to a specific local network, e.g. a Bluetooth® network involving a wireless protocol, e.g. Bluetooth, RF or wireless LAN [IEEE 802.11]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/239Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests
    • H04N21/2393Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests involving handling client requests
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2408Monitoring of the upstream path of the transmission network, e.g. client requests
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/44213Monitoring of end-user related data
    • H04N21/44218Detecting physical presence or behaviour of the user, e.g. using sensors to detect if the user is leaving the room or changes his face expression during a TV program
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/472End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
    • H04N21/47202End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for requesting content on demand, e.g. video on demand

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Databases & Information Systems (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Social Psychology (AREA)
  • Human Computer Interaction (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明公开了一种基于软件定义WiFi的多终端流媒体播放系统和方法。该系统包括播放客户端、软件定义WiFi网络和流媒体播放多终端切换应用。本发明利用软件定义WiFi网络带来的网络资源集中管理和可编程的特性,在软件定义WiFi的控制器中实现了流媒体缓存和分发的应用,解决了现有多屏互动技术中设备间重新建立连接,等待视频缓冲等问题,有效的减少了流媒体播放在另一个终端切换的时间开销,提升了用户的观看体验。

Description

基于软件定义WiFi的多终端流媒体播放系统和方法
技术领域
本发明涉及一种基于软件定义WiFi的多终端流媒体播放系统和方法,属于计算机网络与流媒体跨终端播放技术领域。
背景技术
随着携带WiFi功能的智能移动设备的普及,越来越多的人使用手机、平板电脑等智能移动设备通过WiFi接入互联网,WiFi已经成为人们接入互联网的主要方式之一。当我们和家人或朋友在一起观看视频时,由于移动设备屏幕尺寸的限制,很多时候需要将视频切换到其他的大屏设备进行观看,或是将视频分享到家人或朋友的设备同时观看。另外当我们原本在卧室用手机观看某个视频时,我们可能想移动到客厅用智能电视观看。在这些场景中都需要实现流媒体播放在多个终端的显示器上切换。
当前在WiFi环境下实现流媒体播放在多个终端上切换主要的技术就是DLNA(Digital Living Network Alliance)、AirPlay、Miracase等多屏互动技术。多屏互动主要是指在同一网络环境中运行不同操作系统的不同智能设备之间,通过某种约定好的通信方式来传输多媒体(视频、音频)内容和控制信息,从而实现在不同操作系统的不同设备上同时显示相同的多媒体内容,并且对显示的多媒体内容进行控制。
尽管现有的多屏互动技术有着广泛的应用,但它们也存在着一些缺点和不足。首先,现有的几种主流多屏互动技术是由不同的公司推广的,并且使用不同的网络协议,这就带来了设备兼容性问题,不同公司的设备相互之间不能兼容。其次,当我们需要在两个不同的智能终端之间进行视频分享时,由于两个设备之间是没有建立数据链路的,所以需要重新建立两个设备之间的数据链路。另外由于视频解码需要视频文件头部的信息,因此源分享设备需要重新向流媒体服务器请求视频文件头部的信息,然后发送给目标切换设备。以上这些问题给用户带来了非常不好的体验,用户需要等待一段时间,等待源设备和目标设备数据链路的建立及视频流缓冲的完成,然后才能观看。另外播放切换操作需要用户手动触发,所以存在着用户等待、观看体验差和需要用户手动触发等问题。
软件定义网络的概念在2009年被正式提出,它将集中化控制的思想引入网络中,软件定义网络的提出为网络带来了灵活的可编程的特性,我们可以对网络资源进行集中化管理,这些特性给我们的流媒体播放在多个终端的显示器上无感知切换的这个问题带来了新的解决思路。
发明内容
为了解决了流媒体播放在多个终端无感知切换的问题,并针对现有多屏互动技术解决方案存在的问题,本发明提出了一种基于软件定义WiFi的多终端流媒体播放系统和方法。本发明利用软件定义WiFi提供的网络资源集中化管理和灵活的可编程的特性,使控制器应用可以控制流媒体播放时数据流的分发。本发明在软件定义WiFi的控制器中设计并实现了流媒体播放多终端切换应用,当用户观看视频时,控制器应用会缓存用户当前观看视频的视频头部和视频数据块,当用户需要将视频切换到其他终端进行观看时,利用软件定义WiFi带来的路由控制功能,可以迅速的将控制器应用缓存的视频数据信息发送到目标设备上进行观看。通过这样的方式解决了现有多屏互动技术存在的用户等待设备重新建立连接和等待视频缓冲的问题。同时在实现播放客户端时,设计了人脸检测子模块,可以使用户在流媒体播放切换时无需手动进行操作,而根据检测用户人脸的问题来触发流媒体播放的切换,从而解决了现有多屏互动技术存在的需要用户手动触发的问题。本发明的技术方案具体如下。
本发明提供一种基于软件定义WiFi的多终端流媒体播放系统,其包括播放客户端、
软件定义WiFi网络和流媒体播放多终端切换应用;其中:
播放客户端,用于向流媒体服务器请求流媒体数据进行播放,同时负责用户的登录;当用户需要将流媒体播放切换到另一个终端进行播放时,它向流媒体播放应用发起切换请求,并发送相关的切换状态信息;
软件定义WiFi网络,向播放客户端提供网络通信服务,并且向流媒体播放多终端切换应用提供管理网络资源和服务的可编程接口;
流媒体播放多终端切换应用,其缓存流媒体数据块和流媒体头部信息,并维护用户状态信息,当用户需要将一个终端上流媒体播放切换到另一个时,它负责将缓存的流媒体头部信息和数据块分发到目标播放客户端。
本发明中,播放客户端包括用户信息维护模块、流媒体播放器模块、播放与切换请求发送模块和人脸检测和切换请求监听模块四个模块;其中:
用户信息维护模块:用来进行用户的登录和注册,并将用户的登录和注册信息发送给流媒体播放多终端切换应用;
流媒体播放器模块:用来进行流媒体的播放,其支持断点播放;
播放与切换请求发送模块:当用户使用播放客户端观看视频时,此模块发送视频相关信息给流媒体播放多终端切换应用,使得多终端切换应用缓存用户观看视频的视频头和视频数据块;如果当用户发起流媒体播放切换至其他终端请求时,此模块向流媒体播放多终端切换应用发送切换请求,并发送给用户正在观看的视频播放断点位置,多终端切换应用接受到请求后会保存用户状态信息和视频播放的断点位置;
人脸检测和切换请求监听模块:其由人脸检测子模块和换请求监听子模块组成;
当用户使用携带摄像头的用户登录法人设备进行视频观看时,人脸检测子模块实时的检测当前设备的摄像头中是否有人脸,如果检测到没有人脸,停止当前视频的播放,并向控制器中的流媒体播放多终端切换应用发送切换请求;当用户移动至另一设备处时,另一个设备检测到人脸后向流媒体播放多终端切换应用发送播放请求,此时流媒体播放多终端切换应用会将用户的观看视频信息发送至此设备上,然后将缓存的视频头部信息和视频块发也发送到此设备上,此时这个设备的播放客户端会立即在用户之前观看的位置处开始播放视频;
当用户使用没有摄像头的设备进行观看时,用户在进行流媒体播放切换到其他设备时,源设备先向流媒体播放多终端切换应用发送切换请求,流媒体播放多终端切换应用接收到请求后向目的设备的切换请求监听子模块发送切换消息,并且发送用户当前观看的视频信息及缓存的视频头和视频数据块,目的设备接收到切换消息后会立即进行视频的播放。
本发明中,流媒体播放多终端切换应用由用户状态维护模块,播放监听服务模块,切换请求监听服务模块和流媒体数据缓存模块组成;其中:
用户信息维护模块,包括用户登录与注册子模块,用户与客户端绑定子模块以及用户信息存取子模块;所述用户登录与注册子模块用于用户的注册,并在登录时验证用户的用户名和密码是否匹配;所述用户与客户端绑定子模块建立用户与其登录的播放客户端的映射,它会将用户与其登录的播放客户端进行绑定,在用户进行切换时用于寻找目标播放客户端;所述用户信息存取子模块进行用户个人信息及其与播放客户端绑定信息的存取,它会将这些信息存到数据库或者本地文件中;
播放监听服务模块,用于流媒体播放客户端进行流媒体视频播放时接收播放客户端发送的播放相关信息,并根据信息调用软件定义WiFi控制器提供的API获取WiFi网络中目的地址为流媒体服务器ip地址的所有数据,将拿到的所有数据包进行过滤,获取与播放资源路径相同的数据,最后将获取的数据流交给流媒体缓存模块进行缓存;
切换请求监听服务模块,用于在用户发生切换行为时,接受播放客户端发送的请求切换消息,并根据消息更新用户的状态信息,保存用户观看视频的断点位置;
流媒体数据缓存模块,其先判断用户进行视频播放时的视频是否是未缓存过的新视频,如果是新的视频,那么缓存视频的头部信息;同时不管是否是新视频,都缓存用户当前正在观看的视频数据块;当用户在其他的终端进行切换的时候,将缓存的视频头信息和当前用户正在观看的视频数据块分发至目标播放客户端进行播放。
本发明还提供一种利用上述基于软件定义WiFi的多终端流媒体播放系统的方法,具体步骤如下:
第一步,用户将智能设备连接到软件定义WiFi网络下,在智能设备上打开播放客户端,然后进行注册登录,此时客户端将用户的userName、passwd以及设备的deviceId发送至软件定义WiFi的流媒体播放多终端切换应用中,流媒体播放多终端切换应用验证用户登录信息,并将用户的信息与客户端的设备id进行绑定,同时将信息存入本地文件中,然后将用户的UUID返回给播放客户端,表明用户已经登录成功;
第二步,用户使用播放客户端向流媒体服务器发送播放请求,开始播放视频,此时播放客户端发送一条播放请求给流媒体播放多终端切换应用中的播放请求监听模块,并带上用户的UUID、播放客户端的deviceId和视频的路径videoPath,流媒体播放多终端切换应用接到请求后将这些信息交给流媒体数据缓存模块进行处理;
第三步,流媒体数据缓存模块接收到播放监听模块的缓存通知后,根据视频路径字段videoPath去调用软件定义WiFi控制器提供的更改路由表文件/etc/config/network和iptables,将目的地址为用户设备IP,源地址为videoPath中IP的数据包进行截获,即截获流媒体服务器发送给用户播放客户端的数据包,并缓存其中的视频头信息和当前的视频块;
第四步,当人脸检测子模块检测到用户位置发生改变或是用户手动将正在观看的视频切换到其他终端进行观看时,播放客户端向控制器中的切换请求监听模块发送切换请求,并携带用户的UUID、当前源设备的deviceId、当前播放视频的断点位置videoPosition和待切换的目标设备newDeviceId;切换请求监听模块接收到请求后首先验证此用户和对应的源设备的deviceId和目标设备的newDeviceId是否绑定过;如果没有绑定则过滤这个请求,如果验证通过则将立即通知目标设备的播放客户端的切换请求监听模块,并携带视频的断点位置信息和视频的videoPath,同时通知流媒体数据缓存模块将缓存的视频头信息和视频块信息发送给目标设备的播放客户端;
第五步,当切换监听模块通知用户需要进行流媒体播放在目标设备进行切换时,它在监听到目标设备向流媒体服务器发送流媒体服务器发送请求后,调用控制器的修改流表的接口,模拟流媒体服务器的回复将缓存的视频头信息和视频块信息发送至目标设备,目标设备接收到视频数据后无需等待即播放用户之前中断位置的视频,并且将后续的视频流直接转发至目标设备。
和现有技术相比,本发明的有益效果在于:
(1)在进行流媒体播放切换时,由于事先多终端切换应用已经与目标设备的播放客户端建立了连接,所以节省了重新建立连接的时间。
(2)由于切换时的视频头信息和当前观看位置的视频块是缓存在控制器中的多终端切换应用中的,可以直接发送至目标设备中,用户无需等待视频的缓存,大大节约了切换时间的花费。并且随后控制器更改流表,将后续的视频流直接分发至目标设备,而无需再经过切换源设备转发,使流媒体的传输延迟减小。
(3)本发明利用软件定义WiFi网络带来的网络资源集中管理和可编程的特性,在软件定义WiFi的控制器中实现了流媒体缓存和分发的应用,解决了现有多屏互动技术中设备间重新建立连接,等待视频缓冲等问题,有效的减少了流媒体播放在另一个终端切换的时间开销,提升了用户的观看体验。
附图说明
图1是本发明的系统架构图。
图2是本发明的系统运行流程图。
图3是本发明的系统整体流程图。
图4是流媒体播放多终端切换应用结构图。
图5是播放客户端模块结构图。
图6是视频播放切换时间随视频清晰度大小变化情况。
图7是不同技术中视频播放切换时间随视频清晰度大小变化情况。
具体实施方式
下面结合附图和实施例对本发明的技术方案进行详细介绍。
一、系统整体架构
系统架构图如图1,系统主要由三部分组成,分别是播放客户端、软件定义WiFi网络和流媒体播放多终端切换应用。播放客户端是指各种智能设备上运行的应用程序,它负责向流媒体服务器请求流媒体数据进行播放,并且它也负责用户的登录。当用户需要将流媒体播放切换到另一个终端进行播放时,它还负责向软件定义WiFi控制器中的流媒体播放应用发起切换请求,并发送相关的切换状态信息。
软件定义WiFi网络主要是指底层物理无线网络及其控制器,它是一个软件定义无线网络,它的控制器可以管理和控制AP,并向上层提供管理和控制AP的API。它主要负责向播放客户端提供网络通信服务,并且向流媒体播放多终端切换应用提供管理网络资源和服务的可编程接口。
流媒体播放多终端切换应用是指基于软件定义WiFi控制器的应用程序,它既可以作为软件定义WiFi控制器程序的一部分,也可以是独立运行在某个机器上的服务程序,它为流媒体播放在多个终端切换提供各种服务支持,它是整个系统的核心部分。它主要负责缓存流媒体数据块和流媒体头部信息,并维护用户状态信息。当用户需要将一个终端上流媒体播放切换到另一个时,它负责将缓存的流媒体头部信息和数据块分发到目标播放客户端。
整个系统的运行原理如图2所示,用户首先需要在自己的多个设备的流媒体播放客户端上登录,播放客户端会将用户的登录信息发送至控制器中的流媒体播放多终端切换应用,多终端切换应用会保存用户的登录信息,并且将用户与播放客户端进行绑定,此时会建立起多终端切换应用与用户登录的播放客户端的连接。然后用户就可以使用播放客户端进行视频播放,同时播放客户端会将播放信息发送给多终端切换应用,多终端切换应用会根据播放信息获取视频流,并且会在播放的过程中缓存视频头部信息以及用户当前观看部分的视频块。当用户需要将视频切换到其他终端进行播放时,此时源设备的播放客户端会向多终端切换应用发起切换请求,多终端切换应用会通知目标设备的播放客户端向流媒体服务器发送播放请求,但不会等待请求的视频数据到达,多终端切换应用会立即将已缓存的视频头部信息和用户当前观看的视频块发送至目标设备播放客户端进行播放。
在进行流媒体播放切换时,由于事先多终端切换应用已经与目标设备的播放客户端建立了连接,所以节省了重新建立连接的时间。另外,由于切换时的视频头信息和当前观看位置的视频块是缓存在控制器中的多终端切换应用中的,可以直接发送至目标设备中,用户无需等待视频的缓存,大大节约了切换时间的花费。并且随后控制器会更改流表,将后续的视频流直接分发至目标设备,而无需再经过切换源设备转发,使流媒体的传输延迟减小。通过这样的方式来实现流媒体播放在多个终端上进行切换,解决了现有多屏互动技术存在的问题。
二、流媒体播放多终端切换应用模块设计
如图4所示,在控制器中我们设计了流媒体播放多终端切换应用,该应用分为四大模块,分别是用户状态维护模块,播放监听服务模块,切换请求监听服务模块和流媒体数据缓存模块。
用户信息维护模块:用来维护用户的相关信息。它主要由用户登录与注册子模块,用户与客户端绑定子模块以及用户信息存取子模块组成。用户登录与注册子模块主要负责用户的注册,并在登录时验证用户的用户名和密码是否匹配。用户与客户端绑定子模块主要负责建立用户与其登录的播放客户端的映射,它会将用户与其登录的客户端进行绑定,在用户进行切换时用于寻找目标播放客户端。用户信息存取子模块主要负责用户个人信息及其与播放客户端绑定信息的存取,它会将这些信息存到数据库或者本地文件中。
播放监听服务模块:用来监听播放客户端的播放行为。当用户使用流媒体播放客户端进行流媒体视频播放时,播放客户端会向多终端切换应用的播放监听服务发送播放相关信息,如流媒体服务器ip地址、播放资源路径等信息。然后播放监听服务模块会调用软件定义WiFi控制器提供的API获取WiFi网络中目的地址为流媒体服务器ip地址的所有数据,将拿到的所有数据包进行过滤,获取与播放资源路径相同的数据,最后将获取的数据流交给流媒体缓存模块进行缓存。
切换请求监听服务模块:用来监听用户将流媒体播放切换至其他终端的请求。当用户发生切换行为时,播放客户端会向多终端切换应用的切换请求监听服务模块发送一条请求切换消息,消息中包含用户当前观看视频的断点位置。当切换请求监听服务接受到此消息时,会更新用户的状态信息,保存用户观看视频的断点位置,为流媒体播放在其他终端切换做好准备工作。
流媒体数据缓存模块:用来进行流媒体数据的缓存与切换时缓存数据的分发。这个模块是为了解决现有多屏互动技术中存在的流媒体播放在另一个终端切换时,源设备需要重新请求视频头和视频块再发送至目标设备而造成的用户需要等待视频缓冲的问题。当用户进行视频播放时,流媒体数据缓存模块会先判断此视频是否是未缓存过的新视频,如果是新的视频,那么便会缓存视频的头部信息。但是不管是否是新视频,都会缓存用户当前正在观看的视频数据块。当用户在其他的终端进行切换的时候,流媒体数据缓存模块会立即将缓存的视频头信息和当前用户正在观看的视频数据块分发至目标播放客户端进行播放。这个模块是流媒体播放多终端切换应用的核心模块,可以看出通过在控制器中设置缓冲区来缓存用户当前观看的视频头和视频数据块可以有效的解决流媒体视频播放时用户等待视频缓冲的问题,有效的提升用户的观看体验。
三、播放客户端模块设计
如图5所示,播放客户端主要由用户信息维护模块、流媒体播放器模块、播放与切换请求发送模块和人脸检测和切换请求监听模块四个模块组成。
用户信息维护模块:用来进行用户的登录和注册,并将用户的登录和注册信息发送给控制器中的流媒体播放多终端切换应用。
流媒体播放器模块:用来进行流媒体的播放,它就是普通的支持多种格式的流媒体播放器,但它需要支持的一个特别功能就是断点播放。当用户进行流媒体播放在其他终端切换时,需要在用户当前的断点位置进行播放,因此流媒体播放器需要支持在视频的任意位置进行播放的功能。
播放与切换请求发送模块:当用户使用播放客户端观看视频时,此模块会发送视频相关信息给多终端切换应用,让多终端切换应用缓存用户正在观看视频的视频头和视频数据块。如果当用户发起流媒体播放切换至其他终端请求时,此模块会向多终端切换应用发送切换请求,并发送用户正在观看的视频播放断点位置,多终端切换应用接受到请求后会保存用户状态信息和视频播放的断点位置。
人脸检测和切换请求监听模块:为了向用户提供多种流媒体播放切换的触发方式。当用户使用我们的系统进行视频观看时,如果发现用户登录的设备都携带摄像头,那么便会启动人脸检测机制。当用户在一个设备的播放客户端上观看视频时,我们会启动人脸识别模块,实时的检测当前设备的摄像头中是否有人脸,如果检测到没有人脸,那么便说明用户的位置发生了变化,这个时候会人脸检测子模块会调用切换请求模块停止当前视频的播放,并向控制器中的流媒体播放多终端切换应用发送切换请求。当用户移动至另一设备处时,另一个设备播放客户端的人脸检测子模块检测到人脸后会向流媒体播放多终端切换应用发送播放请求,此时流媒体播放多终端切换应用会将用户的观看视频信息发送至此设备上,然后将缓存的视频头部信息和视频块发也发送到此设备上,此时这个设备的播放客户端会立即在用户之前观看的位置处开始播放视频。
当用户使用没有摄像头的设备进行观看时,我们会启用切换请求监听机制。此时,用户在进行流媒体播放切换到其他设备时,源设备会先向控制器中的流媒体播放多终端切换应用发送切换请求,流媒体播放多终端切换应用接收到请求后会立即向目的设备的切换请求监听子模块发送切换消息,并且发送用户当前观看的视频信息及缓存的视频头和视频数据块,目的设备接收到切换消息后会立即进行视频的播放。
本发明主要运用在同一个WiFi下用户需要在多个终端之间进行流媒体播放,解决现有多屏互动技术中设备间重新建立连接,等待视频缓冲等问题。本发明通过在软件定义WiFi的控制器中设置缓存区,缓存用户当前观看的流媒体数据,当将源设备播放的视频切换至目标设备时,控制器会迅速将缓存的数据发送至目标客户端,解决用户等待视频缓冲问题,并利用软件定义WiFi的路由控制的功能将后续的视频流无需经过源设备而直接分发至目标客户端,提升用户观看体验。主要有以下几个方面:
a.软件定义WiFi的控制器中设置缓存区,缓存当前用户观看视频头部和当前视频块信息,当进行播放切换时快速将缓存数据分发至目标客户端。
b.利用软件定义WiFi的路由控制和集中管理资源的特性,在切换时将后续视频流直接分发至目标设备,并在流媒体传世时优化网络的性能,加速视频传输,提高用户观看时的体验。
c.在播放客户端中维护用户状态信息,如用户当前观看位置,用户身份等信息,在视频播放切换时将信息与服务器进行同步,实现断点播放。
d.利用检测人脸的方法来感知用户位置,从而触发视频播放切换至用户所在位置的设备,解决多屏互动系统需要手动触发问题。
本发明采用在控制器中运行定制的流媒体播放多终端切换应用来实现用户当前视频流信息的缓存,缓存用户当前观看视频的头部信息和数据块,当用户需要进行切换时,目标客户端会向控制器应用发送切换请求,控制器应用会快速的将缓存的信息分发至目标客户端。本发明的缓存过程如图3所示,当切换源设备的播放客户端开始请求视频流时,播放客户端会发送一条播放请求给控制器应用中的播放请求监听模块,并会带上用户的UUID、播放客户端的deviceId和视频的路径videoPath。控制器应用首先会根据videoPath判断此视频是否是一个从未缓存过的新视频流,如果是,会缓存当前视频头部的信息,如果不是,则不缓存。然后会缓存用户当前观看视频流的当前数据块,当需要切换时会将缓存的视频头部信息和当前视频坏快速的分发至目标设备的播放客户端。
本发明在进行流媒体播放从源设备切换至目标设备时,控制器应用会通过修改路由器底层系统的路由表文件/etc/config/network和iptables,将后续的视频流直接转发至目标设备,这样后续的视频流就可以不经过源设备转发,直接到达源设备,加速流媒体的传输。
本发明在客户端中维护了用户状态的信息,定义了两种格式的请求分别代表用户不同的操作。当用户在播放客户端进行注册时,播放客户端会将用户输入的用户名和密码字段发送至控制器中的用户状态维护模块,用户状态维护模块会将创建一个新的用户,并为此用户分配一个36位的UUID来唯一的标识此用户,然后将用户的个人信息以JSON格式保存在本地文件中。当用户进行登录时,播放客户端会将用户的用户名和密码还有设备的id发送至用户状态维护模块,这时用户状态维护模块会将用户的信息与客户端的设备id进行绑定,并且将信息存入本地文件中,然后将用户的UUID返回给播放客户端,表明用户已经登录成功。当用户需要进行视频播放切换时,播放客户端会将用户当前观看的位置发送至控制器应用中,控制器应用会在接到目标设备的播放客户端的播放请求时将用户当前观看的位置发送至目标设备的播放客户端。
本发明提出了人脸检测方法,用来检测用户位置,解决切换动作需要用户手动触发的问题。人脸检测模块使用了安卓库原生支持的FaceDetactionListener包进行实现,它主要负责人脸检测,以及将检测的结果及时的通知播放与切换请求发送模块和流媒体播放器。
本发明中,用户使用播放客户端时需要先进行注册和登录,然后就会在Android客户端的后台开启人脸检测的Service,播放与切换请求的发送,以及流媒体播放器的播放行为都是由人脸检测模块进行触发。当人脸检测服务检测到人脸后,表明用户当前在此播放客户端处,如果此时发现视频没有在播放则会向控制器应用发送播放请求,然后通知流媒体播放器进行播放。当发现检测不到用户的人脸后流媒体播放器会向控制器应用发送切换请求,并携带视频的断点位置信息,然后通知流媒体播放器停止播放。
本发明提出的一种基于软件定义WiFi的流媒体播放在多个终端切换的方法。具体步骤如下:
首先,用户需要将智能设备连接到我们的软件定义WiFi网络下,用户在智能设备上打开播放客户端,然后进行可以注册登录,此时客户端会将用户的userName、passwd以及设备的deviceId发送至软件定义WiFi的控制器应用中,控制器应用会验证用户登录信息,并将用户的信息与客户端的设备id进行绑定,并且将信息存入本地文件中,然后将用户的UUID返回给播放客户端,表明用户已经登录成功。
然后,用户使用播放客户端向流媒体服务器发送播放请求,开始播放视频,此时播放客户端会发送一条播放请求给控制器应用中的播放请求监听模块,并会带上用户的UUID、播放客户端的deviceId和视频的路径videoPath。控制器应用接到请求后会将这些信息交给控制器应用中的流媒体数据缓存模块进行处理。
第三步,控制器应用中的流媒体数据缓存模块接收到播放监听模块的缓存通知后,会根据视频路径字段videoPath去调用软件定义WiFi控制器提供的更改路由表文件/etc/config/network和iptables,将目的地址为用户设备IP,源地址为videoPath中IP的数据包进行截获,即截获流媒体服务器发送给用户播放客户端的数据包,并缓存其中的视频头信息和当前的视频块。
第四步,当人脸检测模块检测到用户位置发生改变或是用户手动将正在观看的视频切换到其他终端进行观看时,播放客户端会向控制器中的切换请求监听模块发送切换请求,并携带用户的UUID、当前源设备的deviceId、当前播放视频的断点位置videoPosition和待切换的目标设备newDeviceId。切换请求监听模块接收到请求后会首先验证此用户和对应的源设备的deviceId和目标设备的newDeviceId是否绑定过。如果没有绑定则过滤这个请求,如果验证通过则会将立即通知目标设备的播放客户端的切换请求监听模块,并携带视频的断点位置信息和视频的videoPath,同时通知流媒体数据缓存模块将缓存的视频头信息和视频块信息发送给目标设备的播放客户端。
第五步,当切换监听模块通知它用户需要进行流媒体播放在目标设备进行切换时,它会在监听到目标设备向流媒体服务器发送流媒体服务器发送请求后,调用控制器的修改流表的接口,模拟流媒体服务器的回复将缓存的视频头信息和视频块信息发送至目标设备,目标设备接收到视频数据后无需等待即可立即播放用户之前中断位置的视频。并且将后续的视频流直接转发至目标设备,这样后续的视频流就可以不经过源设备转发,直接到达源设备播放客户端,加速流媒体传输。从实验结果来看,切换的平均时间开销比现有的多屏互动技术减少了2秒以上。
系统性能验证
一、 实验配置
如表1所示我们使用小米路由器作为实验中所有设备统一的无线网络接入点,并且使用Dell 台式电脑作为统一的流媒体服务器,以屏蔽其他因素的干扰。
我们会使用苹果设备和Android 设备分别测试AirPlay、Miracast 和DLNA 三种多屏互动技术的性能,与我们的系统进行对比实验。
Figure 48443DEST_PATH_IMAGE001
二、 系统性能测试
首先我们测试在单用户下随着视频清晰度的提高,我们的系统在运行不同操作系统的终端上进行流媒体切换时的时间开销。
我们针对相同内容的视频设置了清晰度从144P 到1080P 的6 个视频文件,然后将其放在基于Node.js 的流媒体服务器中。我们在红米手机和Sony 手机上安装好我们的Android 播放客户端,在Linux 系统和Windows 系统上使用我们的基于HTML5 的播放客户端。我们使用红米手机作为首次播放视频的客户端,然后将视频分别切换到Linux、Windows和Android 系统上进行播放,依次对这6 个不同清晰度的视频文件的进行6 次视频播放切换实验,每次实验重复切换三次,统计切换时间并取平均值。
如图6所示,随着视频清晰度的提高,目标设备播放时需要请求的视频头和当前断点视频块的大小会越来越大,导致需要传输更多的视频流,因此切换所需的时间开销也逐渐增大。但是由于我们在控制器中缓存了当前视频流,可以让我们在切换时快速分发,即使视频清晰度为1080P,视频播放在三个系统上的切换的时间花费也不会超过3s。这证明我们利用软件定义WiFi 缓存当前播放视频流信息,并在视频播放切换时快速的分发视频大大节省了切换的时间开销。
三、性能对比测试
然后我们进行与其他多屏互动技术对比的实验。我们还是利用之前的6 个不同清晰度的视频文件进行实验。我们将使用支持DLNA 的Sony Z5 手机进行首次视频播放,然后将其切换到Dell 笔记本电脑的Windows 系统上进行播放,针对6 个不同清晰度的视频文件进行6 次实验,每次实验重复切换三次,统计切换时间并取平均值。同样的方式,我们使用iphone6s 手机开始播放,将其切换到Macbook Pro 电脑上,以进行AirPlay 技术的实验。使用安装有Miracast Player APP的Sony Z5 手机开始进行首次视频播放,然后将其切换至Windows 系统上,用来进行针对Miracast 技术的实验。最后同样使用Sony Z5 手机和Dell 笔记本电脑进行本系统的性能测试。通过这样的方式我们可以将现有的多屏互动技术的性能与我们的系统的性能进行对比。
如图7所示,由于进行视频切换时,另外的三种技术需要重新建立切换源设备和切换目标设备的连接,另外源设备需要重新请求视频头信息再分发至目标,并且后续视频流也总是由源设备转发至目标客户端,这些方式都增加了切换时的时间开销。我们的系统在同样的视频清晰度大小下,比其他的几种多屏互动技术在进行视频播放切换时的时间开销平均减少了2s。这充分证明我们的基于软件定义WiFi 的解决方案的正确性和有效性。

Claims (4)

1.一种基于软件定义WiFi的多终端流媒体播放系统,其特征在于,其包括播放客户端、
软件定义WiFi网络和流媒体播放多终端切换应用;其中:
播放客户端,用于向流媒体服务器请求流媒体数据进行播放,同时负责用户的登录;当用户需要将流媒体播放切换到另一个终端进行播放时,它向流媒体播放多终端切换应用发起切换请求,并发送相关的切换状态信息;
软件定义WiFi网络,向播放客户端提供网络通信服务,并且向流媒体播放多终端切换应用提供管理网络资源和服务的可编程接口;
流媒体播放多终端切换应用,维护用户状态信息,将用户与播放客户端进行绑定,建立与用户登录的播放客户端的连接;其根据播放客户端的播放信息获取视频流,在播放的过程中缓存视频头部信息以及用户当前观看部分的视频块,当用户需要将视频切换到其他终端进行播放时,多终端切换应用接受到源设备的播放客户端发起的切换请求后,通知目标设备的播放客户端向流媒体服务器发送播放请求,不等待请求的视频数据到达,即将已缓存的视频头部信息和用户当前观看的视频块发送至目标设备的播放客户端进行播放。
2.根据权利要求1所述的系统,其特征在于,播放客户端包括用户信息维护模块、流媒
体播放器模块、播放与切换请求发送模块和人脸检测和切换请求监听模块四个模块;其中:
用户信息维护模块:用来进行用户的登录和注册,并将用户的登录和注册信息发送给流媒体播放多终端切换应用;
流媒体播放器模块:用来进行流媒体的播放,其支持断点播放;
播放与切换请求发送模块:当用户使用播放客户端观看视频时,此模块发送视频相关信息给流媒体播放多终端切换应用,使得多终端切换应用缓存用户观看视频的视频头和视频数据块;如果当用户发起流媒体播放切换至其他终端请求时,此模块向流媒体播放多终端切换应用发送切换请求,并发送给用户正在观看的视频播放断点位置,多终端切换应用接受到请求后会保存用户状态信息和视频播放的断点位置;
人脸检测和切换请求监听模块:其由人脸检测子模块和切换请求监听子模块组成;
当用户使用携带摄像头的用户登录法人设备进行视频观看时,人脸检测子模块实时的检测当前设备的摄像头中是否有人脸,如果检测到没有人脸,停止当前视频的播放,并向控制器中的流媒体播放多终端切换应用发送切换请求;当用户移动至另一设备处时,另一个设备检测到人脸后向流媒体播放多终端切换应用发送播放请求,此时流媒体播放多终端切换应用会将用户的观看视频信息发送至此设备上,然后将缓存的视频头部信息和视频块发也发送到此设备上,此时这个设备的播放客户端会立即在用户之前观看的位置处开始播放视频;
当用户使用没有摄像头的设备进行观看时,用户在进行流媒体播放切换到其他设备时,源设备先向流媒体播放多终端切换应用发送切换请求,流媒体播放多终端切换应用接收到请求后向目的设备的切换请求监听子模块发送切换消息,并且发送用户当前观看的视频信息及缓存的视频头和视频数据块,目的设备接收到切换消息后会立即进行视频的播放。
3.根据权利要求1所述的系统,其特征在于,流媒体播放多终端切换应用由用户状态维
护模块,播放监听服务模块,切换请求监听服务模块和流媒体数据缓存模块组成;其中:
用户状态维护模块,包括用户登录与注册子模块,用户与客户端绑定子模块以及用户信息存取子模块;所述用户登录与注册子模块用于用户的注册,并在登录时验证用户的用户名和密码是否匹配;所述用户与客户端绑定子模块建立用户与其登录的播放客户端的映射,它会将用户与其登录的播放客户端进行绑定,在用户进行切换时用于寻找目标播放客户端;所述用户信息存取子模块进行用户个人信息及其与播放客户端绑定信息的存取,它会将这些信息存到数据库或者本地文件中;
播放监听服务模块,用于流媒体播放客户端进行流媒体视频播放时接收播放客户端发送的播放视频流信息,并根据信息调用软件定义WiFi控制器提供的API获取WiFi网络中目的地址为流媒体服务器ip地址的所有数据,将拿到的所有数据包进行过滤,获取与播放资源路径相同的数据,最后将获取的数据流交给流媒体缓存模块进行缓存;
切换请求监听服务模块,用于在用户发生切换行为时,接受播放客户端发送的请求切换消息,并根据消息更新用户的状态信息,保存用户观看视频的断点位置;
流媒体数据缓存模块,其先判断用户进行视频播放时的视频是否是未缓存过的新视频,如果是新的视频,那么缓存视频的头部信息;同时不管是否是新视频,都缓存用户当前正在观看的视频数据块;当用户在其他的终端进行切换的时候,将缓存的视频头信息和当前用户正在观看的视频数据块分发至目标播放客户端进行播放。
4.一种用于权利要求1所述的基于软件定义WiFi的多终端流媒体播放系统的方法,其特
征在于,具体步骤如下:
第一步,用户将智能设备连接到软件定义WiFi网络下,在智能设备上打开播放客户端,然后进行注册登录,此时客户端将用户的userName、passwd以及设备的deviceId发送至软件定义WiFi的流媒体播放多终端切换应用中,流媒体播放多终端切换应用验证用户登录信息,并将用户的信息与客户端的deviceId进行绑定,同时将信息存入本地文件中,然后将用户的UUID返回给播放客户端,表明用户已经登录成功;
第二步,用户使用播放客户端向流媒体服务器发送播放请求,开始播放视频,此时播放客户端发送一条播放请求给流媒体播放多终端切换应用中的播放请求监听模块,并带上用户的UUID、播放客户端的deviceId和视频的路径videoPath,流媒体播放多终端切换应用接到请求后将这些信息交给流媒体数据缓存模块进行处理;
第三步,流媒体数据缓存模块接收到播放监听模块的缓存通知后,根据视频路径字段videoPath去调用软件定义WiFi控制器提供的更改路由表文件/etc/config/network和iptables,将目的地址为用户设备IP,源地址为videoPath中IP的数据包进行截获,即截获流媒体服务器发送给用户播放客户端的数据包,并缓存其中的视频头信息和当前的视频块;
第四步,当人脸检测子模块检测到用户位置发生改变或是用户手动将正在观看的视频切换到其他终端进行观看时,播放客户端向控制器中的切换请求监听模块发送切换请求,并携带用户的UUID、当前源设备的deviceId、当前播放视频的断点位置videoPosition和待切换的目标设备newDeviceId;切换请求监听模块接收到请求后首先验证此用户和对应的源设备的deviceId和目标设备的newDeviceId是否绑定过;如果没有绑定则过滤这个请求,如果验证通过则将立即通知目标设备的播放客户端的切换请求监听模块,并携带视频的断点位置信息和视频的videoPath,同时通知流媒体数据缓存模块将缓存的视频头信息和视频块信息发送给目标设备的播放客户端;
第五步,当切换监听模块通知用户需要进行流媒体播放在目标设备进行切换时,它在监听到目标设备向流媒体服务器发送流媒体服务器发送请求后,调用控制器的修改流表的接口,模拟流媒体服务器的回复将缓存的视频头信息和视频块信息发送至目标设备,目标设备接收到视频数据后无需等待即播放用户之前中断位置的视频,并且将后续的视频流直接转发至目标设备。
CN201810856285.7A 2018-07-31 2018-07-31 基于软件定义WiFi的多终端流媒体播放系统和方法 Active CN108924603B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810856285.7A CN108924603B (zh) 2018-07-31 2018-07-31 基于软件定义WiFi的多终端流媒体播放系统和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810856285.7A CN108924603B (zh) 2018-07-31 2018-07-31 基于软件定义WiFi的多终端流媒体播放系统和方法

Publications (2)

Publication Number Publication Date
CN108924603A CN108924603A (zh) 2018-11-30
CN108924603B true CN108924603B (zh) 2020-12-22

Family

ID=64393251

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810856285.7A Active CN108924603B (zh) 2018-07-31 2018-07-31 基于软件定义WiFi的多终端流媒体播放系统和方法

Country Status (1)

Country Link
CN (1) CN108924603B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110225418B (zh) * 2019-05-15 2020-10-27 西安交通大学 一种基于SDN的HTTP视频流QoE路由优化方法
CN111526416A (zh) * 2020-04-17 2020-08-11 腾讯科技(深圳)有限公司 一种视频播放方法、装置、设备及存储介质
CN114258102A (zh) * 2020-09-25 2022-03-29 维沃移动通信有限公司 传输业务数据的方法、装置、终端设备和网络设备
CN114040166B (zh) * 2021-11-11 2023-07-04 浩云科技股份有限公司 一种分布式流媒体分组管理系统、方法、设备及介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101335883A (zh) * 2007-06-29 2008-12-31 国际商业机器公司 在数字视频广播系统中对视频流进行处理的方法和设备
CN101682741A (zh) * 2007-07-02 2010-03-24 松下电器产业株式会社 流式传送服务器和流式传送系统

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030113096A1 (en) * 1997-07-07 2003-06-19 Kabushiki Kaisha Toshiba Multi-screen display system for automatically changing a plurality of simultaneously displayed images
JP4383980B2 (ja) * 2004-07-27 2009-12-16 株式会社東芝 情報再生装置及び情報再生方法
CN103002015A (zh) * 2012-11-13 2013-03-27 广东欧珀移动通信有限公司 近距离音乐共享方法及系统
CN104978337A (zh) * 2014-04-08 2015-10-14 张军 一种基于软件定义网络的分布式视频搜索引擎框架
CN105323628B (zh) * 2014-07-30 2020-12-18 腾讯科技(深圳)有限公司 基于dlna跨屏播放的方法及系统、浏览器端装置和播放装置
CN104202561B (zh) * 2014-08-13 2016-03-30 小米科技有限责任公司 播放流媒体数据的方法及装置
CN106488302B (zh) * 2015-09-02 2021-02-23 哈曼国际工业有限公司 切换音频输出的方法、回放设备及回放系统
CN105338425B (zh) * 2015-10-29 2018-12-14 北京易视云科技有限公司 一种实现多屏间视频无缝切换的系统及方法
CN107071550B (zh) * 2017-04-01 2020-06-26 北京奇艺世纪科技有限公司 一种视频数据共享方法和装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101335883A (zh) * 2007-06-29 2008-12-31 国际商业机器公司 在数字视频广播系统中对视频流进行处理的方法和设备
CN101682741A (zh) * 2007-07-02 2010-03-24 松下电器产业株式会社 流式传送服务器和流式传送系统

Also Published As

Publication number Publication date
CN108924603A (zh) 2018-11-30

Similar Documents

Publication Publication Date Title
CN108924603B (zh) 基于软件定义WiFi的多终端流媒体播放系统和方法
US9648073B2 (en) Streaming control for real-time transport protocol
US9953612B2 (en) Systems and methods for facilitating communication between mobile devices and display devices
US9923827B2 (en) Load balancing and migration of transport connections
EP2858322B1 (en) Method and terminal for sharing media stream
US10368258B2 (en) Interactions among mobile devices in a wireless network
US20150365453A1 (en) Media projection method and device, control terminal and cloud server
WO2021164352A1 (zh) 一种网络直播数据的管理方法以及相关装置
EP3996355B1 (en) Method for transferring media stream and user equipment
US9351328B2 (en) Method for transferring a communication session between devices
CN103139529A (zh) Sip服务器、视频通话设备间的视频通话切换方法
US10636006B2 (en) Methods, devices, and systems for prioritizing mobile network trouble tickets based on customer impact
US11153121B2 (en) Method and system for multipoint access within a mobile network
CN107634934B (zh) 一种可视通信管理方法及装置
WO2020015750A1 (zh) 一种数据共享方法、装置、电子设备及存储介质
WO2013116975A1 (zh) 流媒体播放方法、设备及系统
WO2015180446A1 (zh) 一种多设备联动服务中的连接通道维护系统及方法
US7821943B2 (en) Data transmission
CN104935571B (zh) 一种电视游戏服务端与客户端的交互方法
KR20170102851A (ko) 스트리밍 음악 서비스를 제공하기 위한 장치 및 방법
EP1954001B1 (en) Method for Providing Data Securely Allowing Smooth Switching of Channels
JP5351180B2 (ja) コンテンツをストリーミングするシステム及び方法
CN108307149B (zh) 一种视频代理系统及监控方法
CN116155868A (zh) 电信通讯方法、电子设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right

Effective date of registration: 20190530

Address after: 200433 No. 220, Handan Road, Shanghai, Yangpu District

Applicant after: Fudan University

Applicant after: Cernet Co., Ltd.

Address before: 200433 No. 220, Handan Road, Shanghai, Yangpu District

Applicant before: Fudan University

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant