CN113316028B - 投屏方法、投屏设备及存储介质 - Google Patents
投屏方法、投屏设备及存储介质 Download PDFInfo
- Publication number
- CN113316028B CN113316028B CN202010127725.2A CN202010127725A CN113316028B CN 113316028 B CN113316028 B CN 113316028B CN 202010127725 A CN202010127725 A CN 202010127725A CN 113316028 B CN113316028 B CN 113316028B
- Authority
- CN
- China
- Prior art keywords
- frame
- screen projection
- message
- slice
- application layer
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 79
- 230000005540 biological transmission Effects 0.000 claims abstract description 97
- 230000011218 segmentation Effects 0.000 claims abstract description 68
- 238000004590 computer program Methods 0.000 claims description 18
- 230000006835 compression Effects 0.000 claims description 16
- 238000007906 compression Methods 0.000 claims description 16
- 230000006798 recombination Effects 0.000 claims description 15
- 238000005215 recombination Methods 0.000 claims description 15
- 238000005516 engineering process Methods 0.000 claims description 7
- 238000005192 partition Methods 0.000 claims description 7
- 230000008521 reorganization Effects 0.000 claims description 3
- 238000004891 communication Methods 0.000 abstract description 14
- 238000010586 diagram Methods 0.000 description 15
- 238000012545 processing Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 11
- 238000013467 fragmentation Methods 0.000 description 10
- 238000006062 fragmentation reaction Methods 0.000 description 10
- 238000005266 casting Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 230000003993 interaction Effects 0.000 description 6
- 230000009286 beneficial effect Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 239000012634 fragment Substances 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 210000001072 colon Anatomy 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network 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/63—Control 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/643—Communication protocols
- H04N21/6437—Real-time Transport Protocol [RTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/41—Structure of client; Structure of client peripherals
- H04N21/4104—Peripherals receiving signals from specially adapted client devices
- H04N21/4122—Peripherals receiving signals from specially adapted client devices additional display device, e.g. video projector
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/41—Structure of client; Structure of client peripherals
- H04N21/4104—Peripherals receiving signals from specially adapted client devices
- H04N21/4126—The peripheral being portable, e.g. PDAs or mobile phones
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/436—Interfacing a local distribution network, e.g. communicating with another STB or one or more peripheral devices inside the home
- H04N21/4363—Adapting the video stream to a specific local network, e.g. a Bluetooth® network
- H04N21/43637—Adapting 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]
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
本申请适用于通信技术领域,提供了一种投屏方法、投屏设备及存储介质。投屏方法包括:发送端与接收端建立投屏连接,发送端在获取到I帧时,在应用层将I帧分割成至少两个帧片,并生成每个帧片对应的报文,并并行发送该I帧对应的所有报文至接收端。每个报文包括传输层报文头、应用层报文头以及一个帧片,应用层报文头包括承载于该报文的帧片对应的分割信息。接收端在接收到I帧对应的所有报文时,能够根据每个报文的应用层报文头中的分割信息对由I帧分割得到的所有帧片进行重组,从而还原得到I帧。本方案,将I帧分割成至少两个帧片,将由该I帧割得到的帧片并行传输至接收端,减少I帧的传输时延,从而减少投屏的画面卡顿。
Description
技术领域
本申请属于通信技术领域,尤其涉及投屏方法、投屏设备及存储介质。
背景技术
随着智能设备的普及和通信技术的发展,在日常生活中,将一个设备上的数据投放到另一设备上进行显示变得越来越普遍。例如,将手机或平板上播放的视频投送到智能电视上显示并播放。目前现有的投屏方法通常按照一定的帧率传输投屏数据,关键帧存在投屏的画面卡顿的问题。帧率就是在1秒钟时间里传输的图片的帧数。
发明内容
本申请实施例提供了投屏方法、投屏设备及存储介质,可以解决现有技术中投屏的画面卡顿的问题。
第一方面,本申请实施例提供一种投屏方法,应用于第一投屏设备,所示投屏方法包括:
当待发送的图像帧是I帧时,将所述I帧分割成至少两个帧片;
生成每个所述帧片对应的第一报文,所述第一报文包括传输层报文头、应用层报文头以及一个所述帧片,所述应用层报文头包括承载于所述第一报文的帧片对应的分割信息,所述分割信息用于帧片重组;
将至少两个所述帧片对应的第一报文并行发送至第二投屏设备。
在本实施例中,在识别出I帧时,在应用层对I帧进行分割,由I帧分割得到的帧片的数据量大小可以是非固定的;由同一个I帧分割得到的不同帧片的数据量大小可以相同,也可以不同。由不同I帧分割得到的帧片的数据量大小可以相同,也可以不同,此处不做限制。
其中,由于I帧通常是每个画面组(Group of Pictures,GOP)的第一帧,I帧所占数据的信息量比较大,因此,可以通过GOP来识别I帧,还可以通过图像帧的数据量大小来识别I帧。例如,判断获取到的图像帧的数据量是否大于或等于预设数据量阈值,如果获取到的图像帧的数据量大于或等于预设数据量阈值,那么该图像帧为I帧,否则,该图像帧不是I帧,该图像帧可以为P帧。预设数据量阈值可以根据I帧所占的数据量设置,此处不做限制。例如,由于I帧通常占200K字节左右,因此,预设数据量阈值可以为180K字节、190K字节或200K字节。
本实施例,区别于现有技术在传输层通过协议栈将所有音视频帧分割为固定大小的帧片的方案,本方案发送端可以在应用层对I帧进行分割,将分割后的帧片并行传输至接收端,可以提高I帧的传输效率,进一步地减少传输I帧所需消耗的时间,从而降低I帧的传输时延,以减少投屏的画面卡顿,从而解决因I帧的传输时延较大而导致投屏的画面卡顿的问题。由于报文中包括用于指示帧片重组的帧片分割信息,接收端在接收到I帧对应的各报文时,可以正确地重组得到I帧,解决现有技术中因报文乱序无法播放的问题。
在第一方面的一种可能的实现方式中,所述I帧是所述第一投屏设备采用视频压缩编码技术对待传输的视频数据进行压缩编码得到的。
具体的,I帧可以是采用基于H.264的视频压缩编码技术进行编码得到。即,在本申请中,I帧、P帧、B帧为H.264视频压缩标准中定义的I帧、P帧、B帧。
在第一方面的一种可能的实现方式中,第一报文是基于实时传输协议(Real-timeTransport Protocol,RTP)以及实时传输控制协议(Real-time Transport ControlProtocol,PTCP)进行传输的。
RTP中定义了在互联网上传递音频和视频的标准数据包格式。RTCP为RTP媒体流提供信道外(out-of-band)控制,RTCP本身并不传输数据,但RTCP和RTP一起协作将多媒体数据打包和发送。RTP为互联网上端到端的实时传输提供时间信息和流同步,RTCP来提供服务质量(Quality of Service)。
具体的,RTCP与RTP联合工作,RTP实施实际数据的传输,RTCP则负责将控制包送至每个第二投屏设备。RTCP的主要功能是就RTP正在提供的服务质量做出反馈。RTCP收集相关媒体连接的统计信息,例如,传输字节数、传输分组数、丢失分组数、单向和双向网络延迟等,网络应用程序即可利用RTCP的统计信息来控制传输的品质,比如当网络带宽高负载时限制信息流量或改用压缩比较小的编解码器。
在第一方面的一种可能的实现方式中,所述分割信息包括帧片序号以及帧片总数,所述帧片序号用于表示承载于所述第一报文中的帧片在所述I帧中所处的位置,所述帧片总数用于表示由所述I帧分割得到的帧片的总数量。
由于分割信息中包括帧片总数和帧片序号,因此,第二投屏设备在接收到I帧对应的所有第一报文时,可以根据每个第一报文中的分割信息中包含的帧片总数和帧片序号,对所有帧片进行排序并重组得到I帧。
在第一方面的一种可能的实现方式中,所述分割信息还包括帧片的数据量大小,所述帧片的数据量大小用于所述第二投屏设备判断是否已接收完承载于所述第一报文中的帧片的数据。
第二投屏设备在获取到由I帧分割得到的所有帧片,并且每个帧片的数据均完整时,对所有帧片进行重组,以还原I帧。
在第一方面的一种可能的实现方式中,所述应用层报文头包括用于描述所述分割信息的第一字段、第二字段以及第三字段,所述第一字段用于描述所述图像帧是否被分割,当所述图像帧被分割时,还用于描述承载于所述第一报文中的帧片在所述图像帧中所处的位置,所述第二字段用于描述由所述图像帧分割得到的帧片的总数量,所述第三字段用于描述承载于所述第一报文中的帧片的数据量大小。
在本实施例中,由于应用层报文头中的第一字段可以用于描述图像帧是否被分割,因此,无论待发送的图像帧是I帧还是P帧,或者是B帧,均可以采用相同格式的应用层报文头。当然,也适用于待发送的音频帧。
可以理解的是,P帧、B帧以及音频帧等数据量较小的帧,由于传输时延较小,在发送前,也可以不用对其分割。这样一来,P帧、B帧或者音频帧对于的报文中也可以不包括应用层报文头,以便接收端可以较快地识别出接收到地报文是I帧对应的报文,还是非I帧对应的报文。
在第一方面的一种可能的实现方式中,所述帧片的数据量大小由所述第一投屏设备的中央处理器的占用率确定,和/或,由物理层的传输能力确定。
由于中央处理器(central processing unit,CPU)的占用率越低,CPU的占用率越低说明CPU的资源占用率越低,可用的资源越多,数据处理能力以及传输能力相对较强,可传输的数据量较大,可以较快地传输数据。也就是说,发送端的CPU的占用率,在一定程度上反应了发送端的传输能力,CPU的占用率较低时的传输能力相对于占用率较高时的传输能力更强,可传输的数据量更大,可以更快地传输数据,帧片的数据量可以设置稍大些。比如,处理器的占用率为20%时,帧片的数据量大小为第一数值;当处理器的占用率为40%时,帧片的数据量大小为第二数值,那么第一数值可以大于第二数值。
物理层的传输能力越强,可传输的数据量越大。物理层的传输能力较强时,帧片的数据量可以设置稍大些。
本实施例中,发送端可以根据其数据传输能力或者物理层的传输能力,灵活设置I帧的帧片的数据量大小,尽可能地使帧片的大小与传输能力相匹配或接近,以更快速地传输I帧,进一步降低I帧的传输时延,减少投屏的画面卡顿。
在第一方面的一种可能的实现方式中,当所述图像帧为P帧时,生成所述P帧对应的第二报文,所述第二报文包括所述传输层报文头、所述应用层报文头以及所述P帧,所述应用层报文头用于描述所述P帧未被分割;将所述P帧对应的第二报文发送至所述第二投屏设备。
其中,应用层报文头还可以用于描述P帧的数据量大小,以便接收端在接收到第二报文时,可以根据从第二报文中获取到的P帧的数据量大小、应用层报文头描述的P帧的数据量大小,来判断获取到的P帧的数据是否完整。当两者相同时,说明已获取到P帧的所有数据。
可以理解的是,P帧对应的第二报文中的应用层报文头也可以包括前面所说的第一字段、第二字段以及第三字段,第一字段用于描述P帧没有被分割,由于P帧没有被分割,因此,第二字段的值可以为1,第三字段用于描述P帧的数据量大小。
需要说明的是,如果图像帧还包括B帧时,由于相对于I帧来说,B帧和P帧的数据量均较小,可以不分割B帧。当待发送的图像帧为B帧时,生成B帧对应的第二报文。在本申请中针对B帧的处理方式与P帧的处理方式相同,具体可以参见关于P帧的相关描述,此处不赘述。
在第一方面的一种可能的实现方式中,所述将所述I帧分割成至少两个帧片之前,还包括:
在与所述第二投屏设备建立投屏连接时,创建多个套接字,所述多个套接字用于并行传输至少两个所述第一报文。
在本实施例中,通过多个套接字并行传输至少两个第一报文,并行传输时,一个套接字对于一个第一报文。
第二方面,本申请实施例提供了一种投屏方法,应用于第二投屏设备,投屏方法包括:
获取第一投屏设备并行发送的至少两个第一报文,每个所述第一报文包括传输层报文头、应用层报文头以及一个帧片,所述应用层报文头包括承载于所述第一报文的帧片对应的分割信息,所述帧片由所述第一投屏设备对I帧进行分割得到;
对所述第一报文进行解析,得到每个所述第一报文中的分割信息以及帧片;
根据每个所述第一报文中的所述分割信息,将至少两个所述第一报文中的所述帧片进行图像帧重组,得到所述I帧。
本实施例,第二投屏设备接收第一投屏设备并行传输的至少两个第一报文,可以根据所有第一报文中的分割信息,将由I帧分割得到的至少两个帧片重组得到I帧,并对I帧进行解码,显示I帧对应的图像。由于由I帧分割得到的至少两个帧片是并行传输的,相对于将I帧作为一个整体来传输,或者将I帧的帧片串行传输的方式来说,第一投屏设备传输I帧至第二投屏设备所需要的时间较短,可以减少传输时延,可以较快地显示I帧,从而减少第二投屏设备的投屏画面卡顿。
在第二方面的一种可能的实现方式中,所述分割信息包括帧片序号以及帧片总数,所述帧片序号用于表示承载于所述第一报文中的帧片在所述I帧中所处的位置,所述帧片总数用于表示由所述I帧分割得到的帧片的总数量。
由于分割信息中包括帧片总数和帧片序号,因此,第二投屏设备在接收到I帧对应的所有第一报文时,可以根据每个第一报文中的分割信息中包含的帧片总数和帧片序号,对所有帧片进行排序并重组得到I帧。
在第二方面的一种可能的实现方式中,所述分割信息还包括帧片的数据量大小,所述帧片的数据量大小用于所述第二投屏设备判断是否已接收完承载于所述第一报文中的帧片的数据。
第二投屏设备在获取到由I帧分割得到的所有帧片,并且每个帧片的数据均完整时,对所有帧片进行重组,以还原I帧。
在第二方面的一种可能的实现方式中,分割信息可以通过应用层报文头中的字段来描述,应用层报文头可以包括用于描述分割信息的第一字段、第二字段以及第三字段,所述第一字段用于描述所述图像帧是否被分割,当所述图像帧被分割时,还用于描述承载于所述第一报文中的帧片在所述图像帧中所处的位置,所述第二字段用于描述由所述图像帧分割得到的帧片的总数量,所述第三字段用于描述承载于所述第一报文中的帧片的数据量大小。
在第二方面的一种可能的实现方式中,所述图像帧重组包括:根据每个所述第一报文中的所述分割信息,确定所有所述帧片的排列顺序;根据所述排列顺序将所述帧片进行重组。
由于第一报文中的分割信息用于帧片重组,分割信息描述了I帧被分割得到的帧片的总数量以及每个帧片在I帧中所处的位置,因此,第二投屏设备可以根据所有第一报文中的分割信息,确定每个第一报文对应的帧片每个帧片在I帧中所处的位置,根据由I帧分割得到的帧片的总数量、每个帧片在I帧中所处的位置,对所有帧片进行帧片重组,得到I帧。
例如,当分割信息中包括帧片序号以及帧片总数时,第二投屏设备在解析第一报文得到第一报文中的帧片之后,可以根据帧片序号以及帧片总数对所有帧片进行排序,并根据排序后的帧片进行重组,得到I帧。
再例如,当分割信息通过应用层报文头中的字段来描述,应用层报文头包括第一字段、第二字段以及第三字段时,由于在I帧被分割时,第一字段用于表示承载于第一报文中的帧片在I帧中所处的位置,第二字段用于表示用于描述由I帧分割得到的帧片的总数量,因此,第二投屏设备可以根据应用层报文头中的第二字段以及第三字段的值,对所有帧片进行排序,并根据排序后的帧片进行重组,得到I帧。
可以理解的是,当分割信息还包括帧片的数据量大小时,第二投屏设备还可以根据第一报文中的帧片的数据量大小判断是否已接收完承载于第一报文中的帧片的数据。
第二投屏设备在确认获取到由I帧分割得到的所有帧片,并且每个帧片的数据均完整时,对所有帧片进行重组,以还原I帧。
在第二方面的一种可能的实现方式中,投屏方法还可以包括:
获取所述第二投屏设备发送的第二报文,所述第二报文包括P帧、所述P帧的数据量以及用于表示所述P帧未被分割的指示标识;
解析所述第二报文得到所述P帧。
其中,当第二报文的应用层报文头还可以用于描述P帧的数据量大小时,第二投屏设备在获取并解析第二报文之后,还可以根据从第二报文中获取到的P帧的数据量大小、应用层报文头描述的P帧的数据量大小,来判断获取到的P帧的数据是否完整。当两者相同时,说明已获取到P帧的所有数据。
可以理解的是,P帧对应的第二报文中的应用层报文头也可以包括前面所说的第一字段、第二字段以及第三字段,第一字段用于描述P帧没有被分割,由于P帧没有被分割,因此,第二字段的值可以为1,第三字段用于描述P帧的数据量大小。
在本实施例中,由于P帧没有被分割,因此,第二投屏设备可以在解析第二报文获取到P帧后,对P帧进行解码,显示P帧对应的图像。
第三方面,本申请实施例提供了一种投屏装置,该投屏装置包括:
分割单元,用于当待发送的图像帧是I帧时,将所述I帧分割成至少两个帧片;
第一报文生成单元,用于生成每个所述帧片对应的第一报文,所述第一报文包括传输层报文头、应用层报文头以及一个所述帧片,所述应用层报文头包括承载于所述第一报文的帧片对应的分割信息,所述分割信息用于帧片重组;
第一发送单元,用于将至少两个所述帧片对应的第一报文并行发送至第二投屏设备。
第三方面提供的投屏装置对应的有益效果与第一方面的投屏方法的有益效果相同,此处不赘述。
在第三方面的一种可能的实现方式中,所述分割信息包括帧片序号以及帧片总数,所述帧片序号用于表示承载于所述第一报文中的帧片在所述I帧中所处的位置,所述帧片总数用于表示由所述I帧分割得到的帧片的总数量。
在第三方面的一种可能的实现方式中,所述分割信息还包括帧片的数据量大小,所述帧片的数据量大小用于所述第二投屏设备判断是否已接收完承载于所述第一报文中的帧片的数据。
在第三方面的一种可能的实现方式中,所述应用层报文头包括用于描述所述分割信息的第一字段、第二字段以及第三字段,所述第一字段用于描述所述图像帧是否被分割,当所述图像帧被分割时,还用于描述承载于所述第一报文中的帧片在所述图像帧中所处的位置,所述第二字段用于描述由所述图像帧分割得到的帧片的总数量,所述第三字段用于描述承载于所述第一报文中的帧片的数据量大小。
在第三方面的一种可能的实现方式中,所述帧片的数据量大小由所述第一投屏设备的中央处理器的占用率确定,和/或,由物理层的传输能力确定。
在第三方面的一种可能的实现方式中,投屏装置还可以包括:
第二报文生成单元,用于当所述图像帧为P帧时,生成所述P帧对应的第二报文,所述第二报文包括所述传输层报文头、所述应用层报文头以及所述P帧,所述应用层报文头用于描述所述P帧未被分割;
第二发送单元,用于将所述P帧对应的第二报文发送至所述第二投屏设备。
在第三方面的一种可能的实现方式中,投屏装置还可以包括:
创建单元,用于在与所述第二投屏设备建立投屏连接时,并且在所述分割单元将所述I帧分割成至少两个帧片之前,创建多个套接字,所述多个套接字用于并行传输至少两个所述第一报文。
第四方面,本申请实施例提供了一种投屏装置,该投屏装置包括:
第一获取单元,用于获取第一投屏设备并行发送的至少两个第一报文,每个所述第一报文包括传输层报文头、应用层报文头以及一个帧片,所述应用层报文头包括承载于所述第一报文的帧片对应的分割信息,所述帧片由所述第一投屏设备对I帧进行分割得到;
第一解析单元,用于对所述第一报文进行解析,得到每个所述第一报文中的分割信息以及帧片;
帧片重组单元,用于根据每个所述第一报文中的所述分割信息,将至少两个所述第一报文中的所述帧片进行图像帧重组,得到所述I帧。
第四方面提供的投屏装置对应的有益效果与第二方面的投屏方法的有益效果相同,此处不赘述。
在第四方面的一种可能的实现方式中,所述帧片重组单元具体用于:根据每个所述第一报文中的所述分割信息,确定所有所述帧片的排列顺序;根据所述排列顺序将所有第一报文中的所述帧片进行重组。
在第四方面的一种可能的实现方式中,投屏装置还可以包括:
第二获取单元,用于获取所述第二投屏设备发送的第二报文,所述第二报文包括P帧以及用于表示所述P帧未被分割的指示标识;
第二解析单元,用于解析所述第二报文得到所述P帧。
第五方面,本申请实施例提供了一种投屏设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时使所述投屏设备执行上述第一方面的任一种可能的实现方式的投屏方法,或者执行上述第二方面的任一种可能的实现方式的投屏方法。
第六方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时使得投屏设备执行上述第一方面的任一种可能的实现方式的投屏方法,或者执行上述第二方面的任一种可能的实现方式的投屏方法。
第七方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在投屏设备上运行时,使得投屏设备执行上述第一方面中任一种可能的实现方式的投屏方法,或者执行上述第二方面的任一种可能的实现方式的投屏方法。
本申请实施例与现有技术相比存在的有益效果是:
区别于现有技术在传输层通过协议栈将所有音视频帧分割为固定大小的帧片的方案,本申请中,发送端可以在应用层对I帧进行分割,将由I帧分割得到的帧片并行传输至接收端,接收端可以将获取到的帧片重组得到I帧,并对I帧解码后进行显示。通过并行传输由I帧分割得到的帧片,可以提高I帧的传输效率,进一步地减少传输I帧所需消耗的时间,从而降低I帧的传输时延,以减少投屏的画面卡顿。由于报文中包括用于指示帧片重组的帧片分割信息,接收端在接收到I帧对应的各报文时,可以正确地重组得到I帧,可解决因报文乱序无法播放的问题。
附图说明
图1是本申请实施例提供的一种投屏系统的示意图;
图2是本申请实施例提供的一种视频流的结构示意图;
图3是本申请一实施例提供的一种投屏方法的交互图;
图4是本申请一实施例提供的一种报文结构的示意图;
图5是本申请实施例提供的一种应用层报文头的结构示意图;
图6是本申请另一实施例提供的一种投屏方法的交互图;
图7是本申请另一实施例提供的一种报文结构的示意图;
图8是本申请一实施例提供的一种投屏装置的结构示意图;
图9是本申请另一实施例提供的一种投屏装置的结构示意图;
图10是是本申请一实施例提供的一种投屏设备的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本申请说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
参见图1,图1是本申请实施例提供的一种投屏系统的示意图。如图1所示,投屏系统可以包括第一投屏设备110、无线接入点120以及第二投屏设备130,第一投屏设备110的显示屏的尺寸小于第二投屏设备130的显示屏的尺寸。第一投屏设备110为显示屏尺寸较小的终端设备,包括但不限于手机。无线接入点120包括但不限于无线路由器。第二投屏设备130可以为屏幕较大的终端设备(即大屏设备),包括但不限于电脑、电视、投影设备等。
在一种投屏场景中,第一投屏设备110可以采用无线通信技术,通过无线接入点120与第二投屏设备130建立投屏连接。
在另一种投屏场景中,第一投屏设备110也可以采用点对点(Point to Point,P2P)通信与第二投屏设备130建立投屏连接。
第一投屏设备110与第二投屏设备130建立投屏连接之后,第一投屏设备110可以将显示或播放的内容投送至第二投屏设备130进行显示。也就是说,第一投屏设备110与第二投屏设备130之间可以传输视频流或音频流。
投屏属于直播业务,相对于文件下载和在线视频播放等业务而言,投屏的实时性要求更高,每一帧都要求快速实时传输和显示。第一投屏设备110通常采用按照一定的帧率(例如,每秒30帧或60帧)传输投屏数据至第二投屏设备130,并实时显示投屏数据。其中,文件下载、在线视频播放等业务追求的是全文件速率,因此,对实时性要求不高;而投屏追求的是单帧速率,对实时性要求非常高。第一投屏设备110可以采用以下几种流媒体协议传输投屏数据:
其中,当前通信全场景采用的流媒体协议是RTP+RTCP。通信全场景包括,手机通过预设的应用程序(Application,App)(例如,华为云电脑App)连接大屏设备,将手机显示的内容投送至大屏设备的应用场景。
由于现有的投屏方法是按照固定帧率传输投屏数据,每一帧都要求快速实时传输和显示,当投屏数据为视频流时,通常根据画面组(Group of Pictures,GOP)对待发送的视频流进行编码,编码后的视频流如图2所示,每隔预设时间会出现一个I帧(例如,每秒或若干秒出现一个I帧);而I帧一般都比较大,一般I帧200K字节左右,P帧10K字节左右,采用固定帧率传输视频流时,I帧的传输时延一般是P帧的传输时延的几倍,从而因无法快速传输I帧而导致用户主观感受到投屏卡顿。
其中,一个GOP就是一组连续的画面。I帧(I frame)又称为内部画面(intrapicture),I帧通常是每个GOP的第一个帧,经过适度地压缩,做为随机访问的参考点,可以当成图像。GOP是MPEG所使用的一种视频压缩技术,MPEG编码将画面(即帧)分为I、P、B三种,I是内部编码帧,也称为关键帧,P是前向预测帧,B是双向内插帧。简单地讲,I帧是一个完整的画面,而P帧和B帧记录的是相对于I帧的变化。没有I帧,P帧和B帧就无法解码。
为了快速地传输I帧,现有技术中提供了一种方案解决:第一投屏设备110在传输层将所有的音视频帧压缩成188字节的小报文,并将小报文串行传输至第二投屏设备130。其中,I帧可以压缩成至少两个188字节地小报文。这种投屏方法存在以下问题:
1、由于物理层的传输能力通常比较强(例如1000字节每秒),将音视频帧压缩成188字节的小报文进行传输,存在无法充分利用物理层传输通道的问题,采用串行传输小报文不能明显降低I帧的传输时延,用户在实际使用过程中,仍有卡顿或者花屏问题;
2、当I帧被压缩成至少两个小报文时,通常采用串行方式传输I帧对应的所有的小报文,这样仍然无法快速地传输I帧,不能明显降低I帧的传输时延,用户在实际使用过程中,仍有卡顿或者花屏问题;
3、当采用多线程或多通道串行传输I帧对应的所有小报文时,由于这些小报文是打散后发送的,接收端接收到各小报文的顺序与小报文的发送顺序可能不同,这样可能会导致报文乱序,而无法播放I帧。
为了解决上述问题,本申请提供了一种投屏方法,在发送端和接收端建立投屏连接之后,发送端获取待发送的图像帧,当待发送的图像帧为I帧时,在应用层将I帧分割成至少两个帧片,并生成每个帧片对应的报文,并行发送每个帧片对应的报文至接收端。该报文包括传输层报文头、应用层报文头以及一个帧片,应用层报文头包括承载于该报文的帧片对应的分割信息,分割信息用于帧片重组,以使得接收端在接收到I帧对应的所有报文时,能够根据每个报文的应用层报文头确定I帧对应的所有帧片的排列顺序,从而根据该排列顺序将所有帧片重组得到I帧。
区别于现有技术在传输层通过协议栈将所有音视频帧分割为固定大小的帧片的方案,本方案可以在应用层对I帧进行分割,能够基于发送端的传输能力(例如,处理器的占用率等)或物理层的传输能力,灵活设置分割后的帧片的大小(即,帧片的大小可根据实际情况设定),尽可能地使帧片的大小与传输能力相匹配或接近,以更快速地传输I帧。将分割后的帧片并行传输至接收端,可以提高I帧的传输效率,进一步地减少传输I帧所需消耗的时间,从而降低I帧的传输时延,以减少投屏后的画面卡顿。由于报文中包括用于指示帧片重组的帧片分割信息,接收端在接收到I帧对应的各报文时,可以正确地重组得到I帧,解决现有技术中因报文乱序无法播放的问题。
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请的图像处理方法的具体实现方式作进一步地详细描述。其中,当获取到的图像帧为I帧时,按图3所示的流程进行投屏;当获取到的图像帧不是I帧时,按图6所示的流程进行投屏。
参见图3,图3是本申请一实施例提供的一种投屏方法的交互图。下面以第一投屏设备为手机,第二投屏设备为电视为例进行说明。具体如下:
S101、第一投屏设备获取待发送的图像帧。
用户可以通过预设App的用户界面(User Interface,UI)触发投屏指令,控制手机与电视建立投屏连接。其中,手机和电视可以通过P2P或WiFi建立投屏连接。
手机和电视在建立投屏连接之后,可以创建多个套接字(socket),多个套接字用于并行传输被分割得到的至少两个帧片各自对应的报文。
Socket既不是一个程序,也不是一种协议,其只是操作系统提供的通信层的一组抽象应用程序接口(Application Programming Interface,API);socket用于描述网际互连协议(Internet Protocol,IP)地址和端口,是一个通信链的句柄。根据RFC793的定义:端口号拼接到IP地址就构成了套接字。所谓套接字,实际上是一个通信端点,每个套接字都有一个套接字序号,包括主机的IP地址与一个16位的主机端口号,即形如(主机IP地址:端口号)。例如,如果IP地址是210.37.145.1,而端口号是23,那么得到套接字可以是(210.37.145.1:23)。
总之,套接字Socket=(IP地址:端口号),套接字的表示方法可以是点分十进制的IP地址后面写上端口号,中间用冒号或逗号隔开。每一个传输层连接唯一地被通信两端的两个端点(即两个套接字)所确定。
图像帧是第一投屏设备采用视频压缩编码技术对待传输的视频数据进行压缩编码得到的。图像帧可以包括I帧以及P帧,还可以包括B帧。
在本申请中,I帧、P帧、B帧为H.264视频压缩标准中定义的I帧、P帧、B帧。在H.264中定义了三种帧,完整编码的帧叫I帧,参考之前的I帧生成的只包含差异部分编码的帧叫P帧,还有一种参考前后的帧编码的帧叫B帧。H264采用的核心算法是帧内压缩和帧间压缩,帧内压缩是生成I帧的算法,帧间压缩是生成B帧和P帧的算法。
在H.264中,图像以序列为单位进行组织,一个序列是一段内容差异不太大的图像编码后的一串数据流,以I帧开始,到下一个I帧结束。当运动变化比较少时,一个序列可以很长,因为运动变化少就代表图像画面的内容变动很小,所以就可以编一个I帧,然后一直P帧、B帧了。当运动变化大时,可能一个序列就比较短了,比如就包含一个I帧和3、4个P帧。
在H.264中,一个序列的第一个图像叫做立即刷新(Instantaneous DecodingRefresh,IDR)图像,IDR图像都是I帧图像。在H.264中,在处理一个GOP之前会把参考图像集清空,因此一个GOP中的帧一定不会参考另一个GOP的帧——这就是封闭式GOP。H.264引入IDR图像是为了解码的重同步,当解码器解码到IDR图像时,立即将参考帧队列清空,将已解码的数据全部输出或抛弃,重新查找参数集,开始一个新的序列。这样,如果前一个序列出现重大错误,在这里可以获得重新同步的机会。IDR图像之后的图像永远不会使用IDR之前的图像的数据来解码。
S102、第一投屏设备判断所述图像帧是否为I帧。
手机可以基于I帧的特性判断获取到的图像帧是否为I帧。其中,I帧主要具有以下特性:I帧通常是每个GOP的第一个帧,I帧所占数据的信息量比较大。
具体的,手机在获取到图像帧时,可以判断该图像帧是否为GOP的第一帧,从而确定该图像帧是否为I帧。
手机还可以通过图像帧的数据量来判断获取到的图像帧是否为I帧,例如,判断获取到的图像帧的数据量是否大于或等于预设数据量阈值,如果获取到的图像帧的数据量大于或等于预设数据量阈值,那么该图像帧为I帧,否则,该图像帧不是I帧,该图像帧可以为P帧,还可以为B帧。预设数据量阈值可以根据I帧所占的数据量设置,此处不做限制。例如,由于I帧通常占200K字节左右,因此,预设数据量阈值可以为180K字节、190K字节或200K字节。
当图像帧为I帧时,执行S103。当图像帧不是I帧时,说明该图像帧数据量较小,不需要分割,手机将该图像帧封装成报文后发送至电视,以便电视显示该图像帧。
S103、第一投屏设备当所述图像帧为I帧时,将所述I帧分割成至少两个帧片。
由于I帧是一个完整的画面,I帧的数据量比其他帧的数据量大很多,为了减少I帧的传输时延,减少画面卡顿,因此,将I帧分割成至少两个帧片后进行并行传输。
本申请实施例中,手机在应用层将I帧进行分片,将其分割为至少两个帧片。至少两个帧片的数据量大小可以相同,也可以不同。也就是说,由I帧分割的到的帧片的数据量大小可以是非固定的。本实施例中,由同一个I帧分割得到的不同帧片的数据量大小可以相同,也可以不同。由不同I帧分割得到的帧片的数据量大小可以相同,也可以不同,此处不做限制。
手机可以根据手机的传输能力,和/或,物理层的传输能力对I帧进行分片,从而将I帧分割得到至少两个帧片。手机的传输能力通常与手机的处理器例如,中央处理器(central processing unit,CPU)的占用率有关,也就是说,帧片的数据量大小可以由第一投屏设备的中央处理器的占用率确定,和/或,由物理层的传输能力确定。
其中,CPU的占用率越低说明CPU的资源占用率越低,可用的资源越多,数据处理能力以及传输能力相对较强,可传输的数据量较大。也就是说,CPU的占用率较低的情况相对于CPU的占用率较高的情况,数据处理能力以及传输能力相对较强,可传输的数据量较大,可以更快地传输数据,帧片的数据量可以设置稍大些。物理层的传输能力越强,可传输的数据量越大。物理层的传输能力较强时,帧片的数据量可以设置稍大些。
例如,当手机的CPU的占用率为20%时,帧片的数据量大小为第一数值;当手机的CPU的占用率为40%时,帧片的数据量大小为第二数值,那么第一数值可以大于第二数值。
物理层的传输能力越强,可传输的数据包大小越大。物理层的传输能力包括但不限于网络的最大传输单元(Maximum Transmission Unit,MTU)。MTU用来通知对方所能接受数据服务单元的最大尺寸,说明发送方能够接受的有效载荷大小。也就是说,MTU是指一种通信协议的某一层上面所能通过的最大数据包大小(以字节为单位)。
例如,假设在第一时刻获取到第一I帧,对第一I帧进行分割得到至少两个帧片A;在第二时刻获取到第二I帧,对第二I帧进行分割得到至少两个帧片B;物理层在第一时刻的传输能力大于第二时刻的传输能力,那么帧片A的数据量大小,可以大于帧片B的数据量大小。比如,帧片A的数据量大小为1200字节,帧片B的数据量大小为800字节。
其中,当手机的传输能力对应的可传输的最大数据包大小<物理层的传输能力时,可以根据手机的传输能力对I帧进行分片。由于I帧分片后得到的帧片需要加上报文头封装成报文之后,才能发送至电视,因此,分片后的每个帧片对应的报文的数据量可以小于或等于手机可传输的最大数据包大小。
当手机的传输能力对应的可传输的最大数据包大小>物理层的传输能力时,根据物理层的传输能力对I帧进行分片。分片后的每个帧片对应的报文的数据量可以小于或等于物理层的传输能力所标识的可传输的最大数据包大小。
例如,当可传输的最大数据包大小为1000字节时,手机将I帧分给成至少两个帧片,每个帧片的数据量小于1000字节。
假设I帧的数据量为200K字节,单次可传输的最大数据包大小为1500字节,手机可以将I帧分给成20个帧片,每个帧片的数据量为1000字节。
例如,当可传输的最大数据包为1500字节,I帧的数据量为140K字节时,手机可以将I帧分割为10个帧片,每个帧片的数据量为1400字节。
S104、第一投屏设备生成每个所述帧片对应的第一报文,所述第一报文包括传输层报文头、应用层报文头以及一个所述帧片,所述应用层报文头包括承载于所述第一报文的帧片对应的分割信息,所述分割信息用于帧片重组。
手机可以为每个帧片添加应用层报文头生成每个帧片对应的应用层报文,之后,再为每个帧片对应的应用层报文添加传输层报文头,得到每个帧片对应的传输层报文,之后,为每个帧片对应的传输层报文添加校验码等信息,将其封装成第一报文。校验码包括但不限于循环冗余校验(Cyclic Redundancy Check,CRC)码。I帧的帧片对应的第一报文的报文结构如图4所示。其中,由于RTP中定义了在互联网上传递音频和视频的标准数据包格式,因此第一投屏设备可以基于RTP生成第一报文。
传输层报文头包括源端口号(source port)和目的端口号(destination port)。源端口号和目的端口号,用于标识和区分源端设备和目的端设备的应用进程。在本实施例中,源端设备为手机,目的端设备为电视。
传输层报文头可以是UDP报文头,也可以是TCP报文头。传输层报文头的类型具体根据传输协议而定。
需要说明的是,由于本申请实施例中,是在应用层将I帧进行分片,得到至少两个帧片,因此,相对于现有技术的I帧对应的数据包或报文而言,I帧的每个帧片对应的第一报文中还包括应用层报文头。
应用层报文头包括承载于第一报文的帧片对应的分割信息。分割信息主要描述I帧被分割为多少个帧片,以及用于描述该帧片在I帧中所处的位置,以便接收端对帧片进行重组得到I帧。分割信息还可以用于描述该帧片对应的数据量大小,以便接收端检测是否已接收完该帧片的数据。
在一种可能的实现方式中,所述分割信息可以包括帧片序号以及帧片总数,所述帧片序号用于表示承载于所述第一报文中的帧片在所述I帧中所处的位置,所述帧片总数用于表示由所述I帧分割得到的帧片的总数量。例如,第一报文中的分割信息描述了:第一报文中的帧片序号为1,帧片的数据量大小为1000,数据量的单位可以为字节。
分割信息还可以包括帧片的数据量大小,帧片的数据量大小用于第二投屏设备在接收到第一报文时,判断是否已接收完承载于该第一报文中的帧片的数据。
在一种可能的实现方式中,在应用层报文中也可以采用相应的字段信息表示每个帧片各自对应的分割信息。请一并参阅图5,图5是本申请实施例提供的一种应用层报文头的结构示意图。如图5所示,应用层报文头包括第一字段、第二字段以及第三字段,所述第一字段用于描述所述图像帧是否被分割,当所述图像帧被分割时,还用于描述承载于所述第一报文中的帧片在所述图像帧中所处的位置,所述第二字段用于描述由所述图像帧分割得到的帧片的总数量,所述第三字段用于描述承载于所述第一报文中的帧片的数据量大小。可以理解的是,在本实施例中,无论图像帧是否被分割,图像帧对应的报文的格式可以相同。比如,图像帧对应的报文均可以包括传输层报文头以及应用层报文头。也就是说,报文的格式可以统一为:“传输层报文头+应用层报文头+数据”。当图像帧未被分割时,报文格式中的“数据”是指图像帧对应的数据。当图像帧被分割成至少两个帧片时,报文格式中的“数据”是指一个帧片对应的数据。
例如,第一字段可以为Seq,用于表示图像帧是否被分割;当图像帧没有被分割时,Seq可以为0,当图像帧被分割时,Seq可以为大于或等于1的任意整数,用于表示承载于第一报文中的帧片在I帧中所处的位置。比如,I帧被分割为n个帧片,n为大于或等于2的整数,Seq=1、2、……、k、……、n。k为任意大于或等于2的正整数,k≤n。需要说明的是,每个帧片对应的第一报文中的Seq的值各不相同,Seq=1可以表示该帧片是由I帧分割得到的第1个帧片,Seq=k可以表示该帧片是由I帧分割得到的第k个帧片。
第二字段可以为Num,用于表示由图像帧分割得到的帧片的总数量。例如,当I帧被分割为20个帧片时,Num=20。其中,当图像帧没有被分割时,Num=1。
第三字段可以为SeqLen,用于表示承载于第一报文中的帧片的数据量大小。例如,当第一个帧片的数据量大小为1000字节时,SeqLen=1000。SeqLen的单位为字节(Byte)。
假设,某个I帧的数据量大小为100K字节,手机将某个I帧分割为10个帧片,这10个帧片的数据量大小依次为1200、1000、1100、800、900、1000、1000、1000、1000、1000。那么,该I帧对应有10个第一报文,各第一报文的应用层报文中Seq、Num以及SeqLen如下:
第一个报文的应用层报文头中,Seq=1、Num=10、SeqLen=1200;
第二个报文的应用层报文头中,Seq=2、Num=10、SeqLen=1000;
第三个报文的应用层报文头中,Seq=3、Num=10、SeqLen=1100;
第四个报文的应用层报文头中,Seq=4、Num=10、SeqLen=800;
第五个报文的应用层报文头中,Seq=5、Num=10、SeqLen=900;
第六个报文的应用层报文头中,Seq=6、Num=10、SeqLen=1000;
第七个报文的应用层报文头中,Seq=7、Num=10、SeqLen=1000;
第八个报文的应用层报文头中,Seq=8、Num=10、SeqLen=1000;
第九个报文的应用层报文头中,Seq=9、Num=10、SeqLen=1000;
第十个报文的应用层报文头中,Seq=10、Num=10、SeqLen=1000。
S105、第一投屏设备将至少两个所述帧片对应的第一报文并行发送至第二投屏设备。
手机可以启动用于实现投屏的新线程,采用并行传输方式将由I帧分割得到的至少两个帧片各自对应的第一报文发送至电视。
具体的,可以通过多个socket并行传输至少两个帧片各自对应的第一报文。一个线程可以对应多个socket,一个socket用于传输一个第一报文。
可以理解的是,当手机具有至少两个内核时,手机可以启动至少两个用于实现投屏的线程。当至少两个线程以异步分时的方式工作时,一个线程可以对应一个socket,在同一时间一个线程通过与其对应的一个socket发送一个第一报文,从而实现通过至少两个线程并行传输至少两个第一报文。
第一报文是第一投屏设备基于实时传输协议RTP以及实时传输控制协议RTCP传输至第二投屏设备。第二投屏设备的数量可以是一个,也可以是至少两个,此处不赘述。
RTCP为RTP媒体流提供信道外(out-of-band)控制,RTCP本身并不传输数据,但RTCP和RTP一起协作将多媒体数据打包和发送。RTP为互联网上端到端的实时传输提供时间信息和流同步,RTCP来提供服务质量(Quality of Service)。
具体的,RTCP与RTP联合工作,RTP实施实际数据的传输,RTCP则负责将控制包送至每个第二投屏设备。RTCP的主要功能是就RTP正在提供的服务质量做出反馈。RTCP收集相关媒体连接的统计信息,例如,传输字节数、传输分组数、丢失分组数、单向和双向网络延迟等,网络应用程序即可利用RTCP的统计信息来控制传输的品质,比如当网络带宽高负载时限制信息流量或改用压缩比较小的编解码器。
S106、第二投屏设备获取第一投屏设备并行发送的至少两个第一报文,每个所述第一报文包括传输层报文头、应用层报文头以及一个帧片,所述应用层报文头包括承载于所述第一报文的帧片对应的分割信息,所述帧片由所述第一投屏设备对I帧进行分割得到,所述分割信息用于帧片重组。
S107、对所述第一报文进行解析,得到每个所述第一报文中的分割信息以及帧片。
电视可以根据传输层报文头中的信息判断第一报文是否为手机发送给该电视的报文;如果第一报文是手机发送给该电视的报文,那么,电视解析第一报文,获取第一报文的应用层报文头以及帧片,并从应用层报文头中获取分割信息;如果第一报文不是手机发送给该电视的报文,电视丢弃该第一报文,不对其进行处理。
电视可以根据应用层报文头中的包括的用于表示由图像帧分割得到的帧片的总数量的信息,判断是否已接收完由I帧分割得到的所有帧片。当分割信息包括该帧片对应的数据量大小时,电视还可以根据分割信息判断是否已经接收完该第一报文对应的帧片的所有数据。如果未接收完任意第一报文对应的帧片的数据时,继续接收帧片的数据,直到接收完该帧片的数据为止。如果已经接收完由I帧分割得到的所有帧片各自对应的数据,那么执行S108。
用于表示由图像帧分割得到的帧片的总数量的信息可以是分割信息中的帧片序号,也可以是如图5所示的应用层报文头中的第二字段。
例如,当应用层报文头中的分割信息包括帧片总数时,电视可以根据帧片总数,判断是否已接收完由I帧分割得到的所有帧片。
再例如,假设应用层报文头为如图5所示的结构,电视可以根据应用层报文头中的第二字段(Num)来判断是否已获取到由I帧分割得到的所有帧片。电视可以根据第一报文的第三字段(SeqLen)表示的帧片的数据量大小,来判断是否已获取到承载于该第一报文中的帧片的完整数据。
S108、根据每个所述第一报文中的所述分割信息,将至少两个所述第一报文中的所述帧片进行图像帧重组,得到所述I帧。
由于第一报文中的分割信息用于帧片重组,分割信息描述了I帧被分割得到的帧片的总数量以及每个帧片在I帧中所处的位置,因此,电视可以根据所有第一报文中的分割信息,确定每个第一报文对应的帧片每个帧片在I帧中所处的位置,根据由I帧分割得到的帧片的总数量、每个帧片在I帧中所处的位置,对所有帧片进行帧片重组,得到I帧。
在一种可能的实现方式中,S108中的图像帧重组可以包括:根据每个所述第一报文中的所述分割信息,确定所有所述帧片的排列顺序;根据所述排列顺序将所述帧片进行重组。
由于分割信息中包括用于描述承载于第一报文中的帧片在I帧中所处的位置的信息,因此,电视可以根据每个帧片在I帧中所处的位置,对所有帧片进行排序,以确定所有帧片的排列顺序,并将排序后的帧片进行重组以还原I帧。
示例性的,当分割信息包括帧片序号以及帧片总数时,由于帧片序号用于表示承载于第一报文中的帧片在I帧中所处的位置,因此,电视可以根据帧片总数以及每个帧片对应的帧片序号,对所有的帧片进行排序,并将排序后的帧片进行重组以还原I帧。
示例性的,当应用层报文头为如图5所示的结构时,分割信息可以包括应用层报文头中的第一字段(Seq)、第二字段(Num)以及第三字段(SeqLen)。假设Num=10,10个第一报文中的第一字段的值分别为:1、2、……、10,即Seq=1、2、……、10;由于Seq用于表示承载于第一报文中的帧片在I帧中所处的位置,Seq=1表示承载于第一报文中的帧片是由I帧分割得到的第一个帧片,因此,电视可以根据Num以及所有第一报文中的Seq的值,对所有报文进行排序,从而确定所有报文对应的排列顺序,并根据排列顺序将所有帧片依次拼接得到I帧。
可以理解的是,由于I帧是编码后的图像帧,因此第二投屏设备在对帧片进行重组得到I帧之后,需要对重组得到的I帧进行解码,显示解码得到的图像。其中,解码方式与编码方式相对应,解码方式和编码方式均为现有技术,此处不赘述。
本申请实施例,手机(第一投屏设备)可以在应用层对I帧进行分割,将分割后的帧片对应的报文并行传输至电视(第二投屏设备);电视在获取到第一报文时,可以解析得到每个第一报文包括帧片及其对应的分割信息,并根据每个帧片的分割信息进行帧片重组,得到I帧。通过并行传输由I帧分割得到的至少两个帧片,可以提高I帧的传输效率,减少传输I帧所需消耗的时间,降低I帧的传输时延,从而减少手机上的画面投屏至电视后,出现投屏画面卡顿的情况。
手机能够基于发送端的传输能力或物理层的传输能力,灵活设置分割后的帧片的大小(即,帧片的大小可根据实际情况设定),尽可能地使帧片的大小与传输能力相匹配或接近,以更快速地传输I帧,进一步地降低I帧的传输时延。
参见图6,图6是本申请另一实施例提供的一种投屏方法的交互图。下面以第一投屏设备为手机,第二投屏设备为电视为例进行说明。与图3的区别之处当S102中的判断结果为获取到的图像帧不是I帧时,执行S109~S112。下面以获取到的图像帧为P帧为例进行说明,S109~S112具体如下:
S109、当所述图像帧为P帧时,第一投屏设备生成所述P帧对应的第二报文,所述第二报文包括所述传输层报文头、所述应用层报文头以及所述P帧,所述应用层报文头用于描述所述P帧未被分割。
当待发送的图像帧不是I帧时,手机可以不分割该图像帧,基于RTP协议生成该图像帧对应的一个第二报文,并将该图像帧对应的第二报文发送至电视。图像帧包括P帧和/或B帧。
生成第二报文的方法可以为:手机可以为图像帧添加应用层报文头生成该图像帧对应的应用层报文,之后,再为该图像帧对应的应用层报文添加传输层报文头,得到该图像帧对应的传输层报文,之后,为该图像帧对应的传输层报文添加校验码等信息,将其封装成第二报文。第二报文包括传输层报文头、应用层报文头以及图像帧。
应用层报文头用于描述图像帧未被分割;还可以用于描述该图像帧的数据量大小。图像帧的数据量大小用于接收端判断接收到的第二报文中的图像帧是否完整。
其中,当该图像帧为除关键帧之外的图像帧,例如P帧时,第二报文包括传输层报文头、应用层报文头以及P帧,应用层报文头用于描述P帧未被分割,还可以用于描述P帧的数据量大小。P帧对应的第二报文的报文结构如图7所示。图7中的应用层报文头可以用于描述P帧未被分割,还可以用于描述P帧的数据量大小。可以理解的是,P帧的应用层报文头也可以为如图5所示的结构,即P帧的应用层报文头也可以包括:第一字段(Seq)、第二字段(Num)以及第三字段(SeqLen)。由于P帧未被分割,因此,Seq=0,Num=1,SeqLen=P帧的数据量大小。
需要说明的是,当待发送的图像帧还包括B帧,或者待发送的帧为音频帧时,可以按照P帧的处理方式对进行处理,此处不赘述。
可以理解的是,在本申请实施例中,待发送的P帧的数据量大小大于或等于预设数据量阈值,或待发送的B帧的数据量大小大于或等于预设数据量阈值,或待发送的音频帧的数据量大小大于或等于预设数据量阈值时,也可以对超过预设数据量阈值的帧进行分片,将其分割为至少两个帧片后并行传输至电视,具体分割方法请参阅S103中的相关描述,此处不赘述。
可以理解的是,由于应用层报文头主要用于描述分割信息,因此,当待发送的P帧、B帧或音频帧未被分割时,待发送的P帧、B帧或音频帧对应的第二报文中,也可以不包括应用层报文头。由于由I帧分割得到的帧片对应的第一报文包括应用层报文头,而P帧、B帧或音频帧对应的第二报文中不包括应用层报文头,这样第二投屏设备可以更好地区分接收到的报文是I帧对应的报文,还是非I帧对应的报文。
S110、第一投屏设备将所述P帧对应的第二报文发送至所述第二投屏设备。
第一投屏设备可以基于RTP以及PTCP,发送第二报文至第二投屏设备。
当第一投屏设备在发送第一报文以及第二报文已建立多个套接字时,可以通过其中任一个套接字将第二报文传输至第二投屏设备。
S111、第二投屏设备获取第一投屏设备发送的第二报文,所述第二报文包括P帧用于表示所述P帧未被分割的指示标识。
S112、解析所述第二报文得到所述P帧。
电视对第二报文进行解析,获取到第二报文中的P帧。在获取到P帧后,可以对P帧进行解码,显示P帧对应的图像。需要说明的是,如果获取到B帧,可以对B帧进行解码,显示B帧对应的图像。
需要说明的是,图像帧的解码方法与压缩编码方法相对应。例如,在S101中图像帧是采用基于H.264的视频压缩编码技术对待传输的视频数据进行编码得到,在S107和S112中对I帧或P帧进行解码时,采用基于H.264的解码方法对I帧或P帧进行解码。
当第二报文的应用层报文头还可以用于描述P帧的数据量大小时,第二投屏设备在获取并解析第二报文之后,还可以根据从第二报文中获取到的P帧的数据量大小、应用层报文头描述的P帧的数据量大小,来判断获取到的P帧的数据是否完整。当两者相同时,说明已获取到P帧的所有数据。
在本申请实施例中,第一投屏设备获取到的待发送的P帧、B帧或音频帧时,由于P帧、B帧和音频帧相对于I帧而言,传输时延比较小,因此,可以不对其进行分割处理,以节省第一投屏设备的系统资源,以便第一投屏设备可以采用现有的资源更快分割及传输I帧。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
对应于上文实施例所述的应用于第一投屏设备的投屏方法,图8示出了本申请一实施例提供的投屏装置的结构示意框图,为了便于说明,仅示出了与本申请实施例相关的部分。本实施例中,投屏装置包括的各单元用于执行图3以及图6对应的实施例中的第一投屏设备执行的各步骤,具体参见图3以及图6中的相关描述,此处不赘述。投屏装置8可以包括:
分割单元810,用于当待发送的图像帧是I帧时,将所述I帧分割成至少两个帧片;
第一报文生成单元820,用于生成每个所述帧片对应的第一报文,所述第一报文包括传输层报文头、应用层报文头以及一个所述帧片,所述应用层报文头包括承载于所述第一报文的帧片对应的分割信息,所述分割信息用于帧片重组;
第一发送单元830,用于将至少两个所述帧片对应的第一报文并行发送至第二投屏设备。
在第一方面的一种可能的实现方式中,所述I帧是所述第一投屏设备采用视频压缩编码技术对待传输的视频数据进行压缩编码得到的。
具体的,I帧可以是采用基于H.264的视频压缩编码技术进行编码得到。即,在本申请中,I帧、P帧、B帧为H.264视频压缩标准中定义的I帧、P帧、B帧。
在一种可能的实现方式中,第一报文基于实时传输协议(Real-time TransportProtocol,RTP)以及实时传输控制协议(Real-time Transport Control Protocol,PTCP)进行传输。
在一种可能的实现方式中,所述分割信息包括帧片序号以及帧片总数,所述帧片序号用于表示承载于所述第一报文中的帧片在所述I帧中所处的位置,所述帧片总数用于表示由所述I帧分割得到的帧片的总数量。
在一种可能的实现方式中,所述分割信息还包括帧片的数据量大小,所述帧片的数据量大小用于所述第二投屏设备判断是否已接收完承载于所述第一报文中的帧片的数据。
在一种可能的实现方式中,所述应用层报文头包括用于描述所述分割信息的第一字段、第二字段以及第三字段,所述第一字段用于描述所述图像帧是否被分割,当所述图像帧被分割时,还用于描述承载于所述第一报文中的帧片在所述图像帧中所处的位置,所述第二字段用于描述由所述图像帧分割得到的帧片的总数量,所述第三字段用于描述承载于所述第一报文中的帧片的数据量大小。
在一种可能的实现方式中,所述帧片的数据量大小由所述第一投屏设备的中央处理器的占用率确定,和/或,由物理层的传输能力确定。
在一种可能的实现方式中,投屏装置还可以包括:
第二报文生成单元840,用于当所述图像帧为P帧时,生成所述P帧对应的第二报文,所述第二报文包括所述传输层报文头、所述应用层报文头以及所述P帧,所述应用层报文头用于描述所述P帧未被分割;
第二发送单元850,用于将所述P帧对应的第二报文发送至所述第二投屏设备。
可选的,投屏装置还可以包括:
创建单元,用于在与所述第二投屏设备建立投屏连接时,并且在所述分割单元810将所述I帧分割成至少两个帧片之前,创建多个套接字,所述多个套接字用于并行传输至少两个所述第一报文。
在本实施例中,该投屏装置8可以是用户终端,例如手机,或者是用户终端中的芯片,或者是集成在用户终端中的功能模块。其中,该芯片或者该功能模块可以位于用户终端的控制中心(例如,控制台),控制用户终端实现本申请提供的投屏方法。
需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本申请应用于第一投屏设备的投屏方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见应用于第一投屏设备的投屏方法实施例部分,此处不再赘述。
对应于上文实施例所述的应用于第二投屏设备的投屏方法,图9示出了本申请一实施例提供的投屏装置的结构示意框图,为了便于说明,仅示出了与本申请实施例相关的部分。本实施例中,投屏装置包括的各单元用于执行图3以及图6对应的实施例中的第二投屏设备执行的各步骤,具体参见图3以及图6中的相关描述,此处不赘述。投屏装置9可以包括:
第一获取单元910,用于获取第一投屏设备并行发送的至少两个第一报文,每个所述第一报文包括传输层报文头、应用层报文头以及一个帧片,所述应用层报文头包括承载于所述第一报文的帧片对应的分割信息,所述帧片由所述第一投屏设备对I帧进行分割得到;
第一解析单元920,用于对所述第一报文进行解析,得到每个所述第一报文中的分割信息以及帧片;
帧片重组单元930,用于根据每个所述第一报文中的所述分割信息,将至少两个所述第一报文中的所述帧片进行图像帧重组,得到所述I帧。
在一种可能的实现方式中,所述帧片重组单元具体用于:根据每个所述第一报文中的所述分割信息,确定所有所述帧片的排列顺序;根据所述排列顺序将所有第一报文中的所述帧片进行重组。
在一种可能的实现方式中,投屏装置还可以包括:
第二获取单元940,用于获取所述第二投屏设备发送的第二报文,所述第二报文包括P帧以及用于表示所述P帧未被分割的指示标识;
第二解析单元950,用于解析所述第二报文得到所述P帧。
需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本申请应用于第二投屏设备的投屏方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见应用于第二投屏设备的投屏方法实施例部分,此处不再赘述。
参见图10,图10为本申请一实施例提供的投屏设备的结构示意图。如图10所示,该投屏设备10包括:至少一个处理器1010(图10中仅示出一个)处理器1010、存储器1020以及存储在所述存储器1020中并可在所述至少一个处理器1010上运行的计算机程序1021,所述处理器1010执行所述计算机程序1021时实现上述任意各个防止数据误删除的方法实施例中的步骤。
其中,当投屏设备为第一投屏设备时,处理器1010调用存储器1020存储的计算机程序1021时使第一投屏设备执行图3对应的实施例中第一投屏设备所执行的步骤。第一投屏设备可以是手机、平板电脑等。
当投屏设备为第二投屏设备时,处理器1010调用存储器1020存储的计算机程序1021时使第二投屏设备执行图6对应的实施例中第二投屏设备所执行的步骤。第二投屏设备可以为电视、投影仪等大屏设备。
投屏设备10可包括,但不仅限于,处理器1010、存储器1020。本领域技术人员可以理解,图10仅仅是投屏设备10的举例,并不构成对投屏设备10的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如还可以包括输入输出设备、网络接入设备等。
所称处理器1010可以是中央处理单元(Central Processing Unit,CPU),该处理器1010还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器1020在一些实施例中可以是投屏设备10的内部存储单元,例如投屏设备10的硬盘或内存。存储器1020在另一些实施例中也可以是投屏设备10的外部存储设备,例如投屏设备10上的智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器1020还可以既包括投屏设备10的内部存储单元也包括外部存储设备。存储器1020用于存储操作系统、应用程序、引导装载程序(BootLoader)、数据以及其他程序等,例如所述计算机程序的程序代码等。所述存储器1020还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质至少可包括:能够将计算机程序代码携带到投屏设备10的任何实体或装置、记录介质、计算机存储器、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、电载波信号、电信信号以及软件分发介质。例如U盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (14)
1.一种投屏方法,其特征在于,应用于第一投屏设备,所述投屏方法包括:
当待发送的图像帧是I帧时,将所述I帧分割成至少两个帧片;
生成每个所述帧片对应的第一报文,所述第一报文包括传输层报文头、应用层报文头以及一个所述帧片,所述应用层报文头包括承载于所述第一报文的帧片对应的分割信息,所述分割信息用于帧片重组;
将至少两个所述帧片对应的第一报文并行发送至第二投屏设备。
2.根据权利要求1所述的投屏方法,其特征在于,所述I帧是所述第一投屏设备采用视频压缩编码技术对待传输的视频数据进行压缩编码得到的。
3.根据权利要求1或2所述的投屏方法,其特征在于,所述第一报文是基于实时传输协议以及实时传输控制协议进行传输的。
4.根据权利要求1-3任一项所述的投屏方法,其特征在于,所述分割信息包括帧片序号以及帧片总数,所述帧片序号用于表示承载于所述第一报文中的帧片在所述I帧中所处的位置,所述帧片总数用于表示由所述I帧分割得到的帧片的总数量。
5.根据权利要求4所述的投屏方法,其特征在于,所述分割信息还包括帧片的数据量大小,所述帧片的数据量大小用于所述第二投屏设备判断是否已接收完承载于所述第一报文中的帧片的数据。
6.根据权利要求1-3任一项所述的投屏方法,其特征在于,所述应用层报文头包括用于描述所述分割信息的第一字段、第二字段以及第三字段,所述第一字段用于描述所述图像帧是否被分割,当所述图像帧被分割时,还用于描述承载于所述第一报文中的帧片在所述图像帧中所处的位置,所述第二字段用于描述由所述图像帧分割得到的帧片的总数量,所述第三字段用于描述承载于所述第一报文中的帧片的数据量大小。
7.根据权利要求1-6任一项所述的投屏方法,其特征在于,所述帧片的数据量大小由所述第一投屏设备的中央处理器的占用率确定,和/或,由物理层的传输能力确定。
8.根据权利要求1所述的投屏方法,其特征在于,还包括:
当所述图像帧为P帧时,生成所述P帧对应的第二报文,所述第二报文包括所述传输层报文头、所述应用层报文头以及所述P帧,所述应用层报文头用于描述所述P帧未被分割;
将所述P帧对应的第二报文发送至所述第二投屏设备。
9.根据权利要求1至7任一项所述的投屏方法,其特征在于,所述将所述I帧分割成至少两个帧片之前,还包括:
在与所述第二投屏设备建立投屏连接时,创建多个套接字,所述多个套接字用于并行传输至少两个所述第一报文。
10.一种投屏方法,其特征在于,应用于第二投屏设备,所述投屏方法包括:
获取第一投屏设备并行发送的至少两个第一报文,每个所述第一报文包括传输层报文头、应用层报文头以及一个帧片,所述应用层报文头包括承载于所述第一报文的帧片对应的分割信息,所述帧片由所述第一投屏设备对I帧进行分割得到;
对所述第一报文进行解析,得到每个所述第一报文中的分割信息以及帧片;
根据每个所述第一报文中的所述分割信息,将至少两个所述第一报文中的所述帧片进行图像帧重组,得到所述I帧。
11.根据权利要求10所述的投屏方法,其特征在于,所述图像帧重组包括:
根据每个所述第一报文中的所述分割信息,确定所有所述帧片的排列顺序;
根据所述排列顺序将所述帧片进行重组。
12.根据权利要求10所述的投屏方法,其特征在于,还包括:
获取所述第二投屏设备发送的第二报文,所述第二报文包括P帧以及用于表示所述P帧未被分割的指示标识;
解析所述第二报文得到所述P帧。
13.一种投屏设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时使得所述投屏设备执行如权利要求1至9任一项所述的投屏方法,或如权利要求10至12任一项所述的投屏方法。
14.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时使得投屏设备执行如权利要求1至9任一项所述的投屏方法,或如权利要求10至12任一项所述的投屏方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010127725.2A CN113316028B (zh) | 2020-02-27 | 2020-02-27 | 投屏方法、投屏设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010127725.2A CN113316028B (zh) | 2020-02-27 | 2020-02-27 | 投屏方法、投屏设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113316028A CN113316028A (zh) | 2021-08-27 |
CN113316028B true CN113316028B (zh) | 2022-03-08 |
Family
ID=77370528
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010127725.2A Active CN113316028B (zh) | 2020-02-27 | 2020-02-27 | 投屏方法、投屏设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113316028B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116781968A (zh) * | 2022-03-11 | 2023-09-19 | 华为技术有限公司 | 投屏方法、终端设备及计算机可读存储介质 |
CN114745576A (zh) * | 2022-03-25 | 2022-07-12 | 上海合志信息技术有限公司 | 一种家庭健身互动方法、装置、电子设备以及存储介质 |
CN116737097B (zh) * | 2022-09-30 | 2024-05-17 | 荣耀终端有限公司 | 一种投屏图像处理方法及电子设备 |
CN118590684A (zh) * | 2024-08-07 | 2024-09-03 | 深圳海清智元科技股份有限公司 | 视频处理方法、装置、设备以及介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103873869A (zh) * | 2012-12-18 | 2014-06-18 | 北京市勤能通达科技有限公司 | 一种码率控制方法 |
WO2014204366A1 (en) * | 2013-06-19 | 2014-12-24 | Telefonaktiebolaget L M Ericsson (Publ) | Arrangements and method thereof for a channel change during streaming |
CN105025347A (zh) * | 2015-07-21 | 2015-11-04 | 北京暴风科技股份有限公司 | 一种gop图像组的发送和接收方法 |
CN106303632A (zh) * | 2016-08-23 | 2017-01-04 | 暴风集团股份有限公司 | 对数据进行分块飞屏播放的方法及系统 |
CN106713913A (zh) * | 2015-12-09 | 2017-05-24 | 腾讯科技(深圳)有限公司 | 视频图像帧发送方法及装置、视频图像帧接收方法及装置 |
CN109286856A (zh) * | 2017-07-21 | 2019-01-29 | 上海云熵网络科技有限公司 | 加速启播的p2p直播系统及方法 |
CN109348282A (zh) * | 2018-11-19 | 2019-02-15 | 深圳市炬力北方微电子有限公司 | 一种降低无线投屏时延的方法及装置 |
CN110769380A (zh) * | 2019-10-31 | 2020-02-07 | 联想(北京)有限公司 | 视频分发方法及装置 |
-
2020
- 2020-02-27 CN CN202010127725.2A patent/CN113316028B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103873869A (zh) * | 2012-12-18 | 2014-06-18 | 北京市勤能通达科技有限公司 | 一种码率控制方法 |
WO2014204366A1 (en) * | 2013-06-19 | 2014-12-24 | Telefonaktiebolaget L M Ericsson (Publ) | Arrangements and method thereof for a channel change during streaming |
CN105025347A (zh) * | 2015-07-21 | 2015-11-04 | 北京暴风科技股份有限公司 | 一种gop图像组的发送和接收方法 |
CN106713913A (zh) * | 2015-12-09 | 2017-05-24 | 腾讯科技(深圳)有限公司 | 视频图像帧发送方法及装置、视频图像帧接收方法及装置 |
CN106303632A (zh) * | 2016-08-23 | 2017-01-04 | 暴风集团股份有限公司 | 对数据进行分块飞屏播放的方法及系统 |
CN109286856A (zh) * | 2017-07-21 | 2019-01-29 | 上海云熵网络科技有限公司 | 加速启播的p2p直播系统及方法 |
CN109348282A (zh) * | 2018-11-19 | 2019-02-15 | 深圳市炬力北方微电子有限公司 | 一种降低无线投屏时延的方法及装置 |
CN110769380A (zh) * | 2019-10-31 | 2020-02-07 | 联想(北京)有限公司 | 视频分发方法及装置 |
Non-Patent Citations (1)
Title |
---|
测控通信系统中低延迟视频编码传输方法研究;马梦奇等;《无线电通信技术》;20160603(第04期);第41-44、48页 * |
Also Published As
Publication number | Publication date |
---|---|
CN113316028A (zh) | 2021-08-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113316028B (zh) | 投屏方法、投屏设备及存储介质 | |
US10715844B2 (en) | Method and apparatus for transceiving data for multimedia transmission system | |
KR101292490B1 (ko) | Rtp 패킷에 vc―1 정보를 캡슐화하는 방법, 이를구현하기 위한 컴퓨터 판독가능 매체, rtp 데이터구조체, 액세스 유닛 데이터 구조체, 소스 모듈, 디코더모듈, 소스 모듈 및 디코더 모듈을 포함하는 시스템, 및타겟 모듈 | |
KR102117445B1 (ko) | 패킷 헤더 압축을 위한 방법 및 장치 | |
KR102435018B1 (ko) | 네트워크 장치 및 오류 처리 | |
US10326811B2 (en) | Communication apparatus, communication data generation method, and communication data processing method | |
US11284135B2 (en) | Communication apparatus, communication data generation method, and communication data processing method | |
WO2006053947A1 (en) | Buffering packets of a media stream | |
KR20130040090A (ko) | 복합 네트워크에서 멀티미디어 데이터를 전송하기 위한 장치 및 그 방법 | |
WO2014183478A1 (en) | Video encoding method and apparatus | |
US9936266B2 (en) | Video encoding method and apparatus | |
US10298975B2 (en) | Communication apparatus, communication data generation method, and communication data processing method | |
CN115103228A (zh) | 视频流传输方法、装置、电子设备、存储介质及产品 | |
KR20150047092A (ko) | Mmt 페이로드 헤더 구성 장치 및 방법 | |
CN114979092B (zh) | 一种基于rtp的数据传输方法、装置、设备和介质 | |
KR101983045B1 (ko) | 복합 네트워크에서 멀티미디어 데이터를 전송하기 위한 장치 및 그 방법 | |
KR101855327B1 (ko) | 복합 네트워크에서 멀티미디어 데이터를 전송하기 위한 장치 및 그 방법 | |
CN116527787A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |