CN109151612B - 一种视频传输方法、设备及系统 - Google Patents

一种视频传输方法、设备及系统 Download PDF

Info

Publication number
CN109151612B
CN109151612B CN201710503244.5A CN201710503244A CN109151612B CN 109151612 B CN109151612 B CN 109151612B CN 201710503244 A CN201710503244 A CN 201710503244A CN 109151612 B CN109151612 B CN 109151612B
Authority
CN
China
Prior art keywords
video data
video
frame
data packet
indication information
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
Application number
CN201710503244.5A
Other languages
English (en)
Other versions
CN109151612A (zh
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201710503244.5A priority Critical patent/CN109151612B/zh
Priority to JP2019571975A priority patent/JP7004754B2/ja
Priority to PCT/CN2018/084959 priority patent/WO2019001128A1/zh
Priority to EP18824247.3A priority patent/EP3633997B1/en
Priority to KR1020207002206A priority patent/KR102305407B1/ko
Publication of CN109151612A publication Critical patent/CN109151612A/zh
Priority to US16/727,534 priority patent/US11553221B2/en
Application granted granted Critical
Publication of CN109151612B publication Critical patent/CN109151612B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/23418Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/32Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/236Assembling 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/236Assembling 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/23614Multiplexing of additional data and video streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/61Network physical structure; Signal processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/643Communication protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/647Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/647Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
    • H04N21/64784Data processing by the network
    • H04N21/64792Controlling the complexity of the content stream, e.g. by dropping packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/61Network physical structure; Signal processing
    • H04N21/6106Network physical structure; Signal processing specially adapted to the downstream path of the transmission network
    • H04N21/6125Network physical structure; Signal processing specially adapted to the downstream path of the transmission network involving transmission via Internet

Landscapes

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

Abstract

本申请提供一种视频传输方法、设备及系统,涉及多媒体技术领域,可以缓解传输网络传输视频流的过程中发生的网络拥塞,并提高输出视频流的质量。具体方案包括:发送设备生成源视频流,该源视频流中包括多个视频数据包,每个视频数据包中包括视频帧信息,该视频帧信息包括丢弃指示信息;其中,多个视频数据包中包括第一视频数据包和第二视频数据包,第一视频数据包中包括的丢弃指示信息指示的丢弃优先级高于第二视频数据包中包括的丢弃指示信息指示的丢弃优先级;第一视频数据包封装有帧类型为非参考B帧的视频帧中的视频数据,第二视频数据包封装有帧类型为I帧或P帧或参考B帧的视频帧中的视频数据;发送设备向网络设备发送源视频流。

Description

一种视频传输方法、设备及系统
技术领域
本发明实施例涉及多媒体技术领域,尤其涉及一种视频传输方法、设备及系统。
背景技术
随着多媒体传输技术的发展,因特网协议电视(Internet Protocol Television,IPTV)、过顶传球(Over The Top,OTT)业务发展快速,视频用户规模迅速增加;此外,4K、高动态光照渲染(High Dynamic Range,HDR)、虚拟现实(Virtual Reality,VR)等视频技术出现,视频码率大幅增加。用户规模和视频码率的迅速增加,带来了巨大的视频传输流量,使得传输网络如OTT不可避免地出现拥塞。
现有技术中,为缓解传输网络拥塞的情况,当前网络设备传输一段视频流时,根据视频帧类型决定丢弃优先级,以实现选择性地丢弃视频流中的部分数据包。其中,视频流由一系列图像组(Group of Piture,GOP)组成。一个GOP通常可以包括一个I帧以及一个或多个其他类型的视频帧(如B帧、P帧),每一个视频帧中的视频数据均可以封装至多个视频数据包中。具体的,当前网络设备在传输网络拥塞时,优先丢弃视频流中的B帧的视频数据包、再丢弃P帧的视频数据包,最后丢弃I帧的视频数据包。
存在的问题是,在传输网络传输视频的过程中,不同视频数据包的丢失对用户视觉体验的影响存在很大的差异,即不同数据包丢弃后,用户视觉敏感度差异非常大。有的视频数据包丢弃后,对视频画面影响很小,用户甚至不会感觉到差异;但有的数据包丢失后,对视频画面影响很大,会出现花屏、卡顿等现象,严重影响用户体验。具体的,在传输网络拥塞的情况下,网络设备可以丢弃视频流中的任一B帧的视频数据包,而该B帧的视频数据包的丢失可能造成上述花屏、卡顿等现象。
发明内容
本申请提供一种视频传输方法、设备及系统,可以缓解传输网络传输视频流时发生的网络拥塞,并提高输出视频流的质量。
为达到上述目的,本申请采用如下技术方案:
第一方面,本申请提供一种视频传输方法,该方法包括:发送设备生成源视频流,源视频流中包括多个视频数据包,每个视频数据包中包括视频帧信息,该视频帧信息包括丢弃指示信息,该丢弃指示信息用于指示视频数据包的丢弃优先级;其中,多个视频数据包中包括第一视频数据包和第二视频数据包,第一视频数据包中包括的丢弃指示信息指示的丢弃优先级高于第二视频数据包中包括的丢弃指示信息指示的丢弃优先级;第一视频数据包封装有帧类型为非参考B帧的视频帧中的视频数据,第二视频数据包封装有帧类型为I帧或P帧或参考B帧的视频帧中的视频数据;发送设备向网络设备发送源视频流。
本申请提供的视频传输方法,由于第一视频数据包中包括的丢弃指示信息指示的丢弃优先级高于第二视频数据包中包括的丢弃指示信息指示的丢弃优先级,因此,在传输网络中第一视频数据包可以先于第二视频数据包被丢弃,使得第二视频数据包被丢弃的可能性较小。其中,由于非参考B帧(简称b帧)对视频流质量的影响相比I帧、P帧或参考B帧对视频流质量的影响要小,因此,上述第二视频数据包被丢弃的可能性较小使得传输网络中传输的视频流的质量较高。
结合第一方面,在第一种可能的实现方式中,每个视频数据包中只封装有一个视频帧中的视频数据。也就是说,视频帧的边界为视频数据包的边界。其中,由于一个视频数据包中仅包括一个视频帧的视频数据;因此,视频流在传输网络中传输的过程中,即使丢失一个视频数据包(如第一视频数据包),也只会对该视频数据包对应的一个视频帧的质量产生影响,而不会影响除该视频帧之外的其他视频帧的质量,进一步提高了输出至接收设备的视频流的质量。
结合第一方面或第一种可能的实现方式,在第二种可能的实现方式中,为了能够指示视频流的一个或多个视频数据包中的哪些视频数据包可以被优先传输,哪些视频数据包可以不被传输;上述视频帧信息中还可以包括指示视频数据包能否被优先传输的指示信息。具体的,上述视频帧信息还包括优先级指示信息,该优先级指示信息用于指示视频数据包的传输优先级,即该视频数据包被优先传输的等级。其中,通常在传输网络中,优先级指示信息指示的传输优先级较高的视频数据包可以被优先传输。
结合第二种可能的实现方式,在第三种可能的实现方式中,为了能够指示视频流中的视频数据包属于哪个视频帧,如一个第一视频数据包属于相邻的两个b帧中哪个视频帧中,上述视频帧信息中还可以包括用于区分不同视频帧的指示信息,以及指示一个视频帧中包括的视频数据包的个数。具体的,上述视频帧信息还包括:帧编号指示信息和帧长度指示信息,其中,该帧编号指示信息用于指示对应的视频数据包所在的视频帧的编号,帧长度指示信息用于指示对应的视频数据包所在的视频帧中包括的视频数据包的个数。其中,一个视频帧中的一个或多个视频数据包的帧编号指示信息和帧长度指示信息均相同。
结合第三种可能的实现方式,在第四种可能的实现方式中,视频数据包中包括应用感知的垫层协议(application aware substrate protocol,A2SP)首部、实时传输协议(Reliable Transport Protocol,RTP)首部以及视频数据部,视频数据部用于携带视频数据,RTP首部以及视频数据部组成RTP数据包作为负载与A2SP首部组成A2SP包,A2SP首部用于携带视频帧信息;或者,视频数据包中包括RTP首部、RTP扩展首部及视频数据部,视频数据部用于携带视频数据,RTP首部、RTP扩展首部以及视频数据部组成RTP数据包,RTP扩展首部用于携带视频帧信息。
其中,由于传输网络中可以采用物理层的(Multiple Access Control Protocol,MAC)协议、网络层的网络之间互连的协议(Internet Protocol,IP)、传输层的用户数据包协议(User Datagram Protocol,UDP)以及应用层的RTP协议将视频流中的视频数据封装至一个或多个视频数据包中;因此,发送设备可以在封装得到一个或多个视频数据包的过程中,使视频数据包中的A2SP首部或者RTP扩展首部中包括上述视频帧信息。这样一来,发送设备发送的视频流在传输网络中传输的过程中,传输网络中的其他设备,如网络设备或接收设备可以接收到包括A2SP首部或者RTP扩展首部的视频数据包,即接收到包括上述视频帧信息的视频数据包。
结合第四种可能的实现方式,在第五种可能的实现方式中,上述视频数据包中还可以包括视频数据包的序列号。其中,视频数据包的序列号可以用于指示一个或多个视频数据包的顺序。上述视频数据包的序列号可以包括在RTP数据包的RTP首部中。
第二方面,本申请提供一种视频传输方法,该方法包括:网络设备接收视频流,该视频流中包括多个视频数据包,每个视频数据包中包括视频帧信息,该视频帧信息包括丢弃指示信息,该丢弃指示信息用于指示视频数据包的丢弃优先级;其中,多个视频数据包中包括第一视频数据包和第二视频数据包,第一视频数据包中包括的丢弃指示信息指示的丢弃优先级高于第二视频数据包中包括的丢弃指示信息指示的丢弃优先级;第一视频数据包封装有帧类型为非参考B帧的视频帧中的视频数据,第二视频数据包封装有帧类型为I帧或P帧或参考B帧的视频帧中的视频数据;网络设备在确定网络拥塞的情况下根据视频帧信息丢弃一个或多个第一视频数据包。
本申请提供的视频传输方法,由于上述视频帧信息可以包括丢弃指示信息,因此网络设备接收到的视频流中可以包括上述视频帧信息。从而,该网络设备可以根据上述视频帧信息区分出视频流中第一视频数据包和第二视频数据包,并丢弃上述视频流中的一个或多个第一视频数据包。这样一来,网络设备可以优先丢弃视频流中的第一视频数据包,以减缓网络拥塞;并且,使得网络设备可能仅丢弃一个或多个第一视频数据包而不丢弃第二视频数据包,可以提高传输至接收设备的视频流的质量。进而,可以降低电视机等设备播放该视频流时出现花屏、卡顿等现象的可能性。
结合第二方面,在第一种可能的实现方式中,每个视频数据包中只封装有一个视频帧的视频数据。也就是说,视频帧的边界为视频数据包的边界。其中,对该实现方式的详细说明,可以参考第一方面的第一种可能的实现方式中的描述,本申请对此不再赘述。
结合第一种可能的实现方式中,在第二种可能的实现方式中,上述网络设备在确定网络拥塞的情况下,根据视频帧信息丢弃一个或多个第一视频数据包可以包括:网络设备在确定网络拥塞的情况下,网络设备根据视频帧信息中包括的丢弃指示信息,映射出视频数据包的着色,该着色用于指示视频数据包可丢弃性的等级;网络设备根据该着色,丢弃一个或多个第一视频数据包,以得到中间视频流。
需要说明的是,本发明实施例提供的视频传输方法中,由于发送设备在视频数据包中添加的视频帧信息中包括丢弃指示信息,因此网络设备可以根据视频数据包中的视频帧信息得到该视频数据包的内部标签(如着色)。如此,网络设备可以为视频数据包添加内部标签,以区分视频数据包在网络设备侧的内部传输优先级。从而,网络设备可以根据上述内部传输优先级区分出第一视频数据包,并丢弃一个或多个第一视频数据包,以减缓网络拥塞,并提高输出的视频流的质量。
结合第一种可能的实现方式,在第三种可能的实现方式中,上述视频帧信息还可以包括优先级指示信息,该优先级指示信息用于指示视频数据包的传输优先级。上述网络设备在确定网络拥塞的情况下根据视频帧信息丢弃一个或多个第一视频数据包可以包括:网络设备在确定网络拥塞的情况下根据视频帧信息中包括的丢弃指示信息和优先级指示信息,丢弃一个或多个第一视频数据包。
其中,视频数据包中包括的优先级指示信息可以由该视频数据包所在的视频流的业务优先级或用户优先级确定。具体的,网络设备可以根据上述视频帧信息包括的优先级指示信息为进入当前队列的每个视频数据包添加内部标签,以区分上述视频数据包在网络设备侧的内部传输优先级。其中,通常第一视频数据包的内部传输优先级最低,在网络拥塞的情况下,网络设备可以优先丢弃第一视频数据包。如此,使得视频流中可能不存在第二视频数据包丢失的情况,传输网络输出的视频流的质量较好。
结合第三种可能的实现方式,在第四种可能的实现方式中,上述网络设备在确定网络拥塞的情况下根据视频帧信息中包括的丢弃指示信息和优先级指示信息,丢弃一个或多个第一视频数据包可以包括:网络设备根据视频帧信息中包括的丢弃指示信息和优先级指示信息,映射出视频数据包的服务等级和着色;其中,该服务等级用于指示网络设备传输视频数据包的队列的等级,该着色用于指示视频数据包丢弃性的等级;网络设备根据视频数据包的服务等级,确定网络拥塞的情况下,根据服务等级和着色,丢弃一个或多个第一视频数据包,以得到中间视频流。
需要说明的是,本申请提供的视频传输方法中,由于视频数据包的视频帧信息中包括丢弃指示信息和优先级指示信息,因此网络设备可以根据视频数据包中包括的视频帧信息得到该视频数据包的内部标签(如着色和服务等级)。如此,网络设备可以为视频数据包添加内部标签,得到视频数据包在网络设备侧的内部传输优先级。随后,网络设备可以根据上述内部传输优先级区分出第一视频数据包和第二视频数据包。从而,网络设备可以更准确地优先丢弃一个或多个第一视频数据包,以减缓网络拥塞,并进一步提高输出的视频流的质量。
结合第三种可能的实现方式,在第五种可能的实现方式中,上述视频帧信息还可以包括:帧编号指示信息,其中,该帧编号指示信息用于指示对应的视频数据包所在的视频帧的编号。上述网络设备在确定网络拥塞的情况下根据视频帧信息中包括的丢弃指示信息和优先级指示信息,丢弃一个或多个第一视频数据包可以包括:网络设备在确定网络拥塞的情况下根据视频帧信息中包括的丢弃指示信息、优先级指示信息和帧编号指示信息,丢弃一个或多个第一视频数据包。其中,上述视频帧信息中包括的帧编号指示信息可以指示视频流中的视频数据包属于哪个视频帧,如一个第一视频数包属于相邻的两个b帧中哪个视频帧中。一个视频帧中的多个视频数据包的帧编号指示信息均相同。如此,网络设备在丢弃一个或多个第一视频数据包的过程中,可以选择性地丢弃一个b帧中的部分第一视频数据包。
结合第五种可能的实现方式,在第六种可能的实现方式中,上述网络设备在确定网络拥塞的情况下根据视频帧信息丢弃一个或多个第一视频数据包,包括:网络设备根据视频帧信息中包括的优先级指示信息映射出视频数据包的服务等级;其中,该服务等级用于指示网络设备传输视频数据包的队列的等级;网络设备根据视频数据包的服务等级,检测队列的长度;网络设备根据队列的长度以及视频帧信息中包括的帧编号指示信息和丢弃指示信息,丢弃一个或多个第一视频数据包,以得到中间视频流。
其中,本申请提供的视频传输方法,上述视频帧信息中包括的帧编号指示信息,可以将多个视频数据包分成不同的部分。并且,网络设备区分出第一视频数据包的同时,还可以区分出一个或多个第一视频数据包中的不同部分,并按照网络拥塞程度丢弃一个或多个第一视频数据包中的指定部分视频数据包。如此,网络设备丢弃第一视频数据包的过程中,可以减少影响的视频流的数目,进一步提高了传输至接收设备的视频流的质量。
结合第二方面或上述任一种可能的实现方式,在第七种可能的实现方式中,上述视频帧信息还可以包括:帧长度指示信息,其中,该帧长度指示信息用于指示一个视频数据包所在的视频帧中包括的视频数据包的个数;上述视频数据包中还包括视频数据包的序列号;在网络设备在确定网络拥塞的情况下根据视频帧信息丢弃一个或多个第一视频数据包之后还可以包括:在网络设备与接收设备相邻的情况下,网络设备根据中间视频流中视频数据包的序列号以及视频帧信息中包括的丢弃指示信息、帧编号指示信息和帧长度指示信息,丢弃第三视频数据包,该第三视频数据包封装有帧类型为非参考B帧的不完整的视频帧中的视频数据,以得到待解码视频流,待解码视频流中的视频帧均为完整的视频帧;网络设备向接收设备发送待解码视频流。
需要说明的是,上述视频数据包的序列号可以用于指示一个或多个视频数据包的顺序。网络设备是在网络拥塞的情况下执行上述“丢弃一个或多个第一视频数据包”的,而在网络设备停止执行上述“丢弃一个或多个第一视频数据包”时,可能存在有的视频帧不完整。其中,一部分视频数据包被丢弃,另一部分视频数据包未被丢弃的视频帧为不完整的视频帧。网络设备可以根据上述帧长度指示信息和视频数据包的序列号,找出上述不完整的视频帧中未被丢弃的视频数据包。此时,与接收设备相邻的网络设备还可以丢弃上述不完整的视频帧中未被丢弃的视频数据包,如未被丢弃的第一视频数据包,得到待解码视频流。如此,可以使得传输至接收设备的视频流的质量较好,进一步降低电视机等设备播放该视频流时出现花屏、卡顿等现象的可能性。
结合第二方面或上述任一种可能的实现方式,上述视频数据包中包括A2SP首部、RTP首部以及视频数据部,该视频数据部用于携带视频数据,该RTP首部以及该视频数据部组成RTP数据包作为负载与该A2SP首部组成A2SP包,该A2SP首部用于携带视频帧信息;或者,视频数据包中包括RTP首部、RTP扩展首部及视频数据部,该视频数据部用于携带视频数据,该RTP首部、RTP扩展首部以及视频数据部组成RTP数据包,该RTP扩展首部用于携带视频帧信息。其中,由于视频数据包中包括A2SP首部或者RTP扩展首部,该A2SP首部或者RTP扩展首部中包括上述视频帧信息,因此视频流在传输网络中传输的过程中,该传输网络中的网络设备或接收设备等均可以接收到包括A2SP首部或者RTP扩展首部的视频数据包,便得到该视频数据包中的视频帧信息。
第三方面,本申请提供一种视频传输方法,该方法包括:接收设备接收网络设备发送的中间视频流,中间视频流中包括多个视频数据包,每个视频数据包中包括视频帧信息,视频帧信息包括丢弃指示信息;其中,该视频帧信息包括丢弃指示信息、帧编号指示信息和帧长度指示信息;该丢弃指示信息用于指示视频数据包的丢弃优先级,该帧编号指示信息用于指示视频数据包所在的视频帧的编号,该帧长度指示信息用于指示视频数据包所在的视频帧中包括的视频数据包的个数;上述多个视频数据包中包括第一视频数据包和/或第二视频数据包,第一视频数据包中包括的丢弃指示信息指示的丢弃优先级高于第二视频数据包中包括的丢弃指示信息指示的丢弃优先级;第一视频数据包封装有帧类型为非参考B帧的视频帧中的视频数据,第二视频数据包封装有帧类型为I帧或P帧或参考B帧的视频帧中的视频数据;视频数据包中还包括视频数据包的序列号;接收设备根据中间视频流中视频数据包的序列号以及视频帧信息中包括的丢弃指示信息、帧编号指示信息和帧长度指示信息,丢弃第三视频数据包,第三视频数据包封装有帧类型为非参考B帧的不完整的视频帧中的视频数据,以得到待解码视频流,待解码视频流中的视频帧均为完整的视频帧;接收设备解码待解码视频流。
其中,由于网络设备是在网络拥塞的情况下执行上述“丢弃一个或多个第一视频数据包”的,而在网络设备停止执行上述“丢弃一个或多个第一视频数据包”时,可能存在有的视频帧不完整。此时,接收设备接收到网络设备发送的中间视频流之后,可以丢弃上述不完整的视频帧中未被丢弃的视频数据包,即未被丢弃的第一视频数据包,得到包括完整视频帧的待解码视频流。如此,可以使得接收设备解码得到的视频流的质量较好,进一步降低电视机等设备播放该视频流时出现花屏、卡顿等现象的可能性。
第四方面,本申请提供一种发送设备,该发送设备包括:生成模块和发送模块。其中,生成模块,用于生成源视频流,该源视频流包括多个视频数据包,每个视频数据包中包括视频帧信息,该视频帧信息包括丢弃指示信息,该丢弃指示信息用于指示视频数据包的丢弃优先级;其中,多个视频数据包中包括第一视频数据包和第二视频数据包,第一视频数据包中包括的丢弃指示信息指示的丢弃优先级高于第二视频数据包中包括的丢弃指示信息指示的丢弃优先级;第一视频数据包封装有帧类型为非参考B帧的视频帧中的视频数据,第二视频数据包封装有帧类型为I帧或P帧或参考B帧的视频帧中的视频数据;发送模块,用于向网络设备发送上述生成模块生成的源视频流。
结合第四方面,在第一种可能的实现方式中,每个视频数据包中只封装有一个视频帧的视频数据。
结合第四方面或第一种可能的实现方式,在第二种可能的实现方式中,上述视频帧信息还包括优先级指示信息,该优先级指示信息用于指示视频数据包的传输优先级。
结合第一方面或上述任一实现方式,在第三种可能的实现方式中,上述视频帧信息还可以包括:帧编号指示信息和帧长度指示信息,其中,该帧编号指示信息用于指示对应的视频数据包所在的视频帧的编号,该帧长度指示信息用于指示视频数据包所在的视频帧中包括的视频数据包的个数。
结合第一方面或上述任一实现方式,在第四种可能的实现方式中,上述视频数据包中包括A2SP首部、RTP首部以及视频数据部,该视频数据部用于携带视频数据,该RTP首部以及该视频数据部组成RTP数据包作为负载与A2SP首部组成A2SP包,该A2SP首部用于携带视频帧信息;或者,上述视频数据包中包括RTP首部、RTP扩展首部及视频数据部,该视频数据部用于携带视频数据,该RTP首部、RTP扩展首部以及视频数据部组成RTP数据包,该RTP扩展首部用于携带视频帧信息。
结合第四种可能的实现方式,在第五种可能的实现方式中,上述视频数据包中还可以包括该视频数据包的序列号。
第五方面,本申请提供一种网络设备,该网络设备包括:接收模块和拥塞处理模块。其中,接收模块,用于接收视频流,该视频流中包括多个视频数据包,每个视频数据包中包括视频帧信息,该视频帧信息包括丢弃指示信息,该丢弃指示信息用于指示视频数据包的丢弃优先级;其中,多个视频数据包中包括第一视频数据包和第二视频数据包,第一视频数据包中包括的丢弃指示信息指示的丢弃优先级高于第二视频数据包中包括的丢弃指示信息指示的丢弃优先级;第一视频数据包为封装有帧类型为非参考B帧的视频帧中的视频数据,第二视频数据包为封装有帧类型为I帧或P帧或参考B帧的视频帧中的视频数据;拥塞处理模块,用于在确定网络拥塞的情况下根据上述接收模块得到的视频帧信息丢弃一个或多个第一视频数据包。
结合第五方面,在第一种可能的实现方式中,每个视频数据包中只封装有一个视频帧的视频数据。
结合第一种可能的实现方式,在第二种可能的实现方式中,上述视频帧信息还包括优先级指示信息,该优先级指示信息用于指示视频数据包的优先级;上述拥塞处理模块,具体用于在确定网络拥塞的情况下根据视频帧信息中包括的丢弃指示信息和优先级指示信息,丢弃一个或多个第一视频数据包。
结合第二种可能的实现方式,在第三种可能的实现方式中,上述拥塞处理模块,可以包括:第一映射子模块和第一拥塞处理子模块。其中,第一映射子模块,用于根据视频帧信息中包括的丢弃指示信息和优先级指示信息,映射出视频数据包的服务等级和着色;其中,该服务等级用于指示网络设备传输视频数据包的队列的等级,该着色用于指示视频数据包丢弃性的等级;第一拥塞处理子模块,用于根据上述第一映射子模块映射出的视频数据包的服务等级,确定网络拥塞的情况下,根据该服务等级和该着色,丢弃一个或多个第一视频数据包,以得到中间视频流。
结合第三种可能的实现方式,在第四种可能的实现方式中,上述视频帧信息还可以包括:帧编号指示信息,其中,帧编号指示信息用于指示视频数据包所在的视频帧的编号;上述拥塞处理模块,具体用于在确定网络拥塞的情况下根据视频帧信息中包括的丢弃指示信息、优先级指示信息和帧编号指示信息,丢弃一个或多个第一视频数据包。
结合第四种可能的实现方式,在第五种可能的实现方式中,上述拥塞处理模块可以包括:第二映射子模块和第二拥塞处理子模块。其中,第二映射子模块,用于根据视频帧信息中包括的优先级指示信息映射出视频数据包的服务等级;其中,该服务等级用于指示网络设备传输视频数据包的队列的等级;第二拥塞处理子模块,用于根据上述第二映射子模块映射出的频数据包的服务等级,检测队列的长度;根据该队列的长度以及视频帧信息中包括的帧编号指示信息和丢弃指示信息,丢弃一个或多个第一视频数据包,以得到中间视频流。
结合第五方面或上述任一种可能的实现方式,在第六种可能的实现方式中,上述视频帧信息还包括:帧长度指示信息,其中,该帧长度指示信息用于指示视频数据包所在的视频帧中包括的视频数据包的个数;上述视频数据包中还包括视频数据包的序列号;上述网络设备还可以包括:丢包处理模块。其中,丢包处理模块,用于在网络设备为与接收设备相邻的情况下,根据中间视频流中视频数据包的序列号以及视频帧信息中包括的丢弃指示信息、帧编号指示信息和帧长度指示信息,丢弃第三视频数据包,该第三视频数据包封装有帧类型为非参考B帧的不完整的视频帧中的视频数据,以得到待解码视频流,该待解码视频流中的视频帧均为完整的视频帧;发送模块,用于在网络设备与接收设备相邻的情况下,向接收设备发送上述丢包处理模块得到的待解码视频流。
结合第七种可能的实现方式,在第八种可能的实现方式中,上述视频数据包中包括A2SP首部、RTP首部以及视频数据部,视频数据部用于携带视频数据,RTP首部以及视频数据部组成RTP数据包作为负载与A2SP首部组成A2SP包,A2SP首部用于携带视频帧信息;或者,视频数据包中包括RTP首部、RTP扩展首部及视频数据部,视频数据部用于携带视频数据,RTP首部、RTP扩展首部以及视频数据部组成RTP数据包,RTP扩展首部用于携带视频帧信息。
结合第一种可能的实现方式,在第九种可能的实现方式中,上述拥塞处理模块可以包括:第三映射子模块和第三拥塞处理子模块。其中,第三映射子模块,用于在确定网络拥塞的情况下,根据视频帧信息中包括的丢弃指示信息,映射出视频数据包的着色,该着色的用于指示视频数据包可丢弃性的等级;第三拥塞处理子模块,用于根据上述第三映射子模块得到的着色,丢弃一个或多个第一视频数据包,以得到中间视频流。
第六方面,本申请提供一种接收设备,该接收设备包括:接收模块、丢包处理模块和解码模块。其中,接收模块,用于接收网络设备发送的中间视频流,该中间视频流中包括多个视频数据包,每个视频数据包中包括视频帧信息,视频帧信息包括丢弃指示信息;其中,视频帧信息包括丢弃指示信息、帧编号指示信息和帧长度指示信息;该丢弃指示信息用于指示视频数据包的丢弃优先级,该帧编号指示信息用于指示视频数据包所在的视频帧的编号,该帧长度指示信息用于指示视频数据包所在的视频帧中包括的视频数据包的个数;多个视频数据包中包括第一视频数据包和第二视频数据包,第一视频数据包中包括的丢弃指示信息指示的丢弃优先级高于第二视频数据包中包括的丢弃指示信息指示的丢弃优先级;第一视频数据包封装有帧类型为非参考B帧的视频帧中的视频数据,第二视频数据包封装有帧类型为I帧或P帧或参考B帧的视频帧中的视频数据;视频数据包中还包括视频数据包的序列号。丢包处理模块,用于根据上述接收模块得到的中间视频流中视频数据包的序列号以及视频帧信息中包括的丢弃指示信息、帧编号指示信息和帧长度指示信息,丢弃第三视频数据包,该第三视频数据包封装有帧类型为非参考B帧的不完整的视频帧中的视频数据,以得到待解码视频流,待解码视频流中的视频帧均为完整的视频帧。解码模块,用于解码上述丢包处理模块得到的待解码视频流。
第七方面,本申请提供一种频传输的系统,该系统可以包括:如第四方面或其任一种可能的实现方式中的发送设备;和至少一个如第五方面或其任一种可能的实现方式中的网络设备;和第六方面或其任一种可能的实现方式中的接收设备。
第八方面,本申请提供一种发送设备,该发送设备包括:至少一个处理器、存储器、通信接口和通信总线;该存储器用于存储至少一个指令,该至少一个处理器、该存储器和该通信接口通过该通信总线连接,当计算机运行时,该至少一个处理器执行该存储器存储的该至少一个指令,以使该计算机执行如第一方面或其任一可能的实现方式中的视频传输方法。
第九方面,本申请还提供一种计算机存储介质,该计算机存储介质上储存有计算机指令,当所述计算机指令在终端上运行时,使得上述发送设备执行本申请第一方面或者其任一种可能的实现方式中的视频传输方法。
第十方面,本申请还提供了一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述本申请第一方面或者其任一种可能的实现方式所述的视频传输方法。
可以理解地,上述提供的第八方面所述的发送设备、第九方面所述的计算机存储介质或者第十方面所述的计算机程序产品均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
第十一方面,本申请提供一种网络设备,该网络设备包括:至少一个处理器、存储器、通信接口和通信总线;该存储器用于存储至少一个指令,该至少一个处理器、该存储器和该通信接口通过该通信总线连接,当计算机运行时,该至少一个处理器执行该存储器存储的该至少一个指令,以使该计算机执行如第二方面或其任一种可能的实现方式中的视频传输方法。
第十二方面,本申请还提供一种计算机存储介质,该计算机存储介质上储存有计算机指令,当所述计算机指令在终端上运行时,使得所述网络设备执行本申请第二方面或者其任一种可能的实现方式所述的视频传输方法。
第十三方面,本申请还提供了一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述本申请第二方面或者其任一种可能的实现方式所述的视频传输方法。
可以理解地,上述提供的第十一方面所述的网络设备、第十二方面所述的计算机存储介质或者第十三方面所述的计算机程序产品均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
第十四方面,本申请提供一种接收设备,该接收设备包括:至少一个处理器、存储器、通信接口和通信总线;该存储器用于存储至少一个指令,该至少一个处理器、该存储器和该通信接口通过该通信总线连接,当计算机运行时,该至少一个处理器执行该存储器存储的该至少一个指令,以使该计算机执行如第三方面或其任一可能的实现方式中的视频传输方法。
第十五方面,本申请还提供一种计算机存储介质,该计算机存储介质上储存有计算机指令,当所述计算机指令在终端上运行时,使得所述接收设备执行本申请第三方面或者其任一种可能的实现方式所述的视频传输方法。
第十六方面,本申请还提供了一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述本申请第三方面或者其任一种可能的实现方式所述的视频传输方法。
可以理解地,上述提供的第十四方面所述的接收设备、第十五方面所述的计算机存储介质或者第十六方面所述的计算机程序产品均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
第十七方面,本申请提供一种视频传输系统,该系统可以包括:如第八方面所述的发送设备;和至少一个如第十一方面所述的网络设备;和第十四方面所述接收设备。
附图说明
图1为本发明实施例提供的一种传输网络的结构示意图一;
图2为本发明实施例提供的一种传输网络的结构示意图二;
图3为本发明实施例提供的一种发送设备的组成示意图一;
图4为本发明实施例提供的一种网络设备的组成示意图一;
图5为本发明实施例提供的一种接收设备的组成示意图一;
图6为本发明实施例提供的一种视频传输方法的流程图一;
图7为本发明实施例提供的一种视频数据包的组成示意图一;
图8为本发明实施例提供的一种视频数据包的组成示意图二;
图9为本发明实施例提供的一种视频传输方法的流程图二;
图10为本发明实施例提供的一种视频传输方法的流程图三;
图11为本发明实施例提供的一种视频传输过程的流程示意图一;
图12为本发明实施例提供的一种视频传输方法的流程图四;
图13为本发明实施例提供的一种视频传输过程的流程示意图二;
图14为本发明实施例提供的一种视频流示意图一;
图15为本发明实施例提供的一种视频传输方法的流程图五;
图16为本发明实施例提供的一种视频传输过程的流程示意图三;
图17为本发明实施例提供的一种视频数数据包的丢弃过程示意图;
图18为本发明实施例提供的一种视频传输方法的流程图六;
图19为本发明实施例提供的一种视频流的示意图二;
图20为本发明实施例提供的一种视频传输方法的流程图七;
图21为本发明实施例提供的一种视频流的示意图二;
图22为本发明实施例提供的一种视频传输方法的流程图八;
图23为本发明实施例提供的一种发送设备的组成示意图二;
图24为本发明实施例提供的一种网络设备的组成示意图二;
图25为本发明实施例提供的一种网络设备的组成示意图三;
图26为本发明实施例提供的一种网络设备的组成示意图四;
图27为本发明实施例提供的一种网络设备的组成示意图五;
图28为本发明实施例提供的一种网络设备的组成示意图六;
图29为本发明实施例提供的一种网络设备的组成示意图七;
图30为本发明实施例提供的一种接收设备的组成示意图二;
图31为本发明实施例提供的一种接收设备的组成示意图三。
具体实施方式
本发明实施例提供一种视频传输方法、设备及系统,应用于传输网络传输视频流的过程中,具体用于缓解传输网络传输视频流时发生的网络拥塞,可以提高输出视频流的质量。
下面将结合本发明实施例中的附图,详细描述本发明实施例中的技术方案。
示例性的,如图1所示,为本发明实施例提供的一种传输网络的结构示意图。图1中,该传输网络可以包括发送设备、接收设备以及一个或多个网络设备。图1中一个或多个网络设备为网络设备1、网络设备2以及网络设备N等,N取值为大于等于1的正整数。
其中,发送设备用于提供视频源。同时,发送设备还可以将源视频流发送至与其相邻的网络设备;网络设备用于将视频流传输至接收设备;接收设备用于接收视频流。其中,本发明实施例中所涉及的“网络拥塞”具体可以为传输网络中一个或多个网络设备传输视频流过程中发生的网络拥塞。
需要说明的是,在本发明实施例中,视频流的传输方向可以是从上游(即指向发送设备的方向)到下游(即指向接收设备的方向)。同时,可以将上述一个或多个网络设备中、与发送设备相邻的网络设备,即与发送设备距离最近的网络设备称为最上游设备;将上述一个或多个网络设备中、与接收设备相邻的网络设备,即与接收设备距离最近的网络设备称为最下游设备。
具体的,本发明实施例涉及的传输网络可以为IPTV传输网络或OTT传输网络等。示例性的,以本发明实施例涉及的传输网络为IPTV传输网络为例,则如图2所示,在IPTV传输网络中,发送设备可以为由运营商提供的头端(head end,HE)设备;接收设备可以为由运营商提供的终端设备。其中,HE提供IPTV视频源,并将视频源编码成视频流,再将视频流中的视频数据封装至多个视频数据包中,该多个视频数据包经由一个或多个网络设备传输至终端设备,再由终端设备传输给显示设备进行显示。例如,一个或多个网络设备可以是图2所示的网络设备1、网络设备2以及网络设备N等;终端设备可以为图2所示的机顶盒(set topbox,STB);显示设备可以是图2所示的电视机。其中,在传输过程中,由于网络状况的影响可能会出现网络拥塞,因此为了保证视频流从头端设备传输至终端设备,通常可以丢弃该视频流中的一部分视频数据包,即丢包。
具体的,本发明实施例提供的网络设备可以为路由器,如宽带远程接入服务器(broadband remote access server,BARS)。其中,一个网络设备与HE相邻,如图2所示的网络设备1与HE相邻;由HE发送至该网络设备的视频流可以称为源视频流。视频流在上述一个或多个网络设备之间传输时,该视频流可以称为中间视频流,如由网络设备1传输至网络设备2的视频流可以称为中间视频流。此外,一个网络设备与终端设备相邻,如图2所示的网络设备N与HE相邻;由该网络设备发送至终端设备的视频流可以称为中间视频流或待解码视频流。其中,待解码视频流为终端设备可以直接解码的视频流。
当然,本发明实施例提供的发送设备可以为上述头端设备,也可以是其他提供视频源并生成源视频流的发送设备,本发明实施例对此不作具体限定。
本发明实施例中提供的接收设备可以为上述STB,还可以是其他支持接收视频流并解码该视频流的终端设备,如手机、平板电脑、笔记本电脑、超级移动个人计算机(Ultra-mobile Personal Computer,UMPC)、上网本等,本发明实施例对此不作具体限定。
示例性的,图3为本发明实施例提供的一种发送设备的组成示意图。如图3所示,该发送设备可以包括至少一个处理器31,存储器32以及通信接口33。
下面结合图3对发送设备的各个构成部件进行具体的介绍:
处理器31是设备的控制中心,可以是一个处理器,也可以是多个处理元件的统称。例如,处理器31可以是一个中央处理器(central processing unit,CPU),也可以是特定集成电路(Application Specific Integrated Circuit,ASIC),或者可以是被配置成实施本发明实施例的一个或多个集成电路,如:一个或多个微处理器(digital signalprocessor,DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,FPGA)。
其中,处理器31可以通过运行或执行存储在存储器32内的软件程序,以及调用存储在存储器32内的数据,执行设备的各种功能。例如,处理器31可以用于划分视频流中各个视频帧以及封装各个视频帧中的视频数据包,以得到源视频流。
在具体的实现中,作为一种实施例,处理器31可以包括一个或多个CPU,例如图3中所示的CPU0和CPU1。
在具体实现中,作为一种实施例,发送设备可以包括多个处理器,例如图3中所示的处理器31和处理器35。这些处理器中的每一个可以是一个单核处理器(single-CPU),也可以是一个多核处理器(multi-CPU)。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
存储器32可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(ElectricallyErasable Programmable Read-Only Memory,EEPROM)、只读光盘(Compact Disc Read-Only Memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器32可以是独立存在,通过通信总线34与处理器31相连接。存储器32也可以和处理器31集成在一起。
其中,上述存储器32用于存储执行本发明实施例提供方案的软件程序,并由处理器31来控制执行。
通信接口33,可以包括两个通信接口,一个用于向外部设备发送数据的发送接口和一个用于接收来自外部设备的数据的接收接口,即发送设备可以通过两个不同的通信接口分别实现数据的接收和数据的发送。例如,发送设备的一个通信接口可以向图1所示的网络设备1发送源视频流,另一个通信接口可以接收网络设备1返回的源视频流接收响应。当然,该通信接口33可以将数据接收功能和数据发送功能集成在一个通信接口上,该通信接口具备数据接收功能和数据发送功能。
图3中示出的发送设备结构并不构成对发送设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
示例性的,图4为本发明实施例提供的一种网络设备的组成示意图。如图4所示,该网络设备可以包括至少一个处理器41,存储器42以及通信接口43。
下面结合图4对网络设备的各个构成部件进行具体的介绍:
处理器41是设备的控制中心,可以是一个处理器,也可以是多个处理元件的统称。例如,处理器41是一个CPU,也可以是ASIC,或者是被配置成实施本发明实施例的一个或多个集成电路,例如:一个或多个DSP,或,一个或者多个FPGA。其中,处理器41还可以集成有用于网络拥塞管理的网络处理器(Net Processor,NP)和流量管理器(Traffic Manager,TM)。
其中,处理器41可以通过运行或执行存储在存储器42内的软件程序,以及调用存储在存储器42内的数据,执行设备的各种功能。例如,处理器41可以用于判断传输网络传输视频过程中是否网络拥塞,以及选择性地丢弃传输至该网络设备的视频数据包。
在具体的实现中,作为一种实施例,处理器41可以包括一个或多个CPU,例如图4中所示的CPU0和CPU1。
在具体实现中,作为一种实施例,网络设备可以包括多个处理器,例如图4中所示的处理器41和处理器45。这些处理器中的每一个可以是一个单核处理器,也可以是一个多核处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
存储器42可以是ROM或RAM或者EEPROM、CD-ROM或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器42可以是独立存在,通过通信总线44与处理器41相连接。存储器42也可以和处理器41集成在一起。
其中,上述存储器42用于存储执行本发明实施例提供方案的软件程序,并由处理器41来控制执行。
通信接口43,可以包括两个通信接口,一个用于向外部设备(如:图1中与网络设备1相邻的上游设备或下游设备)发送数据的发送接口和一个用于接收来自外部设备的数据的接收接口,即设备可以通过两个不同的通信接口分别实现数据的接收和数据的发送。例如,图1中,网络设备1的一个通信接口可以用于接收来自发送设备的源视频流,另一个通信接口可以用于向网络设备2发送中间视频流。当然,该通信接口43可以将数据接收功能和数据发送功能集成在一个通信接口上,该通信接口具备数据接收功能和数据发送功能。
图4中示出的网络设备结构并不构成对网络设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
示例性的,图5为本发明实施例提供的一种接收设备的组成示意图。如图5所示,该接收设备可以包括至少一个处理器51,存储器52以及通信接口53。
下面结合图5对网络设备的各个构成部件进行具体的介绍:
处理器51是设备的控制中心,可以是一个处理器,也可以是多个处理元件的统称。例如,处理器51是一个CPU,也可以是ASIC,或者是被配置成实施本发明实施例的一个或多个集成电路,例如:一个或多个DSP,或,一个或者多个FPGA。
其中,处理器51可以通过运行或执行存储在存储器52内的软件程序,以及调用存储在存储器52内的数据,执行网络设备的各种功能。例如,处理器51可以用于接收来自网络设备的待解码视频流,对该待解码视频流进行解码。
在具体的实现中,作为一种实施例,处理器51可以包括一个或多个CPU,例如图5中所示的CPU0和CPU1。
在具体实现中,作为一种实施例,接收设备可以包括多个处理器,例如图5中所示的处理器51和处理器55。这些处理器中的每一个可以是一个单核处理器,也可以是一个多核处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
存储器52可以是ROM或RAM或者EEPROM、CD-ROM或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器52可以是独立存在,通过通信总线54与处理器51相连接。存储器52也可以和处理器51集成在一起。
其中,上述存储器52用于存储执行本发明实施例提供方案的软件程序,并由处理器51来控制执行。
通信接口53,可以包括两个通信接口,一个用于向外部设备(如:图1中与接收设备相邻的上游设备)发送数据的发送接口和一个用于接收来自外部设备的数据的接收接口,即设备可以通过两个不同的通信接口分别实现数据的接收和数据的发送。例如,图1中,接收设备的一个通信接口可以用于接收来自网络设备N的视频流,另一个通信接口可以用于向网络设备N返回视频流接收响应。当然,该通信接口53可以将数据接收功能和数据发送功能集成在一个通信接口上,该通信接口具备数据接收功能和数据发送功能。
图5中示出的接收设备结构并不构成对网络设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。例如,该接收设备还可以包括显示器,用于播放视频。
为使本发明实施例的目的、技术方案和优点更加清楚,下面结合图3所示的发送设备、图4所示的一个或多个网络设备以及图5所示的接收设备,通过图6所示的视频传输方法的流程图详细描述本发明实施例提供的视频传输方法。参见图6,本发明实施例这里提供的视频传输方法包括S601a-S601b:
S601a、发送设备生成源视频流,该源视频流中包括多个视频数据包,每个视频数据包中包括视频帧信息。
S601b、发送设备向网络设备1发送源视频流。
上述步骤601a可以由图3所示的发送设备中的处理器31执行,上述步骤601b可以由图3所示的发送设备中的通信接口33执行。
其中,本发明实施例中的网络设备1为与发送设备相邻的网络设备。
本发明实施例中,发送设备可以将视频源编码成视频流,该视频流中的视频帧的帧类型可以包括I帧、P帧、参考B帧和非参考B帧,参考B帧和非参考B帧可以统称为B帧。每个视频帧中都包括视频数据。
具体的,I帧是视频流中一个GOP的基础帧(第一帧),一个GOP中通常只有一个I帧;I帧中的视频数据用于描述图像背景和运动主体的详情,不需要参考其他画面而生成。同时,I帧是P帧、参考B帧和非参考B帧的参考帧;从而,I帧的质量直接影响到相应GOP中I帧之后各个视频帧的质量,如I帧的部分视频数据丢失可以导致其后的其他视频帧编码错误。
P帧是I帧后面的视频帧,该P帧只参考其前面最靠近的I帧或P帧;该P帧可以是其后面P帧的参考帧,也可以是其前后的B帧的参考帧。从而,P帧的质量也会影响其后视频帧的质量,如该P帧中的部分视频数据的丢失可能导致其后的其他视频帧编码错误。
B帧以其前面视频帧帧以及其后面的视频帧为参考帧,B帧可以包括参考B帧和非参考B帧(简称b帧)。其中,参考B帧可以作为一些其他B帧的参考帧,而b帧不会作为任一视频帧的参考帧。也就是说,参考B帧的质量可能会影响其后面的视频帧的质量,如该参考B帧中的部分视频数据的丢失可能导致其后的其他视频帧编码错误;而b帧的质量不会影响其后的其他视频帧的质量,如b帧中的部分视频数据的丢失不会导致其后的其他视频帧编码错误。即b帧为不被其他视频帧参考的视频帧。
综上所述,一段视频流中的b帧、参考B帧、P帧和I帧对该视频流质量的影响依次增大。
其中,上述至少一个视频帧的帧类型可以包括I帧、P帧、参考B帧和非参考B帧中的一个或多个。一般而言,视频流中可以包括I帧、P帧、参考B帧和b帧中每一种帧类型的视频帧;当然,一些视频流中也可以不包括帧类型为P帧的视频帧。
需要说明的是,发送设备可以按照一定的数据容量将每个视频帧中的视频数据封装至多个视频数据包。其中,上述“丢弃视频流中的部分视频数据”指的是网络设备和/或接收设备等网元丢弃视频流中的部分视频数据包。
一般而言,传输网络中可以采用物理层的多路访问控制(Multiple AccessControl Protocol,MAC)协议、网络层的网络之间互连的协议(Internet Protocol,IP)、传输层的用户数据包协议(User Datagram Protocol,UDP)以及应用层的实时传输协议(Reliable Transport Protocol,RTP)将视频流中的视频数据封装至多个视频数据包,以传输该视频流。
示例性的,在IPTV传输网络中、发送设备将视频流中的视频数据封装至或多个视频数据包可以包括:视频数据封装在RTP中,作为RTP的负载(Payload);RTP的Payload和RTP首部构成RTP包。本发明实施例中提供的视频数据包可以为RTP包。
其中,为了使得RTP包可以在物理层、网络层以及传输层中传输,发送设备还可以将RTP包作为UDP的Payload;使UDP的Payload和UDP首部构成UDP包;将UDP包作为IP的Payload;IP的Payload和IP首部构成IP包;将IP包作为MAC的Payload;使MAC的Payload和MAC首部构成MAC包。
示例性的,假设一段视频流中包括的三个视频帧依次为视频帧1、视频帧2和视频帧3。视频帧1中视频数据的大小为400千字节(Kilobyte,KB),视频帧2中视频数据的大小为350KB,视频帧3中视频数据的大小为450KB。
在发送设备将每个视频数据包中包括视频数据的容量预先设置为80KB,即上述视频数据部的容量为80KB的情况下:发送设备可以将视频帧1封装至视频数据包1-5中,视频数据包1-5中均包括80KB的视频数据。可以将视频帧2封装至视频数据包6-10中;视频数据包6-9中均包括80KB的视频数据,视频数据包10中包括30KB的视频数据。
需要说明的是,在一个视频帧对应的最后一个视频数据包中视频数据的大小达不到预先设置容量(如80KB)的情况下:发送设备可以使该最后一个视频数据包中仅包括该视频帧中的视频数据,而不包括该视频帧之后其他视频帧中的视频数据。如此,使得每个视频数据包中仅封装有一个视频帧中的视频数据,即一个视频帧的边界为一个视频数据包的边界。
例如,发送设备可以不将视频帧3中的视频数据封装至视频数据包10中,而是将视频帧3中的视频数据封装至视频数据包11-16中;视频数据包11-15中均包括80KB的视频数据,视频数据包16中包括50KB的视频数据。如此,视频帧1的边界为视频数据包5的边界,视频帧2的边界为视频数据包10的边界,视频帧3的边界为视频数据包16的边界。
需要说明的是,本发明实施例提供的视频传输方法、发送设备在将视频流中的视频数据封装至多个视频数据包的过程中,可以在每个视频数据包中添加视频帧信息。
其中,封装有帧类型为b帧的视频帧中视频数据的视频数据包可以记为第一视频数据包。封装有帧类型为除b帧之外(即I帧或P帧或参考B帧)的视频帧中视频数据的视频数据包可以记为第二视频数据包。
上述视频帧信息中包括丢弃指示信息,该丢弃指示信息用于指示视频数据包的丢弃优先级。以下还可以将视频帧信息中包括的丢弃指示信息描述为“视频数据包中包括的丢弃指示信息”。其中,第一视频数据包中包括的丢弃指示信息指示的丢弃优先级高于第二视频数据包中包括的丢弃指示信息指示的丢弃优先级。此时,由上述丢弃指示信息可以区分出如源视频流等视频流中的第一视频数据包和第二视频数据包。其中,上述丢弃指示信息具体可以是该视频数据包中封装的视频数据所属视频帧的帧类型,由于通过帧类型可以区分出b帧和除b帧之外的其他帧类型,因此该丢弃指示信息可以用于指示视频数据包的丢弃优先级。如此,发送设备生成的源视频流在传输网络传输的过程中,如网络设备或者接收设备等网元可以接收到包括上述视频帧信息的多个视频数据包,即接收到指示出第一视频数据包的视频流。这样一来,在传输网络中第一视频数据包可以先于第二视频数据包被丢弃,使得第二视频数据包被丢弃的可能性较小。其中,由于b帧对视频流的影响相比除b帧之外的其他帧类型的视频帧对视频流的影响要小,因此,上述第二视频数据包被丢弃的可能性较小,使得传输网络中传输的视频流的质量较高。
示例性的,上述丢弃指示信息(记为D)可以为一个比特(bit)的信息。例如,第一视频数据包中的D可以取值为1,第二视频数据包中的D可以取值为0。
其中,由同一个视频帧得到的不同视频数据包携带的丢弃指示信息相同。例如,视频帧1的帧类型为I帧,则视频数包1-5中每个视频数据包中D均取值为0。视频帧3的帧类型为b帧,则视频数包11-16中每个视频数据包中D均取值为1。
综上可知,发送设备得到多个包括视频帧信息的视频数据包,便得到了源视频数据流。其中,在上述得到源视频流的过程中,上述“将每个视频帧中的视频数据封装至多个视频数据包”和“在每个视频数据包中添加视频帧信息”等步骤具体均可以由图3所示的处理器31执行。
进一步的,在本发明实施例提供的一种可能的实现方式中,发送设备使视频数据包携带视频帧信息的方法可以包括:发送设备采用感知的垫层协议(application awaresubstrate protocol,A2SP)携带视频帧信息,A2SP协议运行在UDP协议和RTP协议之间。
示例性的,如图7所示的视频数据包中包括A2SP首部。具体的,视频数据封装在RTP中,作为RTP的Payload;RTP的Payload和RTP首部构成RTP包;RTP包作为A2SP包的Payload,A2SP包的Payload和A2SP首部构成A2SP包;A2SP包作为UDP的Payload;UDP的Payload和UDP首部构成UDP包;UDP包作为IP的Payload;IP的Payload和IP首部构成IP包;IP包作为MAC的Payload;MAC的Payload和MAC首部构成MAC包,即上述视频数据包。其中,A2SP首部由4字节的Magic Number开始,Magic Number用来标识UDP的Payload是A2SP包。Magic Number之后紧接4字节(32比特)的视频帧信息。上述视频帧信息的4个字节中任一比特的信息可以用于表示上述丢弃指示信息。此时,本发明实施例提供的视频数据包可以为A2SP包,该A2SP包由RTP包和A2SP首部组成。
可选的,在本发明实施例提供的另一种可能的实现方式中,发送设备使视频数据包携带视频帧信息的方法可以包括:发送设备采用RTP协议,在RTP首部后添加RTP扩展首部以携带视频帧信息。
示例性的,如图8所示的视频数据包中包括RTP扩展首部。具体的,视频数据封装在RTP中,作为RTP的Payload;RTP的Payload、RTP首部和RTP扩展首部构成RTP包;RTP包作为UDP的Payload;UDP的Payload和UDP首部构成UDP包;UDP包作为IP的Payload;IP的Payload和IP首部构成IP包;IP包作为MAC的Payload;MAC的Payload和MAC首部构成MAC包。此时,本发明实施例提供的视频数据包可以为RTP的Payload、RTP首部和RTP扩展首部构成的RTP包。
图8中示出的RTP扩展首部中包括由文件定义字段和长度字段两个字段,这两个字段由RTP协议规定共4字节,长度字段表示扩展头剩余部分长度,以4字节为单位。本发明实施例中,上述长度字段取值为1,指示剩余部分长度为4字节,即视频帧信息可以为4字节。其中,上述视频帧信息的4字节中任一比特的信息可以用于表示上述丢弃指示信息。
其中,发送设备执行上述“采用A2SP协议携带视频帧信息”或者“采用RTP协议,在RTP首部后添加RTP扩展首部以携带视频帧信息”,可以使得由发送设备传输至一个或多个网络设备以及接收设备的视频流中包括视频帧信息,如此,一个或多个网络设备接收到的视频数据包中可以包括该视频帧信息,接收设备接收到的视频流中也可以包括该视频帧信息。
需要说明的是,以下实施例为了方便说明视频数据包与该视频数据包中封装的视视频数据所属的视频帧的帧类型,在一些描述中可以将封装有帧类型为b帧的视频帧中视频数据的视频数据包称为b帧类型的视频数据包(即第一视频数据包);将封装有帧类型为I帧的视频帧中视频数据的视频数据包称为I帧类型的视频数据包;将封装有帧类型为P帧的视频帧中视频数据的视频数据包称为P帧类型的视频数据包;将封装有帧类型为参考B帧的视频帧中视频数据的视频数据包称为参考B帧类型的视频数据包。其中,对同一视频数据包的不同名称仅为了方便说明,对该视频数据包本身不造成限定。
在一种可能的实现方式中,本发明实施例提供的视频传输方法,发送设备为第二视频数据包添加的视频帧信息中包括的丢弃指示信息还可以指示出B帧类型的视频数据包、P帧类型的视频数据包以及I帧类型的视频数据包的丢弃优先级。其中,上述丢弃指示信息具体可以是该视频数据包中封装的视频数据所属视频帧的帧类型,由于通过帧类型可以区分出b帧和除b帧之外的参考B帧、P帧、I帧,因此该丢弃指示信息可以用于指示视频数据包的丢弃优先级。具体的,b帧类型的视频数据包、参考B帧类型的视频数据包、P帧类型的视频数据包、I帧类型的视频数据包中包括的丢弃指示信息指示的丢弃优先级依次升高。
此时,由上述丢弃指示信息不仅可以区分出如源视频流等视频流中的第一视频数据包(b帧类型的视频数据包)和第二视频数据包,还可以区分出第二视频数据包中的参考B帧类型的视频数据包、P帧类型的视频数据包、I帧类型的视频数据包。如此,网络设备或者接收设备等网元在接收到包括上述视频帧信息的多个视频数据包之后,可以根据视频数据包中包括的丢弃指示信息,依次丢弃b帧类型的视频数据包、参考B帧类型的视频数据包、P帧类型的视频数据包、I帧类型的视频数据包。这样一来,使得b帧类型的视频数据包、P帧类型的视频数据包、参考B帧类型的视频数据包、I帧类型的视频数据包被丢弃的可能性依次减小,可以进一步提高传输网络中传输的视频流的质量。
示例性的,上述丢弃指示信息D还可以为两个比特的信息。例如,第一视频数据包(b帧类型的视频数据包)中的D可以取值为11,第二视频数据包中、参考B帧类型的视频数据包中的D可以取值为10,P帧类型的视频数据包中的D可以取值为01,I帧类型的视频数据包中的D可以取值为00。
本发明实施例以下仅以上述丢弃指示信息区分出第一视频数据包和第二视频数据包,如上述丢弃指示信息为一个比特的信息为例,说明本发明实施例提供的视频传输方法。
需要说明的是,在传输网络中,发送设备是将上述源视频流发送至与其相邻的网络设备。从而,在网络设备与发送设备相邻的情况下,图6所示的视频传输方法中还可以包括S602和S603:
S602、网络设备1接收源视频流。
上述步骤602可以由传输网络中与发送设备相邻的网络设备执行。例如,结合图2和图4,步骤602具体可以由网络设备1中的通信接口43执行。
其中,网络设备1可以将上述源视频流向下游网络设备传输,以使视频流传输至接收设备。在网络设备1传输视频流的过程中,网络设备1还可以执行步骤603:
S603、网络设备1在确定网络拥塞的情况下根据视频帧信息丢弃一个或多个第一视频数据包。
结合图1和图4该步骤602具体可以由网络设备1中的处理器41执行。
其中,网络设备1在判断其传输视频流过程中网络拥塞的情况下,为了将源视频流传输至其下游网络设备,可以选择性地丢弃该源视频流中的一个或多个b帧类型的视频数据包。
需要说明的是,在上述视频帧信息中包括丢弃指示信息时,网络设备1可以根据一个视频数据包的丢弃指示信息判断是否丢弃该视频数据包。从而,上述实施例中的步骤603具体可以为步骤901。示例性的,如图9所示的视频传输方法中,图6示出的步骤603具体可以为步骤901:
S901、网络设备1在确定网络拥塞的情况下,根据视频帧信息中包括的丢弃指示信息丢弃一个或多个第一视频数据包。
例如,在网络拥塞的情况下,由于视频数据包1-5中D取值均为0,因此网络设备1可以不丢弃视频数据包1-5。由于视频数据包11-16中D取值均为1,因此网络设备1可以选择性地丢弃视频数据包11-16中的一个或多个视频数据包。
需要说明的是,网络设备1在网络拥塞的情况下,执行上述“丢弃该源视频流中的一个或多个第一视频数据包”;直至网络不拥塞,该网络设备可以停止执行上述“丢弃该源视频流中的一个或多个第一视频数据包”。其中,网络拥塞越严重,网络设备丢弃源视频流中b帧类型的视频数据包的数量越多。
可以想到的是,网络设备1在执行上述步骤603或步骤901之后得到的视频流为中间视频流。其中,在上述“丢弃该源视频流中的一个或多个第一视频数据包”的过程中,视频流中可能只丢失了部分b帧类型的视频数据包,或者视频流中丢失了全部的b帧类型的视频数据包。并且,由于视频流中丢失的多个b帧类型的视频数据包可能对应不同的b帧,因此上述中间视频流中可能包括不完整的b帧。其中,一部分视频数据包被丢弃,另一部分视频数据包未被丢弃的视频帧为不完整的视频帧;全部视频数据包均未被丢弃的视频帧为完整的视频帧。示例性的,网络设备1可能只丢弃了上述视频帧3对应的视频数据包15和视频数据包16,或者可能将上述视频帧3对应的视频数据包11-16全部丢弃。
可选的,在网络拥塞较为严重的情况下,如将源视频流中的b帧类型的视频数据包全部丢弃之后网络依然拥塞时,网络设备1可以依次丢弃该源视频流中的参考B帧类型的视频数据包、P帧类型的视频数据包以及I帧类型的视频数据包,本发明实施例对此不作详细描述,本领域技术人员可以轻易实现。
本发明实施例提供的视频传输方法,由于上述视频帧信息中可以包括丢弃指示信息,因此网络设备(如网络设备1)接收到的视频流中可以包括上述视频帧信息。从而,该网络设备可以根据上述视频帧信息区分出视频流中b帧类型的视频数据包和除b帧类型之外的其他帧类型的视频数据包,并丢弃上述视频流中的一个或多个b帧类型的视频数据包。这样一来,网络设备可以优先丢弃视频流中b帧类型的视频数据包,以减缓网络拥塞。同时,使得网络设备可能仅丢弃b帧类型的视频数据包,从而可以提高传输至接收设备的视频流的质量。进而,可以降低电视机等设备播放该视频流时出现花屏、卡顿等现象的可能性。
并且,由于上述“发送设备在将视频流中的视频数据封装至多个视频数据包”的过程中,视频帧的边界为视频数据包的边界;因此,网络设备在丢弃一个视频数据包(如b帧类型的视频数据包)的过程中,只会对该视频数据包对应的一个视频帧的质量产生影响,而不会影响除该视频帧之外的其他视频帧的质量,进一步提高了输出至接收设备的视频流的质量。
进一步的,在网络设备为路由器的情况下,网络设备以队列的形式逐个传输视频流中的多个视频数据包。上述网络设备的网络拥塞具体为该网络设备中用于传输视频数据包的队列拥塞。其中,网络设备接收到上述视频流的时候,其队列中当前还可能存在正在传输的多个视频数据包。若一个队列中当前传输的视频数据包的数量过大,则该队列可能拥塞。在一个队列拥塞时,网络设备便可以对该队列中后续传输的视频数据包执行上述“丢弃一个或多个第一视频数据包”的步骤。
在本发明实施例的提供的一种可能的实现方式中,网络设备通过队列传输视频数据包时,上述实施例中的步骤901可以包括步骤1001-1003。示例性的,如图10所示的视频传输方法中,图9示出的步骤901可以包括步骤1001-1003:
S1001、网络设备1确定网络拥塞。
结合图1和图4,上述步骤1001可以由网络设备1的处理器41中的TM执行。
示例性的,网络设备1检测当前用于传输视频数据包的队列(简称当前队列)的长度大于一定阈值,则该队列拥塞。上述当前队列的长度大于一定阈值为该队列中视频数据包的数量大于一定阈值。本发明实施例中,对上述一定阈值的取值不作限定,对本申请提供方案的实施不造成影响。
其中,网络设备在确定出当前队列拥塞之后,可以在进入当前队列的每个视频数据包中添加内部标签,以区分上述视频数据包在网络设备侧的内部传输优先级。其中,视频数据包的内部传输优先级可以用于指示该视频数据包被网络设备传输的优先程度。
具体的,上述内部标签可以包括着色(Color),用于指示相应视频数据包可丢弃性的等级。例如,着色可以包括绿色(Green)和红色(Red)。着色为绿色的视频数据包的内部传输优先级最高,网络设备1可以最优先地传输该视频数据包。着色为红色的视频数据包的内部传输优先级最低,网络设备1可以选择性传输该视频数据包。也就是说,在网络拥塞时,网络设备1可以优先丢弃着色为红色的视频数据包,可能不丢弃着色为绿色的视频数据包。
从而,本发明实施例提供的方法中,网络设备1还可以执行步骤1002。其中,网络设备1执行步骤1002可以是在执行步骤1001之前或之后执行,还可以是在执行步骤1001的同时执行的,本发明实施例对此不作限定。示例性的,图10中所示的方法,网络设备1可以在执行步骤1001之后执行步骤1002:
S1002、网络设备1根据视频帧信息中包括的丢弃指示信息,映射出视频数据包的着色。
结合图1和图4,上述步骤1001可以由网络设备1的处理器41中的NP执行。
示例性的,如图11所示,为本发明实施例提供的一种视频传输过程的流程示意图。网络设备1可以将D取值为1的频数据包1-3着色为红色,即将b帧类型的视频数据包着色为红色;将D取值为0的视频数据包4着色为绿色,即将I帧类型的视频数据包、P帧类型的视频数据包或参考B帧类型的视频数据包着色为绿色。
S1003、网络设备1根据着色,丢弃一个或多个第一视频数据包,以得到中间视频流。
结合图1和图4,上述步骤1003可以由网络设备1的处理器41中的TM执行。
其中,b帧类型的视频数据包的内部传输优先级最低,网络设备1可以最优先地丢弃b帧类型的视频数据包。一般而言,网络设备1不会丢弃着色为绿色的视频数据包。如图11所示,网络设备1在网络拥塞时,可以丢弃视频数据包4。此时,网络设备1得到中间视频流,该中间视频流包括视频数据包1-3。
需要说明的是,本发明实施例提供的视频传输方法中,由于发送设备在视频数据包中添加的视频帧信息中包括丢弃指示信息,因此网络设备可以根据视频数据包中的视频帧信息得到该视频数据包的内部标签(如着色)。如此,网络设备可以为视频数据包添加内部标签,以区分视频数据包在网络设备侧的内部传输优先级。随后,网络设备可以根据上述内部传输优先级区分出b帧的视频数据包。从而,网络设备可以丢弃一个或多个b帧类型的视频数据包,以减缓网络拥塞,并提高输出的视频流的质量。
进一步的,在本发明实施例的一种可能的实现方式中,发送设备在为视频数据包添加视频帧信息时,还可以使该视频帧信息中包括优先级指示信息(记为PRI),用于指示视频数据包的传输优先级,即视频数据包在发送设备侧的传输优先级。其中,视频数据包中的优先级指示信息可以由该视频数据包所在的视频流的业务优先级或用户优先级确定。示例性的,对于业务优先级来说,4K格式的视频流中的视频数据包的传输优先级较高,高清格式的视频流中的视频数据包的传输优先级次高,标清格式的视频流中的视频数据包的传输优先级较低。对于用户优先级来说,贵宾(very important people,VIP)用户的视频流中视频数据包的传输优先级较高,普通用户的视频流中视频数据包的传输优先级较低。
例如,上述PRI可以为四个比特的信息,该PRI的取值可以为0000-1111中的任一数值,取值越大的PRI对应的视频数据包的传输优先级越高。如,一个视频数据包的PRI可以取值为00、01或10,PRI取值为00、01和10的视频数据包的传输优先级依次升高。同一段视频流中的视频数据包中的PRI取值相同,如一段视频流中视频数据包的PRI取值均为00。此时,如图7或图8所示的视频帧信息的4个字节中任意四个比特的信息可以用于表示上述优先级指示信息。
从而,网络设备(如网络设备1)还可以根据视频数据包的PRI为该视频数据包添加内部标签。具体的,上述内部标签还可以包括服务等级(Service class),用于指示网络设备传输视频数据包的队列的等级。
一般而言,网络设备中可以包括一个或多个队列,不同队列的等级不同。例如,有的队列的等级较高,该队列中的视频数据包可以被优先传输,即该视频数据包的服务等级较高;有的队列的等级较低,该队列中的视频数据包不会被优先传输,即该视频数据包的服务等级较低。其中,一个视频数据包的服务等级可以为队列的标号,如AF1、AF2或AF3。队列AF1、队列AF2和队列AF3的等级依次升高;队列AF1中的视频数据包、队列AF2中的视频数据包和队列AF3中的视频数据包的服务等级依次升高。
在本发明实施例提供的一种可能的实现方式中,上述步骤603可以包括步骤1201-1203。如图12所示的视频传输方法中,图6示出的步骤603具体可以包括步骤1201-1203:
S1201、网络设备1根据视频帧信息中包括的丢弃指示信息和优先级指示信息,映射出视频数据包的服务等级和着色。
结合图1和图4,上述步骤1201可以由网络设备1的处理器41中的NP执行。
示例性的,如图13所示,为本发明实施例提供的另一种视频传输过程的流程示意图。其中,PRI取值越大的视频数据包可以进入等级越高的队列传输。例如,图13中PRI取值为1和2的视频数据包可以进入队列AF3中传输,PRI取值为0的视频数据包可以进入队列AF2中传输。即视频数据包1和视频数据包2中服务等级均为AF3,视频数据包3和视频数据包4中服务等级均为AF2。
可选的,上述着色除了为绿色和红色之外,还可以为黄色(Yellow)。着色为黄色的视频数据包的内部传输优先级介于着色为绿色的视频数据包和着色为红色的视频数据包之间,网络设备1可以次优先地传输该视频数据包。
其中,网络设备1可以根据丢弃指示信息和优先级指示信息,映射出视频数据包的着色。具体的,如图13所示,网络设备1可以将PRI取值较大且D取值为0视频数据包1和视频数据包2着色为绿色;将PRI取值较小且D取值为0视频数据包3着色为黄色,将PRI取值较小且D取值为1视频数据包3着色为红色。
综上,网络设备1根据一个视频数据包的服务等级和着色,可以确定出视频数据包在网络设备侧的内部传输优先级。例如,服务等级为AF3且着色为绿色的视频数据包的内部传输优先级最高,服务等级为AF2且着色为黄色的视频数据包的内部传输优先级次高,服务等级为AF2且着色为红色的视频数据包的内部传输优先级最低。图13中,视频数据包1和视频数据包2、视频数据包3、视频数据包4的内部传输优先级依次降低。其中,同一队列中不同视频数据包的内部传输优先级可以根据着色确定,如AF2队列中着色为黄色的视频数据包比着色为红色的视频数据包的内部传输优先级高。
S1202、网络设备1根据视频数据包的服务等级,确定网络拥塞。
具体的,对服务等级越高的视频数据包所在的队列,用于确定该队列拥塞的视频数据包的数量的阈值越大;对服务等级越低的视频数据包所在的队列,用于确定该队列拥塞的视频数据包的数量的阈值越小。如对服务等级为AF3的视频数据包所在的AF3队列,上述阈值可以为35;对服务等级为AF2的视频数据包所在的AF2队列,上述阈值可以为20。从而,网络设备1在网络拥塞时,可以优先丢弃AF2队列中的视频数据包,以缓解网络拥塞。
S1203、网络设备1根据服务等级和着色,丢弃一个或多个第一视频数据包,以得到中间视频流。
结合图1和图4,上述步骤1202、1203均可以由网络设备1的处理器41中的TM执行。
其中,网络设备1在网络拥塞时,可以丢弃内部传输优先级最低的视频数据包,即b帧类型的视频数据包。如图13所示,网络设备1在网络拥塞时,可以丢弃服务等级为AF2且着色为红色的视频数据包4,即丢弃b帧类型的视频数据包。此时,网络设备1得到中间视频流中包括视频数据包1-3。
上述步骤1202-步骤1203可以采用加权随机早期检测(Weighted Random EarlyDetection,WRED)算法。其中,网络设备(如网络设备1)采用该算法选择性地丢弃视频数据包(如b帧类型的视频数据包)时,可以同时处理不同队列中的一个或多个视频数据包。这样一来,实现了不同队列之间的公平性,可以实现网络设备处理不同视频流的公平性。
需要说明的是,本发明实施例提供的视频传输方法中,由于发送设备在视频数据包中添加的视频帧信息中包括丢弃指示信息和优先级指示信息,因此网络设备(如网络设备1)可以根据视频数据包中的视频帧信息得到该视频数据包的内部标签(如着色和服务等级)。如此,网络设备可以为视频数据包添加内部标签,得到视频数据包在网络设备侧的内部传输优先级。随后,网络设备可以根据上述内部传输优先级区分出b帧类型和其他帧类型的视频数据包。从而,网络设备可以更准确地丢弃一个或多个b帧类型的视频数据包,以减缓网络拥塞,并进一步提高输出的视频流的质量。
进一步的,在本发明实施例的一种可能的实现方式中,发送设备在为视频数据包添加视频帧信息时,还可以使该视频帧信息中包括帧编号指示信息(记为B),用于指示对应的视频数据包所在的视频帧的编号。其中,发送设备在对每段视频流封装视频数据包的过程中,可以依次为各个视频帧轮流编号,同一视频帧中的不同视频数据包的帧编号指示信息相同。例如,上述B可以为两个比特的信息,该B的取值可以为00-11中的数值。此时,如图7或图8所示的视频帧信息的4个字节中任意两个比特的信息可以用于表示上述帧编号指示信息。
示例性的,如图14所示,为本发明实施例提供的一种视频流示意图。其中,由于该段视频流中的不同视频数据包的优先级指示信息相同,因此图11中并未示出视频数据包的PRI。图14中,在B为两个比特的信息的情况下,视频帧1-4中的B取值依次为00、01、10和11,视频帧5中的B重新翻转,取值为00;依次类推,视频帧5之后的视频帧的B依次取值为01、10、和11,然后再次翻转取值。
进一步的,本发明实施例提供的视频传输方法中,网络设备1还可以根据视频数据包中包括的丢弃指示信息、优先级指示信息和帧编号指示信息选择性地丢弃一个或多个b帧类型的视频数据包。
具体的,上述步骤603还可以包括步骤1501-1503。如图15所示的视频传输方法中,图6示出的步骤603还可以包括步骤1501-1503:
S1501、网络设备1根据视频帧信息中包括的优先级指示信息,映射出视频数据包的服务等级。
结合图1和图4,上述步骤1501可以由网络设备1的处理器41中的NP执行。
示例性的,如图16所示的视频传输过程的流程示意图中,网络设备1可以将PRI取值为01和10的视频数据包放入队列AF3中传输,将PRI取值为00的视频数据包放入队列AF2中传输。即网络设备1为图16中的视频数据包1、3、4、6添加的服务等级均为AF3;为图16中的视频数据包2、5、7、8、9添加的服务等级均为AF2。
S1502、网络设备1根据视频数据包的服务等级,检测队列的长度。
其中,网络设备可以对该网络设备中传输视频数据包的一个或多个队列中的每个队列执行上述步骤1502。例如,网络设备可以将检测如图16所示的队列AF3的长度和队列AF2的长度,即检测队列AF3、队列AF2中当前传输的视频数据包的数量。如,当前传输的视频数据包的服务等级为AF3,则网络设备检测队列AF3的长度。
S1503、网络设备1根据队列的长度以及视频帧信息中包括的帧编号指示信息和丢弃指示信息,丢弃一个或多个第一视频数据包,以得到中间视频流。
结合图1和图4,上述步骤1502和1503均可以由网络设备1的处理器41中的TM执行。
具体的,网络设备1可以根据帧编号指示信息,设置一个或多个队列的长度门限值。其中,若帧编号指示信息为i个比特的信息,则帧编号指示信息取值的个数为2i个,i为正整数。网络设备1可以根据b帧类型的视频数据包中包括的帧编号指示信息,将一个或多个b帧类型的视频数据包分为2i部分,每一部分b帧类型的视频数据包中包括的帧编号指示信息相同。
此时,上述队列的长度门限值可以包括2i个数值,分别记为X_1、X_2、X_3…X_2i。其中,X_1、X_2、X_3…X_2i均为正整数,X_1、X_2、X_3…X_2i的取值依次增大。其中,上述门限值的具体取值不影响本申请目的的实现,本发明实施例对上述门限值不作具体限制,例如,可以为20-50。随后,在当前队列的长度达到不同门限值时,网络设备1可以选择性地丢弃部分b帧类型的视频数据包。例如,在当前队列的长度达到门限值X_1时,网络设备1可以选择性地丢弃B为一种取值的b帧类型的视频数据包。在当前队列的长度达到门限值X_7时,网络设备1可以选择性地丢弃B为七种不同取值的b帧类型的视频数据包。
示例性的,如图17所示的视频数数据包的丢弃过程示意图中,帧编号指示信息为两个比特的信息,即B取值为00、01、10或11。上述一个或多个队列的长度门限值可以包括四个门限值,如门限值X1、门限值X2、门限值X3和门限值X4。
在当前队列的长度达到门限值X_1时,网络设备1可以丢弃B取值为a且D取值为1的视频数据包(即b帧类型的视频数据包);其中,上述a可以为00、01、10和11中的任一数值。在当前队列的长度达到门限值X_2时,网络设备1可以丢弃B取值为a、B取值为a+1且D取值为1的视频数据包。在当前队列的长度达到门限值X_3时,网络设备1可以丢弃B取值为a、B取值为a+1、B取值为a+2且D取值为1的视频数据包。在当前队列的长度达到门限值X_4时,网络设备1可以丢弃所有D取值为1的视频数据包;此时,网络设备1丢弃b帧类型的视频数据包的比率可以达到100%。
当然,在上述选择性丢弃b帧类型的视频数据包之后,网络设备1可能还没有将相应b帧的视频数据包全部丢弃,网络便已经不拥塞。此时,网络设备1可以停止执行上述“丢弃一个或多个第一视频数据包”,并得到中间视频流。
需要说明的是,本发明实施例提供的视频传输方法,发送设备在视频数据包中添加的视频帧信息可以包括帧编号指示信息,以将多个视频数据包分成不同的部分。并且,网络设备区分出b帧类型的视频数据包的同时,还可以区分出一个或多个b帧类型的视频数据包中的不同部分,并按照网络拥塞程度丢弃一个或多个b帧类型的视频数据包中的指定部分视频数据包。如此,网络设备(如网络设备1)丢弃b帧类型的视频数据包的过程中,可以减少影响的视频流的数目,进一步提高了传输至接收设备的视频流的质量。
在一种可能的实现方式中,与发送设备相邻的网络设备(即网络设备1)得到中间视频流之后,可以将该中间视频流传输至下游网络设备。随后,下游网络设备在接收到其上游网络设备传输的中间视频流之后,也可以选择性地丢弃该中间视频流中的一个或多个b帧类型的视频数据包。
具体的,在本发明实施例提供的一种可能的实现方式中,上述与发送设备相邻的网络设备1在得到中间视频流之后,还可以执行步骤1801:
S1801、网络设备1向其下游网络设备2发送中间视频流。
结合图1和图4,上述步骤1801可以由网络设备2的处理器41中的TM执行。
相应的,上述一个或多个网络设备中除“与发送设备相邻的网络设备”之外的其它网络设备均可以执行步骤1801。如图18所示的视频传输方法中,在图15示出的步骤1503之后还可以包括步骤1801和步骤1802:
S1802、网络设备2接收上游网络设备1送的中间视频流。
其中,结合图1所示,上述网络设备2为网络设备1的下游网络设备。
需要说明的是,由于本发明实施例中一个或多个网络设备,如图1中的网络设备1、网络设备2和网络设备N等均可能在传输视频流时发生网络拥塞,因此上述网络设备2和网络设备N等均可以在其网络拥塞的情况下丢弃一个或多个b帧类型的视频数据包。
具体的,网络设备2在执行步骤1802之后,还可以执行步骤603a或者步骤901或者步骤1001a-1003a或者步骤1201a-1203a或者步骤1501a-1503a。如图18所示的视频传输方法在步骤1802之后还可以包括步骤1501a-1503a。
S603a、网络设备2在确定网络拥塞的情况下根据视频帧信息丢弃一个或多个第一视频数据包。
S901a、网络设备2在确定网络拥塞的情况下,根据视频帧信息中包括的丢弃指示信息丢弃一个或多个第一视频数据包。
S1001a、网络设备2确定网络拥塞。
S1002a、网络设备2根据视频帧信息中包括的丢弃指示信息,映射出视频数据包的着色。
S1003a、网络设备2根据着色,丢弃一个或多个第一视频数据包,以得到中间视频流。
S1201a、网络设备2根据视频帧信息中包括的丢弃指示信息和优先级指示信息,映射出视频数据包的服务等级和着色。
S1202a、网络设备2根据视频数据包的服务等级,确定网络拥塞。
S1203a、网络设备2根据服务等级和着色,丢弃一个或多个第一视频数据包,以得到中间视频流。
S1501a、网络设备2根据视频帧信息中包括的优先级指示信息,映射出视频数据包的服务等级。
S1502a、网络设备2根据视频数据包的服务等级,检测队列的长度。
S1503a、网络设备2根据队列的长度以及视频帧信息中包括的帧编号指示信息和丢弃指示信息,丢弃一个或多个第一视频数据包,以得到中间视频流。
当然,网络设备2为了将视频流传输至其下游网络设备,在得到中间视频流之后,还可以执行步骤1801a:
S1801a、网络设备2向其下游网络设备发送中间视频流。
需要说明的是,对上述步骤603a、步骤901a、步骤1001a-1003a、步骤1201a-1203a、步骤1501a-1503a以及步骤1801a的详细描述可以分别参考上述实施例中对步骤603、步骤901、步骤1001-1003、步骤1201-1203、步骤1501-1503以及步骤1801的详细描述,本发明实施例不再赘述。其中,本发明实施例中采用不同的编号描述上述步骤仅仅为了方便说明不同的执行主体,对各个步骤实现的目的不造成影响。
结合图1和图4,上述步骤1501a可以由网络设备2的处理器41中的NP执行,上述步骤1502a和1503a可以由网络设备2的处理器41中的TM执行。上述步骤1801a可以由网络设备2的通信接口43执行。
类似的,传输网络中与接收设备相邻的网络设备,如图1所示的网络设备N可以执行步骤1802N。随后,网络设备N还可以执行步骤603N或者步骤901N或者步骤1001N-1003N或者步骤1201N-1203N或者步骤1501N-1503N。示例性的,图18所示的方法示意图中还可以包括步骤1802N以及步骤1501N-1503N。
S1802N、网络设备N接收上游网络设备送的中间视频流。
S603N、网络设备N在确定网络拥塞的情况下根据视频帧信息丢弃一个或多个第一视频数据包。
S901N、网络设备N在确定网络拥塞的情况下,根据视频帧信息中包括的丢弃指示信息丢弃一个或多个第一视频数据包。
S1001N、网络设备N确定网络拥塞。
S1002N、网络设备N根据视频帧信息中包括的丢弃指示信息,映射出视频数据包的着色。
S1003N、网络设备N根据着色,丢弃一个或多个第一视频数据包,以得到中间视频流。
S1201N、网络设备N根据视频帧信息中包括的丢弃指示信息和优先级指示信息,映射出视频数据包的服务等级和着色。
S1202N、网络设备N根据视频数据包的服务等级,确定网络拥塞。
S1203N、网络设备N根据服务等级和着色,丢弃一个或多个第一视频数据包,以得到中间视频流。
S1501N、网络设备N根据视频帧信息中包括的优先级指示信息,映射出视频数据包的服务等级。
S1502N、网络设备N根据视频数据包的服务等级,检测队列的长度。
S1503N、网络设备N根据队列的长度以及视频帧信息中包括的帧编号指示信息和丢弃指示信息,丢弃一个或多个第一视频数据包,以得到中间视频流。
同理,对上述步骤1801N、步骤603N、步骤901N、步骤1001N-1003N、步骤1201N-1203N、步骤1501N-1503N以及步骤1801N的详细描述可以分别参考上述实施例中对步骤603、步骤901、步骤1001-1003、步骤1201-1203、步骤1501-1503以及步骤1801的详细描述,本发明实施例中不再赘述。
结合图1和图4,上述步骤1501N可以由网络设备N的处理器41中的NP执行,上述步骤1502N和1503N可以由网络设备N的处理器41中的TM执行。上述步骤1802N可以由网络设备N中的通信接口43执行。
需要说明的是,传输网络中一个或多个网络设备中的每个网络设备均可以在网络拥塞的情况下,优先丢弃其传输的视频流中一个或多个b帧的视频数据包,使得由发送设备产生的视频流可以经由一个或多个网络设备传输至接收设备。
进一步的,在本发明实施例的一种可能的实现方式中,发送设备在为视频数据包添加视频帧信息时,还可以使该视频帧信息中包括帧长度指示信息(记为L),用于指示对应的视频数据包所在的视频帧的长度,即该视频帧的视频数据包的个数。其中,同一视频帧中的不同视频数据包的帧长度指示信息相同。上述L可以为二十六个比特的信息,则多个视频数据包的L可以取值为0-226中任一数值。此时,如图7或图8所示的视频帧信息的4个字节中任意二十六个比特的信息可以用于表示上述帧编号指示信息。
示例性的,如图19所示,为本发明实施例提供的另一种视频流的示意图。图19中,视频帧1中视频数据包的L取值为4,视频帧2中视频数据包的L取值为1,视频帧3中视频数据包的L取值为1,视频帧4中视频数据包的L取值为5,视频帧5中视频数据包的L取值为1。
并且,上述视频数据包中还可以包括该视频数据包的序列号(记为M),例如,一段视频流中的视频数据包也是轮流编号的。示例性的,上述M也可以为二十六个比特的信息,则多个视频数据包的M可以依次取值为0-226,M为226之后的视频数据包可以再次取值为0-226。其中,一段视频流中的视频数据包的序列号可以用于指示该视频流中是否丢失了视频数据包。
其中,上述视频数据包的序列号可以由图6或图7所示的RTP首部携带。具体的,发送设备在将视频流中的视频数据封装值一个或多个视频数据包的过程中,可以对视频数据包轮流编号,采用RTP首部携带视频数据包的序列号。
需要说明的是,网络设备(如网络设备1或网络设备2)是在网络拥塞的情况下执行上述“丢弃一个或多个第一视频数据包”的,而在网络设备停止执行上述“丢弃一个或多个第一视频数据包”时,可能存在有的视频帧不完整。如此,与接收设备相邻的网络设备还可以丢弃上述不完整的视频帧中未被丢弃视频数据包,即未被丢弃的b帧类型的视频数据包。随后,该网络设备得到待解码视频流,待解码视频流中包括的视频帧均为完整的视频帧。
具体的,上述定位辅助数据的发送方法,在步骤603之后还可以包括步骤2001,即在步骤901或者步骤1001-1003或者步骤1201-1203或者步骤1501-1503之后还可以包括步骤2001。如图20所示,为本发明实施例提供的另一种视频传输方法的流程示意图。图20中,图18中的网络设备N为与接收设备相邻的情况下,网络设备N在执行步骤1503N之后还可以执行步骤2001:
S2001、网络设备N根据中间视频流中视频数据包的序列号、视频帧信息中包括的丢弃指示信息、帧编号指示信息和帧长度指示信息,丢弃第三视频数据包,以得到待解码视频流。
上述第三视频数据包封装有帧类型为b帧的不完整的视频帧中的视频数据。
其中,对于网络设备(如网络设备N)接收两个连续的视频数据包,这两个视频数据包的序列号不连续,且一个视频数据包(记为待查视频数据包)中包括的丢弃指示信息取值为1;统计待查视频数据包,及该待查视频数据包前后的视频数据包中包括的丢弃指示信息和帧编号指示信息均相同视频数据包的数目(记为Q);若Q与该待查视频数据包中的帧长度指示信息不同,则该待查视频数据包所在的b帧为不完整视频帧,该b帧中的视频数据包未被完全丢弃。随后,网络设备丢弃该待查视频数据包所在的b帧中剩余的视频数据包,得到待解码视频流。
示例性的,如图21所示,为本发明实施例提供的另一种视频流的示意图。图21a中M取值为5和M取值为9的两个视频数据包连续,M取值为9的视频数据包中D取值为1、B取值为11,则M取值为9的视频数据包为待查视频数据包。并且,M取值为9的视频数据包中D取值为1、B取值为11,则Q取值为2。而图21a中M取值为9的视频数据包中L取值为5,即Q不等于L。于是,网络设备丢弃M取值为9和10的视频数据包,得到如图21b所示的视频流,即待解码视频流。
在与接收设备相邻的网络设备(如图1中的网络设备N)得到待解码视频流之后,便可以执行步骤2002,使接收设备可以获取到该待解码视频流。
S2002、网络设备N向接收设备发送待解码视频流。
结合图1和图4,上述步骤2002可以网络设备N的通信接口43执行。
需要说明的是,在发送设备采用A2SP协议携带视频帧信息的情况下,上述与接收设备相邻的网络设备N向接收设备发送视频流之前,还可以去掉该视频数据包中的A2SP首部。
S2003、接收设备接收网络设备N发送的待解码视频流。
结合图1和图5,上述步骤2003可以由接收设备的通信接口53执行。
需要说明的是,有的接收设备不能应用A2SP协议,即该接收设备不能解码A2SP首部。此时,若该接收设备接收的视频数据包中包括A2SP首部,则该接收设备不能解码接收到的视频流中包括的视频数据包,即得不到视频数据。因此,在这种情况下,与接收设备相邻的网络设备(如网络设备N)可以执行上述“去掉该视频数据包中的A2SP首部”的步骤。
S2004、接收设备解码待解码视频流。
结合图1和图5,上述步骤2004可以由接收设备的通信接口53执行。
需要说明的是,网络设备可以丢弃不完整的b帧中的视频数据包,使得传输至接收设备的视频流的质量较好。如此,可以进一步降低电视机等设备播放该视频流时出现花屏、卡顿等现象的可能性。
进一步的,在本发明实施例提供一种可能的实现方式中,在与接收设备相邻的网络设备将中间视频传输至接收设备的情况下,上述方法在步骤603之后还可以包括步骤2201,即在步骤901或者步骤1001-1003或者步骤1201-1203或者步骤1501-1503之后还可以包括步骤2201。如图22所示,为本发明实施例提供的另一种视频传输方法的流程示意图。图22中,图18中的网络设备为与接收设备相邻的情况下,该网络设备在步骤1503之后还可以执行步骤2201:
S2201、网络设备N向接收设备发送中间视频流。
结合图1和图4,上述步骤2201可以由网络设备N的通信接口43执行。
S2202、接收设备接收网络设备N发送的中间视频流。
结合图1和图5,上述步骤2202可以由接收设备的通信接口53执行。
此时,本发明实施例中涉及的接收设备可以为现有技术中的任一能够接收并解码视频流的接收设备。上述实施例中的步骤2001所实现的方案可以由接收设备来实现,图22中示出的方法在步骤2202之后还可以包括步骤2203:
S2203、接收设备根据中间视频流中视频数据包的序列号、视频帧信息中包括的丢弃指示信息、帧编号指示信息和帧长度指示信息,丢弃第三视频数据包,以得待解码视频流。
结合图1和图5,上述步骤2203可以由接收设备的处理器51执行。
其中,对步骤2203的具体描述可以参照上述实施例中对步骤2001的详细描述,本发明实施例不再赘述。
可以想到的是,接收设备得到待解码视频流之后,便可以解码该待解码视频流。也即图22所示的方法在步骤2203之后,还可以包括步骤2204。
需要说明的是,接收设备可以丢弃不完整的b帧中的视频数据包,使得视频流的质量较好。如此,可以进一步降低电视机等设备播放该视频流时出现花屏、卡顿等现象的可能性。
上述主要从各个网元之间交互的角度对本发明实施例提供的方案进行了介绍。可以理解的是,各个网元,例如发送设备、一个或多个网络设备和接收设备等为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本发明能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
本发明实施例可以根据上述方法示例对发送设备、网络设备等进行模块的划分,例如,可以对应各个功能划分各个模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件模块的形式实现。需要说明的是,本发明实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在采用对应各个功能划分各个功能模块的情况下,图23示出了上述实施例中提供的发送设备的一种可能的组成示意图,如图23所示,发送设备23可以包括生成模块231和发送模块232。其中,生成模块231,用于支持发送设备23执行上述实施例中的S601a,和/或用于本文所描述的技术的其它过程。发送模块232,用于支持发送设备23执行上述实施例中的S601b,和/或用于本文所描述的技术的其它过程。
在采用集成的单元的情况下,上述生成模块231可以由一个处理模块实现。上述处理模块可以是处理器或控制器,例如可以是CPU,通用处理器,数字信号处理器(DigitalSignal Processor,DSP),专用集成电路(Application-Specific Integrated Circuit,ASIC),现场可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本发明公开内容所描述的各种举例说明逻辑方框,模块和电路。上述处理单元也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。例如,上述发送设备23还可以包括接收模块。上述发送模块232和接收模块可以集成在一个通信接口中。存储模块可以是存储器。
结合上述实施例中图3所示的发送设备,上述处理模块可以为图3所示的处理器31以及处理器35等一个或多个处理器。上述存储模块可以为图3所示的存储器32。发送模块232可以由通信接口33实现。
其中,上述通信总线34具体可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。上述通信总线34可以分为地址总线、数据总线、控制总线等,本发明实施例对此不作限定。
其中,本发明实施例提供的发送设备23中各个模块的详细描述以及各个模块执行上述实施例中的相关方法步骤后所带来的技术效果可以参考本发明方法实施例中的相关描述,此处不再赘述。
由于本发明实施例提供的传输网络中一个或多个网络设备中每一个网络设备可以是相同的,因此本发明实施例仅以对一个或多个网络设备中任一网络设备划分功能模块进行具体描述。
在采用对应各个功能划分各个功能模块的情况下,图24示出了上述实施例中提供的网络设备的一种可能的组成示意图,如图24所示,网络设备24可以包括接收模块241和拥塞处理模块242。其中,接收模块241,用于支持网络设备24执行上述实施例中的S602、S1802、S1802N,和/或用于本文所描述的技术的其它过程。拥塞处理模块242,用于支持网络设备24执行上述实施例中的S603、S901、S1001、S1002、S1003、S1201、S1202、S1203、S1501、S1502、S1503、S603a、S901a、S1001a、S1002a、S1003a、S1201a、S1202a、S1203a、S1501a、S1502a、S1503a、S603N、S901N、S1001N、S1002N、S1003N、S1201N、S1202N、S1203N、S1501N、S1502N、S1503N,和/或用于本文所描述的技术的其它过程。
进一步的,图25示出了上述实施例中提供的网络设备的另一种可能的组成示意图,如图25所示,网络设备24的拥塞处理模块242可以包括第一映射子模块2501和第一拥塞处理模块2502。其中,第一映射子模块2501,用于支持网络设备24执行上述实施例中的S1201、S1201a、S1201N,和/或用于本文所描述的技术的其它过程。第一拥塞处理模块2502,用于支持网络设备24执行上述实施例中的S1202、S1203、S1202a、S1203a、S1202N、S1203N,和/或用于本文所描述的技术的其它过程。
进一步的,图26示出了上述实施例中提供的网络设备的另一种可能的组成示意图,如图26所示,网络设备24的拥塞处理模块242可以包括第二映射子模块2601和第二拥塞处理模块2602。其中,第二映射子模块2601,用于支持网络设备24执行上述实施例中的S1501、S1501a、S1501N,和/或用于本文所描述的技术的其它过程。第二拥塞处理模块2602,用于支持网络设备24执行上述实施例中的S1502、S1503、S1502a、S1503a、S1502N、S1503N,和/或用于本文所描述的技术的其它过程。
可选的,图27示出了上述实施例中提供的网络设备的另一种可能的组成示意图,如图27所示,网络设备24的拥塞处理模块242可以包括第三映射子模块2701和第三拥塞处理模块2702。其中,第三映射子模块2701,用于支持网络设备24执行上述实施例中的S1001、S1001a、S1001N,和/或用于本文所描述的技术的其它过程。第二拥塞处理模块2602,用于支持网络设备24执行上述实施例中的S1002、S1003、S1002a、S1003a、S1002N、S1003N,和/或用于本文所描述的技术的其它过程。
进一步的,网络设备24还可以包括丢包处理模块281。示例性的,图28示出了上述实施例中提供的网络设备的另一种可能的组成示意图,如图28所示,图24所示的网络设备24还可以包括丢包处理模块281。其中,丢包处理模块281,用于支持网络设备24执行上述实施例中的S2001,和/或用于本文所描述的技术的其它过程。
进一步的,图29示出了上述实施例中提供的网络设备的另一种可能的组成示意图。如图29所示,图24所示的网络设备24还可以包括发送模块291。其中,发送模块291,用于支持网络设备24执行上述实施例中的S1801、S1801a、S2201、S2002,和/或用于本文所描述的技术的其它过程。
在采用集成的单元的情况下,上述第一映射子模块2501、第一拥塞处理子模块2502、第二映射子模块2601、第二拥塞处理子模块2602等可以集成在一个处理模块中实现。上述处理模块可以是处理器或控制器,例如可以是CPU,通用处理器,DSP,ASIC,FPGA或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本发明公开内容所描述的各种举例说明逻辑方框,模块和电路。上述处理单元也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。上述接收模块241、发送模块291可以集成在一个通信接口中。存储模块可以是存储器。
结合上述实施例中图4所示的网络设备,上述处理模块可以为图4所示的处理器41以及处理器45等一个或多个处理器。上述任一映射子模块可以由如图4示出的NP实现,任一拥塞管理子模块可以由如图4所示的TM实现。上述存储模块可以为图4所示的存储器42。上述接收模块241、第一发送模块291和第二发送模块292可以集成通信接口43中。
其中,上述通信总线44具体可以是PCI总线或EISA总线等。上述通信总线44可以分为地址总线、数据总线、控制总线等,本发明实施例对此不作限定。
其中,本发明实施例提供的网络设备24中各个模块的详细描述以及各个模块执行上述实施例中的相关方法步骤后所带来的技术效果可以参考本发明方法实施例中的相关描述,此处不再赘述。
在采用对应各个功能划分各个功能模块的情况下,图30示出了上述实施例中提供的接收设备的一种可能的组成示意图,如图30所示,接收设备30可以包括接收模块301和解码模块302。其中,接收模块301,用于支持接收设备30执行上述实施例中的S2003、S2202,和/或用于本文所描述的技术的其它过程。解码模块302,用于支持接收设备30执行上述实施例中的S2004,和/或用于本文所描述的技术的其它过程。
进一步的,图31示出了上述实施例中提供的接收设备的另一种可能的组成示意图,如图31所示,接收设备30还可以包括丢包处理模块303。其中,丢包处理模块303,用于支持接收设备30执行上述实施例中的S2203,和/或用于本文所描述的技术的其它过程。
在采用集成的单元的情况下,上述解码模块301和丢包处理模块303等可以集成在一个处理模块中实现。上述处理模块可以是处理器或控制器,例如可以是CPU,通用处理器,DSP,ASIC,FPGA或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本发明公开内容所描述的各种举例说明逻辑方框,模块和电路。上述处理单元也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。上述接收模块301可以由一个通信接口实现。存储模块可以是存储器。
结合上述实施例中图5所示的接收设备,上述处理模块可以为图5所示的处理器51以及处理器55等一个或多个处理器。上述存储模块可以为图5所示的存储器52。上述接收模块301可以由一个通信接口53实现。
其中,上述通信总线54具体可以是PCI总线或EISA总线等。上述通信总线44可以分为地址总线、数据总线、控制总线等,本发明实施例对此不作限定。
其中,本发明实施例提供的接收设备30中各个模块的详细描述以及各个模块执行上述实施例中的相关方法步骤后所带来的技术效果可以参考本发明方法实施例中的相关描述,此处不再赘述。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:快闪存储器、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (35)

1.一种视频传输方法,其特征在于,包括:
发送设备生成源视频流,所述源视频流中包括多个视频数据包,每个所述视频数据包中包括视频帧信息,所述视频帧信息包括丢弃指示信息,所述丢弃指示信息用于指示所述视频数据包的丢弃优先级;其中,所述多个视频数据包中包括第一视频数据包和第二视频数据包,所述第一视频数据包中包括的丢弃指示信息指示的丢弃优先级高于所述第二视频数据包中包括的丢弃指示信息指示的丢弃优先级;所述第一视频数据包封装有帧类型为非参考B帧的视频帧中的视频数据,所述第二视频数据包封装有帧类型为I帧或P帧或参考B帧的视频帧中的视频数据;
所述发送设备向网络设备发送所述源视频流。
2.根据权利要求1所述的方法,其特征在于,每个视频数据包中只封装有一个视频帧中的视频数据。
3.根据权利要求1或2所述的方法,其特征在于,所述视频帧信息还包括优先级指示信息,所述优先级指示信息用于指示所述视频数据包的传输优先级。
4.根据权利要求3所述的方法,其特征在于,所述视频帧信息还包括:帧编号指示信息和帧长度指示信息,其中,所述帧编号指示信息用于指示所述视频数据包所在的视频帧的编号,所述帧长度指示信息用于指示所述视频数据包所在的视频帧中包括的所述视频数据包的个数。
5.根据权利要求4所述的方法,其特征在于,所述视频数据包中包括应用感知的垫层协议A2SP首部、实时传输协议RTP首部以及视频数据部,所述视频数据部用于携带视频数据,所述RTP首部以及视频数据部组成RTP数据包作为负载与所述A2SP首部组成A2SP包,所述A2SP首部用于携带所述视频帧信息;
或者,
所述视频数据包中包括RTP首部、RTP扩展首部及视频数据部,所述视频数据部用于携带视频数据,所述RTP首部、RTP扩展首部以及视频数据部组成RTP数据包,所述RTP扩展首部用于携带所述视频帧信息。
6.根据权利要求5所述的方法,其特征在于,所述视频数据包中还包括所述视频数据包的序列号。
7.一种视频传输方法,其特征在于,包括:
网络设备接收视频流,所述视频流中包括多个视频数据包,每个所述视频数据包中包括视频帧信息,所述视频帧信息包括丢弃指示信息,所述丢弃指示信息用于指示所述视频数据包的丢弃优先级;其中,所述多个视频数据包中包括第一视频数据包和第二视频数据包,所述第一视频数据包中包括的丢弃指示信息指示的丢弃优先级高于所述第二视频数据包中包括的丢弃指示信息指示的丢弃优先级;所述第一视频数据包为封装有帧类型为非参考B帧的视频帧中的视频数据,所述第二视频数据包为封装有帧类型为I帧或P帧或参考B帧的视频帧中的视频数据;
所述网络设备在确定网络拥塞的情况下根据所述视频帧信息丢弃一个或多个所述第一视频数据包,以得到中间视频流。
8.根据权利要求7所述的方法,其特征在于,每个视频数据包中只封装有一个视频帧的视频数据。
9.根据权利要求8所述的方法,其特征在于,所述视频帧信息还包括优先级指示信息,所述优先级指示信息用于指示所述视频数据包的传输优先级;
所述网络设备在确定网络拥塞的情况下根据所述视频帧信息丢弃一个或多个所述第一视频数据包,包括:
所述网络设备在确定网络拥塞的情况下根据所述视频帧信息中包括的所述丢弃指示信息和所述优先级指示信息,丢弃一个或多个所述第一视频数据包。
10.根据权利要求9所述的方法,其特征在于,所述网络设备在确定网络拥塞的情况下根据所述视频帧信息中包括的所述丢弃指示信息和所述优先级指示信息,丢弃一个或多个所述第一视频数据包,包括:
所述网络设备根据所述视频帧信息中包括的所述丢弃指示信息和所述优先级指示信息,映射出所述视频数据包的服务等级和着色;其中,所述服务等级用于指示所述网络设备传输所述视频数据包的队列的等级,所述着色用于指示所述视频数据包丢弃性的等级;
所述网络设备根据所述视频数据包的服务等级,确定网络拥塞的情况下,根据所述服务等级和所述着色,丢弃一个或多个所述第一视频数据包,以得到中间视频流。
11.根据权利要求9所述的方法,其特征在于,所述视频帧信息还包括:帧编号指示信息,所述帧编号指示信息用于指示所述视频数据包所在的视频帧的编号;
所述网络设备在确定网络拥塞的情况下根据所述视频帧信息中包括的所述丢弃指示信息和所述优先级指示信息,丢弃一个或多个所述第一视频数据包,包括:
所述网络设备在确定网络拥塞的情况下根据所述视频帧信息中包括的所述丢弃指示信息、所述优先级指示信息和所述帧编号指示信息,丢弃一个或多个所述第一视频数据包。
12.根据权利要求11所述的方法,其特征在于,所述网络设备在确定网络拥塞的情况下根据所述视频帧信息中包括的所述丢弃指示信息、所述优先级指示信息和所述帧编号指示信息,丢弃一个或多个所述第一视频数据包,包括:
所述网络设备根据所述视频帧信息中包括的所述优先级指示信息映射出所述视频数据包的服务等级;其中,所述服务等级用于指示所述网络设备传输所述视频数据包的队列的等级;
所述网络设备根据所述视频数据包的服务等级,检测所述队列的长度;
所述网络设备根据所述队列的长度以及所述视频帧信息中包括的所述帧编号指示信息和所述丢弃指示信息,丢弃一个或多个所述第一视频数据包,以得到中间视频流。
13.根据权利要求7-12中任一项所述的方法,其特征在于,所述视频帧信息还包括:帧长度指示信息,其中,所述帧长度指示信息用于指示所述视频数据包所在的视频帧中包括的所述视频数据包的个数;所述视频数据包中还包括所述视频数据包的序列号;
在所述网络设备在确定网络拥塞的情况下根据所述视频帧信息丢弃一个或多个所述第一视频数据包之后,还包括:
在所述网络设备与接收设备相邻的情况下,所述网络设备根据所述中间视频流中所述视频数据包的序列号以及所述视频帧信息中包括的所述丢弃指示信息、帧编号指示信息和所述帧长度指示信息,丢弃第三视频数据包,所述第三视频数据包封装有帧类型为非参考B帧的不完整的视频帧中的视频数据,以得到待解码视频流,所述待解码视频流中的所述视频帧均为完整的视频帧;
所述网络设备向所述接收设备发送所述待解码视频流。
14.根据权利要求13所述的方法,其特征在于,所述视频数据包中包括A2SP首部、RTP首部以及视频数据部,所述视频数据部用于携带视频数据,所述RTP首部以及视频数据部组成RTP数据包作为负载与所述A2SP首部组成A2SP包,所述A2SP首部用于携带所述视频帧信息;
或者,
所述视频数据包中包括RTP首部、RTP扩展首部及视频数据部,所述视频数据部用于携带视频数据,所述RTP首部、RTP扩展首部以及视频数据部组成RTP数据包,所述RTP扩展首部用于携带所述视频帧信息。
15.一种视频传输方法,其特征在于,包括:
接收设备接收网络设备发送的中间视频流,所述中间视频流中包括多个视频数据包,每个所述视频数据包中包括视频帧信息,所述视频帧信息包括丢弃指示信息;
其中,所述视频帧信息包括丢弃指示信息、帧编号指示信息和帧长度指示信息;所述丢弃指示信息用于指示所述视频数据包的丢弃优先级,所述帧编号指示信息用于指示所述视频数据包所在的视频帧的编号,所述帧长度指示信息用于指示所述视频数据包所在的视频帧中包括的所述视频数据包的个数;所述多个视频数据包中包括第一视频数据包和第二视频数据包,所述第一视频数据包中包括的丢弃指示信息指示的丢弃优先级高于所述第二视频数据包中包括的丢弃指示信息指示的丢弃优先级;所述第一视频数据包封装有帧类型为非参考B帧的视频帧中的视频数据,所述第二视频数据包封装有帧类型为I帧或P帧或参考B帧的视频帧中的视频数据;所述视频数据包中还包括所述视频数据包的序列号;
所述接收设备根据所述中间视频流中所述视频数据包的序列号以及所述视频帧信息中包括的所述丢弃指示信息、所述帧编号指示信息和所述帧长度指示信息,丢弃第三视频数据包,所述第三视频数据包封装有帧类型为非参考B帧的不完整的视频帧中的视频数据,以得到待解码视频流,所述待解码视频流中的所述视频帧均为完整的视频帧;
所述接收设备解码所述待解码视频流。
16.一种发送设备,其特征在于,包括:
生成模块,用于生成源视频流,所述源视频流包括多个视频数据包,每个所述视频数据包中包括视频帧信息,所述视频帧信息包括丢弃指示信息,所述丢弃指示信息用于指示所述视频数据包的丢弃优先级;其中,所述多个视频数据包中包括第一视频数据包和第二视频数据包,所述第一视频数据包中包括的丢弃指示信息指示的丢弃优先级高于所述第二视频数据包中包括的丢弃指示信息指示的丢弃优先级;所述第一视频数据包封装有帧类型为非参考B帧的视频帧中的视频数据,所述第二视频数据包封装有帧类型为I帧或P帧或参考B帧的视频帧中的视频数据;
发送模块,用于向网络设备发送所述生成模块生成的所述源视频流。
17.根据权利要求16所述的发送设备,其特征在于,每个视频数据包中只封装有一个视频帧的视频数据。
18.根据权利要求16或17所述的发送设备,其特征在于,所述视频帧信息还包括优先级指示信息,所述优先级指示信息用于指示所述视频数据包的传输优先级。
19.根据权利要求18所述的发送设备,其特征在于,所述视频帧信息还包括:帧编号指示信息和帧长度指示信息,其中,所述帧编号指示信息用于指示所述视频数据包所在的视频帧的编号,所述帧长度指示信息用于指示所述视频数据包所在的视频帧中包的视频数据包的个数。
20.根据权利要求19所述的发送设备,其特征在于,所述视频数据包中包括应用感知的垫层协议A2SP首部、实时传输协议RTP首部以及视频数据部,所述视频数据部用于携带视频数据,所述RTP首部以及视频数据部组成RTP数据包作为负载与所述A2SP首部组成A2SP包,所述A2SP首部用于携带所述视频帧信息;
或者,
所述视频数据包中包括RTP首部、RTP扩展首部及视频数据部,所述视频数据部用于携带视频数据,所述RTP首部、RTP扩展首部以及视频数据部组成RTP数据包,所述RTP扩展首部用于携带所述视频帧信息。
21.根据权利要求20所述的发送设备,其特征在于,所述视频数据包中还包括所述视频数据包的序列号。
22.一种网络设备,其特征在于,包括:
接收模块,用于接收视频流,所述视频流中包括多个视频数据包,每个所述视频数据包中包括视频帧信息,所述视频帧信息包括丢弃指示信息,所述丢弃指示信息用于指示所述视频数据包的丢弃优先级;其中,所述多个视频数据包中包括第一视频数据包和第二视频数据包,所述第一视频数据包中包括的丢弃指示信息指示的丢弃优先级高于所述第二视频数据包中包括的丢弃指示信息指示的丢弃优先级;所述第一视频数据包为封装有帧类型为非参考B帧的视频帧中的视频数据,所述第二视频数据包为封装有帧类型为I帧或P帧或参考B帧的视频帧中的视频数据;
拥塞处理模块,用于在确定网络拥塞的情况下根据所述接收模块得到的所述视频帧信息丢弃一个或多个所述第一视频数据包,以得到中间视频流。
23.根据权利要求22所述的网络设备,其特征在于,每个视频数据包中只封装有一个视频帧的视频数据。
24.根据权利要求23所述的网络设备,其特征在于,所述视频帧信息还包括优先级指示信息,所述优先级指示信息用于指示所述视频数据包的优先级;
所述拥塞处理模块,具体用于在确定网络拥塞的情况下根据所述视频帧信息中包括的所述丢弃指示信息和所述优先级指示信息,丢弃一个或多个所述第一视频数据包。
25.根据权利要求24所述的网络设备,其特征在于,所述拥塞处理模块,包括:
第一映射子模块,用于根据所述视频帧信息中包括的所述丢弃指示信息和所述优先级指示信息,映射出所述视频数据包的服务等级和着色;其中,所述服务等级用于指示所述网络设备传输所述视频数据包的队列的等级,所述着色用于指示所述视频数据包丢弃性的等级;
第一拥塞处理子模块,用于根据所述第一映射子模块映射出的所述视频数据包的服务等级,确定网络拥塞的情况下,根据所述服务等级和所述着色,丢弃一个或多个所述第一视频数据包,以得到中间视频流。
26.根据权利要求24所述的网络设备,其特征在于,所述视频帧信息还包括:帧编号指示信息,其中,所述帧编号指示信息用于指示所述视频数据包所在的视频帧的编号;
所述拥塞处理模块,具体用于在确定网络拥塞的情况下根据所述视频帧信息中包括的所述丢弃指示信息、所述优先级指示信息和所述帧编号指示信息,丢弃一个或多个所述第一视频数据包。
27.根据权利要求26所述的网络设备,其特征在于,所述拥塞处理模块,包括:
第二映射子模块,用于根据所述视频帧信息中包括的所述优先级指示信息映射出所述视频数据包的服务等级;其中,所述服务等级用于指示所述网络设备传输所述视频数据包的队列的等级;
第二拥塞处理子模块,用于根据所述第二映射子模块映射出的所述视频数据包的服务等级,检测所述队列的长度;根据所述队列的长度以及所述视频帧信息中包括的所述帧编号指示信息和所述丢弃指示信息,丢弃一个或多个所述第一视频数据包,以得到中间视频流。
28.根据权利要求22-27中任一项所述的网络设备,其特征在于,所述视频帧信息还包括:帧长度指示信息,其中,所述帧长度指示信息用于指示所述视频数据包所在的视频帧中包括的所述视频数据包的个数;所述视频数据包中还包括所述视频数据包的序列号;
所述网络设备,还包括:
丢包处理模块,用于在所述网络设备为与接收设备相邻的情况下,根据所述中间视频流中所述视频数据包的序列号以及所述视频帧信息中包括的丢弃指示信息、帧编号指示信息和帧长度指示信息,丢弃第三视频数据包,所述第三视频数据包封装有帧类型为非参考B帧的不完整的视频帧中的视频数据,以得到待解码视频流,所述待解码视频流中的所述视频帧均为完整的视频帧;
发送模块,用于在所述网络设备与所述接收设备相邻的情况下,向所述接收设备发送所述丢包处理模块得到的所述待解码视频流。
29.根据权利要求28所述的网络设备,其特征在于,所述视频数据包中包括A2SP首部、RTP首部以及视频数据部,所述视频数据部用于携带视频数据,所述RTP首部以及视频数据部组成RTP数据包作为负载与所述A2SP首部组成A2SP包,所述A2SP首部用于携带所述视频帧信息;
或者,
所述视频数据包中包括RTP首部、RTP扩展首部及视频数据部,所述视频数据部用于携带视频数据,所述RTP首部、RTP扩展首部以及视频数据部组成RTP数据包,所述RTP扩展首部用于携带所述视频帧信息。
30.一种接收设备,其特征在于,包括:
接收模块,用于接收网络设备发送的中间视频流,所述中间视频流中包括多个视频数据包,每个所述视频数据包中包括视频帧信息,所述视频帧信息包括丢弃指示信息;其中,所述视频帧信息包括丢弃指示信息、帧编号指示信息和帧长度指示信息;所述丢弃指示信息用于指示所述视频数据包的丢弃优先级,所述帧编号指示信息用于指示所述视频数据包所在的视频帧的编号,所述帧长度指示信息用于指示所述视频数据包所在的视频帧中包括的所述视频数据包的个数;所述多个视频数据包中包括第一视频数据包和第二视频数据包,所述第一视频数据包中包括的丢弃指示信息指示的丢弃优先级高于所述第二视频数据包中包括的丢弃指示信息指示的丢弃优先级;所述第一视频数据包封装有帧类型为非参考B帧的视频帧中的视频数据,所述第二视频数据包封装有帧类型为I帧或P帧或参考B帧的视频帧中的视频数据;所述视频数据包中还包括所述视频数据包的序列号;
丢包处理模块,用于根据所述接收模块得到的所述中间视频流中所述视频数据包的序列号以及所述视频帧信息中包括的所述丢弃指示信息、所述帧编号指示信息和所述帧长度指示信息,丢弃第三视频数据包,所述第三视频数据包封装有帧类型为非参考B帧的不完整的视频帧中的视频数据,以得到待解码视频流,所述待解码视频流中的所述视频帧均为完整的视频帧;
解码模块,用于解码所述丢包处理模块得到的所述待解码视频流。
31.一种视频传输的系统,其特征在于,包括:
如权利要求16-21中任一项所述的发送设备;和
至少一个如权利要求22-29中任一项所述的网络设备;和
如权利要求30所述的接收设备。
32.一种发送设备,其特征在于,包括:至少一个处理器、存储器、通信接口和通信总线;
所述存储器用于存储至少一个指令,所述至少一个处理器、所述存储器和所述通信接口通过所述通信总线连接,当计算机运行时,所述至少一个处理器执行所述存储器存储的所述至少一个指令,以使所述计算机执行如权利要求1-6中任一项所述的视频传输方法。
33.一种网络设备,其特征在于,包括:至少一个处理器、存储器、通信接口和通信总线;
所述存储器用于存储至少一个指令,所述至少一个处理器、所述存储器和所述通信接口通过所述通信总线连接,当计算机运行时,所述至少一个处理器执行所述存储器存储的所述至少一个指令,以使所述计算机执行如权利要求7-14中任一项所述的视频传输方法。
34.一种接收设备,其特征在于,包括:至少一个处理器、存储器、通信接口和通信总线;
所述存储器用于存储至少一个指令,所述至少一个处理器、所述存储器和所述通信接口通过所述通信总线连接,当计算机运行时,所述至少一个处理器执行所述存储器存储的所述至少一个指令,以使所述计算机执行如权利要求15所述的视频传输方法。
35.一种视频传输的系统,其特征在于,包括:
如权利要求32所述的发送设备;和
至少一个如权利要求33所述的网络设备;和
如权利要求34所述的接收设备。
CN201710503244.5A 2017-06-27 2017-06-27 一种视频传输方法、设备及系统 Active CN109151612B (zh)

Priority Applications (6)

Application Number Priority Date Filing Date Title
CN201710503244.5A CN109151612B (zh) 2017-06-27 2017-06-27 一种视频传输方法、设备及系统
JP2019571975A JP7004754B2 (ja) 2017-06-27 2018-04-27 ビデオ送信の方法およびシステムおよびデバイス
PCT/CN2018/084959 WO2019001128A1 (zh) 2017-06-27 2018-04-27 一种视频传输方法、设备及系统
EP18824247.3A EP3633997B1 (en) 2017-06-27 2018-04-27 Method, apparatus and system for video transmission
KR1020207002206A KR102305407B1 (ko) 2017-06-27 2018-04-27 비디오 전송 방법 및 시스템 및 장치
US16/727,534 US11553221B2 (en) 2017-06-27 2019-12-26 Video transmission method and system and device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710503244.5A CN109151612B (zh) 2017-06-27 2017-06-27 一种视频传输方法、设备及系统

Publications (2)

Publication Number Publication Date
CN109151612A CN109151612A (zh) 2019-01-04
CN109151612B true CN109151612B (zh) 2020-10-16

Family

ID=64740978

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710503244.5A Active CN109151612B (zh) 2017-06-27 2017-06-27 一种视频传输方法、设备及系统

Country Status (6)

Country Link
US (1) US11553221B2 (zh)
EP (1) EP3633997B1 (zh)
JP (1) JP7004754B2 (zh)
KR (1) KR102305407B1 (zh)
CN (1) CN109151612B (zh)
WO (1) WO2019001128A1 (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10887151B2 (en) * 2018-10-05 2021-01-05 Samsung Eletrônica da Amazônia Ltda. Method for digital video transmission adopting packaging forwarding strategies with path and content monitoring in heterogeneous networks using MMT protocol, method for reception and communication system
CN110225347A (zh) * 2019-06-24 2019-09-10 北京大米科技有限公司 视频数据传输方法、装置、电子设备和存储介质
CN111212025B (zh) * 2019-11-20 2022-02-08 腾讯科技(深圳)有限公司 网络自适应视频流的传输方法和装置
CN111107297B (zh) * 2019-12-30 2021-06-01 广州市百果园网络科技有限公司 一种视频传输方法、装置、资源服务器和存储介质
CN113472680A (zh) * 2020-03-31 2021-10-01 华为技术有限公司 丢包处理方法、装置、通信装置及系统
CN111934828B (zh) * 2020-06-30 2021-12-10 浙江云朵网科技股份有限公司 基于ofdma模式的数据传输方法及系统
CN117082038A (zh) * 2020-10-30 2023-11-17 华为技术有限公司 用于传输媒体流的数据包的方法和通信装置
WO2022151492A1 (zh) * 2021-01-18 2022-07-21 华为技术有限公司 一种调度传输方法及装置
CN117255069A (zh) * 2021-02-10 2023-12-19 华为技术有限公司 一种信息传输方法及装置
CN113365066B (zh) * 2021-06-29 2022-12-02 北京二六三企业通信有限公司 一种视频数据的传输方法和装置
CN114172874A (zh) * 2021-12-27 2022-03-11 上海商米科技集团股份有限公司 视频传输参数的自适应调节方法和系统
CN114640849B (zh) * 2022-03-23 2024-03-12 广州方硅信息技术有限公司 直播视频编码方法、装置、计算机设备及可读存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1180870B1 (en) * 2000-08-17 2006-12-27 Matsushita Electric Industrial Co., Ltd. Packet retransmission using priority information
CN101800671A (zh) * 2010-02-08 2010-08-11 同济大学 一种h.264视频文件的丢包检测方法
CN102104468A (zh) * 2011-02-18 2011-06-22 中兴通讯股份有限公司 一种基于路由代理的媒体感知arq控制方法及系统
CN104396238A (zh) * 2012-07-17 2015-03-04 汤姆逊许可公司 比特流级别的视频质量评估
CN105245469A (zh) * 2015-08-27 2016-01-13 北京金山安全软件有限公司 数据传输方法、装置以及系统
CN105681931A (zh) * 2016-01-12 2016-06-15 清华大学 一种基于无线网络的视频数据包传输方法及系统

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001078181A (ja) 1999-09-02 2001-03-23 Matsushita Electric Ind Co Ltd パケット伝送方法、パケット受信再生装置
CN1468001A (zh) 2002-06-27 2004-01-14 上海汉唐科技有限公司 基于因特网的媒体流自适应传输方法
KR100537499B1 (ko) * 2002-07-26 2005-12-19 삼성전자주식회사 전송제어 파라미터 생성방법 및 프레임 특성에 따른선택적 자동 재전송 방법
KR20100037659A (ko) 2005-05-24 2010-04-09 노키아 코포레이션 디지털 방송에서 계층적인 전송/수신을 위한 방법 및 장치
US20070097205A1 (en) * 2005-10-31 2007-05-03 Intel Corporation Video transmission over wireless networks
CN101098173A (zh) 2006-06-30 2008-01-02 华为技术有限公司 动态调整无线网络中传输的业务服务质量的方法
US20080144505A1 (en) 2006-11-03 2008-06-19 Michael Anthony Isnardi Method and Apparatus for Bitrate Reduction
US7688725B2 (en) * 2007-02-07 2010-03-30 King Fahd University Of Petroleum & Minerals Content-aware congestion control system
CN101047476B (zh) 2007-03-19 2010-08-04 华为技术有限公司 一种选择调制方式的方法和装置
CN101605243B (zh) 2008-06-12 2011-08-10 华为技术有限公司 节目提供的方法、媒体设备和用户侧设备
CN101651826B (zh) * 2008-08-15 2012-08-08 华为技术有限公司 发送和接收媒体的方法、装置以及系统
CN101656888B (zh) 2008-08-21 2013-01-16 华为技术有限公司 一种视频传输方法及装置、系统
CN101729228B (zh) 2008-10-31 2014-04-16 华为技术有限公司 丢包抑制重传的方法、网络节点和系统
CN101741752B (zh) 2008-11-17 2015-08-19 华为技术有限公司 视频流传输的方法、装置和系统
US8806551B2 (en) 2008-12-03 2014-08-12 Alcatel Lucent Prioritized retransmission of internet protocol television (IPTV) packets
US8363548B1 (en) * 2008-12-12 2013-01-29 Rockstar Consortium Us Lp Method and system for packet discard precedence for video transport
CN101568027B (zh) * 2009-05-22 2012-09-05 华为技术有限公司 转发视频数据的方法、装置和系统
US8531961B2 (en) * 2009-06-12 2013-09-10 Cygnus Broadband, Inc. Systems and methods for prioritization of data for intelligent discard in a communication network
US8627396B2 (en) * 2009-06-12 2014-01-07 Cygnus Broadband, Inc. Systems and methods for prioritization of data for intelligent discard in a communication network
CN102223218B (zh) 2010-04-15 2014-06-25 华为技术有限公司 媒体报文重传抑制方法和设备
CN102148674B (zh) 2011-01-12 2013-08-28 北京华为数字技术有限公司 一种抑制重传的方法及装置
JP5789004B2 (ja) 2013-08-09 2015-10-07 ソニー株式会社 送信装置、送信方法、受信装置、受信方法、符号化装置および符号化方法
JP2015050591A (ja) 2013-08-30 2015-03-16 株式会社リコー 情報処理装置、情報処理方法およびプログラム
US9935993B2 (en) * 2015-03-31 2018-04-03 Avago Technologies General Ip (Singapore) Pte. Ltd. Streaming video over a hybrid network
CN106470345B (zh) * 2015-08-21 2020-02-14 阿里巴巴集团控股有限公司 视频加密传输方法和解密方法、装置及系统
CN105357592B (zh) 2015-10-26 2018-02-27 山东大学苏州研究院 一种流媒体自适应传输选择性丢帧方法
CN105791260A (zh) 2015-11-30 2016-07-20 武汉斗鱼网络科技有限公司 一种网络自适应的流媒体服务质量控制方法及装置
CN105959731B (zh) * 2016-04-28 2019-02-05 西安交通大学 一种数字电视的统计复用编码方法
WO2018024497A1 (en) * 2016-08-01 2018-02-08 Telefonaktiebolaget Lm Ericsson (Publ) Estimation of losses in a video stream

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1180870B1 (en) * 2000-08-17 2006-12-27 Matsushita Electric Industrial Co., Ltd. Packet retransmission using priority information
CN101800671A (zh) * 2010-02-08 2010-08-11 同济大学 一种h.264视频文件的丢包检测方法
CN102104468A (zh) * 2011-02-18 2011-06-22 中兴通讯股份有限公司 一种基于路由代理的媒体感知arq控制方法及系统
CN104396238A (zh) * 2012-07-17 2015-03-04 汤姆逊许可公司 比特流级别的视频质量评估
CN105245469A (zh) * 2015-08-27 2016-01-13 北京金山安全软件有限公司 数据传输方法、装置以及系统
CN105681931A (zh) * 2016-01-12 2016-06-15 清华大学 一种基于无线网络的视频数据包传输方法及系统

Also Published As

Publication number Publication date
JP7004754B2 (ja) 2022-01-21
KR102305407B1 (ko) 2021-09-24
EP3633997A4 (en) 2020-12-02
JP2020526110A (ja) 2020-08-27
EP3633997A1 (en) 2020-04-08
US11553221B2 (en) 2023-01-10
CN109151612A (zh) 2019-01-04
US20200137428A1 (en) 2020-04-30
EP3633997B1 (en) 2023-08-30
KR20200020896A (ko) 2020-02-26
WO2019001128A1 (zh) 2019-01-03

Similar Documents

Publication Publication Date Title
CN109151612B (zh) 一种视频传输方法、设备及系统
BR112020027024A2 (pt) Método de codificação de nuvem de pontos, método de decodificação de nuvem de pontos, codificador, e decodificador
US10476928B2 (en) Network video playback method and apparatus
CN108965934B (zh) 一种故障检测方法、监控设备及网络设备
WO2019128668A1 (zh) 视频码流处理方法、装置、网络设备和可读存储介质
CN110662084B (zh) 一种mp4文件流直播的方法、移动终端及存储介质
JP2017519467A5 (zh)
US20160212054A1 (en) Multiple Protocol Media Streaming
CN113365066B (zh) 一种视频数据的传输方法和装置
CN105191324B (zh) 通信设备、通信数据生成方法、以及通信数据处理方法
CN106330713B (zh) 一种报文传输方法及装置
JP6291064B2 (ja) ビデオデータを符号化及び復号化する方法と装置
CN116567228A (zh) 编码方法、实时通信方法、装置、设备及存储介质
US9607002B2 (en) File retrieval from multiple storage locations
KR20140070896A (ko) 비디오 스트리밍 방법 및 그 전자 장치
CN108353181A (zh) 在媒体传输系统中使能视频比特流的随机访问和重播的方法
US20120144443A1 (en) System and method for executing source buffering for multiple independent group transmission of real-time encoded scalabe video contents
WO2012095030A1 (zh) 条带编码方法及装置、条带解码方法及装置
WO2009149671A1 (zh) 视频数据的打包、编解码方法及装置及系统
US20090135852A1 (en) Facilitating intelligent marking and discarding of MPEG video packets in IP packet stream
TW201521376A (zh) 虛擬桌面基礎建設伺服器、由電腦執行之視訊串流傳輸方法及其電腦程式產品
CN110636368A (zh) 媒体播放方法及装置
US10772010B2 (en) Transmission apparatus, method for controlling transmission, and recording medium
CN111224820B (zh) 一种带宽计算的方法和装置
CN115942000B (zh) H.264格式的视频流转码方法及装置、设备及介质

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