CN111225275A - 一种基于视频流的屏幕显示方法、装置和系统 - Google Patents

一种基于视频流的屏幕显示方法、装置和系统 Download PDF

Info

Publication number
CN111225275A
CN111225275A CN201811413865.5A CN201811413865A CN111225275A CN 111225275 A CN111225275 A CN 111225275A CN 201811413865 A CN201811413865 A CN 201811413865A CN 111225275 A CN111225275 A CN 111225275A
Authority
CN
China
Prior art keywords
video stream
stream data
screen
data
display
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
CN201811413865.5A
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 Qihoo Technology Co Ltd
Original Assignee
Beijing Qihoo 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 Qihoo Technology Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201811413865.5A priority Critical patent/CN111225275A/zh
Publication of CN111225275A publication Critical patent/CN111225275A/zh
Pending legal-status Critical Current

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/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/44008Processing 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 operations for analysing video streams, e.g. detecting features or characteristics in the video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • 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/41Structure of client; Structure of client peripherals
    • H04N21/414Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance
    • H04N21/41407Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance embedded in a portable device, e.g. video client on a mobile phone, PDA, laptop
    • 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/431Generation of visual interfaces for content selection or interaction; Content or additional data rendering

Landscapes

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

Abstract

本发明提供了一种基于视频流的屏幕显示方法、装置和系统。该系统包括:移动设备端,用于采集本终端屏幕的视频流数据,并将所述视频流数据发送给传送端;所述传送端,用于接收所述视频流数据,对所述视频流数据进行解析,并将解析后的视频流数据发送给显示端;以及所述显示端,用于接收所述解析后的视频流数据,并播放所接收到的视频流数据。本发明采用视频流的方式来替代minicap图片采集的方式,解决了现有技术中采用minicap进行屏幕拷贝时严格依赖于移动设备的Android版本和与该Android版本相应的minicap开源项目更新、并且不支持屏幕显示过程中旋转移动设备的问题,特别适用于当通过远程真机租用平台进行移动测试时显示手机端的屏幕信息的场景。

Description

一种基于视频流的屏幕显示方法、装置和系统
技术领域
本发明涉及远程真机测试技术领域,特别是一种基于视频流的屏幕显示方法、装置和系统、以及计算机存储介质和计算设备。
背景技术
远程真机租用平台是一种远程控制手机使用的平台,具有安装、截图、shell、文件传输等功能。
现有技术中,通过远程真机租用平台进行移动测试时,手机屏幕信息传输的实现方案采用的是开源工具minicap。minicap是开源项目STF(Smartphone Test Farm)中的一个工具,负责屏幕显示。minicap工具是用NDK(Nginx Development Kit)开发的,属于Android的底层开发,所以该工具在手机上的使用严格依赖于手机的Android版本。因此,使用minicap工具进行手机屏幕显示时,会面临以下问题:当手机的Android版本更新时,必须确保minicap发布者已经发布该更新后的Android版本对应的文件工具,才可使用minicap工具。例如,当Android9发布后,由于手机屏幕图像显示依赖的minicap文件还未及时跟上发布,将会导致Android9版本的云真机未能及时上线该真机租用系统。
另外,minicap本身还存在以下问题:minicap的实现方式采用了Android的私有API(Application Programming Interface,应用程序编程接口),那么,若将来Google限制该API的访问,minicap将会无法使用。而且,minicap工具不支持手机旋转,当手机旋转后,minicap无法正确传递出旋转后的手机屏幕图片。
因此,亟需一种无需与Android版本进行适配、不依赖于minicap开源项目更新、并且屏幕图像传输性能更优的屏幕显示技术。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的基于视频流的屏幕显示方法、装置和系统、以及计算机存储介质和计算设备。
根据本发明实施例的一方面,提供了一种基于视频流的屏幕显示系统,包括:
移动设备端,用于采集本终端屏幕的视频流数据,并将所述视频流数据发送给传送端;
所述传送端,用于接收所述视频流数据,对所述视频流数据进行解析,并将解析后的视频流数据发送给显示端;以及
所述显示端,用于接收所述解析后的视频流数据,并播放所接收到的视频流数据。
可选地,所述屏幕显示系统应用于当通过远程真机租用平台进行移动测试时显示所述移动设备端的屏幕信息的场景。
可选地,所述传送端包括服务器或个人计算机;
所述显示端包括显示器。
可选地,所述移动设备端还用于:
通过在本终端内部启动scrcpy工具来采集本终端屏幕的视频流数据。
可选地,所述移动设备端还用于:
在启动所述scrcpy工具后,调用MediaCodec接口来采集本终端屏幕的视频流数据。
可选地,所述移动设备端还用于:
通过adb forward命令建立scrcpy进程与所述传送端socket的通信,从而将所述视频流数据发送给所述传送端。
可选地,所述传送端还用于:
通过与所述显示端建立socket通信将解析后的视频流数据发送给所述显示端。
可选地,所述显示端搭载了浏览器;
所述显示端还用于:
通过所述浏览器的局部渲染来播放所接收到的视频流数据。
可选地,所述视频流数据的格式为H.264。
可选地,所述传送端还用于:
根据H.264格式对接收的所述视频流数据进行解析得到每个网络提取层NAL单元,并将每个所述NAL单元作为单个NAL对象发送给所述显示端。
可选地,所述显示端还用于:
采用Broadway解码器对所接收的视频流数据进行解码并播放。
可选地,采用Broadway解码器进行解码并播放时,按照Broadway定义的数据格式进行后台数据传送。
根据本发明实施例的另一方面,还提供了一种基于视频流的屏幕显示方法,应用于移动设备端,包括:
采集所述移动设备端自身的屏幕的视频流数据;
将所述视频流数据发送给传送端,从而所述传送端对所接收的视频流数据进行解析后,将解析后的视频流数据发送给显示端进行播放。
可选地,所述方法应用于当通过远程真机租用平台进行移动测试时显示所述移动设备端的屏幕信息的场景。
可选地,采集所述移动设备端自身的屏幕的视频流数据,包括:
通过在所述移动设备端内部启动scrcpy工具来采集所述移动设备端自身的屏幕的视频流数据。
可选地,通过在所述移动设备端内部启动scrcpy工具来采集所述移动设备端自身的屏幕的视频流数据进一步包括:
在启动所述scrcpy工具后,调用MediaCodec接口来采集所述移动设备端自身的屏幕的视频流数据。
可选地,将所述视频流数据发送给传送端,包括:
通过adb forward命令建立scrcpy进程与所述传送端的socket的通信,从而将所述视频流数据发送给所述传送端。
可选地,所述视频流数据的格式为H.264。
根据本发明实施例的另一方面,还提供了一种基于视频流的屏幕显示方法,应用于传送端,包括:
接收移动设备端所采集的所述移动设备端自身的屏幕的视频流数据;
对所述视频流数据进行解析;
将解析后的视频流数据发送给显示端,从而所述显示端对所述解析后的视频流数据进行播放。
可选地,所述方法应用于当通过远程真机租用平台进行移动测试时显示所述移动设备端的屏幕信息的场景。
可选地,所述传送端包括服务器或个人计算机。
可选地,接收移动设备端所采集的所述移动设备端自身的屏幕的视频流数据,包括:
通过执行adb forward命令建立与所述移动设备端的通信后,接收来自所述移动设备端的所述视频流数据;
其中,所述移动设备端通过在自身内部启动scrcpy工具来采集自身的屏幕的视频流数据,通过执行adb forward命令所建立的与所述移动设备端的通信为所述传送端的socket与所述移动设备端的scrcpy进程之间的通信。
可选地,将解析后的视频流数据发送给显示端,包括:
通过与所述显示端建立socket通信将解析后的视频流数据发送给所述显示端。
可选地,所述视频流数据的格式为H.264。
可选地,对所述视频流数据进行解析,包括:
根据H.264格式对接收的所述视频流数据进行解析得到每个网络提取层NAL单元;
将解析后的视频流数据发送给显示端,进一步包括:
将每个所述NAL单元作为单个NAL对象发送给所述显示端。
根据本发明实施例的另一方面,还提供了一种基于视频流的屏幕显示方法,应用于显示端,包括:
接收来自传送端的、由所述传送端解析后的移动设备端的屏幕的视频流数据;
播放所接收到的视频流数据。
可选地,所述方法应用于当通过远程真机租用平台进行移动测试时显示所述移动设备端的屏幕信息的场景。
可选地,所述显示端包括显示器。
可选地,所述显示端搭载了浏览器;
播放所接收到的视频流数据,包括:
通过所述浏览器的局部渲染来播放所接收到的视频流数据。
可选地,所述视频流数据的格式为H.264。
可选地,播放所接收到的视频流数据进一步包括:
采用Broadway解码器对所接收的视频流数据进行解码并播放。
可选地,采用Broadway解码器进行解码并播放时,按照Broadway定义的数据格式进行后台数据传送。
根据本发明实施例的另一方面,还提供了一种移动设备端,包括:
屏幕数据采集模块,适于采集所述移动设备端自身的屏幕的视频流数据;以及
屏幕数据发送模块,适于将所述视频流数据发送给传送端,从而所述传送端对所接收的视频流数据进行解析后,将解析后的视频流数据发送给显示端进行播放。
可选地,所述移动设备端应用于当通过远程真机租用平台进行移动测试时显示所述移动设备端的屏幕信息的场景。
可选地,所述屏幕数据采集模块还适于:
通过在所述移动设备端内部启动scrcpy工具来采集所述移动设备端自身的屏幕的视频流数据。
可选地,所述屏幕数据采集模块还适于:
在启动所述scrcpy工具后,调用MediaCodec接口来采集所述移动设备端自身的屏幕的视频流数据。
可选地,所述屏幕数据发送模块还适于:
通过adb forward命令建立scrcpy进程与所述传送端的socket的通信,从而将所述视频流数据发送给所述传送端。
可选地,所述视频流数据的格式为H.264。
根据本发明实施例的另一方面,还提供了一种传送端,包括:
屏幕数据接收模块,适于接收移动设备端所采集的所述移动设备端自身的屏幕的视频流数据;
屏幕数据解析模块,适于对所述视频流数据进行解析;以及
解析数据发送模块,适于将解析后的视频流数据发送给显示端,从而所述显示端对所述解析后的视频流数据进行播放。
可选地,所述传送端应用于当通过远程真机租用平台进行移动测试时显示所述移动设备端的屏幕信息的场景。
可选地,所述传送端包括服务器或个人计算机。
可选地,所述屏幕数据接收模块还适于:
通过执行adb forward命令建立与所述移动设备端的通信后,接收来自所述移动设备端的所述视频流数据;
其中,所述移动设备端通过在自身内部启动scrcpy工具来采集自身的屏幕的视频流数据,通过执行adb forward命令所建立的与所述移动设备端的通信为所述传送端的socket与所述移动设备端的scrcpy进程之间的通信。
可选地,所述解析数据发送模块还适于:
通过与所述显示端建立socket通信将解析后的视频流数据发送给所述显示端。
可选地,所述视频流数据的格式为H.264。
可选地,所述屏幕数据解析模块还适于:
根据H.264格式对接收的所述视频流数据进行解析得到每个网络提取层NAL单元;
所述解析数据发送模块还适于:
将每个所述NAL单元作为单个NAL对象发送给所述显示端。
根据本发明实施例的另一方面,还提供了一种显示端,包括:
解析数据接收模块,适于接收来自传送端的、由所述传送端解析后的移动设备端的屏幕的视频流数据;以及
屏幕数据播放模块,适于播放所接收到的视频流数据。
可选地,所述显示端应用于当通过远程真机租用平台进行移动测试时显示所述移动设备端的屏幕信息的场景。
可选地,所述显示端包括显示器。
可选地,所述显示端搭载了浏览器;
所述屏幕数据播放模块还适于:
通过所述浏览器的局部渲染来播放所接收到的视频流数据。
可选地,所述视频流数据的格式为H.264。
可选地,所述屏幕数据播放模块还适于:
采用Broadway解码器对所接收的视频流数据进行解码并播放。
可选地,采用Broadway解码器进行解码并播放时,按照Broadway定义的数据格式进行后台数据传送。
根据本发明实施例的又一方面,还提供了一种计算机存储介质,所述计算机存储介质存储有计算机程序代码,当所述计算机程序代码在计算设备上运行时,导致所述计算设备执行根据上文中任一项所述的应用于移动设备端的基于视频流的屏幕显示方法、应用于传送端的基于视频流的屏幕显示方法或应用于显示端的基于视频流的屏幕显示方法。
根据本发明实施例的再一方面,还提供了一种计算设备,包括:
处理器;以及
存储有计算机程序代码的存储器;
当所述计算机程序代码被所述处理器运行时,导致所述计算设备执行根据上文中任一项所述的应用于移动设备端的基于视频流的屏幕显示方法、应用于传送端的基于视频流的屏幕显示方法或应用于显示端的基于视频流的屏幕显示方法。
本发明实施例提出的基于视频流的屏幕显示方案,其架构包括移动设备端、传送端和显示端,其中,通过移动设备端采集自身屏幕的视频流数据,传送端对采集的移动设备端屏幕的视频流数据进行解析,显示端对解析后的视频流数据进行播放,实现移动设备端的屏幕信息的显示。本发明实施例的方案采用视频流的方式来替代minicap图片采集的方式,解决了现有技术中采用minicap进行屏幕拷贝时严格依赖于移动设备的Android版本和与该Android版本相应的minicap开源项目更新、并且不支持屏幕显示过程中旋转移动设备的问题,特别适用于当通过远程真机租用平台进行移动测试时显示手机端的屏幕信息的场景。
进一步地,移动设备端通过scrcpy工具来采集自身屏幕的视频流数据,由于不同SDK和CPU版本的移动设备端都可以使用统一的scrcpy.jar包,无需进行Android版本的适配测试,提高了本发明方案的普适性。
此外,显示端通过浏览器的局部渲染来播放解析后的视频流数据,与minicap通过传递真机屏幕的整张图片数据来实现实时显示效果相比,本发明方案只需传送真机屏幕中发生更改的区域的数据,减轻了网络传输的压力。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一实施例的基于视频流的屏幕显示系统的架构示意图;
图2示出了根据本发明另一实施例的基于视频流的屏幕显示系统的架构示意图;
图3示出了根据本发明实施例的基于视频流的屏幕显示系统对于手机屏幕信息的显示效果;
图4示出了根据本发明一实施例的应用于移动设备端的基于视频流的屏幕显示方法的流程图;
图5示出了根据本发明一实施例的应用于传送端的基于视频流的屏幕显示方法的流程图;
图6示出了根据本发明一实施例的应用于显示端的基于视频流的屏幕显示方法的流程图;
图7示出了根据本发明一实施例的结合移动设备端、传送端和显示端的基于视频流的屏幕显示方法的流程示意图;
图8示出了根据本发明一实施例的移动设备端的结构示意图;
图9示出了根据本发明一实施例的传送端的结构示意图;以及
图10示出了根据本发明一实施例的显示端的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
现有的远程真机租用平台采用开源工具minicap来实现手机屏幕信息的传输和显示,然而,由于minicap工具是用NDK开发的,其实现方式采用了Android的隐藏私有API,因此minicap工具的使用必须严格依赖于手机的Android版本和与该Android版本相应的minicap文件,而且还会受控于Google对该私有API的访问限制,这都大大限制了基于minicap工具的屏幕拷贝方案的普适性。此外,minicap还不支持手机旋转,当手机屏幕旋转后,其采集的屏幕图片会存在黑色区域,图片内容不完整,严重影响了屏幕显示的效果。
为解决上述技术问题,本发明实施例提出了一种基于视频流的屏幕显示系统。图1示出了根据本发明一实施例的基于视频流的屏幕显示系统的架构示意图。参见图1,该系统主要包括:移动设备端110、传送端120以及显示端130。
在本发明实施例中,移动设备端110用于采集本终端屏幕的视频流数据,并将所采集的视频流数据发送给传送端120。传送端120用于接收移动设备端110发送的视频流数据,对该视频流数据进行解析,并将解析后的视频流数据发送给显示端130。显示端130用于从传送端120接收解析后的视频流数据,并播放所接收到的视频流数据。
在本实施例提供的系统中,通过移动设备端110采集自身屏幕的视频流数据,传送端120对所采集的移动设备端110的屏幕的视频流数据进行解析,将该视频流数据解析为前端可显示的数据,显示端130对解析后的视频流数据进行播放,实现了移动设备端110的屏幕信息的显示。
本发明实施例采用视频流的方式来替代minicap图片采集的方式,解决了现有技术中采用minicap进行屏幕拷贝时严格依赖于移动设备的Android版本和与该Android版本相应的minicap开源项目更新、并且不支持屏幕显示过程中旋转移动设备的问题。由此,本发明实施例提供的系统可以应用于当通过远程真机租用平台进行移动测试时显示移动设备端的屏幕信息的场景。
在远程真机租用平台的应用场景中,上文提及的移动设备端110可以包括手机、平板电脑、智能手表等智能移动终端,其上可以搭载操作系统,并拥有接入互联网的能力。优选地,移动设备端110上搭载Android系统。传送端120可以是服务器或PC(PersonalComputer,个人计算机),其具有数据传输和数据解析的功能。相应地,显示端130可以为显示器,其上搭载用于视频流播放的软件类客户端,例如浏览器、媒体播放器等。
在本发明实施例的一种可选实施方式中,移动设备端110可以通过在本终端内部启动scrcpy工具来采集本终端屏幕的视频流数据。具体地,通过在移动设备端110内部启动scrcpy.jar(例如scrcpy-server-v1.3.jar)来进行。
下文中列出了在移动设备端110(例如,手机)内部启动scrcpy.jar的代码示例:
1︱trident:/$ps-ef︱grep scrc
shell 25875 25837 1 14:32:26 pts/2 00:00:00 app_process/com.genymobile.scrcpy.Server 0 8000000true
shell 25944 25914 6 14:32:57 pts/3 00:00:00 grep scrc
Scrcpy是一个在电脑上显示和控制Android设备的命令行工具,适用于GNU/Linux、Windows和Mac OS系统,且无需root。由于不同SDK和CPU版本的移动设备端都可以使用统一的scrcpy.jar包,无需进行Android版本的适配测试,提高了本发明实施例方案的普适性。
进一步地,移动设备端110内部启动scrcpy.jar后,scrcpy.jar内部调用Android接口MediaCodec来采集移动设备端110屏幕的视频流数据。
MediaCodec是Android自带的一个API,MediaCodec类可以访问底层的媒体编解码器,可以对媒体进行编/解码,是Android低级别多媒体支持基础设施的一部分。通过MediaCodec接口,可以将scrcpy工具采集的原始视频数据编码为例如H.264格式的视频流数据。
在本发明实施例的一种可选实施方式中,移动设备端110可以通过adb forward命令来建立scrcpy进程与传送端120上socket的通信,从而将所采集的视频流数据发送给传送端120。
Adb(Android Debug Bridge,安卓调试桥)起到连接桥的作用,可以将PC和设备连接起来,进而借助adb工具可以管理设备或手机模拟器的状态。通过adb forward建立一个转发,在PC可以接收设备端server程序发出的数据。
在实际操作中,可在传送端120执行如下所示的adb forward命令行:
adb forward tcp:8888 localabstract:scrcpy
通过上述adb forward命令行将传送端120的端口8888映射到scrcpy工具,实现传送端120上socket与scrcpy进程的通信,从而将移动设备端110采集的视频流数据传输至传送端120。
在本发明实施例的一种可选实施方式中,传送端120可以通过与显示端130建立socket通信来将解析后的视频流数据发送给显示端130。
在本发明实施例的一种可选实施方式中,显示端130中可以搭载有浏览器,从而可以通过浏览器对所接收的视频流数据进行播放。此时,优选地,通过浏览器的局部渲染来播放所接收到的视频流数据。
由于采用了局部渲染的视频流播放技术,与minicap通过传递真机屏幕的整张图片数据来实现实时显示效果相比,本发明实施例的方案只需传送真机屏幕中发生更改的区域的数据,减轻了网络传输的压力。
在本发明实施例的一种可选实施方式中,视频流数据的编码格式可以采用H.264。
H.264,同时也是MPEG-4第十部分,是ITU-T的VCEG(视频编码专家组)和ISO/IEC的MPEG(活动图像编码专家组)的联合视频组(Joint Video Team,JVT)开发的一个数字视频编码标准,具有低码率、高图像质量、容错能力强、网络适应性强的优势。由于H.264具有很高的数据压缩比率,采用H.264标准压缩的视频数据,在网络传输过程中所需要的带宽更少,也更加经济。
H.264码流是由一个接一个NAL(Network Abstraction Layer,网络提取层)单元(即,NAL单元序列)组成,它的功能分为两层:VCL(Video Coding Layer,视频编码层)和网络提取层NAL。在VCL进行数据传输或存储之前,这些编码的VCL数据,被映射或封装进NAL单元。
NAL单元序列的结构如下所示:
Figure BDA0001878959520000081
如上所示,每个NAL单元包括作为Body数据的一个原始字节序列负荷(Raw ByteSequence Payload,RBSP),和一组对应于视频编码的NAL头部信息,其中,NAL头部信息包含该NAL属于哪种类型数据的信息。
常见的NAL类型包括以下定义的类型:
//H.264定义的类型values for nal_unit_type
typedef enum{
NALU_TYPE_SLICE=1,
NALU_TYPE_DPA=2,
NALU_TYPE_DPB=3,
NALU_TYPE_DPC=4,
NALU_TYPE_IDR=5,
NALU_TYPE_SEI=6,
NALU_TYPE_SPS=7,
NALU_TYPE_PPS=8,
NALU_TYPE_AUD=9,
其中,1表示非IDR(Instantaneous Decoding Refresh,即时解码刷新)的编码条带,2表示编码条带数据分割块A,3表示编码条带数据分割块B,4表示编码条带数据分割块C,5表示IDR图像的编码条带,6表示辅助增强信息(Supplemental EnhancementInformation,SEI),7表示序列参数集(Sequence Parameter Set,SPS),8表示图像参数集(Picture Parameter Set,PPS),9表示访问单元分隔符(Access Unit Delimiter,AUD)。
在本发明实施例的一种可选实施方式中,传送端120还可以根据H.264格式对接收的H.264视频流数据进行解析得到每个NAL单元,并将解析出的每个NAL单元作为单个NAL对象发送给显示端130,从而显示端130进行视频流数据的播放。
在本发明实施例的一种可选实施方式中,为了提升图像显示效果,显示端130还可以采用Broadway解码器对所接收的视频流数据进行解码并播放。
Broadway是一个JavaScript H.264解码器,比jsmpeg清晰度要高,使用Emscripten工具从Android的H.264解码器转化而成,它还针对WebGL(Web GraphicsLibrary,Web图形库)做了一些优化。
以下列出了Broadway解码播放的实现代码的示例:
Figure BDA0001878959520000091
Figure BDA0001878959520000101
通过采用Broadway前端javascript技术进行视频流数据的播放显示,很好地解决了H.264数据的显示问题,能够提供更清晰流畅的显示效果。
进一步地,当采用Broadway解码器进行解码并播放时,应按照Broadway定义的数据格式进行后台数据传送。
以上面列举的Broadway解码播放的实现代码为例,可以按照Broadway定义的arraybuffer数据格式进行后台数据的传送。Arraybuffer又称类型化数组,arraybuffer对象代表原始的二进制数据,非常适用于需要大量、实时的数据交换的场景。通过采用arraybuffer格式进行二进制数据通信,提高了显示端的响应速度,使视频流播放更流畅。
以上介绍了图1所示实施例的各个环节的多种实现方式,下面以一个具体实施例来详细介绍本发明的基于视频流的屏幕显示系统的架构及其显示效果。
图2示出了根据本发明另一实施例的基于视频流的屏幕显示系统的架构示意图。参见图2,该系统主要包括:移动设备端210、传送端220以及显示端230。
下面结合图2对本发明实施例提供的基于视频流的屏幕显示系统的系统架构和各部分的功能进行说明。
在本实施例提供的屏幕显示系统中,移动设备端210为搭载了Android系统的手机端。传送端220为具备数据传输和数据解析功能的个人计算机。显示端230为搭载了浏览器的显示器。其中,上述显示器和个人计算机可以集成为一体,也可以分开设置。
参照图2所示,手机端210通过在本机内部启动scrcpy工具来采集本终端屏幕的视频流数据。具体地,在手机端210内部启动scrcpy.jar后,scrcpy.jar内部调用Android接口MediaCodec将scrcpy工具采集的原始视频数据编码为H.264格式的视频流数据。
进而,手机端210通过adb forward命令来建立scrcpy进程与个人计算机220上socket的通信,从而将所采集的H.264格式的本机屏幕的视频流数据发送给个人计算机220。具体地,通过在个人计算机220中执行adb forward命令行:adb forward tcp:8888localabstract:scrcpy,将个人计算机220的端口8888映射到scrcpy工具,实现个人计算机220上socket与scrcpy进程的通信,从而实现将H.264格式的手机端210的屏幕的视频流数据传输至个人计算机220。
个人计算机220通过adb接收到手机端210的屏幕的视频流数据之后,根据H.264格式对接收到的视频流数据进行解析,得到视频流数据的NAL单元序列中的每个NAL单元。个人计算机220还与显示端230上搭载的浏览器建立socket通信,从而通过socket通信将解析出的每个NAL单元作为单个NAL对象发送给该浏览器。
浏览器接收到解析后的手机端210的屏幕的视频流数据之后,采用Broadway解码器对所接收到的H.264格式的视频流数据进行解码,并在web前端页面对解码后的视频流数据进行播放显示。其中,Broadway解码器定义了H.264流的数据格式为arraybuffer,在进行解码显示时,须将后台传送的数据按照Broadway定义的格式进行传送。同时,在进行播放显示时,通过浏览器的局部渲染来播放该视频流数据。
本发明实施例实现了将手机屏幕的信息以视频流的方式传输并显示,解决了现有技术中采用minicap工具进行屏幕拷贝存在的种种问题。
图3示出了本发明实施例提供的基于视频流的屏幕显示系统对于手机屏幕信息的显示效果。参见图3可见,通过本发明实施例提供的基于视频流的屏幕显示系统,可以高清晰度地显示真实手机端的屏幕信息。同时,显示端还可以提供退出、返回等操作按键,以及清晰度的选择按键,方便用户操作,提升用户的使用体验。
基于同一发明构思,本发明实施例还提供了一种基于视频流的屏幕显示方法。图4示出了根据本发明一实施例的应用于移动设备端的基于视频流的屏幕显示方法的流程图。参见图4,该方法至少可以包括以下步骤:
步骤S402,采集该移动设备端自身的屏幕的视频流数据。
步骤S404,将视频流数据发送给传送端,从而传送端对所接收的视频流数据进行解析后,将解析后的视频流数据发送给显示端进行播放。
本发明实施例实现了对移动设备端的屏幕的视频流数据的显示,适用于当通过远程真机租用平台进行移动测试时显示移动设备的屏幕信息的场景。
在实际应用场景中,上文提及的移动设备端可以包括手机、平板电脑、智能手表等智能移动终端。
在一个可选实施例中,步骤S402可以实施为:
通过在移动设备端内部启动scrcpy工具来采集该移动设备端自身的屏幕的视频流数据。
具体地,通过在移动设备端内部启动scrcpy.jar来进行。
进一步地,在移动设备端内部启动scrcpy工具后,调用MediaCodec接口来采集该移动设备端自身的屏幕的视频流数据。
通过MediaCodec接口来进行移动设备端自身的屏幕的视频流数据的采集,避免了现有技术中minicap采用Android的私有API可能导致的访问受限的问题。
在一个可选实施例中,步骤S404可以实施为:
通过adb forward命令建立scrcpy进程与传送端的socket的通信,从而将视频流数据发送给传送端。
adb forward命令的用法如前所述,此处不另赘述。
在一个可选实施例中,视频流数据的格式为H.264。由于H.264具有很高的数据压缩比率和图像质量,采用H.264标准压缩的视频数据,可以减少网络传输所需带宽。
相应地,图5示出了根据本发明一实施例的应用于传送端的基于视频流的屏幕显示方法的流程图。参见图5,该方法至少可以包括以下步骤:
步骤S502,接收移动设备端所采集的该移动设备端自身的屏幕的视频流数据。
步骤S504,对所接收的视频流数据进行解析。
步骤S506,将解析后的视频流数据发送给显示端,从而显示端对解析后的视频流数据进行播放。
本发明实施例实现了对移动设备端的屏幕的视频流数据的显示,适用于当通过远程真机租用平台进行移动测试时显示移动设备的屏幕信息的场景。
可选地,传送端可以为服务器或个人计算机PC。
在一个可选实施例中,步骤S502可以实施为:
通过执行adb forward命令建立与移动设备端的通信后,接收来自移动设备端的视频流数据。其中,移动设备端通过在自身内部启动scrcpy工具来采集自身的屏幕的视频流数据,传送端通过执行adb forward命令所建立的与移动设备端的通信为传送端的socket与移动设备端的scrcpy进程之间的通信。
在一个可选实施例中,步骤S506可以实施为:
通过与显示端建立socket通信将解析后的视频流数据发送给显示端。
在一个可选实施例中,上文提及的视频流数据的格式为H.264。
进一步地,步骤S504可以实施为:
根据H.264格式对接收的视频流数据进行解析得到每个网络提取层NAL单元。
并且,步骤S506还可以进一步实施为:
将每个NAL单元作为单个NAL对象发送给显示端。
相应地,图6示出了根据本发明一实施例的应用于显示端的基于视频流的屏幕显示方法的流程图。参见图6,该方法至少可以包括以下步骤:
步骤S602,接收来自传送端的、由传送端解析后的移动设备端的屏幕的视频流数据。
步骤S604,播放所接收到的视频流数据。
本发明实施例实现了对移动设备端的屏幕的视频流数据的显示,适用于当通过远程真机租用平台进行移动测试时显示移动设备的屏幕信息的场景。
可选地,显示端可以包括显示器,其上可以搭载用于视频流播放的软件类客户端,例如浏览器、媒体播放器等。
在一个可选实施例中,显示端搭载了浏览器。此时,步骤S604可以实施为:
通过浏览器的局部渲染来播放所接收到的视频流数据。
由于采用了局部渲染的视频流播放技术,与现有技术中minicap通过传递真机屏幕的整张图片数据来实现实时显示效果相比,本发明实施例的方案只需传送真机屏幕中发生更改的区域的数据,减轻了网络传输的压力。
在一个可选实施例中,上文提及的视频流数据的格式为H.264。
进一步地,步骤S604还可以进一步实施为:
采用Broadway解码器对所接收的视频流数据进行解码并播放。
Broadway解码器是一种高效的JavaScript H.264解码器,能够提供对H.264数据的更清晰流畅的显示效果。
更进一步地,当采用Broadway解码器进行解码并播放时,应按照Broadway定义的数据格式进行后台数据传送。例如,采用Broadway定义的arraybuffer格式传送后台数据。
通过采用arraybuffer格式进行二进制数据通信,提高了显示端的响应速度,使视频流播放更流畅。
下面将通过具体实施例来详细介绍本发明的基于视频流的屏幕显示方法的实现过程。图7示出了根据本发明一具体实施例的结合移动设备端、传送端和显示端的基于视频流的屏幕显示方法的流程示意图。在本实施例中,移动设备端为搭载了Android系统的手机,传送端为PC,显示端为搭载了浏览器的显示器。
该方法至少可以包括以下步骤S702至步骤S716。
步骤S702,移动设备端在自身内部启动scrcpy工具,并调用MediaCodec接口采集自身屏幕的H.264格式的视频流数据。
步骤S704,传送端执行adb forward命令建立自身的socket与移动设备端的scrcpy进程的通信。
步骤S706,移动设备端将所采集的视频流数据发送给传送端。
步骤S708,传送端接收该视频流数据,根据H.264格式对接收的视频流数据进行解析得到每个NAL单元。
步骤S710,传送端与显示端建立socket通信。
步骤S712,传送端将解析得到的视频流数据的每个NAL单元作为单个NAL对象发送给显示端。
步骤S714,显示端接收传送端发送的解析后的视频流数据。
步骤S716,显示器通过Broadway解码器对所接收的视频流数据进行解码,并通过局部渲染在浏览器上播放该视频流数据。
在本发明实施例中,步骤S704也可以在启动scrcpy工具后即进行。步骤S710也可以在传送端向显示端发送数据之前的任何时间进行。
本发明实施例采用视频流的方式来替代minicap图片采集的方式,解决了现有技术中采用minicap进行屏幕拷贝带来的种种问题。同时,通过采用scrcpy工具来采集移动设备端的屏幕的视频流数据,并通过浏览器的局部渲染来播放解析后的视频流数据,提高了屏幕显示方案的普适性和传输效率。
基于同一发明构思,本发明实施例还提供了一种移动设备端,用于支持上述任意一个实施例或其组合所提供的基于视频流的屏幕显示系统。图8示出了根据本发明一实施例的移动设备端810的结构示意图。参见图8,该移动设备端810至少可以包括:屏幕数据采集模块811和屏幕数据发送模块812。
现介绍本发明实施例的移动设备端810的各组成或器件的功能以及各部分间的连接关系:
屏幕数据采集模块811,适于采集移动设备端810自身的屏幕的视频流数据。
屏幕数据发送模块812,与屏幕数据采集模块811连接,适于将该视频流数据发送给传送端,从而传送端对所接收的视频流数据进行解析后,将解析后的视频流数据发送给显示端进行播放。
在一个可选实施例中,该移动设备端810可以应用于当通过远程真机租用平台进行移动测试时显示移动设备端的屏幕信息的场景。
在一个可选实施例中,屏幕数据采集模块811还适于:
通过在移动设备端810内部启动scrcpy工具来采集移动设备端810自身的屏幕的视频流数据。
进一步地,屏幕数据采集模块811还适于:
在启动scrcpy工具后,调用MediaCodec接口来采集移动设备端810自身的屏幕的视频流数据。
更进一步地,屏幕数据发送模块812还适于:
通过adb forward命令建立scrcpy进程与传送端的socket的通信,从而将视频流数据发送给传送端。
在一个可选实施例中,上文提及的视频流数据的格式可以为H.264。
相应地,本发明实施例还提供了一种传送端。图9示出了根据本发明一实施例的传送端820的结构示意图。参见图9,该传送端820至少可以包括:屏幕数据接收模块821、屏幕数据解析模块822以及屏幕数据解析模块823。
现介绍本发明实施例的传送端820的各组成或器件的功能以及各部分间的连接关系:
屏幕数据接收模块821,适于接收移动设备端所采集的该移动设备端自身的屏幕的视频流数据。
屏幕数据解析模块822,与屏幕数据接收模块821连接,适于对所接收的视频流数据进行解析。
解析数据发送模块823,与屏幕数据解析模块822连接,适于将解析后的视频流数据发送给显示端,从而显示端对解析后的视频流数据进行播放。
在一个可选实施例中,该传送端820可以应用于当通过远程真机租用平台进行移动测试时显示所述移动设备端的屏幕信息的场景。
可选地,传送端820可以为服务器或个人计算机PC。
在一个可选实施例中,屏幕数据接收模块821还适于:
通过执行adb forward命令建立与移动设备端的通信后,接收来自移动设备端的视频流数据。其中,移动设备端通过在自身内部启动scrcpy工具来采集自身的屏幕的视频流数据,屏幕数据接收模块821通过执行adb forward命令所建立的与移动设备端的通信为传送端820的socket与移动设备端的scrcpy进程之间的通信。
在一个可选实施例中,解析数据发送模块823还适于:
通过与显示端建立socket通信将解析后的视频流数据发送给显示端。
在一个可选实施例中,屏幕数据接收模块821所接收的视频流数据的格式为H.264。
进一步地,屏幕数据解析模块822还适于:
根据H.264格式对接收的视频流数据进行解析得到每个网络提取层NAL单元。
并且,解析数据发送模块823还适于:
将每个NAL单元作为单个NAL对象发送给显示端。
相应地,本发明实施例还提供了一种显示端。图10示出了根据本发明一实施例的显示端830的结构示意图。参见图10,该显示端830至少可以包括:解析数据接收模块831和屏幕数据播放模块832。
现介绍本发明实施例的显示端830的各组成或器件的功能以及各部分间的连接关系:
解析数据接收模块831,适于接收来自传送端的、由传送端解析后的移动设备端的屏幕的视频流数据。
屏幕数据播放模块832,与解析数据接收模块831连接,适于播放所接收到的视频流数据。
在一个可选实施例中,该显示端830可以应用于当通过远程真机租用平台进行移动测试时显示所述移动设备端的屏幕信息的场景。
可选地,显示端830可以为显示器,其上可以搭载用于视频流播放的软件类客户端,例如浏览器、媒体播放器等。
在一个可选实施例中,显示端830搭载了浏览器。此时,屏幕数据播放模块832还适于:
通过浏览器的局部渲染来播放所接收到的视频流数据。
在一个可选实施例中,解析数据接收模块831所接收的视频流数据的格式为H.264。
进一步地,屏幕数据播放模块832还适于:
采用Broadway解码器对所接收的视频流数据进行解码并播放。
更进一步地,采用Broadway解码器进行解码并播放时,按照Broadway定义的数据格式进行后台数据传送。
基于同一发明构思,本发明实施例还提供了一种计算机存储介质。该计算机存储介质存储有计算机程序代码,当该计算机程序代码在计算设备上运行时,导致计算设备执行根据上述任意一个实施例或其组合所述的应用于移动设备端的基于视频流的屏幕显示方法、应用于传送端的基于视频流的屏幕显示方法或者应用于显示端的基于视频流的屏幕显示方法。
基于同一发明构思,本发明实施例还提供了一种计算设备。该计算设备可以包括:
处理器;以及
存储有计算机程序代码的存储器;
当该计算机程序代码被处理器运行时,导致该计算设备执行根据上述任意一个实施例或其组合所述的应用于移动设备端的基于视频流的屏幕显示方法、应用于传送端的基于视频流的屏幕显示方法或者应用于显示端的基于视频流的屏幕显示方法。
根据上述任意一个可选实施例或多个可选实施例的组合,本发明实施例能够达到如下有益效果:
本发明实施例提出的基于视频流的屏幕显示方案,其架构包括移动设备端、传送端和显示端,其中,通过移动设备端采集自身屏幕的视频流数据,传送端对采集的移动设备端屏幕的视频流数据进行解析,显示端对解析后的视频流数据进行播放,实现移动设备端的屏幕信息的显示。本发明实施例的方案采用视频流的方式来替代minicap图片采集的方式,解决了现有技术中采用minicap进行屏幕拷贝时严格依赖于移动设备的Android版本和与该Android版本相应的minicap开源项目更新、并且不支持屏幕显示过程中旋转移动设备的问题,特别适用于当通过远程真机租用平台进行移动测试时显示手机端的屏幕信息的场景。
进一步地,移动设备端通过scrcpy工具来采集自身屏幕的视频流数据,由于不同SDK和CPU版本的移动设备端都可以使用统一的scrcpy.jar包,无需进行Android版本的适配测试,提高了本发明方案的普适性。
此外,显示端通过浏览器的局部渲染来播放解析后的视频流数据,与minicap通过传递真机屏幕的整张图片数据来实现实时显示效果相比,本发明方案只需传送真机屏幕中发生更改的区域的数据,减轻了网络传输的压力。
所属领域的技术人员可以清楚地了解到,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,为简洁起见,在此不另赘述。
另外,在本发明各个实施例中的各功能单元可以物理上相互独立,也可以两个或两个以上功能单元集成在一起,还可以全部功能单元都集成在一个处理单元中。上述集成的功能单元既可以采用硬件的形式实现,也可以采用软件或者固件的形式实现。
本领域普通技术人员可以理解:所述集成的功能单元如果以软件的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,其包括若干指令,用以使得一台计算设备(例如个人计算机,服务器,或者网络设备等)在运行所述指令时执行本发明各实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM)、随机存取存储器(RAM),磁碟或者光盘等各种可以存储程序代码的介质。
或者,实现前述方法实施例的全部或部分步骤可以通过程序指令相关的硬件(诸如个人计算机,服务器,或者网络设备等的计算设备)来完成,所述程序指令可以存储于一计算机可读取存储介质中,当所述程序指令被计算设备的处理器执行时,所述计算设备执行本发明各实施例所述方法的全部或部分步骤。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:在本发明的精神和原则之内,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案脱离本发明的保护范围。
根据本发明实施例的一方面,提供了A1.一种基于视频流的屏幕显示系统,包括:
移动设备端,用于采集本终端屏幕的视频流数据,并将所述视频流数据发送给传送端;
所述传送端,用于接收所述视频流数据,对所述视频流数据进行解析,并将解析后的视频流数据发送给显示端;以及
所述显示端,用于接收所述解析后的视频流数据,并播放所接收到的视频流数据。
A2.根据A1所述的屏幕显示系统,其中,所述系统应用于当通过远程真机租用平台进行移动测试时显示所述移动设备端的屏幕信息的场景。
A3.根据A2所述的屏幕显示系统,其中,所述传送端包括服务器或个人计算机;
所述显示端包括显示器。
A4.根据A1-A3中任一项所述的屏幕显示系统,其中,所述移动设备端还用于:
通过在本终端内部启动scrcpy工具来采集本终端屏幕的视频流数据。
A5.根据A4所述的屏幕显示系统,其中,所述移动设备端还用于:
在启动所述scrcpy工具后,调用MediaCodec接口来采集本终端屏幕的视频流数据。
A6.根据A4所述的屏幕显示系统,其中,所述移动设备端还用于:
通过adb forward命令建立scrcpy进程与所述传送端的socket的通信,从而将所述视频流数据发送给所述传送端。
A7.根据A1-A3中任一项所述的屏幕显示系统,其中,所述传送端还用于:
通过与所述显示端建立socket通信将解析后的视频流数据发送给所述显示端。
A8.根据A1-A3中任一项所述的屏幕显示系统,其中,所述显示端搭载了浏览器;
所述显示端还用于:
通过所述浏览器的局部渲染来播放所接收到的视频流数据。
A9.根据A1-A8中任一项所述的屏幕显示系统,其中,所述视频流数据的格式为H.264。
A10.根据A9所述的屏幕显示系统,其中,所述传送端还用于:
根据H.264格式对接收的所述视频流数据进行解析得到每个网络提取层NAL单元,并将每个所述NAL单元作为单个NAL对象发送给所述显示端。
A11.根据A9所述的屏幕显示系统,其中,所述显示端还用于:
采用Broadway解码器对所接收的视频流数据进行解码并播放。
A12.根据A10所述的屏幕显示系统,其中,采用Broadway解码器进行解码并播放时,按照Broadway定义的数据格式进行后台数据传送。
根据本发明实施例的另一方面,还提供了B13.一种基于视频流的屏幕显示方法,应用于移动设备端,包括:
采集所述移动设备端自身的屏幕的视频流数据;
将所述视频流数据发送给传送端,从而所述传送端对所接收的视频流数据进行解析后,将解析后的视频流数据发送给显示端进行播放。
B14.根据B13所述的屏幕显示方法,其中,所述方法应用于当通过远程真机租用平台进行移动测试时显示所述移动设备端的屏幕信息的场景。
B15.根据B13所述的屏幕显示方法,其中,采集所述移动设备端自身的屏幕的视频流数据,包括:
通过在所述移动设备端内部启动scrcpy工具来采集所述移动设备端自身的屏幕的视频流数据。
B16.根据B15所述的屏幕显示方法,其中,通过在所述移动设备端内部启动scrcpy工具来采集所述移动设备端自身的屏幕的视频流数据进一步包括:
在启动所述scrcpy工具后,调用MediaCodec接口来采集所述移动设备端自身的屏幕的视频流数据。
B17.根据B15所述的屏幕显示方法,其中,将所述视频流数据发送给传送端,包括:
通过adb forward命令建立scrcpy进程与所述传送端的socket的通信,从而将所述视频流数据发送给所述传送端。
B18.根据B13-B17中任一项所述的屏幕显示方法,其中,所述视频流数据的格式为H.264。
根据本发明实施例的另一方面,还提供了C19.一种基于视频流的屏幕显示方法,应用于传送端,包括:
接收移动设备端所采集的所述移动设备端自身的屏幕的视频流数据;
对所述视频流数据进行解析;
将解析后的视频流数据发送给显示端,从而所述显示端对所述解析后的视频流数据进行播放。
C20.根据C19所述的屏幕显示方法,其中,所述方法应用于当通过远程真机租用平台进行移动测试时显示所述移动设备端的屏幕信息的场景。
C21.根据C20所述的屏幕显示方法,其中,所述传送端包括服务器或个人计算机。
C22.根据C19所述的屏幕显示方法,其中,接收移动设备端所采集的所述移动设备端自身的屏幕的视频流数据,包括:
通过执行adb forward命令建立与所述移动设备端的通信后,接收来自所述移动设备端的所述视频流数据;
其中,所述移动设备端通过在自身内部启动scrcpy工具来采集自身的屏幕的视频流数据,通过执行adb forward命令所建立的与所述移动设备端的通信为所述传送端的socket与所述移动设备端的scrcpy进程之间的通信。
C23.根据C19所述的屏幕显示方法,其中,将解析后的视频流数据发送给显示端,包括:
通过与所述显示端建立socket通信将解析后的视频流数据发送给所述显示端。
C24.根据C19-C23中任一项所述的屏幕显示方法,其中,所述视频流数据的格式为H.264。
C25.根据C24所述的屏幕显示方法,其中,对所述视频流数据进行解析,包括:
根据H.264格式对接收的所述视频流数据进行解析得到每个网络提取层NAL单元;
将解析后的视频流数据发送给显示端,进一步包括:
将每个所述NAL单元作为单个NAL对象发送给所述显示端。
根据本发明实施例的另一方面,还提供了D26.一种基于视频流的屏幕显示方法,应用于显示端,包括:
接收来自传送端的、由所述传送端解析后的移动设备端的屏幕的视频流数据;
播放所接收到的视频流数据。
D27.根据D26所述的屏幕显示方法,其中,所述方法应用于当通过远程真机租用平台进行移动测试时显示所述移动设备端的屏幕信息的场景。
D28.根据D27所述的屏幕显示方法,其中,所述显示端包括显示器。
D29.根据D26所述的屏幕显示方法,其中,所述显示端搭载了浏览器;
播放所接收到的视频流数据,包括:
通过所述浏览器的局部渲染来播放所接收到的视频流数据。
D30.根据D26-D29中任一项所述的屏幕显示方法,其中,所述视频流数据的格式为H.264。
D31.根据D30所述的屏幕显示方法,其中,播放所接收到的视频流数据进一步包括:
采用Broadway解码器对所接收的视频流数据进行解码并播放。
D32.根据D31所述的屏幕显示方法,其中,采用Broadway解码器进行解码并播放时,按照Broadway定义的数据格式进行后台数据传送。
根据本发明实施例的另一方面,还提供了E33.一种移动设备端,包括:
屏幕数据采集模块,适于采集所述移动设备端自身的屏幕的视频流数据;以及
屏幕数据发送模块,适于将所述视频流数据发送给传送端,从而所述传送端对所接收的视频流数据进行解析后,将解析后的视频流数据发送给显示端进行播放。
E34.根据E33所述的移动设备端,其中,所述移动设备端应用于当通过远程真机租用平台进行移动测试时显示所述移动设备端的屏幕信息的场景。
E35.根据E33所述的移动设备端,其中,所述屏幕数据采集模块还适于:
通过在所述移动设备端内部启动scrcpy工具来采集所述移动设备端自身的屏幕的视频流数据。
E36.根据E35所述的移动设备端,其中,所述屏幕数据采集模块还适于:
在启动所述scrcpy工具后,调用MediaCodec接口来采集所述移动设备端自身的屏幕的视频流数据。
E37.根据E35所述的移动设备端,其中,所述屏幕数据发送模块还适于:
通过adb forward命令建立scrcpy进程与所述传送端的socket的通信,从而将所述视频流数据发送给所述传送端。
E38.根据E33-E37中任一项所述的移动设备端,其中,所述视频流数据的格式为H.264。
根据本发明实施例的另一方面,还提供了F39.一种传送端,包括:
屏幕数据接收模块,适于接收移动设备端所采集的所述移动设备端自身的屏幕的视频流数据;
屏幕数据解析模块,适于对所述视频流数据进行解析;以及
解析数据发送模块,适于将解析后的视频流数据发送给显示端,从而所述显示端对所述解析后的视频流数据进行播放。
F40.根据F39所述的传送端,其中,所述传送端应用于当通过远程真机租用平台进行移动测试时显示所述移动设备端的屏幕信息的场景。
F41.根据F40所述的传送端,其中,所述传送端包括服务器或个人计算机。
F42.根据F39所述的传送端,其中,所述屏幕数据接收模块还适于:
通过执行adb forward命令建立与所述移动设备端的通信后,接收来自所述移动设备端的所述视频流数据;
其中,所述移动设备端通过在自身内部启动scrcpy工具来采集自身的屏幕的视频流数据,通过执行adb forward命令所建立的与所述移动设备端的通信为所述传送端的socket与所述移动设备端的scrcpy进程之间的通信。
F43.根据F39所述的传送端,其中,所述解析数据发送模块还适于:
通过与所述显示端建立socket通信将解析后的视频流数据发送给所述显示端。
F44.根据F39-F43中任一项所述的传送端,其中,所述视频流数据的格式为H.264。
F45.根据F44所述的传送端,其中,所述屏幕数据解析模块还适于:
根据H.264格式对接收的所述视频流数据进行解析得到每个网络提取层NAL单元;
所述解析数据发送模块还适于:
将每个所述NAL单元作为单个NAL对象发送给所述显示端。
根据本发明实施例的另一方面,还提供了G46.一种显示端,包括:
解析数据接收模块,适于接收来自传送端的、由所述传送端解析后的移动设备端的屏幕的视频流数据;以及
屏幕数据播放模块,适于播放所接收到的视频流数据。
G47.根据G46所述的显示端,其中,所述显示端应用于当通过远程真机租用平台进行移动测试时显示所述移动设备端的屏幕信息的场景。
G48.根据G47所述的显示端,其中,所述显示端包括显示器。
G49.根据G46所述的显示端,其中,所述显示端搭载了浏览器;
所述屏幕数据播放模块还适于:
通过所述浏览器的局部渲染来播放所接收到的视频流数据。
G50.根据G46-G49中任一项所述的显示端,其中,所述视频流数据的格式为H.264。
G51.根据G50所述的显示端,其中,所述屏幕数据播放模块还适于:
采用Broadway解码器对所接收的视频流数据进行解码并播放。
G52.根据G51所述的显示端,其中,采用Broadway解码器进行解码并播放时,按照Broadway定义的数据格式进行后台数据传送。
根据本发明实施例的再一方面,还提供了H53.一种计算机存储介质,所述计算机存储介质存储有计算机程序代码,当所述计算机程序代码在计算设备上运行时,导致所述计算设备执行根据B13-B18中任一项所述的应用于移动设备端的基于视频流的屏幕显示方法、根据C19-C25中任一项所述的应用于传送端的基于视频流的屏幕显示方法或根据D26-D32中任一项所述的应用于显示端的基于视频流的屏幕显示方法。
根据本发明实施例的又一方面,还提供了I54.一种计算设备,包括:
处理器;以及
存储有计算机程序代码的存储器;
当所述计算机程序代码被所述处理器运行时,导致所述计算设备执行根据B13-B18中任一项所述的应用于移动设备端的基于视频流的屏幕显示方法、根据C19-C25中任一项所述的应用于传送端的基于视频流的屏幕显示方法或根据D26-D32中任一项所述的应用于显示端的基于视频流的屏幕显示方法。

Claims (10)

1.一种基于视频流的屏幕显示系统,包括:
移动设备端,用于采集本终端屏幕的视频流数据,并将所述视频流数据发送给传送端;
所述传送端,用于接收所述视频流数据,对所述视频流数据进行解析,并将解析后的视频流数据发送给显示端;以及
所述显示端,用于接收所述解析后的视频流数据,并播放所接收到的视频流数据。
2.根据权利要求1所述的屏幕显示系统,其中,所述系统应用于当通过远程真机租用平台进行移动测试时显示所述移动设备端的屏幕信息的场景。
3.一种基于视频流的屏幕显示方法,应用于移动设备端,包括:
采集所述移动设备端自身的屏幕的视频流数据;
将所述视频流数据发送给传送端,从而所述传送端对所接收的视频流数据进行解析后,将解析后的视频流数据发送给显示端进行播放。
4.一种基于视频流的屏幕显示方法,应用于传送端,包括:
接收移动设备端所采集的所述移动设备端自身的屏幕的视频流数据;
对所述视频流数据进行解析;
将解析后的视频流数据发送给显示端,从而所述显示端对所述解析后的视频流数据进行播放。
5.一种基于视频流的屏幕显示方法,应用于显示端,包括:
接收来自传送端的、由所述传送端解析后的移动设备端的屏幕的视频流数据;
播放所接收到的视频流数据。
6.一种移动设备端,包括:
屏幕数据采集模块,适于采集所述移动设备端自身的屏幕的视频流数据;以及
屏幕数据发送模块,适于将所述视频流数据发送给传送端,从而所述传送端对所接收的视频流数据进行解析后,将解析后的视频流数据发送给显示端进行播放。
7.一种传送端,包括:
屏幕数据接收模块,适于接收移动设备端所采集的所述移动设备端自身的屏幕的视频流数据;
屏幕数据解析模块,适于对所述视频流数据进行解析;以及
解析数据发送模块,适于将解析后的视频流数据发送给显示端,从而所述显示端对所述解析后的视频流数据进行播放。
8.一种显示端,包括:
解析数据接收模块,适于接收来自传送端的、由所述传送端解析后的移动设备端的屏幕的视频流数据;以及
屏幕数据播放模块,适于播放所接收到的视频流数据。
9.一种计算机存储介质,所述计算机存储介质存储有计算机程序代码,当所述计算机程序代码在计算设备上运行时,导致所述计算设备执行根据权利要求3所述的应用于移动设备端的基于视频流的屏幕显示方法、根据权利要求4所述的应用于传送端的基于视频流的屏幕显示方法或根据权利要求5所述的应用于显示端的基于视频流的屏幕显示方法。
10.一种计算设备,包括:
处理器;以及
存储有计算机程序代码的存储器;
当所述计算机程序代码被所述处理器运行时,导致所述计算设备执行根据权利要求3所述的应用于移动设备端的基于视频流的屏幕显示方法、根据权利要求4所述的应用于传送端的基于视频流的屏幕显示方法或根据权利要求5所述的应用于显示端的基于视频流的屏幕显示方法。
CN201811413865.5A 2018-11-26 2018-11-26 一种基于视频流的屏幕显示方法、装置和系统 Pending CN111225275A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811413865.5A CN111225275A (zh) 2018-11-26 2018-11-26 一种基于视频流的屏幕显示方法、装置和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811413865.5A CN111225275A (zh) 2018-11-26 2018-11-26 一种基于视频流的屏幕显示方法、装置和系统

Publications (1)

Publication Number Publication Date
CN111225275A true CN111225275A (zh) 2020-06-02

Family

ID=70830762

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811413865.5A Pending CN111225275A (zh) 2018-11-26 2018-11-26 一种基于视频流的屏幕显示方法、装置和系统

Country Status (1)

Country Link
CN (1) CN111225275A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112788193A (zh) * 2020-12-30 2021-05-11 北京达佳互联信息技术有限公司 图像传输方法、装置、电子设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103458087A (zh) * 2013-08-30 2013-12-18 华南理工大学 一种基于rtmp的远程手机测试体验方法
CN105827484A (zh) * 2016-05-11 2016-08-03 厦门美图移动科技有限公司 一种测试画面同步显示方法及系统
CN106303329A (zh) * 2016-08-11 2017-01-04 广州爱九游信息技术有限公司 录屏直播方法和装置、移动设备及直播系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103458087A (zh) * 2013-08-30 2013-12-18 华南理工大学 一种基于rtmp的远程手机测试体验方法
CN105827484A (zh) * 2016-05-11 2016-08-03 厦门美图移动科技有限公司 一种测试画面同步显示方法及系统
CN106303329A (zh) * 2016-08-11 2017-01-04 广州爱九游信息技术有限公司 录屏直播方法和装置、移动设备及直播系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JOE FEDEWA: "Control your Android Smartphone from your PC for free with scrcpy", pages 1 - 3 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112788193A (zh) * 2020-12-30 2021-05-11 北京达佳互联信息技术有限公司 图像传输方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
CN114503599B (zh) 使用gltf2场景描述中的扩展来支持视频和音频数据
CN107645491B (zh) 媒体流传输设备和媒体服务设备
US10027970B2 (en) Render-orientation information in video bitstream
TW201907706A (zh) 容器檔案及視訊位元串流中關注區域之增強信令傳輸
CN105744295A (zh) 提供用于串流传输视频数据的序列数据集
US11348307B2 (en) Method and device for processing content
CN111225222A (zh) 基于rtmp的屏幕数据的视频流播放方法、装置和系统
CN110996160A (zh) 视频处理方法、装置、电子设备及计算机可读取存储介质
CN112073809A (zh) 一种支持浏览器播放任意编码格式视频的方法
EP3888375A1 (en) Method, device, and computer program for encapsulating media data into a media file
CN113709518B (zh) 一种基于rtsp协议的视频实时传输模式设计方法
WO2019128668A1 (zh) 视频码流处理方法、装置、网络设备和可读存储介质
WO2021057697A1 (zh) 视频编解码方法和装置、存储介质及电子装置
CN110996122A (zh) 视频帧传输方法、装置、计算机设备及存储介质
CN114938408A (zh) 一种云手机的数据传输方法、系统、设备及介质
KR102163440B1 (ko) 그래픽 처리기를 이용한 비디오 디코딩에 대한 픽처 참조 제어
CN111225275A (zh) 一种基于视频流的屏幕显示方法、装置和系统
CN112203097A (zh) 一种自适应视频解码方法、装置,终端设备及存储介质
CN115988171A (zh) 一种视频会议系统及其沉浸式布局方法和装置
WO2022116822A1 (zh) 沉浸式媒体的数据处理方法、装置和计算机可读存储介质
CN114009030B (zh) 视频解码的方法、装置及可读介质
CN113473158B (zh) 直播数据处理方法、装置、电子设备、介质
KR20230104907A (ko) 볼류메트릭 비디오에 대한 투명도 범위
WO2016107174A1 (zh) 多媒体文件数据的处理方法及系统、播放器和客户端
CN110798715A (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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20200602