CN104837048A - 一种屏幕镜像实现方法和系统 - Google Patents

一种屏幕镜像实现方法和系统 Download PDF

Info

Publication number
CN104837048A
CN104837048A CN201510232436.8A CN201510232436A CN104837048A CN 104837048 A CN104837048 A CN 104837048A CN 201510232436 A CN201510232436 A CN 201510232436A CN 104837048 A CN104837048 A CN 104837048A
Authority
CN
China
Prior art keywords
information
video file
mirror image
playing progress
progress rate
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
CN201510232436.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.)
Fei Tu Video Signal Co Ltd Of Shenzhen
Original Assignee
Fei Tu Video Signal Co Ltd Of Shenzhen
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 Fei Tu Video Signal Co Ltd Of Shenzhen filed Critical Fei Tu Video Signal Co Ltd Of Shenzhen
Priority to CN201510232436.8A priority Critical patent/CN104837048A/zh
Publication of CN104837048A publication Critical patent/CN104837048A/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/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
    • 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/443OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
    • H04N21/4431OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB characterized by the use of Application Program Interface [API] libraries
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8455Structuring of content, e.g. decomposing content into time segments involving pointers to the content, e.g. pointers to the I-frames of the video stream

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Library & Information Science (AREA)
  • Software Systems (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本发明公开了一种屏幕镜像实现方法和系统,通过播放路径信息查找视频文件,并根据播放进度信息和预设的时间提前量,对视频文件进行读取,以将视频文件缓存至镜像端,并进一步地通过所述镜像端对所述静态视窗进行显示,同时根据所述位置信息、所述播放状态信息和所述播放进度信息,在所述镜像端中对所述视频文件进行同步播放。本发明实施例通过将视频文件直接发送到镜像端进行播放,保证了画面的清晰度和完整性。通过预设的时间提前量,将视频文件预先缓存至镜像端,降低了对实时性的要求。根据位置信息、播放状态信息和播放进度信息在镜像端中对视频文件进行同步播放,保证了镜像端与源端的动态视窗高度同步。

Description

一种屏幕镜像实现方法和系统
技术领域
本发明涉及电子技术领域,尤其涉及一种屏幕镜像实现方法和系统。
背景技术
屏幕镜像技术是指源端设备将其当前屏幕中的图像发送给镜像端设备,通过镜像端设备对源端设备的屏幕显示内容进行重现的技术。当显示器在播放高清视频影片,动态视频的视窗有可能占满整个显示屏,也可能只占用显示屏的一部分,如果只占用显示器的一部分,则显示器另一部分显示静态图像。针对上述应用场景,如何把源端设备的显示内容完整地无线传输并同步到镜像端显示器,一直都是业界头疼的问题。现有的屏幕镜像实现方法主要为通过直接抓取源设备显存中的屏幕显示内容通过实时传输协议发送给镜像端,通过镜像端将接收到的屏幕显示内容还原为视频流进行展示,其理论上是可以实现普通视频流的传输,但是对于1080P及以上的高清视频流,由于传输数据量大,在规定的帧频时间内,要把源显示器端的实时视频数据全部传输到镜像显示器端的难度非常大。如果数据在传输过程中受到干扰,镜像端将收到错误数据,然而由于数据量大,需要的传输时间较长,在镜像端将收到错误数据时,源端也不会重发数据(如果重发会导致时间延迟),从而导致镜像端显示的图像数据发生错误,造成高清画面无法连续传输,影响了画面的清晰度和完整性,造成画面卡顿和丢帧等不良现象的发生。
发明内容
本发明实施例的目的在于提供了一种屏幕镜像实现方法和系统,实现包含高清动态视频的屏幕镜像传输,保证镜像画面的清晰度和完整性,减少镜像端画面延迟、卡顿和丢帧等不良现象的发生。
一方面,本发明实施例提供了一种屏幕镜像实现方法,包括:
获取源端的屏幕显示内容;所述屏幕显示内容包括至少一个动态视窗,所述动态视窗为视频文件的播放窗口;
获取所述动态视窗的位置信息、播放路径信息、播放状态信息和播放进度信息;
根据所述位置信息,从所述屏幕显示内容中裁去所述动态视窗,获得静态视窗,并将所述静态视窗发送给镜像端;
根据所述播放路径信息查找所述视频文件,并根据所述播放进度信息和预设的时间提前量对所述视频文件进行读取,将读取的视频文件缓存至所述镜像端;
将所述位置信息、所述播放状态信息和所述播放进度信息发送给所述镜像端;
通过所述镜像端对所述静态视窗进行显示;同时,根据所述位置信息、所述播放状态信息和所述播放进度信息,在所述镜像端中对所述视频文件进行同步播放。
在一种优选的实施方式当中,所述获取获取所述动态视窗的位置信息、播放路径信息、播放状态信息和播放进度信息,具体为:
通过调用应用程序接口,获取所述动态视窗的位置信息、播放路径信息、播放状态信息和播放进度信息。
在另一种优选的实施当中,所述获取获取所述动态视窗的位置信息、播放路径信息、播放状态信息和播放进度信息,具体为:
通过调用应用程序接口,获取所述动态视窗的位置信息、播放路径信息,根据所述播放路径信息查找所述视频文件,获取所述视频文件的文件索引指针,根据所述文件索引指针的位置,获取所述播放进度信息,根据所述文件索引指针的移动速度,获取所述播放状态信息。
优选地,所述将所述静态视窗发送给镜像端之前,还包括:
对所述静态视窗进行压缩编码,采用第一传输协议对压缩编码后的静态视窗进行协议封装。
所述将读取的视频文件缓存至所述镜像端之前,还包括:
判断所述视频文件的格式是否为可被所述镜像端识别的文件格式;若是,则采用所述第二传输协议对读取的视频文件进行协议封装;若否,则对读取的视频文件进行格式转换,采用所述第二传输协议对格式转换后的视频文件进行协议封装。
所述将所述位置信息、所述播放状态信息和所述播放进度信息发送给所述镜像端之前,还包括:
采用第三传输协议对所述位置信息、所述播放状态信息和所述播放进度信息进行协议封装。
其中,所述第一协议为RTSP协议,所述第二协议和所述第三协议为TCP协议。
优选地,所述根据所述位置信息、所述播放状态信息和所述播放进度信息,在所述镜像端中对所述视频文件进行同步播放,具体为:
根据所述位置信息,设定所述视频文件在所述镜像端中的播放位置;
根据所述播放进度信息,对所述视频文件进行读取;
根据所述播放状态信息,对所述视频文件的播放状态进行控制。
优选地,根据所述播放进度信息和预设的时间提前量对所述视频文件进行读取,具体为:
获取与所述播放进度信息对应的文件索引指针,从所述文件索引指针开始对所述视频文件进行读取;
获取当前的读取进度信息;
根据所述播放进度信息和所述读取进度信息,计算所述读取进度信息比所述播放进度信息超前的时间,获得实际时间提前量;
判断所述实际时间提前量是否大于或等于所述预设的时间提前量;
若所述实际时间提前量小于所述预设的时间提前量,则继续对所述视频文件进行读取;
若所述实际时间提前量大于或等于所述预设的时间提前量,则暂停对所述视频文件进行读取。
另一方面,本发明实施例提供了一种屏幕镜像实现系统,包括源端和镜像端;
所述源端包括:
显示内容获取单元,用于获取源端的屏幕显示内容;所述屏幕显示内容包括至少一个动态视窗,所述动态视窗为视频文件的播放窗口;
状态信息获取单元,用于调用应用程序接口获得所述动态视窗的位置信息、播放路径信息、播放状态信息和播放进度信息;
第一线程单元,用于根据所述位置信息,从所述屏幕显示内容中裁去所述动态视窗,获得静态视窗,并将所述静态视窗发送给所述镜像端;
第二线程单元,用于根据所述播放路径信息查找所述视频文件,并根据所述播放进度信息和预设的时间提前量对所述视频文件进行读取,将读取的视频文件缓存至所述镜像端;
第三线程单元,用于将所述位置信息、所述播放状态信息和所述播放进度信息发送给所述镜像端;
所述镜像端包括:
静态视窗显示单元,用于对所述静态视窗进行显示;
动态视窗显示单元,用于根据所述位置信息、所述播放状态信息和所述播放进度信息,对所述视频文件进行同步播放。
优选地,所述动态视窗显示单元具体用于:
根据所述位置信息,设定所述视频文件的播放位置;
根据所述播放进度信息,对所述视频文件进行读取;
根据所述播放状态信息,对所述视频文件的播放状态进行控制。
优选地,所述第三线程单元具体用于:
获取与所述播放进度信息对应的文件索引指针,从所述文件索引指针开始对所述视频文件进行读取;
获取当前的读取进度信息;
根据所述播放进度信息和所述读取进度信息,计算所述读取进度信息比所述播放进度信息超前的时间,获得实际时间提前量;
判断所述实际时间提前量是否大于或等于所述预设的时间提前量;
若所述实际时间提前量小于所述预设的时间提前量,则继续对所述视频文件进行读取;
若所述实际时间提前量大于或等于所述预设的时间提前量,则暂停对所述视频文件进行读取。
本发明实施例提供的屏幕镜像实现方法和系统,通过动态视窗的位置信息将源端的屏幕显示内容中的静态视窗和动态视窗分离传输,通过播放路径信息查找视频文件,并根据播放进度信息和预设的时间提前量,对视频文件进行读取,以将视频文件缓存至镜像端,并进一步地通过所述镜像端对所述静态视窗进行显示,同时根据所述位置信息、所述播放状态信息和所述播放进度信息,在所述镜像端中对所述视频文件进行同步播放。一方面,通过将静态视窗和动态视窗分离传输,将视频文件直接发送到镜像端进行播放,保证了画面的清晰度和完整性。另一方面,通过预设的时间提前量,将视频文件预先缓存至镜像端,降低了对实时性的要求,保证了动态视窗高清视频的正常播放,避免了镜像端画面卡顿和丢帧现象的发生。进一步地,根据位置信息、播放状态信息和播放进度信息在镜像端中对视频文件进行同步播放,保证了镜像端动态视窗与源端动态视窗的高度同步。
附图说明
图1是本发明提供的屏幕镜像实现方法的一个实施例的方法流程图;
图2是本发明提供的屏幕镜像实现系统的一个实施例的系统结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。应当说明,实施例各步骤前的序号仅为方便说明,不应当视为对各步骤执行顺序的限制。
参见图1,是本发明提供的屏幕镜像实现方法的一个实施例的方法流程图;
如图1所示,所述屏幕镜像实现方法,包括以下步骤:
S1,获取源端的屏幕显示内容;所述屏幕显示内容包括至少一个动态视窗,所述动态视窗为视频文件的播放窗口;
在具体实施当中,镜像程序启动后,从源端设备的显存区域获取源端显示器的屏幕显示内容,同时判断所述屏幕显示内容是否包含动态视窗。若所述屏幕显示内容中不包含动态视窗,则直接对所述屏幕显示内容进行压缩编码,并通过RTSP协议发送给镜像端;若所述屏幕显示内容中包含动态视窗,则执行步骤S2~S6。具体地,可通过使用任务管理器对任务进行扫描,检查视频播放器是否启动,以判断屏幕显示内容是否包含动态视窗。若视频播放器正在运行,则判断所述屏幕显示内容中包含动态视窗;若视频播放器没有运行,则判断所述屏幕显示内容中不包含动态视窗。
S2,获取所述动态视窗的位置信息Wsize、播放路径信息Path、播放状态信息Pstatus和播放进度信息Pprogress;
所述位置信息包括所述动态视窗的四个顶点的坐标值;所述播放路径信息为当前正在播放的视频文件的文件存放路径,所述播放状态信息为播放、暂停和停止中的其中一种,所述播放进度信息为所述视频文件当前的播放时间点。
在一种优选的实施当中,可以通过调用API接口(应用程序接口,ApplicationProgramming Interface),获取所述动态视窗的位置信息、播放路径信息、播放状态信息和播放进度信息。
在另一种优选的实施当中,可以仅通过调用应用程序接口,获取所述动态视窗的位置信息、播放路径信息,而根据所述播放路径信息查找所述视频文件,获取所述视频文件的文件索引指针,根据所述文件索引指针的位置,获取所述播放进度信息,根据所述文件索引指针的移动速度,获取所述播放状态信息。所述文件索引指针的位置与播放进度对应,因此在具体实施当中,可根据视频文件的文件索引指针的位置,以获取所述播放进度信息。而文件索引指针的移动速度则放映了视频文件所处的状态,若所述文件索引指针正在移动,则说明所述视频文件正在播放,若所述文件索引指针停止移动,则所述视频文件处于停止或暂停的状态。在实际应用当中,由于不同的视频播放器提供不同的API接口,若通过API接口获取所述播放状态信息和所述播放进度信息,必须针对不同的播放器使用不同的配置API接口,增加了操作的复杂度,而本实施方式通过计算机底层程序,直接获取视频文件的文件索引指针,通过文件索引指针的状态,获取所述播放进度信息和所述播放状态信息,在一定程度上简化了操作。
S3,根据所述位置信息,从所述屏幕显示内容中裁去所述动态视窗,获得静态视窗,并将所述静态视窗发送给镜像端;
在具体实施当中,所述将所述静态视窗发送给镜像端之前,还包括:
S31,对所述静态视窗进行压缩编码,采用第一传输协议对压缩编码后的静态视窗进行协议封装。其中,所述第一协议为实时传输协议,优选为RTSP协议。
主线程根据动态视窗的位置信息,从屏幕显示内容中裁掉播放视频的动态视窗部分,并把裁剪后的图片内容压缩、封装、发送。
S4,根据所述播放路径信息查找所述视频文件,并根据所述播放进度信息和预设的时间提前量对所述视频文件进行读取,将读取的视频文件缓存至所述镜像端;
其中,所述根据所述播放进度信息和预设的时间提前量对所述视频文件进行读取,具体为:
获取与所述播放进度信息对应的文件索引指针,从所述文件索引指针开始对所述视频文件进行读取;
获取当前的读取进度信息;
根据所述播放进度信息和所述读取进度信息,计算所述读取进度信息比所述播放进度信息超前的时间,获得实际时间提前量;
判断所述实际时间提前量是否大于或等于所述预设的时间提前量;
若所述实际时间提前量小于所述预设的时间提前量,则继续对所述视频文件进行读取;
若所述实际时间提前量大于或等于所述预设的时间提前量,则暂停对所述视频文件进行读取。
在具体实施当中,实际时间提前量可根据视频文件的索引进行计算。
假定,镜像端缓存容量Vbuffer足够大。镜像端时间提前量为Tahead(秒),对应到源端第二线程去获取视频文件的索引指针Fahead(T);源端播放器的播放进度为Pprogress(T),对应的文件索引指针为Fprogress(T);假定,预设的时间提前量为60秒。
源端刚开始读取视频文件时电脑时钟为T0,在T0时刻,Fahead(T0)=Fprogress(T0)。
一段时间后电脑时钟为Ti,在Ti时刻的实际时间提前量为Fahead(Ti)–Fprogress(Ti)。
当Fahead(Ti)–Fprogress(Ti)<60秒,则读取视频文件并发送。
当Fahead(Ti)–Fprogress(Ti)≥60秒,则暂停读取视频文件。
在实际操作中,第二线程根据播放路径信息寻获所述视频文件,并根据从当前播放进度的位置开始对所述视频文件进行读取,根据预设的时间提前量,将所述视频文件预先缓存至镜像端。预设的时间提前量的大小,由网络发送速率和空间干扰的大小决定。网络发送速率越慢,空间电场干扰越大,所述预设的时间提前量应当越大;反之,可以适当减小所述预设的时间提前量。本实施例中所述预设的时间提前量优选为1分钟,将所述视频文件预先缓存至镜像端,主要起到一个“蓄水池”的作用,把网络传输流量的不确定性“平均化”,保证了高清视频的正常播放。当源端与镜像端的通信不畅时,镜像端仍然可以通过预先缓存的视频文件继续流畅地播放一段时间。一方面,视频文件由于“超前”传输,对实时性的要求降低,因此可以采用可靠的传输协议(如TCP协议)进行传输,而无需采用实时传输协议(如RTSP协议)。在数据发送失败时,自动重发。而且可以利用帧频传输的间隙时间进行传输,从而保证视频文件数据的无损传输,不会造成数据丢失。而若采用实时传输协议,当发送出去的帧数据受到空间环境干扰破坏时,将无法弥补或重发,否则会造成实时性不够,导致屏幕镜像延迟。另一方面,由于可以“预存”一定时间的视频文件,从而实现了对源端播放内容的超越,镜像端能根据“预存”视频文件,通过源端的播放进度信息,保证源端与镜像端动态视窗的高度同步。
在具体实施当中,所述将读取的视频文件缓存至所述镜像端之前,还包括:
S41,判断所述视频文件的格式是否为可被所述镜像端识别的文件格式;若是,则采用所述第二传输协议对读取的视频文件进行协议封装;若否,则对读取的视频文件进行格式转换,采用所述第二传输协议对格式转换后的视频文件进行协议封装。其中,对读取的视频文件进行格式转换具体为,对所述视频文件进行解压缩并重新压缩编码。所述第二协议优选为TCP协议,应当说明,采用TCP协议进行传输仅为本实施例优选的方式,本领域技术人员还可以根据实际需要采用其他传输协议,如UDP协议等。
S5,将所述位置信息、所述播放状态信息和所述播放进度信息发送给所述镜像端;
在具体实施当中,所述将所述位置信息、所述播放状态信息和所述播放进度信息发送给所述镜像端之前,还包括:
S51,采用第三传输协议对所述位置信息、所述播放状态信息和所述播放进度信息进行协议封装。在实际操作中,可通过第三线程将所述位置信息、所述播放状态信息和所述播放进度信息采用传输协议进行封装,并发送给镜像端。其中,所述第三协议优选为TCP协议。应当说明,采用TCP协议进行传输仅为本实施例优选的方式,本领域技术人员还可以根据实际需要采用其他传输协议,如UDP协议等。
镜像端与源端之间可通过有线或无线的方式进行数据交换,本实施例中优选采用无线的方式,所述无线的方式包括但不限于WIFI(WIreless-FIdelity,无线保真)、蓝牙和红外。
S6,通过所述镜像端对所述静态视窗进行显示;同时,根据所述位置信息、所述播放状态信息和所述播放进度信息,在所述镜像端中对所述视频文件进行同步播放。
在具体实施当中,所述根据所述位置信息、所述播放状态信息和所述播放进度信息,在所述镜像端中对所述视频文件进行同步播放,具体为:
根据所述位置信息,设定所述视频文件在所述镜像端中的播放位置;
根据所述播放进度信息,对所述视频文件进行读取;
根据所述播放状态信息,对所述视频文件的播放状态进行控制。
镜像端接收到数据后,采用相应的传输协议(RTSP协议或TCP协议)对数据进行协议解析,获得所述静态视窗数据、视频文件和状态信息(包括所述位置信息、所述播放状态信息和所述播放进度信息)。一方面,对所述静态视窗数据进行解压缩,并发送到镜像端的显存中。另一方面,根据所述播放进度信息,对所述视频文件进行读取,对所述视频文件进行解压缩,根据所述播放状态信息对所述视频文件的播放状态进行控制,根据所述位置信息设定所述动态视窗的位置,并将解压并设定位置后的视频数据发送到镜像端的显存中。与现有技术相比,本发明实施例将静态视窗和动态视窗分离传输,将视频文件直接发送到镜像端进行播放,保证了画面的清晰度和完整性。通过预设的时间提前量,将视频文件预先缓存至镜像端,降低了对实时性的要求,保证了动态视窗高清视频的正常播放,避免了镜像端画面卡顿和丢帧现象的发生。根据位置信息、播放状态信息和播放进度信息在镜像端中对视频文件进行同步播放,保证了镜像端动态视窗与源端动态视窗的高度同步。参照图2,是本发明实施例提供的屏幕镜像实现系统的系统结构图。
参见图2,是本发明提供的屏幕镜像实现系统的一个实施例的系统结构图。本实施例与图1所示实施例的基本原理相同,本实施例中未详述之处可参见图1所示实施例中的相关描述。
如图2所示,所述屏幕镜像实现系统包括源端110和镜像端120;
所述源端110包括:
显示内容获取单元111,用于获取源端110的屏幕显示内容;所述屏幕显示内容包括至少一个动态视窗,所述动态视窗为视频文件的播放窗口;
状态信息获取单元112,用于调用应用程序接口获得所述动态视窗的位置信息、播放路径信息、播放状态信息和播放进度信息;
第一线程单元113,用于根据所述位置信息,从所述屏幕显示内容中裁去所述动态视窗,获得静态视窗,并将所述静态视窗发送给所述镜像端120;
第二线程单元114,用于根据所述播放路径信息查找所述视频文件,并根据所述播放进度信息和预设的时间提前量对所述视频文件进行读取,将读取的视频文件缓存至所述镜像端120;
第三线程单元115,用于将所述位置信息、所述播放状态信息和所述播放进度信息发送给所述镜像端120;
所述镜像端120包括:
静态视窗显示单元121,用于对所述静态视窗进行显示;
动态视窗显示单元122,用于根据所述位置信息、所述播放状态信息和所述播放进度信息,对所述视频文件进行同步播放。
其中,所述动态视窗显示单元122具体用于:
根据所述位置信息,设定所述视频文件的播放位置;
根据所述播放进度信息,对所述视频文件进行读取;
根据所述播放状态信息,对所述视频文件的播放状态进行控制。
在实际应用当中,所述第三线程单元115具体用于:
获取与所述播放进度信息对应的文件索引指针,从所述文件索引指针开始对所述视频文件进行读取;
获取当前的读取进度信息;
根据所述播放进度信息和所述读取进度信息,计算所述读取进度信息比所述播放进度信息超前的时间,获得实际时间提前量;
判断所述实际时间提前量是否大于或等于所述预设的时间提前量;
若所述实际时间提前量小于所述预设的时间提前量,则继续对所述视频文件进行读取;
若所述实际时间提前量大于或等于所述预设的时间提前量,则暂停对所述视频文件进行读取。
综上所述,本发明实施例提供的屏幕镜像实现方法和系统,通过动态视窗的位置信息将源端的屏幕显示内容中的静态视窗和动态视窗分离传输,通过播放路径信息查找视频文件,并根据播放进度信息和预设的时间提前量,对视频文件进行读取,以将视频文件缓存至镜像端,并进一步地通过所述镜像端对所述静态视窗进行显示,同时根据所述位置信息、所述播放状态信息和所述播放进度信息,在所述镜像端中对所述视频文件进行同步播放。一方面,通过将静态视窗和动态视窗分离传输,将视频文件直接发送到镜像端进行播放,保证了画面的清晰度和完整性。另一方面,通过预设的时间提前量,将视频文件预先缓存至镜像端,降低了对实时性的要求,保证了动态视窗高清视频的正常播放,避免了镜像端画面卡顿和丢帧现象的发生。进一步地,根据位置信息、播放状态信息和播放进度信息在镜像端中对视频文件进行同步播放,保证了镜像端动态视窗与源端动态视窗的高度同步。
需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,各单元之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本发明而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (10)

1.一种屏幕镜像实现方法,其特征在于,包括:
获取源端的屏幕显示内容;所述屏幕显示内容包括至少一个动态视窗,所述动态视窗为视频文件的播放窗口;
获取所述动态视窗的位置信息、播放路径信息、播放状态信息和播放进度信息;
根据所述位置信息,从所述屏幕显示内容中裁去所述动态视窗,获得静态视窗,并将所述静态视窗发送给镜像端;
根据所述播放路径信息查找所述视频文件,并根据所述播放进度信息和预设的时间提前量对所述视频文件进行读取,将读取的视频文件缓存至所述镜像端;
将所述位置信息、所述播放状态信息和所述播放进度信息发送给所述镜像端;
通过所述镜像端对所述静态视窗进行显示;同时,根据所述位置信息、所述播放状态信息和所述播放进度信息,在所述镜像端中对所述视频文件进行同步播放。
2.如权利要求1所述的屏幕镜像实现方法,其特征在于,所述获取获取所述动态视窗的位置信息、播放路径信息、播放状态信息和播放进度信息,具体为:
通过调用应用程序接口,获取所述动态视窗的位置信息、播放路径信息、播放状态信息和播放进度信息。
3.如权利要求1所述的屏幕镜像实现方法,其特征在于,所述获取获取所述动态视窗的位置信息、播放路径信息、播放状态信息和播放进度信息,具体为:
通过调用应用程序接口,获取所述动态视窗的位置信息、播放路径信息,根据所述播放路径信息查找所述视频文件,获取所述视频文件的文件索引指针,根据所述文件索引指针的位置,获取所述播放进度信息,根据所述文件索引指针的移动速度,获取所述播放状态信息。
4.如权利要求1所述的屏幕镜像实现方法,其特征在于,所述将所述静态视窗发送给镜像端之前,还包括:
对所述静态视窗进行压缩编码,采用第一传输协议对压缩编码后的静态视窗进行协议封装。
所述将读取的视频文件缓存至所述镜像端之前,还包括:
判断所述视频文件的格式是否为可被所述镜像端识别的文件格式;若是,则采用所述第二传输协议对读取的视频文件进行协议封装;若否,则对读取的视频文件进行格式转换,采用所述第二传输协议对格式转换后的视频文件进行协议封装。
所述将所述位置信息、所述播放状态信息和所述播放进度信息发送给所述镜像端之前,还包括:
采用第三传输协议对所述位置信息、所述播放状态信息和所述播放进度信息进行协议封装。
5.如权利要求4所述的屏幕镜像实现方法,其特征在于,所述第一协议为RTSP协议,所述第二协议和所述第三协议为TCP协议。
6.如权利要求1所述的屏幕镜像实现方法,其特征在于,所述根据所述位置信息、所述播放状态信息和所述播放进度信息,在所述镜像端中对所述视频文件进行同步播放,具体为:
根据所述位置信息,设定所述视频文件在所述镜像端中的播放位置;
根据所述播放进度信息,对所述视频文件进行读取;
根据所述播放状态信息,对所述视频文件的播放状态进行控制。
7.如权利要求1~6任一项所述的屏幕镜像实现方法,其特征在于,所述根据所述播放进度信息和预设的时间提前量对所述视频文件进行读取,具体为:
获取与所述播放进度信息对应的文件索引指针,从所述文件索引指针开始对所述视频文件进行读取;
获取当前的读取进度信息;
根据所述播放进度信息和所述读取进度信息,计算所述读取进度信息比所述播放进度信息超前的时间,获得实际时间提前量;
判断所述实际时间提前量是否小于所述预设的时间提前量;
若所述实际时间提前量小于所述预设的时间提前量,则继续对所述视频文件进行读取;
若所述实际时间提前量大于或等于所述预设的时间提前量,则暂停对所述视频文件进行读取。
8.一种屏幕镜像实现系统,其特征在于,包括源端和镜像端;
所述源端包括:
显示内容获取单元,用于获取源端的屏幕显示内容;所述屏幕显示内容包括至少一个动态视窗,所述动态视窗为视频文件的播放窗口;
状态信息获取单元,用于获取所述动态视窗的位置信息、播放路径信息、播放状态信息和播放进度信息;
第一线程单元,用于根据所述位置信息,从所述屏幕显示内容中裁去所述动态视窗,获得静态视窗,并将所述静态视窗发送给所述镜像端;
第二线程单元,用于根据所述播放路径信息查找所述视频文件,并根据所述播放进度信息和预设的时间提前量对所述视频文件进行读取,将读取的视频文件缓存至所述镜像端;
第三线程单元,用于将所述位置信息、所述播放状态信息和所述播放进度信息发送给所述镜像端;
所述镜像端包括:
静态视窗显示单元,用于对所述静态视窗进行显示;
动态视窗显示单元,用于根据所述位置信息、所述播放状态信息和所述播放进度信息,对所述视频文件进行同步播放。
9.如权利要求8所述的屏幕镜像实现系统,其特征在于,所述动态视窗显示单元具体用于:
根据所述位置信息,设定所述视频文件的播放位置;
根据所述播放进度信息,对所述视频文件进行读取;
根据所述播放状态信息,对所述视频文件的播放状态进行控制。
10.如权利要求8~9任一项所述的屏幕镜像实现系统,其特征在于,所述第三线程单元具体用于:
获取与所述播放进度信息对应的文件索引指针,从所述文件索引指针开始对所述视频文件进行读取;
获取当前的读取进度信息;
根据所述播放进度信息和所述读取进度信息,计算所述读取进度信息比所述播放进度信息超前的时间,获得实际时间提前量;
判断所述实际时间提前量是否大于或等于所述预设的时间提前量;
若所述实际时间提前量小于所述预设的时间提前量,则继续对所述视频文件进行读取;
若所述实际时间提前量大于或等于所述预设的时间提前量,则暂停对所述视频文件进行读取。
CN201510232436.8A 2015-05-08 2015-05-08 一种屏幕镜像实现方法和系统 Pending CN104837048A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510232436.8A CN104837048A (zh) 2015-05-08 2015-05-08 一种屏幕镜像实现方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510232436.8A CN104837048A (zh) 2015-05-08 2015-05-08 一种屏幕镜像实现方法和系统

Publications (1)

Publication Number Publication Date
CN104837048A true CN104837048A (zh) 2015-08-12

Family

ID=53814644

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510232436.8A Pending CN104837048A (zh) 2015-05-08 2015-05-08 一种屏幕镜像实现方法和系统

Country Status (1)

Country Link
CN (1) CN104837048A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106209969A (zh) * 2016-06-16 2016-12-07 深圳市飞图视讯有限公司 一种移动终端之间的屏幕镜像方法及装置
CN106572115A (zh) * 2016-11-10 2017-04-19 深圳市飞图视讯有限公司 智能终端播放网络视频的屏幕镜像方法及发射及接收装置
CN106604117A (zh) * 2015-10-14 2017-04-26 福建华渔未来教育科技有限公司 一种屏幕镜像方法及系统
CN109104610A (zh) * 2017-06-20 2018-12-28 微软技术许可有限责任公司 实时屏幕共享
CN109299047A (zh) * 2018-09-21 2019-02-01 深圳市九洲电器有限公司 分布式系统数据共享方法及装置、数据共享分布式系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010114512A1 (en) * 2009-03-30 2010-10-07 Displaylink Corporation System and method of transmitting display data to a remote display
CN102243856A (zh) * 2010-05-13 2011-11-16 华为技术有限公司 动态切换屏幕数据处理方式的方法及装置
US20120317485A1 (en) * 2011-06-08 2012-12-13 Cisco Technology, Inc. Virtual meeting video sharing
CN103248939A (zh) * 2012-02-03 2013-08-14 海尔集团公司 一种实现多屏同步显示的方法及系统
CN103546540A (zh) * 2013-09-26 2014-01-29 传线网络科技(上海)有限公司 在cdn网络上实现缓存数据控制的方法及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010114512A1 (en) * 2009-03-30 2010-10-07 Displaylink Corporation System and method of transmitting display data to a remote display
CN102243856A (zh) * 2010-05-13 2011-11-16 华为技术有限公司 动态切换屏幕数据处理方式的方法及装置
US20120317485A1 (en) * 2011-06-08 2012-12-13 Cisco Technology, Inc. Virtual meeting video sharing
CN103248939A (zh) * 2012-02-03 2013-08-14 海尔集团公司 一种实现多屏同步显示的方法及系统
CN103546540A (zh) * 2013-09-26 2014-01-29 传线网络科技(上海)有限公司 在cdn网络上实现缓存数据控制的方法及系统

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106604117A (zh) * 2015-10-14 2017-04-26 福建华渔未来教育科技有限公司 一种屏幕镜像方法及系统
CN106604117B (zh) * 2015-10-14 2021-05-11 福建省华渔教育科技有限公司 一种屏幕镜像方法及系统
CN106209969A (zh) * 2016-06-16 2016-12-07 深圳市飞图视讯有限公司 一种移动终端之间的屏幕镜像方法及装置
CN106572115A (zh) * 2016-11-10 2017-04-19 深圳市飞图视讯有限公司 智能终端播放网络视频的屏幕镜像方法及发射及接收装置
CN109104610A (zh) * 2017-06-20 2018-12-28 微软技术许可有限责任公司 实时屏幕共享
CN109104610B (zh) * 2017-06-20 2023-04-11 微软技术许可有限责任公司 实时屏幕共享
US11775247B2 (en) 2017-06-20 2023-10-03 Microsoft Technology Licensing, Llc. Real-time screen sharing
CN109299047A (zh) * 2018-09-21 2019-02-01 深圳市九洲电器有限公司 分布式系统数据共享方法及装置、数据共享分布式系统

Similar Documents

Publication Publication Date Title
US20210224022A1 (en) Cooperative control method for user equipment, user equipment, and communications system
CN109327728B (zh) 一种一对多同屏方法、装置和系统、同屏设备及存储介质
US10869081B2 (en) Image processing device, image reproduction device, and image reproduction system
CN106664458B (zh) 用于发射视频数据的方法、源装置以及存储媒体
US9491505B2 (en) Frame capture and buffering at source device in wireless display system
CN109168021B (zh) 一种推流的方法及装置
CN104837048A (zh) 一种屏幕镜像实现方法和系统
CN108924582B (zh) 视频录制方法、计算机可读存储介质及录播系统
CN102158553A (zh) 用于远程桌面的播放多媒体文件的方法和装置
EP3544305A1 (en) A method and a system for performing scrubbing in a video stream
CN111131891B (zh) 一种音视频播放方法、装置、播放设备及系统
CN108427545B (zh) 截屏数据的处理方法、装置、系统、存储介质及处理器
CN105025294A (zh) 一种视频传输控制装置及方法
CN111913683A (zh) 一种多路声音控制方法、设备、电子设备及存储介质
CN104837046A (zh) 多媒体文件的处理方法和装置
US11134114B2 (en) User input based adaptive streaming
US10104422B2 (en) Multimedia playing control method, apparatus for the same and system
CN104427383A (zh) 一种信息处理方法以及电子设备
CN114554277B (zh) 多媒体的处理方法、装置、服务器及计算机可读存储介质
CN113596583A (zh) 视频流子弹时间数据处理方法及装置
CN108024121B (zh) 语音弹幕同步方法和系统
CN110611838A (zh) 多屏播放方法、装置及系统
CN112788193A (zh) 图像传输方法、装置、电子设备及存储介质
CN103442268A (zh) 模拟电视节目的预约切换的方法及装置
CN109429290B (zh) 数据传输控制装置及数据流的控制方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20150812