CN112492348A - 多码流处理及输出方法、设备及存储介质 - Google Patents
多码流处理及输出方法、设备及存储介质 Download PDFInfo
- Publication number
- CN112492348A CN112492348A CN202011126892.1A CN202011126892A CN112492348A CN 112492348 A CN112492348 A CN 112492348A CN 202011126892 A CN202011126892 A CN 202011126892A CN 112492348 A CN112492348 A CN 112492348A
- Authority
- CN
- China
- Prior art keywords
- code stream
- stream data
- data
- path
- output
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 57
- 230000005540 biological transmission Effects 0.000 claims abstract description 91
- 238000003672 processing method Methods 0.000 claims abstract description 15
- 238000004590 computer program Methods 0.000 claims description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000009751 slip forming Methods 0.000 description 3
- 238000005538 encapsulation Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 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/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
-
- 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/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/236—Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
- H04N21/23602—Multiplexing isochronously with the video sync, e.g. according to bit-parallel or bit-serial interface formats, as SDI
-
- 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/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/242—Synchronization processes, e.g. processing of PCR [Program Clock References]
-
- 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/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/647—Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
- H04N21/64784—Data processing by the network
- H04N21/64792—Controlling the complexity of the content stream, e.g. by dropping packets
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明涉及多码流处理及输出方法、设备及存储介质,其中,处理方法的步骤包括:复用同一UVC传输通道输出多路码流数据。复用同一UVC传输通道输出多路码流数据,解决了现有UVC协议对于多码流数据传输的局限问题,同时由于输出至主机端设备的不是单一码流而是多路码流数据,因此也免除主机端设备对码流数据的转码和再编码,减轻主机端设备的CPU消耗。
Description
技术领域
本发明涉及视频编码技术领域,更具体地,涉及多码流处理及输出方法、设备及存储介质。
背景技术
在视频会议场景或视频直播场景中,由于远端网络(即远端设备的网络条件或网络环境)会有较大的差异,需要对于同一个画面的视频数据一般会输出多路码流,以适应不同的远端网络。码流(Data Rate)指在1秒内通信端口在传输数据时高低电平变化的次数,也叫码率,单位时间内传送的数据越多,所包含的信息量也越多,则视频的画面质量越高。多码流技术通过在编码过程中同时产生多种不同码流及分辨率的流媒体数据,根据用户实际网络带宽条件为之自动分配相对最佳解码画质的解决方案。在实际网络直播/视频会议应用中,由于位于不同网络位置的访问者所在网络环境存在差异,而仅以某种固定码流分辨率进行网络直播流媒体传送往往会导致网速较高的用户看到的画质仍不够清晰,网速较低的用户解码时间过长而使得画面不够流畅,为解决二者的矛盾使访问者浏览到尽可能看到兼顾清晰和流畅的直播内容,采用多码流技术成为了一个最简单最有效的办法。
如图1所示,针对基于UVC协议进行数据传输的摄像设备(简称为UVC设备),为了适应各种网络环境下的视频会议/直播客户端,一般是从UVC设备(如USB摄像设备)获取一路大码流的视频数据后(例如:1080p的视频数据),使用主机端设备对该大码流数据转码后进行再次编码,从而形成多路码流数据(一般为3路),以适应各个视频会议/直播客户端,如客户端的网络环境较好,则输出1080p的视频数据,如客户端的网络环境一般,则输出360p的视频数据,如此类推。由此可见,从UVC传输通道输入至主机端设备的码流数据需要依赖主机端设备进行转码后编码,但转码再编码的方式对于主机端CPU消耗很大,对其性能要求较高。如果将转码再编码的方式交由UVC设备在传输视频数据至主机端设备前完成,就能够大大减少主机设备的负担。但UVC设备是否能够完成视频数据的转码再编码,主要还是基于UVC协议的规则和标准,下文将详述UVC协议对多码流数据传输的支持情况:
UVC协议1.0版本不支持多路码流数据的传输,但可以通过多个UVC设备的复合模式从而达到多码流数据的输出,但缺点是由于每路视频需要2个端点资源,但目前主机端设备的端点资源都在4个以内,因此大多数的主机端设备无法支持两路以上的码流数据传输,且对于主机端设备来说,多个UVC设备不好控制。
UVC协议1.5版本支持多路码流数据的传输,但仍然需要增加端点资源的消耗,即每增加一路码流数据的传输,就需要增加一个端点资源。由于端点资源与UVC设备本身需要匹配,因此主流的UVC设备(如普通的USB设备)暂不支持该标准,且主机端设备的常用传输软件也不支持该标准,存在兼容性问题。
综合以上两个版本的UVC协议的局限以及现有技术所带来的未解决的问题可见,一种应用于UVC设备的新型多码流处理和传输方法亟待开发,能够同时解决上述的各项问题。
发明内容
本发明旨在克服上述现有技术的至少一种缺陷,提供多码流处理及输出方法、设备及存储介质,用于解决UVC设备的多码流数据传输局限问题,且免除主机端设备对码流数据的再编码,减轻主机端设备的CPU消耗。
本发明采用的技术方案为:
一种多码流处理方法,步骤包括:复用同一UVC传输通道输出多路码流数据。
如背景技术所述,UVC协议1.5版本虽支持多码流编码技术,但在输出多路码流数据时需要增加端点资源的消耗,输出一路码流数据就需要一个端点资源,也正是因为UVC协议1.5版本在传输多路码流数据时需要增加多个端点资源,导致很多主流的UVC设备以及主机端设备的软件均不支持该版本的协议。与UVC协议1.5版本相比,本发明提供的多码流处理方法通过复用同一UVC传输通道输出多路码流数据,多码流数据只需要通过一个端点资源即同一个UVC传输通道输出,不需要增加额外的端点资源,因此主流的UVC设备以及与UVC设备传输数据的主机端设备都能够适用于该方法进行多码流数据的传输,解决了现有UVC协议对于多码流数据传输的局限问题。同时由于输出至主机端设备的不是单一码流而是多路码流数据,因此也免除主机端设备对码流数据的转码和再编码,减轻主机端设备的CPU消耗。
进一步,复用同一UVC传输通道输出多路码流数据之前,对视频数据同时编码形成多路所述码流数据。对视频数据进行多路码流编码,多路码流数据的编码可同时进行且相互独立。视频编码的过程可概括为:对视频数据进行预处理、压缩编码并将压缩后的数据封装为数据包,每封装完成一个数据包即表示该数据包所对应的一路码流数据完成编码,而在编码多路码流数据的情况下,某一时刻或在较短的时间内会封装完成多个数据包,多个数据包对应为编码完成的多路码流数据。由于视频数据为连续数据,编码的过程中会不断形成连续的码流数据,即会不断封装完成连续的数据包,而这些连续的数据包能够对应编码前的视频数据的各个部分。由此可见,本发明提供的方法实现了对多路码流数据的编码且将能够通过一条通道将其输出至主机端设备,使主机端设备只需要转发多路码流数据至对端或其他设备/模块,不需要对码流数据进行转码和再编码,减轻主机端设备的CPU消耗。
进一步,对视频数据同时编码形成多路码流数据,具体为:根据不同的编码参数对视频数据同时编码形成多路所述码流数据,且在每路所述码流数据中添加对应的唯一标识。
对视频数据进行多码流编码,具体过程为:根据需要生成的码流数据参考对应该码流的编码参数对码流数据进行编码,编码的过程中还需要在编码完成前分别在各路码流数据中添加唯一标识,唯一标识用于标记各路码流数据,属于同一路码流数据的唯一标识相同。编码完成后的多路码流数据会作为一段连续数据复用同一UVC传输通道传输至主机端设备,主机端设备在获取包含多路码流数据的连续数据后,能够通过每路码流数据的唯一标识在连续数据中识别出各路码流数据,并将连续数据拆分为单独的各路码流数据,再按照对端或其他设备/模块的需求分别发送至对端或其他设备/模块,以使不同网络环境下的对端或其他设备/模块能够获取到符合自身网络环境的码流数据。
进一步,每路所述码流数据所添加的唯一标识的位置在该路码流数据的头部。各路码流数据的唯一标识添加在码流数据的头部,主机端设备在接收到连续的码流数据后能够通过每路码流数据的头部的唯一标识立即识别出不同的各路码流数据,从而将各路码流数据对应输出至对端或其他设备/模块。将唯一标识设在各路码流数据的头部,能够加快主机端设备的识别速度,使整个传输过程更加顺畅,延时更低。
进一步,复用同一UVC传输通道输出多路码流数据,具体为:复用同一UVC传输通道,交替传输编码完成的多路所述码流数据。将在某一时刻或较短时间内编码完成的多路码流数据在UVC传输通道中串行输出,即交替使用UVC传输通道传输编码完成的多路码流数据。当前述的多路码流数据传输完毕后,紧接着交替传输在下一时刻或下一时间段内编码完成的多路码流数据,保证连续的视频数据在完成多码流编码后有序且及时地传输至主机端设备,则主机端设备能够及时将各路码流数据传输至客户端或其他设备,保证视频数据的实时性。
一种多码流输出方法,步骤包括:接收从同一UVC传输通道输入的连续数据,将所述连续数据拆分为多路码流数据,并将至少一路或多路所述码流数据输出至一个或多个其他设备或模块。
在接收到同一UVC传输通道输入的连续数据后,只需要将连续数据拆分为多路码流数据就可以输出至其他设备或模块,不需要对连续数据进行转码再编码,减少了自身资源的损耗。
进一步,将所述连续数据拆分为多路码流数据,具体为:在所述连续数据中识别每路所述码流数据中的唯一标识,根据每路所述码流数据中的唯一标识将所述连续数据拆分为多路所述码流数据。
在拆分连续数据的过程中需要依赖连续数据中多路码流数据各自的唯一标识,连续数据中包含多路码流数据,各路码流数据中包含至少一个唯一标识,通过识别每路码流数据的唯一标识能够标记每路码流数据在连续数据中的位置,从而能够根据该标识将连续数据拆分为单独的各路码流数据,再根据其他设备或模块的需求将多路码流数据输出至一或多设备或模块。
本发明采用的技术方案还为:
一种多码流处理设备,包括:复用输出模块,用于复用同一UVC传输通道输出多路码流数据。
一种多码流处理设备,包括:拆分输出模块,用于接收从同一UVC传输通道输入的连续数据,将所述连续数据拆分为多路码流数据,并将至少一路或多路所述码流数据输出至一个或多个其他设备或模块。
一种处理多码流数据的USB摄像设备,所述USB摄像设备在处理多码流数据时执行上述的多码流处理方法,摄像设备在获取到视频数据后,利用上述的多码流处理方法将视频数据编码为多路码流数据后复用同一UVC传输通道输出。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的任一种数据处理方法。
与现有技术相比,本发明的有益效果为:
(1)复用同一UVC传输通道输出多路码流数据,解决了现有UVC协议对于多码流数据传输的局限问题,同时由于输出至主机端设备的不是单一码流而是多路码流数据,因此也免除主机端设备对码流数据的转码和再编码,减轻主机端设备的CPU消耗;
(2)分别在多路码流数据中添加唯一标识用于标记各路码流数据,主机端设备能够通过唯一标识在连续数据中识别出各路码流数据,并将连续数据对应输出至对端或其他设备/模块,以使不同网络环境下的对端或其他设备/模块能够获取到符合自身网络环境的码流数据;
(3)编码完成的多路码流数据会在UVC传输通道中交替传输,保证了连续的视频数据在完成多码流编码后有序且及时地传输至主机端设备,则主机端设备能够将各路码流数据及时传输至对端或其他设备/模块,保证视频数据的实时性。
附图说明
图1为现有技术中码流数据处理的原理示意图。
图2为实施例1中多路码流数据处理的原理示意图。
图3为实施例1中多路码流数据在UVC传输通道中交替传输的结构示意图。
图4为实施例2中步骤S1~S3的流程示意图。
具体实施方式
本发明附图仅用于示例性说明,不能理解为对本发明的限制。为了更好说明以下实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。
实施例1
本实施例提供一种多码流处理方法,所述方法的步骤为:
T1:复用同一UVC传输通道输出多路码流数据;
具体地,步骤T1中所输出的多路码流数据输出至主机端设备,主机端设备指任何可接收码流数据的设备/装置/模块,一般来说,主机端设备中设有中央处理器CPU。如图2所示,与背景技术中所述的UVC协议1.5版本相比,本实施例提供的多码流处理方法通过复用同一UVC传输通道输出多路码流数据,在多码流编码后只需要通过一个端点资源(即同一UVC传输通道)就可以将多路码流数据输出,不需要增加额外的端点资源,因此主流的UVC设备,如USB摄像设备等等均适用本实施例所提供的方法进行数据传输,由此可见,该方法解决了现有UVC协议1.5版本对于多码流数据传输的局限问题。
如图2所示,主机端设备在接收到多路码流数据后,根据对端或其他设备/模块的实际带宽条件或实际需求,可直接将多路码流数据分别输出至各个对端或其他设备/模块,特别在视频会议或视频直播的场景下,能够使对端或其他设备/模块尽可能观看到兼顾清晰和流畅的实时内容。优选地,主机端设备检测到该对端或其他设备/模块的网络环境发生变化后,可选择切换输出该对端或其他设备/模块的码流数据。由此可见,由于输出至主机端设备的不是单一码流而是多路码流数据,该方法还免除了主机端设备对码流数据的转码和再编码,减轻了主机端设备的CPU消耗。
具体地,该方法可通过在UVC协议的扩展协议中添加相应的功能得以实现,即对原有的UVC协议进行更新,则主流的UVC设备可沿用原有的UVC协议,只需要在原有的UVC协议的扩展协议上更新所添加的功能,就能够应用本实施例的方法处理多码流数据的传输。该方法也可以为单独的协议,用于与UVC协议配合控制数据传输,主流的UVC设备同样可以沿用原有的UVC协议,再结合能够实现本方法的单独协议就可以配合原有的UVC协议进行数据传输。
进一步,在执行步骤T1前,执行以下步骤:
T0:对视频数据同时编码形成多路码流数据。
步骤T0实现了对视频数据进行多路码流编码的功能,多路码流数据的编码可同时进行且相互独立,即并行处理多路码流数据的编码;具体地,视频数据一般通过摄像头/图像传感器等获取到的连续视频数据,也可以为已转码完成的视频文件。视频数据可以是实时或非实时的数据,例如在视频会议或视频直播的场景下,视频数据为实时数据;视频编码的过程可概括为:对视频数据进行预处理、压缩编码并将压缩后的数据封装为数据包,每封装完成一个数据包即表示该数据包所对应的一路码流数据完成编码,而在编码多路码流数据的情况下,某一时刻或在较短的时间内会封装完成多个数据包,多个数据包对应为编码完成的多路码流数据。具体地,每路码流数据即每个数据包中一般包含各个帧的序号、编码数据产生时的时间戳、视频数据以及后续视频的视频数据长度。由于视频数据为连续数据,对视频数据编码的过程中会不断编码形成连续的码流数据,即会不断封装完成连续的数据包,而这些连续的数据包能够对应编码前的视频数据的各个部分,例如在MPEG编码标准下,对连续的视频数据进行编码后会形成多段画面组,则每段画面组就对应前述的连续生成的每个数据包,或者说每段画面组就是前述的连续生成的每个数据包的主要构成部分。
具体地,步骤T0的具体执行过程为:根据不同的编码参数对视频数据同时编码形成多路码流数据,且在每路所述码流数据中添加对应的唯一标识。
对于多路码流数据的编码还需要根据码流对应的编码参数进行编码,在编码完成前分别在各路码流数据中添加唯一标识,唯一标识用于标记各路码流数据,属于同一路码流数据的唯一标识相同。示例性地,结合所添加的唯一标识,每路码流数据即每个数据包所包含的字段如下:
Magic:典型值为‘STRM’,用于防止数据包出现丢包;
StreamId:当前数据流的ID,即每路码流数据的唯一标识;
Seq:同一路码流的各个帧的序号,用于检查是否丢包和乱序;
Timestamp:当前编码数据产生时的时间戳,用于做音视频播放同步;
DataLen:标识后面视频数据长度;
Data:真实的视频数据。
编码完成的多路码流数据会作为一段连续数据复用同一UVC传输通道传输至主机端设备,主机端设备在获取包含多路码流数据的连续数据后,能够通过每路码流数据的唯一标识在连续数据中识别出各路码流数据,并将连续数据拆分为单独的各路码流数据,再按照对端或其他设备/模块的需求分别发送至对端或其他设备/模块,以使不同网络环境下的对端或其他设备/模块能够获取到符合自身网络环境的码流数据。
作为优选方案,每路码流数据所添加的唯一标识的位置在该路码流数据的头部。各路码流数据的唯一标识添加在码流数据的头部,即添加在数据包的头部,主机端设备在接收到连续的码流数据后能够通过每路码流数据的头部(数据包的头部)的唯一标识立即识别出不同的各路码流数据,从而对应输出至对端或其他设备/模块。将唯一标识设在码流数据的头部,能够加快主机端设备的识别速度,使整个传输过程更加顺畅,延时更低。
结合步骤T0中同时编码的多路码流数据的过程,步骤T1的具体执行过程为:
T1:复用同一UVC传输通道,交替传输编码完成的多路码流数据。
由于在步骤T0中提到在视频编码的过程中会不断形成连续的多路码流数据即多个连续的数据包,因此在步骤T1对于多路码流数据的传输中也需要定义如何传输这些不断形成的码流数据,在本实施例中,步骤T1对于多路码流数据的传输采用的是交替传输的方式,具体过程为:将在某一时刻或较短的一个时间段内编码完成的多路码流数据(对应为封装完成的多个数据包)在UVC传输通道中串行输出,即交替使用UVC传输通道传输编码完成的多路码流数据。当该时刻或时间段内编码完成的多路码流数据传输完毕后,紧接着交替传输在下一时刻/时间段内编码完成的多路码流数据(对应为封装完成的多个数据包),保证连续的视频数据在完成多码流编码后有序且及时地传输至主机端设备,则主机端设备在通过识别和拆分获得多路码流数据后能够及时传输至对端或其他设备/模块,保证视频数据的实时性。
如图3所示,假设需要传输的多路码流数据共三路码流数据,在t1时间(为某一时刻或较短的一个时间段)内编码完成的码流数据1、码流数据2和码流数据3(对应为封装完成的三个数据包)在UVC传输通道中串行输出,即交替使用UVC传输通道传输码流数据1、码流数据2和码流数据3。当t1时间内编码完成的码流数据1、码流数据2和码流数据3传输完毕后,紧接着交替传输在下一时刻/时间段t2内编码完成的码流数据1、码流数据2和码流数据3,保证视频数据在完成多码流编码后有序且及时地传输至主机端设备。作为示例说明,在图3中各路码流数据的传输顺序为码流数据1、码流数据2和码流数据3,但实际传输码流数据的顺序可根据码流数据编码完成的先后顺序进行传输,如在t1时间内码流数据2先于码流数据1和码流数据3完成编码,则传输的顺序可为码流数据2、码流数据1、码流数据3。
结合上述的进一步、具体或优选的方案,本实施例提供的多码流处理方法的执行过程为:
执行步骤T0:根据不同的编码参数对视频数据同时编码形成多路码流数据,在编码的过程中分别在多路码流数据的头部添加对应的唯一标识;执行步骤T1:复用同一UVC传输通道,交替传输编码完成的多路码流数据,直至编码完成的多码流数据均被输出为止。
本实施例提供的方法通过复用同一UVC传输通道输出多路码流数据,解决了现有UVC协议对于多码流数据传输的局限问题,同时由于输出至主机端设备的不是单一码流而是多路码流数据,因此也免除主机端设备对码流数据的转码和再编码,减轻主机端设备的CPU消耗。
实施例2
本实施例提供一种多码流输出方法,如图4所示,所述方法的步骤为:
S1:接收从同一UVC传输通道输入的连续数据;
S2:将步骤S1接收的连续数据拆分为多路码流数据;
S3:将至少一路或多路步骤S2拆分所得的码流数据输出至一个或多个其他设备或模块。
执行步骤S1:接收从同一UVC传输通道输入的连续数据,表示只需要一个端点资源就能够完成在UVC传输通道上的连续数据传输,无需额外的端点资源;执行步骤S2:将连续数据拆分为多路码流数据,其中,所接收到的连续数据默认由多路码流数据组成,步骤S2才能将连续数据拆分为多路码流数据;具体地,所接收到的连续数据不仅是由多路码流数据组成,而且是由在同一UVC传输通道中交替传输的多路码流数据组成,由此可见,步骤S1中的在UVC传输通道中传输的多路码流数据的形式为交替传输。执行步骤S3:根据对端或其他设备/模块的需求将至少一路或多路码流数据输出至对端或其他设备/模块;其中,将多路码流数据输出至同一对端或其他设备/模块涉及输出的码流数据的切换,例如当检测到某一对端或其他设备/模块的网络环境发生了变化,如网络变差,则输出至对端或其他设备/模块的码流也需要对应切换为较小的一路码流数据。具体地,对端或其他设备/模块为任何可接收码流数据的设备、模块或装置,如手机、平地板电脑等电子设备也包含在内。
在本方法的执行过程中,对于多路码流数据的传输不需要对连续数据进行转码再编码,只需要对连续数据进行拆分,拆分后即可对应输出至对端或其他设备/模块,则任何执行本方法的设备或装置都能够大大减少了其内部CPU的资源损耗。具体在视频会议或直播的场景下,在接收到同一UVC传输通道输入的多码流数据后,根据对端或其他设备/模块的网络环境或实际需求,将对应的码流数据传输至对端或其他设备/模块,从而适应实际的网络环境或实际需求,为对端或其他设备/模块提供清晰和流畅的视频或直播内容,同时还不会使执行本方法的设备或装置的CPU损耗过大。
具体地,步骤S2的具体执行过程为:在步骤S1接收到的连续数据中识别每路码流数据中的唯一标识,根据每路码流数据中的唯一标识将连续数据拆分为多路码流数据。
在拆分连续数据的过程中需要依赖连续数据中各路码流数据的唯一标识,连续数据中的多路码流数据各自包含至少一个唯一标识,通过识别每路码流数据的唯一标识能够标记每路码流数据在连续数据中的位置,从而能够根据该标识将连续数据拆分为单独的各路码流数据,再根据对端或其他设备/模块的需求将一或多路码流数据输出至其他设备/模块。
作为优选方案,各路码流数据中的唯一标识的位置设于各路码流数据的头部,在接收到连续数据后能够通过每路码流数据的头部(数据包的头部)的唯一标识立即识别出不同的各路码流数据,从而快速将其拆分,对应输出至对端或其他设备/模块。将唯一标识设在码流数据的头部,能够加快识别速度和拆分速度,使整个传输过程更加顺畅,延时更低。
实施例3
本实施例提供一种多码流处理设备,该处理设备用于协助UVC设备进行数据传输,同时处理设备本身也可以为一UVC设备,由处理设备内的模块协助自身设备的数据传输,UVC设备指任何基于UVC协议进行数据传输的设备/装置/模块。
处理设备包括复用输出模块,用于复用同一UVC传输通道输出多路码流数据。复用输出模块将多路码流数据复用同一UVC传输通道输出,解决了现有UVC协议1.5版本对于多码流数据传输的局限问题。具体地,复用输出模块所输出的多路码流数据输出至主机端设备,主机端设备指任何可接收码流数据的设备/装置/模块,一般来说,主机端设备中设有中央处理器CPU。主机端设备在接收到多码流数据后能够直接将码流数据传输至其对端或其他设备/模块,主机端设备直接输出的多路码流数据能够适应各个对端或其他设备/模块的实际网络带宽条件,尤其在视频会议或视频直播的场景下,能够使对端或其他设备/模块能够尽可能观看到兼顾清晰和流畅的实时内容。同时,由于复用输出模块输出至主机端设备的不是单一码流而是多路码流数据,因此也免除了主机端设备对码流数据的转码和再编码,减轻了主机端设备的CPU消耗。
进一步,所述处理设备还包括并行编码模块,用于对视频数据进行同时编码,以形成多路码流数据。复用输出模块所输出的多路码流数据为并行编码模块编码完成的多路码流数据。
具体地,并行编码模块同时编码多路码流数据的具体过程为:根据不同的编码参数控制对视频数据同时编码,以形成多路码流数据,且分别在多路码流数据中添加对应的唯一标识。
作为优选方案,每路码流数据所添加的唯一标识的位置在该路码流数据的头部。
结合并行编码模块的具体和优选的工作过程,复用输出模块传输多路码流数据的具体过程为:复用同一UVC传输通道,交替传输编码完成的多路码流数据。
本实施例所提供的多码流处理设备的具体工作过程为:并行编码模块根据不同的编码参数控制对视频数据进行同时编码,以形成多路码流数据,在编码的过程中分别在多路码流数据的头部添加对应的唯一标识;复用传输模块复用同一UVC传输通道,交替传输并行编码模块编码完成的多路码流数据,直至并行编码模块编码完成的多路码流数据都被输出为止。
本实施例提供的多码流处理设备通过复用同一UVC传输通道输出多路码流数据,解决了现有UVC协议对于多码流数据传输的局限问题,同时由于所输出的是多路码流数据,即输出至主机端设备的不是单一码流,因此也免除主机端设备对码流数据的转码和再编码,减轻主机端设备的CPU消耗。
实施例4
本实施例提供一种多码流处理设备,该处理设备用于协助主机端设备进行数据传输,但处理设备本身也可以为一主机端设备,由处理设备内的模块协助自身设备的数据传输,主机端设备指任何可接收码流数据的设备/装置/模块,一般来说,主机端设备中设有中央处理器CPU。
处理设备包括拆分输出模块,用于接收从同一UVC传输通道输入的连续数据,将连续数据拆分为多路码流数据,并将至少一路或多路码流数据输出至一个或多个其他设备或模块。
拆分输出模块在接收到连续数据后,只需要对连续数据进行拆分,拆分后即可输出至对端或其他设备/模块,则能够大大减少了处理设备内部CPU的资源损耗。拆分输出模块在接收到同一UVC传输通道输入的多码流数据后,根据对端或其他设备/模块的网络环境或实际需求,将对应的码流数据传输至对端或其他设备/模块,能够适应各个对端或其他设备/模块的网络环境或实际需求,尤其在视频会议或直播的场景下,为对端或其他设备/模块提供清晰和流畅的视频或直播内容,同时还不会使处理设备的CPU损耗过大。
具体地,拆分输出模块在执行“将连续数据拆分为多路码流数据”时的具体执行步骤为:在所接收到的连续数据中识别每路码流数据中的唯一标识,根据每路码流数据中的唯一标识将连续数据拆分为多路码流数据。
拆分输出模块在拆分连续数据的过程中需要依赖连续数据中各路码流数据的唯一标识,连续数据中的多路码流数据各自包含至少一个唯一标识,拆分输出模块通过识别每路码流数据的唯一标识能够标记每路码流数据在连续数据中的位置,从而能够根据该标识将连续数据拆分为单独的各路码流数据,再根据对端或其他设备/模块的需求将一或多路码流数据输出至其他设备/模块。
作为优选方案,各路码流数据中的唯一标识的位置设于各路码流数据的头部,拆分输出模块在接收到连续数据后能够通过每路码流数据的头部(数据包的头部)的唯一标识立即识别出不同的各路码流数据,从而快速将其拆分,对应输出至对端或其他设备/模块。将唯一标识设在码流数据的头部,能够加快拆分输出模块的识别速度和拆分速度,使整个传输过程更加顺畅,延时更低。
实施例5
本实施例提供一种USB摄像设备,所述USB摄像设备在处理和传输多码流数据时执行实施例1提供的多码流处理方法。
实施例6
本实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现实施例1或实施例2中的数据处理方法。
显然,本发明的上述实施例仅仅是为清楚地说明本发明技术方案所作的举例,而并非是对本发明的具体实施方式的限定。凡在本发明权利要求书的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。
Claims (11)
1.一种多码流处理方法,其特征在于,所述方法包括:复用同一UVC传输通道输出多路码流数据。
2.根据权利要求1所述的多码流处理方法,其特征在于,复用同一UVC传输通道输出多路码流数据之前,对视频数据同时编码形成多路所述码流数据。
3.根据权利要求2所述的多码流处理方法,其特征在于,
对视频数据同时编码形成多路码流数据,具体为:根据不同的编码参数对视频数据同时编码形成多路所述码流数据,且在每路所述码流数据中添加对应的唯一标识。
4.根据权利要求3所述的多码流处理方法,其特征在于,每路所述码流数据所添加的唯一标识的位置在该路码流数据的头部。
5.根据权利要求2~4任一项所述的多码流处理方法,其特征在于,
复用同一UVC传输通道输出多路码流数据,具体为:复用同一UVC传输通道,交替传输编码完成的多路所述码流数据。
6.一种多码流输出方法,其特征在于,步骤包括:接收从同一UVC传输通道输入的连续数据,将所述连续数据拆分为多路码流数据,并将至少一路或多路所述码流数据输出至一个或多个其他设备或模块。
7.根据权利要求6所述的多码流输出方法,其特征在于,将所述连续数据拆分为多路码流数据,具体为:
在所述连续数据中识别每路所述码流数据中的唯一标识,根据每路所述码流数据中的唯一标识将所述连续数据拆分为多路所述码流数据。
8.一种多码流处理设备,其特征在于,包括:复用输出模块,用于复用同一UVC传输通道输出多路码流数据。
9.一种多码流处理设备,其特征在于,包括:拆分输出模块,用于接收从同一UVC传输通道输入的连续数据,将所述连续数据拆分为多路码流数据,并将至少一路或多路所述码流数据输出至一个或多个其他设备或模块。
10.一种处理多码流数据的USB摄像设备,其特征在于,所述USB摄像设备在处理多码流数据时执行权利要求1~5任一项所述多码流处理方法。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1~5任一项或权利要求6~7任一项的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011126892.1A CN112492348A (zh) | 2020-10-20 | 2020-10-20 | 多码流处理及输出方法、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011126892.1A CN112492348A (zh) | 2020-10-20 | 2020-10-20 | 多码流处理及输出方法、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112492348A true CN112492348A (zh) | 2021-03-12 |
Family
ID=74926875
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011126892.1A Pending CN112492348A (zh) | 2020-10-20 | 2020-10-20 | 多码流处理及输出方法、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112492348A (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100185795A1 (en) * | 2009-01-20 | 2010-07-22 | Quanta Computer Inc. | Digital video/audio capture device and method thereof |
CN102088622A (zh) * | 2011-01-13 | 2011-06-08 | 成都索贝数码科技股份有限公司 | 一种多媒体信息处理终端 |
CN102301730A (zh) * | 2011-07-18 | 2011-12-28 | 华为技术有限公司 | 多路音视频传输和处理方法、装置及系统 |
CN103763579A (zh) * | 2014-01-22 | 2014-04-30 | 深圳国微技术有限公司 | 基于usb接口识别多路传输流的方法 |
CN106534857A (zh) * | 2016-11-02 | 2017-03-22 | 深圳市维海德技术股份有限公司 | 码流传输方法及基于usb的摄像机 |
CN106708763A (zh) * | 2016-08-31 | 2017-05-24 | 北京亮亮视野科技有限公司 | 可戴式显示设备与智能主机的数据传输系统 |
CN110958434A (zh) * | 2019-12-13 | 2020-04-03 | 厦门亿联网络技术股份有限公司 | 一种多图像拼接方法、系统以及计算机可读存储介质 |
-
2020
- 2020-10-20 CN CN202011126892.1A patent/CN112492348A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100185795A1 (en) * | 2009-01-20 | 2010-07-22 | Quanta Computer Inc. | Digital video/audio capture device and method thereof |
CN102088622A (zh) * | 2011-01-13 | 2011-06-08 | 成都索贝数码科技股份有限公司 | 一种多媒体信息处理终端 |
CN102301730A (zh) * | 2011-07-18 | 2011-12-28 | 华为技术有限公司 | 多路音视频传输和处理方法、装置及系统 |
CN103763579A (zh) * | 2014-01-22 | 2014-04-30 | 深圳国微技术有限公司 | 基于usb接口识别多路传输流的方法 |
CN106708763A (zh) * | 2016-08-31 | 2017-05-24 | 北京亮亮视野科技有限公司 | 可戴式显示设备与智能主机的数据传输系统 |
CN106534857A (zh) * | 2016-11-02 | 2017-03-22 | 深圳市维海德技术股份有限公司 | 码流传输方法及基于usb的摄像机 |
CN110958434A (zh) * | 2019-12-13 | 2020-04-03 | 厦门亿联网络技术股份有限公司 | 一种多图像拼接方法、系统以及计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA2737728C (en) | Low latency video encoder | |
US11856329B2 (en) | Dynamic advertisement stream replacement | |
US10911763B2 (en) | System and method for electronic data communication | |
KR102324326B1 (ko) | 상이한 인코딩 파라미터를 이용해 인코딩되는 복수의 인코딩 스트리밍 | |
CN104735470B (zh) | 一种流媒体数据传输方法及装置 | |
CN109150823B (zh) | 使用可缩放帧速率进行的原始视频传输和接收 | |
US10616383B2 (en) | System and method for electronic data communication | |
US10594977B2 (en) | System and method for electronic data communication | |
US20100064054A1 (en) | Remote fast forward and rewind functionality for client devices | |
CN107147916B (zh) | 一种在传输层上传输h.265编码视频数据的方法 | |
CN101742289B (zh) | 视频码流压缩方法、系统及装置 | |
CN105635636A (zh) | 一种视频会议系统及其实现视频图像传输控制的方法 | |
US10523895B2 (en) | System and method for electronic data communication | |
US20090259764A1 (en) | Intro outro merger with bit rate variation support | |
KR20110058841A (ko) | 동화상 데이터의 배신 방법 | |
FI105634B (fi) | Menetelmä videokuvien siirtämiseksi, tiedonsiirtojärjestelmä ja multimediapäätelaite | |
TW201138464A (en) | Network device, information processing apparatus, stream switching method, information processing method, program, and content distribution system | |
CN112492348A (zh) | 多码流处理及输出方法、设备及存储介质 | |
CN108124183B (zh) | 以同步获取影音以进行一对多影音串流的方法 | |
Lei et al. | Video transcoding gateway for wireless video access | |
CN111049624B (zh) | 一种基于滑动窗口的高容错无反馈链路影像传输方法及系统 | |
CN201352834Y (zh) | 基于数字电视hdtv平台的高清会议系统 | |
CN101521790A (zh) | 基于数字电视实现高清会议系统的方法 | |
CN115085790B (zh) | 信道环境自适应方法、窄带宽会议系统 | |
CN101814969A (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: 20210312 |