CN105357545A - 基于流媒体方式的无线同屏方法及装置 - Google Patents

基于流媒体方式的无线同屏方法及装置 Download PDF

Info

Publication number
CN105357545A
CN105357545A CN201510738053.8A CN201510738053A CN105357545A CN 105357545 A CN105357545 A CN 105357545A CN 201510738053 A CN201510738053 A CN 201510738053A CN 105357545 A CN105357545 A CN 105357545A
Authority
CN
China
Prior art keywords
video
data
response data
request instruction
client
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.)
Pending
Application number
CN201510738053.8A
Other languages
English (en)
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.)
Beijing Img Technology Co Ltd
Original Assignee
Beijing Img Technology Co Ltd
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 Beijing Img Technology Co Ltd filed Critical Beijing Img Technology Co Ltd
Priority to CN201510738053.8A priority Critical patent/CN105357545A/zh
Publication of CN105357545A publication Critical patent/CN105357545A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/643Communication protocols
    • H04N21/6437Real-time Transport Protocol [RTP]
    • 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/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234309Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4 or from Quicktime to Realvideo
    • 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/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/4302Content synchronisation processes, e.g. decoder synchronisation
    • H04N21/4307Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen
    • 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/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • H04N21/440218Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/647Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
    • H04N21/64723Monitoring of network processes or resources, e.g. monitoring of network load
    • H04N21/64738Monitoring network characteristics, e.g. bandwidth, congestion level

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本发明提出了一种基于流媒体方式的无线同屏方法及装置,该方法包括:客户端接收用户输入的同屏请求指令,并对同屏请求指令进行编码,将编码后的同屏请求指令通过互联网发送至服务器;服务器对接收到的编码后的同屏请求指令进行解码,以获取同屏请求指令对应的响应数据描述,启动对同屏请求指令的响应;服务器根据响应数据描述捕获当前桌面的视频帧数据,对当前桌面的视频帧数据进行编码,生成视频响应数据,将视频响应数据通过互联网发送至客户端;客户端对接收到的视频响应数据进行解码,并对解码后的视频响应数据进行渲染播放,以实现客户端与服务器的当前桌面的同屏显示。本发明具有可扩展性、便携性和可配置的特点。

Description

基于流媒体方式的无线同屏方法及装置
技术领域
本发明涉及流媒体技术领域,特别涉及一种基于流媒体方式的无线同屏方法及装置。
背景技术
随着电脑、手机、平板电脑等多媒体终端设备的普及,同屏共享技术被越来越多的使用。同屏共享技术是将一个多媒体设备播放的视频数据发送至其他一个或多个多媒体设备,多媒体设备接收端在接收到该数据后对其解码并播放,从而实现多个设备的实时屏幕画面同步显示。例如,在电脑播放视频的同时,手机、平板电脑等设备也可同步播放。
但是,现有的同屏共享技术存在以下问题:
(1)设备上的编程接口少,不便于扩展;
(2)现有的同屏设备仅支持电脑,不符合当前移动终端越来越普遍应用的趋势,不便于携带。
发明内容
本发明的目的旨在至少解决所述技术缺陷之一。
为此,本发明的目的在于提出一种基于流媒体方式的无线同屏方法及装置,具有可扩展性、便携性和可配置的特点。
为了实现上述目的,本发明一方面的实施例提供一种基于流媒体方式的无线同屏方法,包括如下步骤:
步骤S1,客户端接收用户输入的同屏请求指令,并对所述同屏请求指令进行编码,将编码后的同屏请求指令通过互联网发送至服务器;
步骤S2,所述服务器对接收到的所述编码后的同屏请求指令进行解码,以获取所述同屏请求指令对应的响应数据描述,启动对所述同屏请求指令的响应;
步骤S3,所述服务器根据所述响应数据描述捕获当前桌面的视频帧数据,对所述当前桌面的视频帧数据进行编码,生成视频响应数据,将所述视频响应数据通过互联网发送至所述客户端;
步骤S4,所述客户端对接收到的视频响应数据进行解码,并对解码后的视频响应数据进行渲染播放,以实现所述客户端与所述服务器的当前桌面的同屏显示。
进一步,所述同屏请求指令包括:所述客户端的名称和IP地址、所述响应数据描述,其中,所述响应数据描述包括数据的位置、格式和长度。
进一步,在所述步骤S3中,所述服务器根据所述响应数据描述捕获当前桌面的全屏幕或部分屏幕的视频帧数据,将每个捕获的视频帧及对应的时间戳存储至视频缓存区中,并在捕获完成后,从所述视频缓存区中提取全部视频帧及对应的时间戳,作为所述当前桌面的视频帧数据,对所述当前桌面的视频帧数据进行采用硬编码方式进行编码处理,生成视频响应数据。
进一步,在所述步骤S4中,所述客户端对所述对接收到的硬编码后的视频响应数据进行解码,采用SDL技术对解码后的视频响应数据进行渲染播放。
进一步,所述客户端的操作系统为Windows系统、Android系统或IOS系统,其中,所述客户端的数量为一个或多个。
本发明实施例还提出一种基于流媒体方式的无线同屏装置,包括:至少一个客户端和服务器,其中,每个所述客户端与所述服务器无线通信,所述客户端用于接收用户输入的同屏请求指令,并对所述同屏请求指令进行编码,将编码后的同屏请求指令通过互联网发送至所述服务器,所述服务器用于对接收到的所述编码后的同屏请求指令进行解码,以获取所述同屏请求指令对应的响应数据描述,启动对所述同屏请求指令的响应,根据所述响应数据描述捕获当前桌面的视频帧数据,对所述当前桌面的视频帧数据进行编码,生成视频响应数据,将所述视频响应数据通过互联网发送至所述客户端;所述客户端还用于对接收到的视频响应数据进行解码,并对解码后的视频响应数据进行渲染播放,以实现所述客户端与所述服务器的当前桌面的同屏显示。
进一步,所述同屏请求指令包括:所述客户端的名称和IP地址、所述响应数据描述,其中,所述响应数据描述包括数据的位置、格式和长度。
进一步,所述服务器根据所述响应数据描述捕获当前桌面的全屏幕或部分屏幕的视频帧数据,将每个捕获的视频帧及对应的时间戳存储至视频缓存区中,并在捕获完成后,从所述视频缓存区中提取全部视频帧及对应的时间戳,作为所述当前桌面的视频帧数据,对所述当前桌面的视频帧数据进行采用硬编码方式进行编码处理,生成视频响应数据。
进一步,所述客户端对所述对接收到的硬编码后的视频响应数据进行解码,采用SDL技术对解码后的视频响应数据进行渲染播放。
进一步,每个所述客户端的操作系统为Windows系统、Android系统或IOS系统。
根据本发明实施例的基于流媒体方式的无线同屏方法及装置,具有以下有益效果:
(1)可扩展性:本发明采用模块化设计,既依赖于平台的组件,如音频和视频捕获和独立于平台的组件,例如编解码器和网络协议可以很容易地修改或替换。开发人员应该能够跟随本发明模块的编程接口来扩展该系统的功能。它不仅限于游戏,并且可以使用相同的系统结构来实现任何实时多媒体流式传输的应用程序,例如现场浇铸。
(2)便携性:除了台式机,移动设备正在成为最有潜力的云计算服务,无线网络客户之一正变得越来越受欢迎。出于这个原因,本发明在设计和实施本发明时,要保持便携性的原则。目前,该服务器支持Windows和Linux,而客户端支持Windows,Linux和OSX.新的平台,可以很容易地包括更换平台相关的组件本发明。除了易于更换模块,通过本发明利用了外部组件是高度可移植为好。
(3)可配置性:系统研究可以进行实验的实时多媒体流应用与不同的系统参数。大量内置的音频和视频编解码器通过本发明支持。此外,本发明导出所有可用的配置给用户,以便它能够尝试通过简单地编辑基于文本的配置文件,并在系统装配到定制的使用场景的参数的最佳组合。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1为根据本发明实施例的基于流媒体方式的无线同屏方法的流程图;
图2为根据本发明实施例的基于流媒体方式的无线同屏方法的系统架构图;
图3为根据本发明实施例的客户端的数据流程图;
图4为根据本发明实施例的服务器的数据流程图;
图5为根据本发明实施例的无线同屏的效果图;
图6为根据本发明实施例的视频渲染播放中RTP包的传输示意图;
图7为根据本发明实施例的音频信号的帧结构图;
图8为根据本发明实施例的帧传输过程的示意图;
图9为根据本发明实施例的基于流媒体方式的无线同屏装置的结构图。
具体实施方式
下面详细描述本发明的实施例,实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
如图1所示,本发明实施例的基于流媒体方式的无线同屏方法,包括如下步骤:
在对本步骤进行详细说明之前,首先对本发明采用流媒体方式进行说明。
如图2所示,本发明采用WirelessDisplay(无线显示)技术,由服务器(Server)和客户端(Client)两大部分组成,通过数据流(DataFlow)和控制流(ControlFlow)两大流来实行数据的传递和控制。技术上主要采用SDL(SimpleDirectMediaLayer)开发库实现,数据流主要采用UDP协议,控制流采用TCP协议。
其中,数据流(DataFlow)主要是指由服务器(Server)流向客户端(Client)的视频流。控制流(ControlFlow)主要是指由客户端(Client)向服务器(Server)发送的用户操作流数据。本发明中涉及的服务器与客户端交互的数据均涵盖在上述数据流和控制流中。
目前,无论在服务器端还是在客户端,都会包含一些共同的模块,这些模块会依赖于一些外部库,比如使用libavcodec/libavformat,live555,SDL库。libavcodec/libavformat库属于FFMPEG的项目,提供了一个视频流封装录制,转换等功能。此外,它也用于在服务器上处理的RTP协议。live555的库是一套开放的标准协议(RTSP,RTP,RTCP,SIP)的多媒体数据流的C++库。使用这个库来处理RTSP/RTP协议。媒体层(SDL)库是一个跨平台的库,旨在提供低级别的访问,通过OpenGL和2D视频帧缓冲视频、键盘、鼠标、手柄、3D硬件等事件。上述所有的库需要在本发明中移植到相关的平台上,包括Windows,Android。
步骤S1,客户端(Client)接收用户输入的同屏请求指令,并对同屏请求指令进行编码,将编码后的同屏请求指令通过互联网发送至服务器(Server)。在本发明的一个实施例中,同屏请求指令包括:客户端的名称和IP地址、响应数据描述。其中,响应数据描述包括数据的位置、格式和长度。
需要说明的是,步骤S1对应图2中的UserInputs(事件捕获)和EncodeInputEvents(事件编码)。
UserInputs(事件捕获):
参考图3,客户端通过鼠标、键盘获取用户输入的同屏请求指令(receiveinputevents),使用自定义的协议进行封装。在客户端上有两个主要任务:一是客户端的输入事件,二是将捕获的事件发送到服务器。当一输入事件被捕获时,事件结构被直接发送给服务器。然而,客户端仍具有告诉服务器的格式和所捕获的输入事件的长度。鼠标键盘等输入处理模块为一个单独的线程。与视频帧的传输不同,输入事件采用TCP协议。客户端的输入处理模块的实施本质上是依赖于平台的,因为输入事件结构和操作系统的库依赖相关。
EncodeInputEvents(事件编码):
对同屏请求指令进行编码,将编码后的同屏请求指令通过互联网发送至服务器(sendinputevents)。
目前,WirelessDisplay的支持机制跨平台SDL事件捕获。在Windows上,提供了更先进的输入捕捉机制,涵盖特殊的输入机制和设备。具体来说,使用SetWindowsHookEx,WH_KEYBOARD_LL和WH_MOUSE_LL函数钩子,拦截低级别的键盘和鼠标事件。通过这样做,可以完美地模仿客户端的事件在服务器上重现。
步骤S2,服务器对接收到的编码后的同屏请求指令进行解码,以获取同屏请求指令对应的响应数据描述,启动对该同屏请求指令的响应。
需要说明的是,步骤S2对应图2中的DecodeInputEvents(事件解析)和ReplayUserInputs(事件响应)。
DecodeInputEvents(事件解析):
服务器要用于解析客户端传递过来的鼠标、键盘等事件,并将解析的结果传递到下一模块。具体地,服务器对接收到的编码后的同屏请求指令进行解码,以获取同屏请求指令对应的响应数据描述。
ReplayUserInputs(事件响应):
服务器将解析后的事件正确的描画出来,形成事件响应,即启动对同屏请求指令的响应。
步骤S3,服务器根据响应数据描述捕获当前桌面的视频帧数据,对当前桌面的视频帧数据进行编码,生成视频响应数据,并将视频响应数据通过互联网发送至客户端。
需要说明的是,步骤S3对应图2中的VideoCapturer(桌面捕获)、VideoEncoder(视频编码)。
VideoCapturer(桌面捕获):
服务器捕获当前windows桌面帧,产生裸数据。通过设计有一个Videosource线程,实时采集桌面裸数据,可以在指定的频率下捕获全屏幕或部分区域的数据,同时支持扩展屏等功能。
WirelessDisplay帧率为每秒30帧,捕获的时间间隔为1/30秒(≈33.3毫秒)。通过使用高分计时器,可以保正屏幕捕获约等于所需的帧速率。
具体地,服务器可以根据响应数据描述捕获当前桌面的全屏幕或部分屏幕的视频帧数据,然后将每个捕获的视频帧及对应的时间戳存储至视频缓存区(VideoBuffer)中。参考图4,每个捕获帧的时间戳序列号从零开始,获帧及其时间戳被存储在一个VideoBuffer中。本步骤可以在Windows上实现,基于GDI技术捕获桌面的裸数据,支持RGBA,BGRA,YUV420P帧的像素格式,具有很高的可扩展性。
在捕获完成后,服务器从视频缓存区中提取全部视频帧及对应的时间戳,作为当前桌面的视频帧数据,对当前桌面的视频帧数据进行采用硬编码方式进行编码处理(VideoEncoder),生成视频响应数据。
VideoEncoder(视频编码):
服务器压缩桌面捕获的裸数据,通过H264编码,形成下一步要用的视频响应数据。
在本发明的一个实施例中,视频编码支持软编和硬编两种模式。
(1)软编使用FFMPEG项目中的libavcodec库,libavcodec库支持各种音频和视频编解码,完全用C语言编写。因此,WirelessDisplay可以使用libavcodec来支持任何编解码,使用libavcodec库也保证了视频编码的高可扩展性。
(2)硬编使用intelmediasdk库。
本发明编码过程中,默认码流:5Mbps;视频编码采用X264技术,支持Base、Main、HgihtProfile。
本发明的视频编码采用硬编技术,所以会充分利用GPU来编码,以减少对CPU的依赖,如果采用软编技术,通过优化的高效的编码参数,来达到质量要求,提供高品质画画。
图8为根据本发明实施例的帧传输过程的示意图。
延迟称为RD,其中的RD分为三个组成部分:
1)处理延迟(PD):是用于服务器所需要的时间,以接收和处理一个客户端的命令,并进行编码和发送到该客户端对应的帧。(t2-t1>t3-t0-ND)
2)播出延迟(OD):是客户端关于一帧H264数据的解码,渲染,显示,所需的时间。(t4-t3)
3)网络延迟(ND):是服务器和客户端之间的数据交换所需的时间。ND也被称为往返时间(RTT)。
因此,RD=PD+OD+ND。
PD:由于本发明采用硬编码技术,所以性能会大大提高,编码时间可以大大缩短,即使采用软编技术,通过优化后的编码参数等技术,也可以达到技术指标的30ms左右。
下面对一帧消耗时间进行说明:
T(捕获):一帧桌面数据捕获消耗的时间;T(转换):一帧数据颜色转换消耗的时间;T(编码):一帧数据编码消耗的时间,则得到:一帧消耗时间=T(捕获)+T(转换)+T(编码);
在本发明的一个实施例中,一帧消耗时间<33ms。
ND:因为在局域网内并且使用wifi-direct技术,完全可以达到指标。
OD:播放延迟技术:分为屏幕渲染,帧间缓存,视频解码三部分,完全可以控制在16-18ms以内。
本发明可以提供高品质的视频:FullHD1080,实现30帧/秒的高帧率,低延迟达到<=100ms。并且支持扩展屏和wifidirect。
服务器进一步将编码后的视频响应舒服发送至客户端。其中,服务器和客户端之间的数据流传输通过标准RTSP、RTCP、RTP协议,服务器采用FFMPEG技术,客户端采用live555技术。live555的库是用C++来编写设计的。利用live555框架派生成RTSPClient和的MediaSink类,注册回调函数来处理网络事件。一旦RTSP客户端成功地建立了视频会话,创建一个接收器类处理从服务器传递过来的视频帧,接收器类继承于MediaSink类,并注册continuePlaying这个虚函数。continuePlaying功能从服务器接收编码帧。当一帧被成功接收,则该函数将触发一个回调函数,将放在缓冲区中,以此循环。
配置服务器的编码位速率为3Mbps。对于一个公平的比较,所有游戏都流在720p的分辨率。而本发明配置GamingAnywhere和OnLive的流在50FPS,StreamMyGame仅支持流以25fps。本发明设计的实验,以评估来自两个关键方面三个游戏系统:响应和视频质量。本发明也进行实验,以量化发生的不同的云游戏系统的网络负载。
步骤S4,客户端对接收到的视频响应数据进行解码,并对解码后的视频响应数据进行渲染播放,以实现客户端与服务器的当前桌面的同屏显示。
需要说明的是,步骤S4对应图2中的VideoDecoder(视频解码)和VideoPlayer(视频渲染播放)。
在本发明的一个实施例中,客户端对接收到的硬编码后的视频响应数据进行解码,采用SDL技术对解码后的视频响应数据进行渲染播放。
VideoDecoder(视频解码):
客户端对接收到的经云服务器编码后的H264帧数据进行解码,生成YUV数据。该视频解码支持软解和硬解两种模式,是上述步骤S3编码的逆向过程。
为提供在延迟方面更好的体验,本步骤中使用的视频解码器目前没有在所有缓冲的视频帧。换句话说,视频缓存器元件被简单地用于缓冲与该最新的视频帧相关联的分组。因为LIVE555提供了分组的有效载荷而不的RTP报头,检测是否连续分组对应于基于每个分组中的标记比特相同的视频帧。
如果一个新接收的分组具有零标记比特(指示它不是最后一个分组关联与视频帧),它会被追加到缓冲;否则,视频解码器将解码的基础上的所有数据包当前在缓冲器中的视频帧,清空缓冲器,然后将新到达的数据包缓冲区中。虽然这种零缓冲策略可能导致不一致的视频播放速率时网络延迟是不稳定,但是可以减少输入-反应潜伏期由于视频播放到最低水平,这样的设计折衷可以产生更好的整体用户使用体验。
处理音频帧的方式是从视频帧的其处理相同。一旦接收音频帧,RTSP客户端线程不解码该帧,而是简单地放置在一个共享缓冲器(实现为FIFO队列)中的所有接收到的帧。这是因为SDL的音频呈现使用一种按需方法实施。即,在SDL播放音频,一个回调函数需要进行注册,它被称为SDL时需要播放的音频帧。存储器地址填补音频帧和所需的音频帧的数量n作为参数传递给回调函数。回调函数检索从共享缓冲器中的音频数据包,对数据包进行解码,并填充该解码的音频帧到指定的存储器地址米。
需要请注意的是,回调函数必须填写恰好n音频帧到指定的内存地址的要求。如果不是,则该函数必须等待,直到有足够的帧。本发明实行轮候机制,使用互斥锁(互斥)足够的帧。如果RTSP客户端线程接收到新的音频帧,将追加的帧缓冲,并触发回调函数读取多个帧。
音频帧捕获是依赖于平台,本发明使用ALSA库和Windows音频会话API(WASAPI)分别捕捉声音在Linux和Windows。音频源模块定期捕获来自音频设备(通常默认波形输出装置)的音频帧(也称为音频数据包)。所捕获的帧由所述音频源模块复制到与编码器共享的缓冲器。编码器将音频帧生成新的帧进行编码,每次惊醒。为了简化GamingAnywhere的编程接口,本发明需要的音频帧的每个样本被存储为一个32位带符号整数。
当没有应用产生任何声音,音频读取功能可能会返回以下:1)音频帧用全零;2)错误代码,表明没有帧是当前可用的。
如果第二情况下,音频源模块需要仍然发出无声的音频帧到编码器的编码器,因为通常期望连续音频帧不管可听声音是否存在与否。因此,音频源模块必须发射无声的音频帧在第二种情况下,以解决该帧不连续性的问题。由于Windows游戏使用WASAPI,其中患有帧不连续性问题常常播放音频。WASAPI基于音频源模块已经克服了问题,通过仔细推定静音期的持续时间,并产生相应的沉默帧,如图7所示。从图7中可以看出,沉默帧的长度最好应T1-T0;然而,估计的静默持续时间可能会稍微更长或更短如果定时器精度不充分高的
VideoPlayer(视频渲染播放):
客户端对解码后的视频响应数据进行渲染播放,采用FFMPEG与SDL技术。通过SDL技术,实现视频播放。
参考图6,本发明设计如下以解决视频播放的延迟:
(1)一个H264的Frame会分包成多个RTP包;
(2)一个Frame的RTP包会分配一个序号从1…n;
(3)30KB的包在50Mbps的网络带宽中传输,缓存时间=30KB*8bits/50Mbps=~5ms。
优选的,客户端的操作系统为Windows系统、Android系统或IOS系统。其中,客户端的数量为一个或多个。图5为根据本发明实施例的无线同屏的效果图。如图5所示,一个服务器对应两个客户端,其中客户端1为Windows系统,客户端2为Android系统。
如图9所示,本发明实施例的基于流媒体方式的无线同屏装置,包括:至少一个客户端1和服务器2。其中,每个客户端1与均服务器2无线通信。优选的,每个客户端1的操作系统为Windows系统、Android系统或IOS系统。
客户端1用于接收用户输入的同屏请求指令,并对同屏请求指令进行编码,将编码后的同屏请求指令通过互联网发送至服务器2。在本发明的一个实施例中,同屏请求指令包括:客户端1的名称和IP地址、响应数据描述。其中,响应数据描述包括数据的位置、格式和长度。
服务器2用于对接收到的编码后的同屏请求指令进行解码,以获取同屏请求指令对应的响应数据描述,然后启动对同屏请求指令的响应。
服务器2可以根据响应数据描述捕获当前桌面的视频帧数据,对当前桌面的视频帧数据进行编码,生成视频响应数据,将视频响应数据通过互联网发送至客户端1。
具体地,服务器2根据响应数据描述捕获当前桌面的全屏幕或部分屏幕的视频帧数据,将每个捕获的视频帧及对应的时间戳存储至视频缓存区中,并在捕获完成后,从视频缓存区中提取全部视频帧及对应的时间戳,作为当前桌面的视频帧数据。服务器2对当前桌面的视频帧数据进行采用硬编码方式进行编码处理,生成视频响应数据。
客户端1还用于对接收到的视频响应数据进行解码,并对解码后的视频响应数据进行渲染播放,以实现客户端1与服务器2的当前桌面的同屏显示。
具体地,客户端1对对接收到的硬编码后的视频响应数据进行解码,采用SDL技术对解码后的视频响应数据进行渲染播放。
根据本发明实施例的基于流媒体方式的无线同屏方法及装置,具有以下有益效果:
(1)可扩展性:本发明采用模块化设计,既依赖于平台的组件,如音频和视频捕获和独立于平台的组件,例如编解码器和网络协议可以很容易地修改或替换。开发人员应该能够跟随本发明模块的编程接口来扩展该系统的功能。它不仅限于游戏,并且可以使用相同的系统结构来实现任何实时多媒体流式传输的应用程序,例如现场浇铸。
(2)便携性:除了台式机,移动设备正在成为最有潜力的云计算服务,无线网络客户之一正变得越来越受欢迎。出于这个原因,本发明在设计和实施本发明时,要保持便携性的原则。目前,该服务器支持Windows和Linux,而客户端支持Windows,Linux和OSX.新的平台,可以很容易地包括更换平台相关的组件本发明。除了易于更换模块,通过本发明利用了外部组件是高度可移植为好。
(3)可配置性:系统研究可以进行实验的实时多媒体流应用与不同的系统参数。大量内置的音频和视频编解码器通过本发明支持。此外,本发明导出所有可用的配置给用户,以便它能够尝试通过简单地编辑基于文本的配置文件,并在系统装配到定制的使用场景的参数的最佳组合。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在不脱离本发明的原理和宗旨的情况下在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。本发明的范围由所附权利要求极其等同限定。

Claims (10)

1.一种基于流媒体方式的无线同屏方法,其特征在于,包括如下步骤:
步骤S1,客户端接收用户输入的同屏请求指令,并对所述同屏请求指令进行编码,将编码后的同屏请求指令通过互联网发送至服务器;
步骤S2,所述服务器对接收到的所述编码后的同屏请求指令进行解码,以获取所述同屏请求指令对应的响应数据描述,启动对所述同屏请求指令的响应;
步骤S3,所述服务器根据所述响应数据描述捕获当前桌面的视频帧数据,对所述当前桌面的视频帧数据进行编码,生成视频响应数据,将所述视频响应数据通过互联网发送至所述客户端;
步骤S4,所述客户端对接收到的视频响应数据进行解码,并对解码后的视频响应数据进行渲染播放,以实现所述客户端与所述服务器的当前桌面的同屏显示。
2.如权利要求1所述的基于流媒体方式的无线同屏方法,其特征在于,所述同屏请求指令包括:所述客户端的名称和IP地址、所述响应数据描述,其中,所述响应数据描述包括数据的位置、格式和长度。
3.如权利要求1所述的基于流媒体方式的无线同屏方法,其特征在于,在所述步骤S3中,所述服务器根据所述响应数据描述捕获当前桌面的全屏幕或部分屏幕的视频帧数据,将每个捕获的视频帧及对应的时间戳存储至视频缓存区中,并在捕获完成后,从所述视频缓存区中提取全部视频帧及对应的时间戳,作为所述当前桌面的视频帧数据,对所述当前桌面的视频帧数据进行采用硬编码方式进行编码处理,生成视频响应数据。
4.如权利要求3所述的基于流媒体方式的无线同屏方法,其特征在于,在所述步骤S4中,所述客户端对所述对接收到的硬编码后的视频响应数据进行解码,采用SDL技术对解码后的视频响应数据进行渲染播放。
5.如权利要求1所述的基于流媒体方式的无线同屏方法,其特征在于,所述客户端的操作系统为Windows系统、Android系统或IOS系统,其中,所述客户端的数量为一个或多个。
6.一种基于流媒体方式的无线同屏装置,其特征在于,包括:至少一个客户端和服务器,其中,每个所述客户端与所述服务器无线通信,
所述客户端用于接收用户输入的同屏请求指令,并对所述同屏请求指令进行编码,将编码后的同屏请求指令通过互联网发送至所述服务器,
所述服务器用于对接收到的所述编码后的同屏请求指令进行解码,以获取所述同屏请求指令对应的响应数据描述,启动对所述同屏请求指令的响应,根据所述响应数据描述捕获当前桌面的视频帧数据,对所述当前桌面的视频帧数据进行编码,生成视频响应数据,将所述视频响应数据通过互联网发送至所述客户端;
所述客户端还用于对接收到的视频响应数据进行解码,并对解码后的视频响应数据进行渲染播放,以实现所述客户端与所述服务器的当前桌面的同屏显示。
7.如权利要求6所述的基于流媒体方式的无线同屏装置,其特征在于,所述同屏请求指令包括:所述客户端的名称和IP地址、所述响应数据描述,其中,所述响应数据描述包括数据的位置、格式和长度。
8.如权利要求6所述的基于流媒体方式的无线同屏装置,其特征在于,所述服务器根据所述响应数据描述捕获当前桌面的全屏幕或部分屏幕的视频帧数据,将每个捕获的视频帧及对应的时间戳存储至视频缓存区中,并在捕获完成后,从所述视频缓存区中提取全部视频帧及对应的时间戳,作为所述当前桌面的视频帧数据,对所述当前桌面的视频帧数据进行采用硬编码方式进行编码处理,生成视频响应数据。
9.如权利要求8所述的基于流媒体方式的无线同屏装置,其特征在于,所述客户端对所述对接收到的硬编码后的视频响应数据进行解码,采用SDL技术对解码后的视频响应数据进行渲染播放。
10.如权利要求6所述的基于流媒体方式的无线同屏装置,其特征在于,每个所述客户端的操作系统为Windows系统、Android系统或IOS系统。
CN201510738053.8A 2015-11-03 2015-11-03 基于流媒体方式的无线同屏方法及装置 Pending CN105357545A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510738053.8A CN105357545A (zh) 2015-11-03 2015-11-03 基于流媒体方式的无线同屏方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510738053.8A CN105357545A (zh) 2015-11-03 2015-11-03 基于流媒体方式的无线同屏方法及装置

Publications (1)

Publication Number Publication Date
CN105357545A true CN105357545A (zh) 2016-02-24

Family

ID=55333384

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510738053.8A Pending CN105357545A (zh) 2015-11-03 2015-11-03 基于流媒体方式的无线同屏方法及装置

Country Status (1)

Country Link
CN (1) CN105357545A (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106559690A (zh) * 2016-11-15 2017-04-05 武汉斗鱼网络科技有限公司 一种智能电视上基于组播实现直播投屏的方法及系统
CN107396172A (zh) * 2017-08-29 2017-11-24 四川长虹电器股份有限公司 低延迟投屏的方法
CN109600563A (zh) * 2018-08-01 2019-04-09 北京微播视界科技有限公司 用于确定时间戳的方法和装置
CN110730335A (zh) * 2019-11-14 2020-01-24 深圳市高巨创新科技开发有限公司 无人机视频实时预览方法及其系统
CN112423100A (zh) * 2020-10-26 2021-02-26 深圳市瑞驰信息技术有限公司 基于html5的web音视频自定义渲染方法
CN113176868A (zh) * 2021-03-16 2021-07-27 青岛小鸟看看科技有限公司 智能设备的一拖多系统及方法
WO2022134928A1 (zh) * 2020-12-22 2022-06-30 中兴通讯股份有限公司 云桌面共享到会议电视系统的方法、云桌面终端及云桌面

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101883097A (zh) * 2010-06-03 2010-11-10 青岛海信宽带多媒体技术有限公司 服务器设备共享客户端设备屏幕的实现方法及装置
CN101977324A (zh) * 2010-11-09 2011-02-16 青岛海信宽带多媒体技术有限公司 一种实现屏幕共享的方法
CN102457544A (zh) * 2010-10-26 2012-05-16 深圳市誉融科技有限公司 基于互联网的屏幕共享系统中用于采集屏幕图像的方法和系统
CN102883135A (zh) * 2012-11-01 2013-01-16 成都飞视美视频技术有限公司 屏幕共享及控制方法
US20140289423A1 (en) * 2013-03-25 2014-09-25 Samsung Electronics Co., Ltd. Method and apparatus for improving quality of experience in sharing screen among devices, and recording medium thereof
CN104836852A (zh) * 2015-04-22 2015-08-12 深圳市邦彦信息技术有限公司 一种多联屏桌面共享的方法及系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101883097A (zh) * 2010-06-03 2010-11-10 青岛海信宽带多媒体技术有限公司 服务器设备共享客户端设备屏幕的实现方法及装置
CN102457544A (zh) * 2010-10-26 2012-05-16 深圳市誉融科技有限公司 基于互联网的屏幕共享系统中用于采集屏幕图像的方法和系统
CN101977324A (zh) * 2010-11-09 2011-02-16 青岛海信宽带多媒体技术有限公司 一种实现屏幕共享的方法
CN102883135A (zh) * 2012-11-01 2013-01-16 成都飞视美视频技术有限公司 屏幕共享及控制方法
US20140289423A1 (en) * 2013-03-25 2014-09-25 Samsung Electronics Co., Ltd. Method and apparatus for improving quality of experience in sharing screen among devices, and recording medium thereof
CN104836852A (zh) * 2015-04-22 2015-08-12 深圳市邦彦信息技术有限公司 一种多联屏桌面共享的方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
CHUN-YING HUANG ET AL.: "GamingAnywhere: An Open Cloud Gaming System", 《PROCEEDINGS OF MMSYS’13》 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106559690A (zh) * 2016-11-15 2017-04-05 武汉斗鱼网络科技有限公司 一种智能电视上基于组播实现直播投屏的方法及系统
CN107396172A (zh) * 2017-08-29 2017-11-24 四川长虹电器股份有限公司 低延迟投屏的方法
CN109600563A (zh) * 2018-08-01 2019-04-09 北京微播视界科技有限公司 用于确定时间戳的方法和装置
CN110730335A (zh) * 2019-11-14 2020-01-24 深圳市高巨创新科技开发有限公司 无人机视频实时预览方法及其系统
CN112423100A (zh) * 2020-10-26 2021-02-26 深圳市瑞驰信息技术有限公司 基于html5的web音视频自定义渲染方法
WO2022134928A1 (zh) * 2020-12-22 2022-06-30 中兴通讯股份有限公司 云桌面共享到会议电视系统的方法、云桌面终端及云桌面
CN113176868A (zh) * 2021-03-16 2021-07-27 青岛小鸟看看科技有限公司 智能设备的一拖多系统及方法
CN113176868B (zh) * 2021-03-16 2022-11-15 青岛小鸟看看科技有限公司 智能设备的一拖多系统及方法

Similar Documents

Publication Publication Date Title
CN105357545A (zh) 基于流媒体方式的无线同屏方法及装置
JP6342457B2 (ja) コード化ビデオデータのネットワークストリーミング
JP5788101B2 (ja) メディアデータのネットワークストリーミング
US9973345B2 (en) Calculating and signaling segment availability times for segments of media data
CN113423018A (zh) 一种游戏数据处理方法、装置及存储介质
US20110099594A1 (en) Streaming encoded video data
US8127040B2 (en) Signaling buffer parameters indicative of receiver buffer architecture
CN107005729A (zh) 用于多媒体和文件传输的传输接口
CN105900445B (zh) 用于动态自适应流式传输的稳健实况操作的方法和装置
CN103329521A (zh) 用于暂停视频流传送内容的方法、设备和计算机程序产品
CN110740380A (zh) 视频处理方法和装置、存储介质及电子装置
CN108282685A (zh) 一种音视频同步的方法及监控系统
KR20150131175A (ko) Http를 통한 동적 적응형 스트리밍에서 미디어 세그먼트들의 손실 존재시의 회복력
CN107079132B (zh) 在视频电话中的端口重配置之后馈送经帧内译码的视频帧
CN113573003A (zh) 一种基于弱网的音视频实时通信方法、装置以及设备
KR20180031673A (ko) 영상 통화에서의 디스플레이 디바이스들의 스위칭
US20140321556A1 (en) Reducing amount of data in video encoding
CN114554277B (zh) 多媒体的处理方法、装置、服务器及计算机可读存储介质
KR102349451B1 (ko) 멀티미디어의 전송 또는 수신 방법 및 그 장치
CN113316013A (zh) 一种视频投屏方法及系统
Tabari et al. Low latency live video streaming on android devices using web-socket
Papadaki et al. Mobistream: Live multimedia streaming in mobile devices
Zhuo et al. Wireless media streaming system over CDMA networks
CN115712469A (zh) 数据共享方法及装置
Wang et al. Implementation of Mobile Streaming Media Player Based on BREW

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20160224

RJ01 Rejection of invention patent application after publication