CN109862377B - 视频传输方法、装置、***及计算机可读存储介质 - Google Patents

视频传输方法、装置、***及计算机可读存储介质 Download PDF

Info

Publication number
CN109862377B
CN109862377B CN201711244047.2A CN201711244047A CN109862377B CN 109862377 B CN109862377 B CN 109862377B CN 201711244047 A CN201711244047 A CN 201711244047A CN 109862377 B CN109862377 B CN 109862377B
Authority
CN
China
Prior art keywords
video
reference data
data
segment
video data
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
CN201711244047.2A
Other languages
English (en)
Other versions
CN109862377A (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 CN201711244047.2A priority Critical patent/CN109862377B/zh
Priority to PCT/CN2018/117678 priority patent/WO2019105340A1/zh
Priority to JP2020529571A priority patent/JP7030984B2/ja
Priority to EP18884243.9A priority patent/EP3709663A4/en
Priority to KR1020207018508A priority patent/KR102316873B1/ko
Publication of CN109862377A publication Critical patent/CN109862377A/zh
Priority to US16/888,005 priority patent/US11012724B2/en
Application granted granted Critical
Publication of CN109862377B publication Critical patent/CN109862377B/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/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
    • 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/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/2187Live feed
    • 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/2365Multiplexing of several video streams
    • H04N21/23655Statistical multiplexing, e.g. by controlling the encoder to alter its bitrate to optimize the bandwidth utilization
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0041Arrangements at the transmitter end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • 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/21Server components or server architectures
    • H04N21/222Secondary servers, e.g. proxy server, cable television Head-end
    • 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/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • H04N21/2383Channel coding or modulation of digital bit-stream, e.g. QPSK modulation
    • 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
    • H04N21/2402Monitoring of the downstream path of the transmission network, e.g. bandwidth available
    • 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/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/262Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
    • 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/437Interfacing the upstream path of the transmission network, e.g. for transmitting client requests to a VOD server
    • 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/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/64746Control signals issued by the network directed to the server or the client
    • H04N21/64761Control signals issued by the network directed to the server or the client directed to the server
    • H04N21/64776Control signals issued by the network directed to the server or the client directed to the server for requesting retransmission, e.g. of data packets lost or corrupted during transmission from server

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本申请公开了一种视频传输方法、装置、***及计算机可读存储介质,属于视频传输领域。所述方法包括:获取目标视频数据段;获取t个参考数据集合;利用每个参考数据集合分别对目标视频数据段进行编码,得到与t个参考数据集合一一对应的t个编码数据块,t个编码数据块中的任意k个编码数据块和t个参考数据集合中与该任意k个编码数据块一一对应的k个参考数据集合能够构建方程组矩阵,且方程组矩阵的解矩阵的数据为目标视频数据段的数据;通过n个前端服务器向视频解码设备发送t个第一参考数据组;其中,每个第一参考数据组包括一个编码数据块和对应的参考数据集合。本申请可以降低直播视频出现卡顿和延迟的概率。

Description

视频传输方法、装置、***及计算机可读存储介质
技术领域
本申请涉及视频传输领域,特别涉及一种视频传输方法、装置、***及计算机可读存储介质。
背景技术
当前,网络直播在人们的日常生活中已经越来越常见了,所谓网络直播指的是通过直播网络进行的视频直播。在网络直播过程中,主播终端可以拍摄直播视频,并向相应的服务器发送该直播视频,而后该服务器将该直播视频发送至观众终端,以供观众终端所属用户观看。在网络直播中,直播视频的上行和下行都是实时的,直播网络无法预先对直播视频进行缓存,同时用户对直播视频的延迟程度和卡顿程度等要求较高,因此,如何保证直播视频上行和下行的速率,从而保证直播视频的低延迟、低卡顿成为了网络直播的重要环节。
相关技术中,直播网络可以包括内容分发网络(英文:Content DeliveryNetwork;简称:CDN),在直播视频上行过程中,主播终端可以向CDN网络的一个前端服务器发送直播视频,该前端服务器可以将该直播视频转发至CDN网络的后台存储服务器中,在直播下行过程中,观众终端可以向CDN网络的另外的前端服务器请求该直播视频,接收到请求的前端服务器可以从后台存储服务器中获取该直播视频,并将该直播视频发送至观众终端。由于CDN网络可以尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使数据传输的更快和更稳定,因此,相关技术可以一定程度上保证直播视频上行和下行的速率。
在实现本申请的过程中,发明人发现现有技术至少存在以下问题:
在直播视频的上行过程中,若发生丢包,主播终端需要进行视频数据的重传,这容易引起直播视频的卡顿和延迟。
发明内容
本申请提供了一种视频传输方法、装置、***及计算机可读存储介质,本申请提供的技术方案能够降低直播视频出现卡顿和延迟的概率,本申请提供的技术方案如下:
第一方面,提供了一种视频传输方法,用于直播网络的视频编码设备中,所述直播网络包括所述视频编码设备、视频解码设备和多个前端服务器,所述方法包括:
获取目标视频数据段,所述目标视频数据段是待传输直播视频的视频数据流中的一段数据,所述目标视频数据段包括k个数据块,k为大于或等于1的正整数;
获取t个参考数据集合,每个所述参考数据集合包括至少一个参考数据,t为大于k的正整数;
利用每个所述参考数据集合分别对所述目标视频数据段进行编码,得到与所述t个参考数据集合一一对应的t个编码数据块,所述t个参考数据集合中的任意k个参考数据集合和与所述任意k个参考数据集合一一对应的k个编码数据块能够构建方程组矩阵,且所述方程组矩阵的解矩阵的数据为所述目标视频数据段的数据;
通过n个前端服务器向所述视频解码设备发送t个第一参考数据组,n为大于或等于1的正整数;
其中,每个所述第一参考数据组包括一个编码数据块和对应的参考数据集合。
在本申请中,视频编码设备可以利用t个参考数据集合分别对包括k个数据块的目标视频数据段进行编码,以得到与该t个参考数据集合一一对应的t个编码数据块,该t个参考数据集合中的任意k个参考数据集合和与该任意k个参考数据集合对应的k个编码数据块能够构建方程组矩阵,且该方程组矩阵的解矩阵的数据为目标视频数据段的数据,而后视频编码设备可以通过n个前端服务器向视频解码设备发送t个第一参考数据组,每个第一参考数据组包括一个编码数据块和与该编码数据块对应的编码数据集合,也即是每个第一参考数据组就相当于上述方程组矩阵对应的方程组中的一个方程,这样视频解码设备在接收到该t个第一参考数据组中的任意k个第一参考数据组,也即是在接收到任意k个方程后,就可以构建方程组矩阵,并求解该方程组矩阵的解矩阵以解码得到该目标视频数据段,这样,即使出现了丢包,视频编码设备仍有较大的概率接收到t个第一参考数据组中的k个参考数据组,这样就可以降低发生丢包时视频编码设备需要进行数据重传的概率,从而能够一定程度上避免直播视频的卡顿和延迟,此外,当n大于1时,视频编码设备可以在直播视频的上行过程中,通过多条路径,也即是通过多个前端服务器,发送视频数据,这提高了对直播网络上行带宽的利用率,从而能够一定程度上避免直播视频的卡顿和延迟。
在本申请的一个实施例中,每个所述参考数据集合包括与所述k个数据块一一对应的k个参考数据,所述利用每个所述参考数据集合分别对所述目标视频数据段进行编码,得到与所述t个参考数据集合一一对应的t个编码数据块,包括:
对于每个所述参考数据集合,将所述参考数据集合包括的每个参考数据与对应的数据块相乘,得到k个乘积;
将所述k个乘积相加,得到与所述参考数据集合对应的编码数据块。
在本申请的一个实施例中,所述获取目标视频数据段,包括:
获取所述待传输直播视频的视频数据流;
从所述视频数据流中获取数据块;
在第一预设时长内,当获取到的数据块的个数不小于所述k时,将获取到的k个数据块组成所述目标视频数据段;
当在所述第一预设时长结束时获取到的数据块的个数小于所述k时,使用预设数据对已经获取到的数据块进行填充以获得k个数据块,将填充获得的所述k个数据块组成所述目标视频数据段。
在一些情况下,由于网络通信质量的问题,视频编码设备获取视频数据流的速度可能较小,此时视频编码设备可能迟迟不能从视频数据流中获取到k个数据块,这就导致视频编码设备编码的速度较慢,为了保证视频编码设备的编码速度,在本申请中,视频编码设备可以在第一预设时长内未获取到k个数据块的情况下,使用预设数据对已经获取到的数据块进行填充,以填充得到k个数据块,而后再对填充得到的该k个数据块进行编码,从而提高编码速度。
在本申请的一个实施例中,所述目标视频数据段是所述视频编码设备从所述视频数据流中获取的第p+1个视频数据段,p为大于或等于1的正整数,所述获取t个参考数据集合之前,所述方法还包括:
接收所述视频解码设备发送的p个历史解码差值,所述p个历史解码差值与所述视频数据流中所述目标视频数据段之前的p个视频数据段一一对应,每个所述历史解码差值用于反映所述视频解码设备在第二预设时长结束时距成功解码得到对应的视频数据段所差的参考数据组的个数;
根据所述p个历史解码差值确定需要获取的所述参考数据集合的个数t的值。
可选的,所述p个历史解码差值中的第i个历史解码差值di满足:
当所述视频解码设备在所述第二预设时长内成功解码得到了与所述第i个历史解码差值对应的所述视频数据流中的第i个视频数据段时,di=0;
当所述视频解码设备在所述第二预设时长结束时未成功解码得到所述第i个视频数据段时,di=y-x;
其中,所述y为所述视频解码设备成功解码得到所述第i个视频数据段所需的参考数据组的个数,所述x为所述视频解码设备在所述第二预设时长结束时获取的与所述第i个视频数据段所对应参考数据组的个数,1≤i≤p。
可选的,所述根据所述p个历史解码差值确定需要获取的所述参考数据集合的个数t的值,包括:
根据所述p个历史解码差值,基于第一公式计算需要获取的所述参考数据集合的个数t的值,所述第一公式为:
Figure BDA0001490447830000031
其中,Fi=di/k,
Figure BDA0001490447830000032
g为权重参数,di为所述p个历史解码差值中的第i个历史解码差值,tp为所述视频编码设备在对所述视频数据流中的第p个视频数据段编码前,获取的参考数据集合的个数。
在本申请的一个实施例中,所述目标视频数据段是所述视频编码设备从所述视频数据流中获取的第1个视频数据段,所述获取t个参考数据集合之前,所述方法还包括:
根据所述直播网络的平均丢包率确定需要获取的所述参考数据集合的个数t的值。
可选的,,所述根据所述直播网络的平均丢包率确定需要获取的所述参考数据集合的个数t的值,包括:
根据所述直播网络的平均丢包率,基于第二公式计算需要获取的所述参考数据集合的个数t的值,所述第二公式为:
Figure BDA0001490447830000033
其中,ρ为所述直播网络的平均丢包率,
Figure BDA0001490447830000034
为向下取整运算符。
通过视频编码设备在获取t个参考数据集合之前,基于第一公式或第二公式确定t的值,可以保证视频编码设备为t设置合适大小的值,从而既能够避免对直播网络的网络资源的浪费,又能够避免视频解码设备无法成功解码得到目标视频数据段的情况发生。
在本申请的一个实施例中,所述通过n个前端服务器向所述视频解码设备发送t个第一参考数据组之后,所述方法还包括:
接收所述视频解码设备发送的当前解码差值,所述当前解码差值与所述目标视频数据段对应,所述当前解码差值用于反映所述视频解码设备在第二预设时长结束时距成功解码得到所述目标视频数据段所差的所述第一参考数据组的个数;
当所述当前解码差值大于预设差值阈值时,获取m个所述参考数据集合,并利用m个所述参考数据集合中的每个所述参考数据集合分别对所述目标视频数据段进行编码,得到与m个所述参考数据集合一一对应的m个所述编码数据块,m为大于或等于k的正整数;
通过q个所述前端服务器向所述视频解码设备发送m个所述第一参考数据组,q为大于或等于1的正整数。
视频编码设备在视频解码设备没有成功解码得到目标视频数据段时,还可以重传第一参考数据组,从而保证视频解码设备能够成功解码得到目标视频数据段。
在本申请的一个实施例中,所述通过n个前端服务器向所述视频解码设备发送t个第一参考数据组之前,所述方法还包括:
确定与所述视频编码设备已建立通信连接的r个前端服务器,r为大于或等于n的正整数;
根据所述视频编码设备与所述r个前端服务器中的每个前端服务器之间的数据传输速率,从所述r个前端服务器中确定所述n个前端服务器,所述n个前端服务器与所述视频编码设备的通信质量优于其他前端服务器与所述视频编码设备的通信质量。
可选的,所述根据所述视频编码设备与所述r个前端服务器中的每个前端服务器之间的数据传输速率,从所述r个前端服务器中确定所述n个前端服务器,包括:
根据所述视频编码设备与所述r个前端服务器中的每个前端服务器之间的数据传输速率,基于第三公式计算所述每个前端服务器的效用值,所述第三公式为:
Figure BDA0001490447830000041
其中,uj为所述r个前端服务器中第j个前端服务器的效用值,1≤j≤r,thrj为所述视频编码设备与所述第j个前端服务器之间的数据传输速率,ρj为所述视频编码设备与所述第j个前端服务器之间的丢包率,ρ为所述直播网络的平均丢包率,β为常数;
按照效用值由高至低的顺序,从所述r个前端服务器中确定所述n个前端服务器。
可选的,所述通过n个前端服务器向所述视频解码设备发送t个第一参考数据组,包括:
对于每个所述前端服务器,根据所述前端服务器的效用值确定与所述前端服务器对应的第一参考数据组的个数,所述与所述前端服务器对应的第一参考数据组的个数与所述前端服务器的效用值正相关,n个所述前端服务器对应的第一参考数据组的个数之和为t;
向每个所述前端服务器,发送对应个数的所述第一参考数据组。
可选的,所述通过n个前端服务器向所述视频解码设备发送t个第一参考数据组,包括:
根据第四公式确定与所述n个前端服务器中的每个前端服务器对应的所述第一参考数据组的个数,所述第四公式为:
Figure BDA0001490447830000051
其中,yl为所述n个前端服务器中第l个前端服务器对应的所述第一参考数据组的个数,ul为所述第l个前端服务器的效用值,
Figure BDA0001490447830000052
为所述n个前端服务器的效用值的和,1≤l≤n;
对于每个所述前端服务器,向所述前端服务器发送对应个数的所述第一参考数据组,以由所述前端服务器将接收到的所述第一参考数据组发送至所述视频解码设备。
视频编码设备可以从已经与自身建立了通信连接的该r个前端服务器中确定出网络通信质量较优的n个前端服务器,并通过该n个前端服务器向视频解码设备发送该t个第一参考数据组,由于确定出的n个前端服务器与视频编码设备之间的网络通信质量较优,因此,视频编码设备通过该n个前端服务器发送数据的速率较快,从而可以保证视频数据流的上行速率。
同时,效用值较高的前端服务器与视频编码设备之间的网络通信质量较好,视频编码设备可以向其发送较多个数的第一参考数据组,而效用值较低的前端服务器与视频编码设备之间的网络通信质量较差,为了降低数据传输时延,视频编码设备可以向其发送较少个数的第一参考数据组。
在本申请的一个实施例中,在所述获取目标视频数据段之前,所述方法还包括:
根据预设的传输时延与数据块个数的对应关系,确定所述目标视频段的数据块个数k,使得所述数据块个数k对应的传输时延处于预设的传输时延范围内;
其中,所述传输时延为视频数据段由主播终端发送至所述视频解码设备的传输时延。
可选的,所述对应关系为:
Figure BDA0001490447830000053
其中,delay为传输时延,B为所述数据块的数据量大小,bit_rate为所述待传输直播视频的视频播放码率,T0为编码或解码由k0个数据量大小为B0的数据块组成的视频数据段所需的时长,β为常数,ρmin为所述视频编码设备与所述n个前端服务器中的每个前端服务器之间的丢包率的最小值,ρ为所述直播网络的平均丢包率,thrw为所述视频编码设备与所述n个前端服务器中的第w个前端服务器之间的数据传输速率,ρw为所述视频编码设备与所述n个前端服务器中的第w个前端服务器之间的丢包率,RTTv为数据包在所述n个前端服务器中的第v个前端服务器与所述视频解码设备之间的往返时长,loss%v为所述n个前端服务器中的第v个前端服务器与所述视频解码设备之间的丢包率,RTO为超时重传时限,max为求最大值运算,Δ为误差时延,1≤v≤n。
通过为k设置合适大小的值,可以使得视频数据段的上行时延位于预设的传输时延范围内,从而保证了视频数据段的上行速率,避免观众终端播放待传输直播视频时出现卡顿过为频繁或延迟过长的现象发生。
在本申请的一个实施例中,所述通过n个前端服务器向所述视频解码设备发送t个第一参考数据组,包括:
生成a个参考数据包,每个所述参考数据包包括至少一个所述第一参考数据组,所述参考数据包的格式为基于用户数据报协议UDP的数据传输协议UDT格式,a为大于或等于1的正整数;
通过所述n个前端服务器向所述视频解码设备发送所述a个参考数据包。
现有技术中,直播网络所采用的数据传输协议一般为传输控制协议(英文:Transmission Control Protocol;简称:TCP),其中,TCP协议的拥塞控制机制为加性增乘性减(英文:Additive Increase Multiplicative Decrease;简称:AIMD)机制。在AIMD机制下,当某一链路出现丢包时,该链路的发送窗口将会减半,例如,当发送设备A与接收设备B之间出现丢包时,AIMD机制会将发送设备A的发送窗口减半。发送窗口减半会较为严重地影响数据传输速率,因此,在直播网络基于TCP协议传输视频数据流时,丢包将会较为严重地影响视频数据流的传输速率,从而导致观众终端播放直播视频时出现延迟过长以及卡顿过为频繁的现象。
为了降低丢包对直播网络中视频数据流的传输速率的影响,在本申请实施例中,直播网络可以基于UDT协议传输视频数据流,也即是如上文所述的视频编码设备基于UDT协议将a个参考数据包发送至视频解码设备中。UDT协议的拥塞控制机制为减小的加性增乘性减(英文:Decreasing Additive Increase Multiplicative Decrease;简称:DAIMD)机制,由于在DAIMD机制下,当某一链路出现丢包时,可以根据该链路的可用带宽减小发送窗口,且发送窗口的减小幅度为1/8至1/2之间的随机数,因此相较于TCP协议而言可以降低丢包对直播网络中视频数据流的传输速率的影响。
在本申请的一个实施例中,每个所述参考数据包还包括所述目标视频数据段的标识和/或所述待传输直播视频所属的直播频道的标识。
第二方面,提供了一种视频传输方法,用于直播网络的视频解码设备中,所述直播网络包括视频编码设备、视频解码设备和多个前端服务器,所述方法包括:
接收u个前端服务器发送的第一参考数据组,每个所述第一参考数据组包括编码数据块和对应的参考数据集合,每个所述编码数据块是所述视频编码设备利用对应的参考数据集合对目标视频数据段进行编码得到的,所述目标视频数据段是直播视频的视频数据流中的一段数据,所述目标视频数据段包括k个数据块,所述参考数据集合包括至少一个参考数据,k为大于或等于1的正整数,u为大于或等于1的正整数;
在第二预设时长内,当接收到的所述第一参考数据组的个数达到所述k时,根据接收到的k个所述第一参考数据组中的编码数据块和参考数据集合构建方程组矩阵;
将计算得到的所述方程组矩阵的解矩阵的数据确定为所述目标视频数据段的数据。
在本申请实施例中,所述接收u个前端服务器发送的第一参考数据组,包括:
接收所述u个前端服务器发送的至少一个参考数据包,每个所述参考数据包包括至少一个所述第一参考数据组,所述参考数据包的格式为基于用户数据报协议UDP的数据传输协议UDT格式。
在本申请实施例中,所述方法还包括:
当在所述第二预设时长结束时所述预设存储位置存储的第一参考数据组的个数小于所述k时,删除所述预设存储位置存储的所述第一参考数据组。
在本申请实施例中,所述方法还包括:
当在所述第二预设时长结束时接收到的所述第一参考数据组的个数小于所述k时,获取接收到的所述第一参考数据组的个数与所述k的差值的绝对值;
将所述绝对值作为当前解码差值发送至所述视频编码设备中。
视频解码设备删除第一参考数据组可以避免第一参考数据组对预设存储位置的占用时间过长,从而导致其他视频数据段编码得到的参考数据组从预设存储位置中溢出,而视频解码设备不删除第一参考数据组并向视频编码设备发送当前解码差值可以减少视频编码设备后续向视频解码设备重传的第一参考数据组的个数,从而节约网络资源。
在本申请的一个实施例中,所述方法还包括:
在所述第二预设时长内,在接收到的所述第一参考数据组的个数达到所述k后,向所述视频编码设备发送当前解码差值,所述当前解码差值为0。
在本申请的一个实施例中,所述根据接收到的k个所述第一参考数据组中的编码数据块和参考数据集合构建方程组矩阵,包括:
解析接收到的k个所述第一参考数据组,得到k个所述编码数据块和与k个所述编码数据块一一对应的k个所述参考数据集合;
利用k个所述编码数据块构建所述方程组矩阵的常数项矩阵,每个所述编码数据块作为所述常数项矩阵的一行;
利用k个所述参考数据集合构建所述方程组矩阵的系数矩阵,每个所述参考数据集合作为所述系数矩阵的一行,每个所述参考数据集合所在所述系数矩阵的行的排序与对应的所述编码数据块所在所述常数项矩阵的行的排序相同。
在本申请的一个实施例中,所述接收u个前端服务器发送的第一参考数据组之后,所述方法还包括:
将所述至少两个第一参考数据组存储于预设存储位置。
在本申请的一个实施例中,所述预设存储位置的存储空间大小根据最大延迟时长、最小延迟时长和所述视频数据流中的视频数据段的生成时长确定;
所述最大延迟时长为参考数据组由所述视频编码设备经由所述前端服务器发送至所述视频解码设备所需的最大的时长,所述最小延迟时长为参考数据组由所述视频编码设备经由所述前端服务器发送至所述视频解码设备所需的最小的时长。
可选的,所述预设存储位置的存储空间大小满足第六公式,所述第六公式为:
Figure BDA0001490447830000071
其中,Q为所述预设存储位置的存储空间大小,max(delay)为所述最大延迟时长,min(delay)为所述最小延迟时长,generate_time为所述视频数据流中的视频数据段的生成时长,s为视频数据段的数据量大小。
预设存储位置可能需要同时存储多个视频数据段经过编码得到的参考数据组,为了避免预设存储位置的存储空间过小而导致参考数据组从该预设存储位置中溢出,本申请实施例可以为预设存储空间设置合适的存储空间大小。
第三方面,提供了一种视频传输装置,该装置包括至少一个模块,该至少一个模块用于实现上述第一方面或第一方面的任一可选方式所提供的视频传输方法。
第四方面,提供了一种视频传输装置,该装置包括至少一个模块,该至少一个模块用于实现上述第二方面或第二方面的任一可选方式所提供的视频传输方法。
第五方面,提供了一种视频传输装置,所述装置包括:处理器和存储器;
所述处理器被配置为执行所述存储器中存储的指令,所述处理器通过执行所述指令来实现上述第一方面或第一方面的任一可选方式所提供的视频传输方法。
第六方面,提供了一种视频传输装置,所述装置包括:处理器和存储器;
所述处理器被配置为执行所述存储器中存储的指令,所述处理器通过执行所述指令来实现上述第二方面或第二方面的任一可选方式所提供的视频传输方法。
第七方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在计算机的处理组件上运行时,使得所述处理组件执行上述第一方面或第一方面的任一可选方式所提供的视频传输方法,或者,使得所述处理组件执行上述第二方面或第二方面的任一可选方式所提供的视频传输方法。
本发明实施例提供的技术方案带来的有益效果是:
通过视频编码设备利用t个参考数据集合分别对包括k个数据块的目标视频数据段进行编码,以得到与该t个参考数据集合一一对应的t个编码数据块,该t个参考数据集合中的任意k个参考数据集合和与该任意k个参考数据集合对应的k个编码数据块能够构建方程组矩阵,且该方程组矩阵的解矩阵的数据为目标视频数据段的数据,而后视频编码设备可以通过n个前端服务器向视频解码设备发送t个第一参考数据组,每个第一参考数据组包括一个编码数据块和与该编码数据块对应的编码数据集合,也即是每个第一参考数据组就相当于上述方程组矩阵对应的方程组中的一个方程,这样视频解码设备在接收到该t个第一参考数据组中的任意k个第一参考数据组,也即是在接收到任意k个方程后,就可以构建方程组矩阵,并求解该方程组矩阵的解矩阵以解码得到该目标视频数据段,这样,即使出现了丢包,视频编码设备仍有较大的概率接收到t个第一参考数据组中的k个参考数据组,这样就可以降低发生丢包时视频编码设备需要进行数据重传的概率,从而能够一定程度上避免直播视频的卡顿和延迟,此外,当n大于1时,视频编码设备可以在直播视频的上行过程中,通过多条路径,也即是通过多个前端服务器,发送视频数据,这提高了对直播网络上行带宽的利用率,从而能够一定程度上避免直播视频的卡顿和延迟。
附图说明
图1是相关技术提供的直播网络的示意图。
图2A是本申请实施例提供的一种直播网络的示意图。
图2B是本申请实施例提供的另一种直播网络的示意图。
图3A是本申请实施例提供的一种视频传输方法的流程图。
图3B是本申请实施例提供的一种在ρ=0.03时,不同β取值下,ρj
Figure BDA0001490447830000081
的关系曲线图。
图4是本申请实施例提供的一种视频传输方法中部分步骤的流程图。
图5A是本申请实施例提供的一种视频传输方法中部分步骤的流程图。
图5B是本申请实施例提供的一种传输时延与数据块个数k的对应关系的示意图。
图6是本申请实施例提供的一种视频传输装置的框图。
图7是本申请实施例提供的一种视频传输装置的框图。
图8是本申请实施例提供的一种视频传输装置的框图。
图9是本申请实施例提供的一种视频传输装置的框图。
图10是本申请实施例提供的一种视频传输装置的框图。
图11是本申请实施例提供的一种视频传输装置的框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
网络直播指的是通过直播网络进行的视频直播,如图1所示,在相关技术中,直播网络可以包括主播终端101、观众终端102以及位于主播终端101和观众终端102之间的内容分发网络(英文:Content Delivery Network;简称:CDN)103,其中,CDN网络103可以包括多个前端服务器(图1中仅以两个前端服务器为例,分别为前端服务器B和前端服务器D)、集中控制器A和后台存储服务器C。
在实际应用中,网络直播可以包括直播视频的上行和直播视频的下行两个过程。其中,在直播视频的上行过程中,主播终端101可以拍摄直播视频,并向CDN网络103中的集中控制器A发送上传请求,集中控制器A在接收到该上传请求后,可以基于一定的调度策略向主播终端101返回CDN网络103中的一个前端服务器B的网际互联协议(英文:InternetProtocol;简称:IP)地址,该前端服务器B为CDN网络103的多个前端服务器中在地理位置上与主播终端101最近的一个前端服务器。主播终端101可以基于接收到的IP地址,向该前端服务器B发送直播视频的视频数据流。接收到视频数据流的前端服务器B可以将该视频数据流转发至CDN网络103的后台存储服务器C中。
在直播视频的下行过程中,观众终端102可以向集中控制器A发送观看请求,集中控制器A在接收到该观看请求后,可以基于一定的调度策略向观众终端102返回CDN网络103中的一个前端服务器D的IP地址,该前端服务器D为CDN网络103的多个前端服务器中在地理位置上与观众终端102最近的一个前端服务器。观众终端102可以基于接收到的IP地址,向前端服务器D发送数据流获取请求。接收到该数据流获取请求的前端服务器D可以从后台存储服务器C中获取视频数据流,并将该视频数据流发送至观众终端102,以由观众终端102基于接收到的视频数据流播放直播视频。
在直播视频的上行过程中,若发生丢包,主播终端需要进行视频数据的重传,这容易引起直播视频的卡顿和延迟,此外,现有技术中,主播终端仅向CDN网络的一个前端服务器发送直播视频,这种单路径发送视频数据的方式导致主播终端对上行带宽的利用率较低,而实际应用中,直播网络的上行带宽通常较小,在这一基础上,主播终端对上行带宽的利用率较低会导致直播视频的上行速率较低,从而也容易引起直播视频的卡顿和延迟。
为了降低直播视频出现卡顿和延迟的概率,本申请提供了一种视频传输方法。图2A所示为该视频传输方法所涉及到的一种直播网络的示意图,如图2A所示,该直播网络可以包括主播终端201、CDN网络202和观众终端203。其中,主播终端201和观众终端203可以为手机或平板电脑等具有视频播放功能的电子设备,CDN网络202可以包括多个前端服务器2021、视频解码服务器2022和后台存储服务器2023。在图2A所示的直播网络中,主播终端201可以与CDN网络202的多个前端服务器2021中的至少两个前端服务器2021进行通信(图2A仅示出了两个与主播终端201进行通信的前端服务器2021),该至少两个前端服务器2021中的每一个前端服务器2021均可以与视频解码服务器2022进行通信,视频解码服务器2022可以与后台存储服务器2023进行通信。观众终端203可以与CDN网络202的多个前端服务器2021中的至少一个前端服务器2021进行通信(图2A仅示出了一个与观众终端203进行通信的前端服务器2021),该至少一个前端服务器2021中的每个前端服务器2021均可以与后台存储服务器2023进行通信。
图2B所示为本申请提供的视频传输方法所涉及到的另一种直播网络的示意图,图2B所示的直播网络的架构与图2A所示的直播网络的架构基本相同,其也包括主播终端201、CDN网络202和观众终端203,CDN网络202也可以包括多个前端服务器2021、视频解码服务器2022和后台存储服务器2023。图2B所示的直播网络的架构与图2A所示的直播网络的架构区别之处在于,图2B所示的直播网络还包括视频编码服务器204。在图2B所述的直播网络中,主播终端201可以与视频编码服务器204进行通信,视频编码服务器204可以与CDN网络202的多个前端服务器2021中的至少两个前端服务器2021进行通信(图2B仅示出了两个与视频编码服务器204进行通信的前端服务器2021),该至少两个前端服务器2021中的每一个前端服务器2021均可以与视频解码服务器2022进行通信。
需要指出的是,在本申请的一个实施例中,图2A和图2B所示的直播网络中,CDN网络202还可以包括集中控制器。在图2A所示的直播网络中,该集中控制器可以与主播终端201和观众终端203分别进行通信,在图2B所示的直播网络中,该集中控制器可以与视频编码服务器204和观众终端203分别进行通信。
图3A所示为本申请实施例提供的一种视频传输方法的流程图,该视频传输方法可以应用于图2A或图2B所示的直播网络中,如图3A所示,该视频传输方法可以包括以下步骤:
步骤301、视频编码设备从待传输直播视频的视频数据流中获取目标视频数据段。
需要指出的是,上述视频编码设备可以为图2A中的主播终端201,也可以为图2B中的视频编码服务器204。换句话说,在本申请实施例中,可以由主播终端执行获取目标视频数据段并在后续步骤中对该目标视频数据段进行编码的技术过程,也可以由视频编码服务器执行获取目标视频数据段并在后续步骤中对该目标视频数据段进行编码的技术过程。
在视频编码设备为主播终端的情况下,直播网络中可以不需要部署视频编码服务器,从而可以降低硬件上的开销,减小直播网络的部署成本。而在视频编码设备为视频编码服务器的情况下,主播终端不需要执行对目标视频数据段进行编码的技术过程,因此,不需要给主播终端中安装的网络直播应用增加视频编码功能,也即是不需要对现有的网络直播应用进行修改,因此软件上的开销较低,同时可以保证本申请实施例提供的视频传输方法能够与现有的网络直播应用相兼容。
在视频编码设备为主播终端时,步骤301中,视频编码设备可以获取自身拍摄的待传输直播视频的视频数据流,并从该视频数据流中持续地获取多个视频数据段,其中,上文所述的目标视频数据段为该多个视频数据段中的一个视频数据段,本申请实施例仅以对该目标视频数据段的编解码及传输过程为例对本申请提供的技术方案进行说明,本申请对其他的视频数据段的处理方式与目标视频数据段同理。
在视频编码设备为视频编码服务器时,步骤301中,视频编码设备可以接收主播终端发送的待传输直播视频的视频数据流,并从接收到的视频数据流中持续地获取多个视频数据段,该目标视频数据段为该多个视频数据段中的一个视频数据段。需要指出的是,在视频编码设备为视频编码服务器的情况下,该视频编码设备可以设置于基站等在地理上距离主播终端较近的位置上,这样可以保证视频编码设备与主播终端之间的网络通信质量,从而提高主播终端向视频编码设备发送视频数据流的速率。
实际应用中,上述目标视频数据段可以包括k个大小相同的数据块,其中,k为大于或等于1的正整数。在本申请实施例中,上述数据块的大小可以根据待传输直播视频的视频数据流封装格式进行设定,以传送流(英文:Transport Stream;简称:ts)封装格式为例,在ts封装格式下,一个ts包的大小为188字节,由于以太网的最大传输单元(英文:MaximumTransmission Unit;简称:MTU)的大小为1500字节,因此,以太网中的一个数据帧最多能封装7个ts包,也即是1316字节,在这种情况下,可以将数据块的大小设定为1316字节。
如上所述,当视频编码设备为视频编码服务器时,视频编码设备需要接收主播终端发送的待传输直播视频的视频数据流,并从该视频数据流中获取目标视频数据段,也即是从该视频数据流中获取k个数据块以组成目标视频数据段。然而,在一些情况下,主播终端与视频编码设备间的网络通信质量较差,因此主播终端与视频编码设备之间传输视频数据流的速率较低,这时就会出现视频编码设备迟迟无法接收到足够的视频数据流,从而无法从接收到的视频数据流中获取k个数据块,也即是获取目标视频数据段的情况。
为了避免视频编码设备获取目标视频数据段的时延过长,影响待传输直播视频的上行速率,在本申请的一个实施例中,可以为视频编码设备设定一个第一预设时长。视频编码设备可以在从视频数据流中获取目标视频数据段的第一个数据块后开始计时,并在计时过程中实时监控自身获取到的数据块的个数,当在该第一预设时长内的任一时刻中视频编码设备检测到自身获取到的数据块的个数达到k,视频编码设备就可以用获取到的k个数据块组成目标视频数据段,当在该第一预设时长结束时视频编码设备获取到的数据块的个数仍然小于k时,视频编码设备就可以使用预设数据(例如该预设数据可以为0)对已经获取到的数据块进行填充以得到k个数据块,而后视频编码设备可以用填充得到的k个数据块组成目标视频数据段。这样,视频编码设备获取目标视频数据段的时长将不会超过第一预设时长,从而避免视频编码设备获取目标视频数据段的时延过长,继而影响待传输直播视频的上行速率的情况发生。
在视频编码设备获取到了目标视频数据段后,视频编码设备可以对该目标视频数据段进行编码,其中,对目标视频数据段进行编码的技术过程可以包括下述步骤302和303。
步骤302、视频编码设备获取t个参考数据集合,其中,t为大于或等于k的正整数。
在对目标视频数据段进行编码时,视频编码设备可以获取t个参考数据集合,其中,每个参考数据集合可以包括k个参考数据,且该k个参考数据与目标视频数据段包括的k个数据块一一对应,同时,该t个参考数据集合中的每个参考数据集合包括的k个参考数据都可以构建一个参考向量,且构建的t个参考向量两两之间线性无关。
例如,该t个参考数据集合中的第i个参考数据集合可以包括k个参考数据,该k个参考数据为:Ci1,Ci2,……,Ciu,……,Cik,其中,Ciu与目标视频数据段包括的k个数据块中的第u个数据块对应。该t个参考数据集合中的第j个参考数据集合也可以包括k个参考数据,该k个参考数据为:Cj1,Cj2,……,Cju,……,Cjk,其中,Cju与目标视频数据段包括的k个数据块中的第u个数据块对应。第i个参考数据集合可以构建向量:(Ci1,Ci2,……,Ciu,……,Cik),第j个参考数据集合可以构建向量:(Cj1,Cj2,……,Cju,……,Cjk),且这两个向量线性无关。
步骤303、视频编码设备利用每个参考数据集合分别对目标视频数据段进行编码,得到与该t个参考数据集合一一对应的t个编码数据块。
下面,本申请实施例将以视频编码设备利用上述t个参考数据集合中的第i个参考数据集合对目标视频数据段进行编码以得到该t个编码数据块中的第i个编码数据块的技术过程为例,对步骤303进行说明:
视频编码设备可以将该第i个参考数据集合包括的每个参考数据与其对应的目标视频数据段的数据块相乘,得到k个乘积,而后视频编码设备可以将该k个乘积相加,从而得到该第i个编码数据块。
例如,该第i个参考数据集合可以包括以下k个参考数据:Ci1,Ci2,……,Ciu,……,Cik,目标视频数据段可以包括以下k个数据块:b1,b2,……,bu,……,bk,其中,Ciu与bu对应,则视频编码设备根据该第i个参考数据集合对目标视频数据段进行编码得到的第i个编码数据块ai=Ci1×b1+Ci2×b2+……+Ciu×bu+……+Cik×bk
从以上说明可知,视频编码设备利用t个参考数据集合对目标视频数据段进行编码得到t个编码数据块的技术过程实际上可以用方程组矩阵中的系数矩阵与解矩阵相乘得到常数项矩阵的方式进行表示,其中,系数矩阵由上述t个参考数据集合组成,解矩阵由目标视频数据段的k个数据块组成,常数项矩阵由上述t个编码数据块组成,具体地,该编码过程可以表示为:
Figure BDA0001490447830000121
步骤304、视频编码设备获取t个第一参考数据组。
在对目标视频数据段进行编码得到t个编码数据块之后,视频编码设备可以获取t个第一参考数据组,其中,每个第一参考数据组可以包括一个编码数据块和与该编码数据块对应的参考数据集合。例如,t个第一参考数据组中的第i个第一参考数据组可以包括:t个编码数据块中的第i个编码数据块ai以及t个参考数据集合中的第i个参考数据集合,该第i个参考数据集合包括:Ci1,Ci2,……,Ciu,……,Cik
步骤305、视频编码设备通过n个前端服务器向视频解码设备发送该t个第一参考数据组,n为大于或等于1的正整数。
在本申请实施例中,视频编码设备可以向n个前端服务器中的每个前端服务器发送至少一个第一参考数据组,视频编码设备向该n个前端发送器发送的第一参考数据组的个数之和等于t。
可选的,视频编码设备可以生成a个参考数据包,其中,每个参考数据包可以包括至少一个第一参考数据组,且,a个参考数据包可以包括t个第一参考数据组,a为大于或等于1的正整数。而后,视频编码设备可以通过n个前端服务器向视频解码设备发送该a个参考数据包,从而将该t个第一参考数据组发送至视频解码设备中。需要指出的是,在本申请的一个实施例中,上述参考数据包还可以包括目标视频数据段的标识和/或待传输直播视频所属的直播频道的标识。还需要指出的是,上述视频解码设备可以为图2A或图2B中的视频解码服务器2022。
在本申请的一个实施例中,上述参考数据包的格式可以为基于用户数据报协议(英文:User Datagram Protocol;简称:UDP)的数据传输协议(英文:UDP-based DataTransfer Protocol;简称:UDT)格式,换句话说,视频编码设备可以基于UDT协议将该a个参考数据包发送至视频解码设备中。
现有技术中,直播网络所采用的数据传输协议一般为传输控制协议(英文:Transmission Control Protocol;简称:TCP),其中,TCP协议的拥塞控制机制为加性增乘性减(英文:Additive Increase Multiplicative Decrease;简称:AIMD)机制。在AIMD机制下,当某一链路出现丢包时,该链路的发送窗口将会减半,例如,当发送设备A与接收设备B之间出现丢包时,AIMD机制会将发送设备A的发送窗口减半。发送窗口减半会较为严重地影响数据传输速率,因此,在直播网络基于TCP协议传输视频数据流时,丢包将会较为严重地影响视频数据流的传输速率,从而导致观众终端播放直播视频时出现延迟过长以及卡顿过为频繁的现象。
为了降低丢包对直播网络中视频数据流的传输速率的影响,在本申请实施例中,直播网络可以基于UDT协议传输视频数据流,也即是如上文所述的视频编码设备基于UDT协议将a个参考数据包发送至视频解码设备中。UDT协议的拥塞控制机制为减小的加性增乘性减(英文:Decreasing Additive Increase Multiplicative Decrease;简称:DAIMD)机制,由于在DAIMD机制下,当某一链路出现丢包时,可以根据该链路的可用带宽减小发送窗口,且发送窗口的减小幅度为1/8至1/2之间的随机数,因此相较于TCP协议而言可以降低丢包对直播网络中视频数据流的传输速率的影响。
实际应用中,在发送该t个第一参考数据组之前,视频编码设备可以与CDN网络中的r个前端服务器建立通信连接,r为大于或等于n的正整数。在一些情况下,视频编码设备可以直接通过该r个前端服务器向视频解码设备发送该t个第一参考数据组。在另一些情况下,视频编码设备还可以根据自身与该r个前端服务器中的每个前端服务器之间的数据传输速率,从该r个前端服务器中确定出网络通信质量较优的n个前端服务器,并通过该n个前端服务器向视频解码设备发送该t个第一参考数据组,由于确定出的n个前端服务器与视频编码设备之间的网络通信质量较优,因此,视频编码设备通过该n个前端服务器发送数据的速率较快,从而可以保证视频数据流的上行速率。
在本申请的一个实施例中,视频编码设备与某一前端服务器之间的网络通信质量可以用该前端服务器的效用值进行表征,效用值越大,该前端服务器与视频编码设备之间的网络通信质量越好。则在从r个前端服务器中确定n个前端服务器的过程中,视频编码设备可以计算该r个前端服务器中每个前端服务器的效用值,并按照效用值由高至低的顺序,从该r个前端服务器中确定n个前端服务器,该n个前端服务器的效用值大于该r个前端服务器中的其他前端服务器的效用值。
在本申请的一个实施例中,前端服务器的效用值可以由下述第三公式计算得到:
Figure BDA0001490447830000131
在上述第三公式中,uj为该r个前端服务器中第j个前端服务器的效用值,thrj为视频编码设备与该第j个前端服务器之间的数据传输速率,ρj为视频编码设备与该第j个前端服务器之间的丢包率,ρ为直播网络的平均丢包率,其可以根据经验值进行设定,例如ρ可以设定为0.03,β为常数,e为自然对数的底数。
在实际应用中,视频编码设备与前端服务器之间的网络通信质量通常由该视频编码设备与前端服务器之间的数据传输速率和丢包率决定,其中,数据传输速率可以反映视频编码设备与前端服务器之间的可用带宽,丢包率可以反映视频编码设备与前端服务器之间的路径拥塞程度,因此,在上述第三公式中,前端服务器的效用值可以由视频编码设备与前端服务器之间的数据传输速率和丢包率计算得到。
通常情况下,丢包率对视频编码设备与前端服务器之间的网络通信质量影响较大,这是因为在出现丢包时,视频编码设备的发送窗口会减小,且,视频编码设备还需要进行数据包的重传。在上述第三公式中,可以通过调节常数β的值来调节丢包率对效用值大小的重要程度,具体地,当ρj>ρ时,β的取值越大,上述第j个前端服务器的效用值随ρj的增大而降低的速率越大。如图3B所示为ρ=0.03时,不同β取值下,ρj与sigmoid函数
Figure BDA0001490447830000141
的关系曲线,由图3B可知,β的取值越大,sigmoid函数
Figure BDA0001490447830000142
随ρj增大而降低的速率越大。在一些情况下,如果无法获取丢包率,则可以将β的值设为0,这样丢包率将对效用值的大小不起作用。
本申请的一个实施例中,在通过n个前端服务器向视频解码设备发送该t个第一参考数据组的过程中,视频编码设备可以通过n个前端服务器中的每个前端服务器向视频解码设备发送不同个数的第一参考数据组。例如,视频编码设备可以通过该n个前端服务器中的第一个前端服务器向视频解码设备发送y1个第一参考数据组,通过第二个前端服务器向视频解码设备发送y2个第一参考数据组,……,通过第l个前端服务器向视频解码设备发送yl个第一参考数据组,……,通过第n个前端服务器向视频解码设备发送yn个第一参考数据组,且,y1+y2+……+yl+……+yn=t。
通常情况下,效用值较高的前端服务器与视频编码设备之间的网络通信质量较好,视频编码设备可以向其发送较多个数的第一参考数据组,而效用值较低的前端服务器与视频编码设备之间的网络通信质量较差,为了降低数据传输时延,视频编码设备可以向其发送较少个数的第一参考数据组。
为了实现上述技术过程,视频编码设备可以在发送该t个第一参考数据组之前,根据下述第四公式计算n个前端服务器中每个前端服务器对应的第一参考数据组的个数,而后,视频编码设备可以向每个前端服务器发送对应个数的第一参考数据组,以由该前端服务器将接收到的第一参考数据组发送至视频解码设备中。其中,第四公式为:
Figure BDA0001490447830000143
在上述第四公式中,yl为该n个前端服务器中第l个前端服务器对应的第一参考数据组的个数,ul为该第l个前端服务器的效用值,
Figure BDA0001490447830000144
为该n个前端服务器的效用值的和。
需要指出的是,当视频编码设备为主播终端,且,主播终端为多宿主终端(多宿主终端可以使用不同的连网方式同时与网络进行数据交互)时,视频编码设备可以通过不同的连网方式向视频解码设备发送该t个第一参考数据组。其中,该不同的连网方式可以包括无线保真(英文:Wireless Fidelity;简称:WIFI)方式连网、移动通信连网或固话网连网等。这样,可以增加视频编码设备的上行带宽,从而提高视频编码设备发送该t个第一参考数据组的速率,继而提高了待传输直播视频的视频数据流的上行速率。
在视频编码设备通过n个前端服务器向视频解码设备发送该t个第一参考数据组之后,视频编码设备还可以实时地检测自身与该n个前端服务器中的每个前端服务器之间的丢包率,当视频编码设备检测到自身与某一个或某几个前端服务器之间的丢包率大于预设丢包率阈值时,视频编码设备可以重传第一参考数据组,其中,预设丢包率阈值可以由技术人员进行设定。
可选的,在重传第一参考数据组的过程中,视频编码设备可以获取d个参考数据集合(d为大于或等于1的正整数),其中,该d个参考数据集合中的每个参考数据集合包括的k个参考数据都可以构建一个参考向量,构建的d个参考向量两两之间线性无关,且,构建的d个参考向量与上述t个参考数据集合构建的t个参考向量中的任一个参考向量均线性无关。而后视频编码设备可以基于与步骤303和步骤304同理的技术过程利用该d个参考数据集合对目标视频数据段进行编码,得到d个第一参考数据组。而后,视频编码设备可以将该d个第一参考数据组通过该n个前端服务器中效用值最高的一个或几个前端服务器(该一个或几个前端服务器与视频编码设备间的丢包率需要小于预设丢包率阈值)发送至视频解码设备中。
步骤306、视频解码设备接收u个前端服务器发送的第一参考数据组,1<u≤n。
视频解码设备可以接收前端服务器发送的参考数据包,并从该参考数据包中提取出第一参考数据组。在实际应用中,若视频编码设备和该n个前端服务器之间不发生丢包,且该n个前端服务器与视频解码设备之间也不发生丢包,则视频解码设备可以接收到n个前端服务器发送的a个参考数据包,并从该a个参考数据包中提取出t个第一参考数据组。但是,当视频编码设备和该n个前端服务器之间发生了丢包,或者,该n个前端服务器与视频解码设备之间发生了丢包时(在一些极端的情况下,视频编码设备通过某个前端服务器发送的参考数据包甚至可能全部丢失),视频解码设备接收到的参考数据包的个数将小于a,同时视频解码设备提取到的第一参考数据组的个数也将小于t。
步骤307、视频解码设备将接收到的第一参考数据组存储于预设存储位置。
在实际应用中,由于视频编码设备编码得到的参考数据组从不同前端服务器发送至视频解码设备所需的时长不同,因此,视频解码设备很可能在还没有完全接收到前一视频数据段经过编码得到的参考数据组的情况下,又接收到了后一视频数据段经过编码得到的参考数据组。例如,在视频解码设备已经接收到了视频数据流中的第q个视频数据段经过编码得到的t个参考数据组中的b(1≤b<t)个参考数据组时,视频解码设备也接收到了视频数据流中的第q+1个视频数据段经过编码得到的t个参考数据组中的o(1≤o<t)个参考数据组。
在这种情况下,上述预设存储位置可能需要同时存储多个视频数据段经过编码得到的参考数据组,为了避免预设存储位置的存储空间过小而导致参考数据组从该预设存储位置中溢出,本申请实施例可以根据最大延迟时长、最小延迟时长和视频数据流中视频数据段的生成时长设定预设存储位置的存储空间大小,该预设存储位置的存储空间大小满足第六公式,该第六公式为:
Figure BDA0001490447830000161
在上述第六公式中,Q为预设存储位置的存储空间大小,max(delay)为最大延迟时长,该最大延迟时长为参考数据组从视频编码设备经由前端服务器发送至视频解码设备所需的最大的时长,min(delay)为最小延迟时长,该最小延迟时长为参考数据组从视频编码设备经由前端服务器发送至视频解码设备所需的最小的时长,generate_time为视频数据段的生成时长,该视频数据段的生成时长为主播终端生成k个数据块所需的时长,s为视频数据段的数据量大小。
在实际应用中,视频数据段的生成时长通常也可以等于视频数据段的播放时长,所谓视频数据段的播放时长指的是观众终端基于k个数据块播放待传输直播视频时所能播放的时长,其中,视频数据段的播放时长可以由下述第七公式计算得到:
Figure BDA0001490447830000162
在第七公式中,play_time为视频数据段的播放时长,B为数据块的数据量大小,bit_rate为待传输直播视频的视频播放码率。
B为数据块的大小,bit_rate为待传输直播视频的播放比特率。
在视频数据段的生成时长等于视频数据段的播放时长的情况下,根据上述第七公式,第六公式可以变形为:
Figure BDA0001490447830000163
步骤308、在第二预设时长内,当预设存储位置中存储的第一参考数据组的个数达到预设个数阈值时,视频解码设备根据预设存储位置中存储的第一参考数据组中的编码数据块和参考数据集合构建方程组矩阵,并将计算得到的方程组矩阵的解矩阵的数据确定为目标视频数据段的数据。
需要说明的是,上述预设个数阈值可以为视频解码设备成功解码得到目标视频数据段所需的第一参考数据组的个数,也即是,视频解码设备只有在接收到的第一参考数据组的个数达到预设个数阈值时才能成功解码得到目标视频数据段。
在理想的情况下,也即是在视频编码设备和该n个前端服务器之间不发生丢包,且,该n个前端服务器与视频解码设备之间也不发生丢包的情况下,视频编码设备可以仅向视频解码设备发送预设个数阈值个第一参考数据组,以使视频解码设备根据视频编码设备发送的该预设个数阈值个第一参考数据组解码得到目标视频数据段。换句话说,在理想的情况下,上述t的值可以与预设个数阈值相等。
然而,在实际应用中很有可能出现非理想的情况,也即是很有可能出现视频编码设备和该n个前端服务器之间发生了丢包,或者,该n个前端服务器与视频解码设备之间发生了丢包的情况。此时视频解码设备能够接收到的第一参考数据组的个数将小于t,因此,在这种情况下,若t的值与预设个数阈值相等,则视频解码设备一定无法成功解码得到目标视频数据段。为了避免这种情况的发生,上述t的值可以大于预设个数阈值,也即是,视频编码设备可以向视频解码设备发送大于预设个数阈值的第一参考数据组,这样,即使因为丢包而导致视频解码设备无法接收到该t个第一参考数据组中的某些第一参考数据组,但由于t的值大于预设个数阈值,因此视频解码设备仍然有可能接收到预设个数阈值个第一参考数据组,在这种情况下,视频解码设备仍能成功解码得到目标视频数据段。
然而,即使将t的值设定为大于预设个数阈值,在非理想情况下发生丢包时,视频解码设备能够接收到的第一参考数据组的个数还是有可能小于预设个数阈值,此时视频解码设备将无法成功解码得到目标视频数据段,在这种情况下,视频解码设备再持续等待接收第一参考数据组将毫无意义,还会造成预设存储位置的存储空间的浪费。
为了避免上述情况的发生,在本申请的一个实施例中,可以为视频解码设备设定一个第二预设时长。视频解码设备可以在将接收到的第一个第一参考数据组存储至预设存储位置后开始计时,并在计时过程中实时监控预设存储位置中存储的第一参考数据组的个数,当在计时开始至到达第二预设时长的这一时间段内,视频解码设备检测到预设存储位置存储的第一参考数据组的个数达到预设个数阈值时,视频解码设备就可以根据该预设个数阈值个第一参考数据组进行解码以得到目标视频数据段。
而当在第二预设时长结束时,预设存储位置存储的第一参考数据组的个数仍然小于预设个数阈值时,说明很可能出现了丢包,且丢包造成视频解码设备无法接收到预设个数阈值个第一参考数据组。此时,视频解码设备可以删除预设存储位置存储的第一参考数据组并向视频编码设备发送当前解码差值,或者,视频解码设备可以不删除预设存储位置存储的第一参考数据组,而直接向视频编码设备发送当前解码差值。其中,该当前解码差值用于反映视频解码设备距成功解码得到目标视频数据段所差的第一参考数据组的个数,也即是,该当前解码差值可以为第二预设时长结束时预设存储位置存储的第一参考数据组的个数(也即是视频解码设备接收到的第一参考数据组的个数)与预设个数阈值的差值的绝对值。
视频编码设备在接收到当前解码差值后,可以判断该当前解码差值是否大于预设差值阈值(该预设差值阈值可以为0),在确定该当前解码差值大于预设差值阈值时,说明视频解码设备无法成功解码得到目标视频数据段,此时视频编码设备需要向视频解码设备重传第一参考数据组。可选的,在重传第一参考数据组的过程中,视频编码设备可以获取m个参考数据集合(m为大于或等于k的正整数),其中,该m个参考数据集合中的每个参考数据集合包括的k个参考数据都可以构建一个参考向量,构建的m个参考向量两两之间线性无关。而后视频编码设备可以基于与步骤303至步骤305同理的技术过程,利用该m个参考数据集合中的每个参考数据集合分别对目标视频数据段进行编码,得到与该m个参考数据集合一一对应的m个编码数据块,而后通过q个前端服务器(q为大于或等于1的正整数)向视频解码设备发送m个第一参考数据组,该m个第一参考数据组中的每个第一参考数据组包括上述m个编码数据块中的一个编码数据块以及该编码数据块对应的参考数据集合。
实际应用中,在视频解码设备删除了预设存储位置存储的第一参考数据组的情况下,上述m可以等于t,在视频解码设备没有删除预设存储位置存储的第一参考数据组的情况下,上述m可以大于或等于该当前解码差值,此时,上述m个参考数据集合构建的m个参考向量需要与上述t个参考数据集合构建的t个参考向量中的任一个参考向量均线性无关,且,构建的m个参考向量还需要与上述d个参考数据集合构建的d个参考向量中的任一个参考向量均线性无关。视频解码设备删除第一参考数据组可以避免第一参考数据组对预设存储位置的占用时间过长,从而导致其他视频数据段编码得到的参考数据组从预设存储位置中溢出,而视频解码设备不删除第一参考数据组可以减少视频编码设备后续向视频解码设备重传的第一参考数据组的个数,从而节约网络资源。
需要指出的是,当视频解码设备在该第二预设时长内接收到了预设个数阈值个第一参考数据组时,视频解码设备也可以向视频编码设备发送当前解码差值,在这种情况下,该当前解码差值可以为0,此时,视频编码设备可以不对该当前解码差值进行响应。
通过为视频解码设备设定第二预设时长,可以保证视频解码设备等待接收第一参考数据组的时长不超过该第二预设时长,在第二预设时长结束时,视频解码设备还没有接收到预设个数阈值个第一参考数据组时,视频解码设备可以通过向视频编码设备发送当前解码差值的方式指示视频编码设备重传第一参考数据组。
如上所述,在第二预设时长内,视频解码设备检测到预设存储位置存储的第一参考数据组的个数达到预设个数阈值时,就可以根据该预设个数阈值个第一参考数据组进行解码以得到目标视频数据段。在解码过程中,视频解码设备可以从该预设个数阈值个第一参考数据组中解析得到预设个数阈值个编码数据块和预设个数阈值个参考数据集合,而后视频解码设备可以根据该预设个数阈值个编码数据块和预设个数阈值个参考数据集合构建方程组矩阵,其中,该方程组矩阵可以包括系数矩阵、解矩阵和常数项矩阵,且,系数矩阵与解矩阵相乘可以得到常数项矩阵。
可选的,视频解码设备在构建方程组矩阵的过程中,可以利用预设个数阈值个编码数据块构建方程组矩阵的常数项矩阵,其中,每个编码数据块可以作为常数项矩阵的一行,例如,视频解码设备构建的方程组矩阵的常数项矩阵可以为:[a1,a2,……,ai,……,av]T,其中,v为上述预设个数阈值。
同时视频解码设备可以利用预设个数阈值个参考数据集合构建方程组矩阵的系数矩阵,其中,每个参考数据集合可以作为系数矩阵的一行,且,每个参考数据集合所在系数矩阵的行的排序与该参考数据集合对应的编码数据块所在常数项矩阵的行的排序相同,例如,视频解码设备构建的方程组矩阵的系数矩阵可以为:
Figure BDA0001490447830000181
其中,参考数据集合:Ci1,Ci2,……,Ciu,……,Cik所在系数矩阵的行的排序为i,而与该参考数据集合:Ci1,Ci2,……,Ciu,……,Cik对应的编码数据块ai所在常数项矩阵的行的排序也为i。
而后,视频解码设备可以基于高斯-若尔当消元算法(英文:Gauss-JordanElimination)求解该方程组矩阵的解矩阵[x1,x2,……,xu,……,xk]T
如上所述,该方程组矩阵的解矩阵[x1,x2,……,xu,……,xk]T与系数矩阵相乘可以得到常数项矩阵,具体地:
Figure BDA0001490447830000191
因此,由上述编码过程可知,上述方程组矩阵的解矩阵[x1,x2,……,xu,……,xk]T即为目标视频数据段包括的k个数据块组成的矩阵,也即是,[x1,x2,……,xu,……,xk]T=[b1,b2,……,bu,……,bk]T
实际应用中,由于线性方程组的解与线性方程组中方程的排序无关,因此,只要视频解码设备在构建方程组矩阵时,参考数据集合所在系数矩阵的行的排序与该参考数据集合对应的编码数据块所在常数项矩阵的行的排序相同,则不管v个参考数据集合在系数矩阵中的排序方式以及v个编码数据块在常数项矩阵中的排序方式如何,方程组矩阵的解矩阵都不会发生变化,仍然满足[x1,x2,……,xu,……,xk]T=[b1,b2,……,bu,……,bk]T。例如,在v个参考数据集合在系数矩阵中的排序方式以及v个编码数据块在常数项矩阵中的排序方式发生下述变化时,方程组矩阵的解矩阵仍然不会发生变化,仍然等于[b1,b2,……,bu,……,bk]T
Figure BDA0001490447830000192
由上述分析可知,视频解码设备接收到该v个第一参考数据组的先后顺序与最终解码得到的目标视频数据段中k个数据块的先后顺序无关,这样,就可以避免待传输直播视频的视频数据流出现乱序,从而可以保证观众终端对待传输直播视频的正常播放。
此外,由于线性方程组中方程的个数等于未知数个数时,方程组有唯一解,因此,在上述方程组矩阵中,当系数矩阵与常数项矩阵的行秩v均等于k时,方程组矩阵才有唯一一个确定的解矩阵,换句话说,为了保证视频解码设备能够成功解码得到目标视频数据段,上述预设个数阈值v的取值可以等于k。
步骤309、视频解码设备将解码得到的目标视频数据段发送至后台存储服务器中。
在后续技术过程中,该后台存储服务器可以接收CDN网络的前端服务器发送的观看请求,在接收到该观看请求后,后台存储服务器可以将该目标视频数据段发送至该前端服务器中,以由该前端服务器将该目标视频数据段发送至观众终端。
视频解码设备将目标视频数据段发送至后台存储服务器,再由后台存储服务器将该目标视频数据段通过前端服务器转发至观众终端的方式使得CDN网络能够支持直播视频的回放等功能,增加了直播视频播放的灵活性。
综上所述,本申请实施例提供的视频传输方法,通过视频编码设备利用t个参考数据集合分别对包括k个数据块的目标视频数据段进行编码,以得到与该t个参考数据集合一一对应的t个编码数据块,该t个参考数据集合中的任意k个参考数据集合和与该任意k个参考数据集合对应的k个编码数据块能够构建方程组矩阵,且该方程组矩阵的解矩阵的数据为目标视频数据段的数据,而后视频编码设备可以通过n个前端服务器向视频解码设备发送t个第一参考数据组,每个第一参考数据组包括一个编码数据块和与该编码数据块对应的编码数据集合,也即是每个第一参考数据组就相当于上述方程组矩阵对应的方程组中的一个方程,这样视频解码设备在接收到该t个第一参考数据组中的任意k个第一参考数据组,也即是在接收到任意k个方程后,就可以构建方程组矩阵,并求解该方程组矩阵的解矩阵以解码得到该目标视频数据段,这样,即使出现了丢包,视频编码设备仍有较大的概率接收到t个第一参考数据组中的k个参考数据组,这样就可以降低发生丢包时视频编码设备需要进行数据重传的概率,从而能够一定程度上避免直播视频的卡顿和延迟,此外,当n大于1时,视频编码设备可以在直播视频的上行过程中,通过多条路径,也即是通过多个前端服务器,发送视频数据,这提高了对直播网络上行带宽的利用率,从而能够一定程度上避免直播视频的卡顿和延迟。
为了保证视频解码设备在出现丢包时仍能成功解码得到目标视频数据段,视频编码设备需要将t的值设定为一个大于预设个数阈值(也即是k)的值,而在实际应用中,t的值设定得过大会导致视频编码设备向视频解码设备发送过多的对解码没有作用的第一参考数据组,从而浪费直播网络的网络资源,而t的值设定得过小会导致丢包时视频解码设备难以接收到预设个数阈值个第一参考数据组,从而导致视频解码设备无法成功解码得到目标视频数据段。因此,如何为t设定合适大小的值在本申请提供的视频传输方法中占据重要地位,为了解决这一问题,本申请实施例提供了另一种视频传输方法,该视频传输方法可以应用于图2A或图2B所示的直播网络中,该视频传输方法除了包括图3A所示实施例中的步骤301至309的技术过程外,还可以包括图4所示的步骤401和402,其中,该步骤401和402可以在步骤302之前执行:
步骤401、在目标视频数据段为视频编码设备从待传输直播视频的视频数据流中获取的第一个视频数据段时,视频编码设备根据直播网络的平均丢包率确定t的值。
如上所述,视频编码设备可以从待传输直播视频的视频数据流中持续地获取多个视频数据段,其中,目标视频数据段就是该多个视频数据段中的一个视频数据段。在该目标视频数据段为视频编码设备从视频数据流中获取的第一个视频数据段时,视频编码设备可以在执行获取t个参考数据集合之前,先基于直播网络的平均丢包率确定t的值。可选的,在这种情况下,视频编码设备可以基于第二公式计算上述t的值,该第二公式为:
Figure BDA0001490447830000201
在第二公式中,ρ为直播网络的平均丢包率,其可以根据经验值进行设定,例如ρ可以设定为0.03,
Figure BDA0001490447830000202
为向下取整运算符,min()为求最小值运算。
步骤402、在目标视频数据段为视频编码设备从视频数据流中获取的第p+1个(p为大于或等于1的正整数)视频数据段时,视频编码设备根据接收到的p个历史解码差值确定t的值。
在本申请实施例中,对于视频编码设备从视频数据流中获取的每一个视频数据段,视频解码设备都可以向视频编码设备返回一个解码差值,其中,在视频编码设备对目标视频数据段进行编码之前,视频解码设备向视频编码设备返回的解码差值可以称为历史解码差值,而视频解码设备针对目标视频数据段向视频编码设备返回的解码差值可以称为当前解码差值。
由上述说明可知,在对目标视频数据段进行编码之前,视频编码设备可以接收到视频解码设备发送的p个历史解码差值,其中,该p个历史解码差值中的第i个历史解码差值用于反映视频解码设备在第二预设时长结束时距成功解码得到第i个视频数据段还差的参考数据组的个数,其中,第i个视频数据段指的是视频编码设备在获取到目标视频数据段之前从视频数据流中获取的p个视频数据段中的第i个视频数据段。
可选的,当视频解码设备成功解码得到了该第i个视频数据段时,该第i个历史解码差值di=0,在视频解码设备未成功解码得到该第i个视频数据段时,该第i个历史解码差值di=y-x,其中,y为视频解码设备成功解码得到第i个视频数据段所需的参考数据组的个数,在本申请实施例中,y可以等于上述预设个数阈值,也即是y可以等于k,x为视频解码设备获取的第i个视频数据段经过编码得到的参考数据组的个数。
在该目标视频数据段为视频编码设备从视频数据流中获取的第p+1个视频数据段时,视频编码设备可以在执行获取t个参考数据集合之前,先基于接收到的p个历史解码差值确定t的值。可选的,在这种情况下,视频编码设备可以基于第一公式计算上述t的值,该第一公式为:
Figure BDA0001490447830000211
在第一公式中,Fi=di/k且1≤i≤p,其中,di为上述p个历史解码差值中的第i个历史解码差值,
Figure BDA0001490447830000212
g为权重参数,0≤g≤1,通常情况下,g可以取0.1或0.2,tp为视频编码设备在对视频数据流中的第p个视频数据段进行编码时,获取的参考数据集合的个数。
综上所述,本申请实施例提供的视频传输方法,通过视频编码设备利用t个参考数据集合分别对包括k个数据块的目标视频数据段进行编码,以得到与该t个参考数据集合一一对应的t个编码数据块,该t个参考数据集合中的任意k个参考数据集合和与该任意k个参考数据集合对应的k个编码数据块能够构建方程组矩阵,且该方程组矩阵的解矩阵的数据为目标视频数据段的数据,而后视频编码设备可以通过n个前端服务器向视频解码设备发送t个第一参考数据组,每个第一参考数据组包括一个编码数据块和与该编码数据块对应的编码数据集合,也即是每个第一参考数据组就相当于上述方程组矩阵对应的方程组中的一个方程,这样视频解码设备在接收到该t个第一参考数据组中的任意k个第一参考数据组,也即是在接收到任意k个方程后,就可以构建方程组矩阵,并求解该方程组矩阵的解矩阵以解码得到该目标视频数据段,这样,即使出现了丢包,视频编码设备仍有较大的概率接收到t个第一参考数据组中的k个参考数据组,这样就可以降低发生丢包时视频编码设备需要进行数据重传的概率,从而能够一定程度上避免直播视频的卡顿和延迟,此外,当n大于1时,视频编码设备可以在直播视频的上行过程中,通过多条路径,也即是通过多个前端服务器,发送视频数据,这提高了对直播网络上行带宽的利用率,从而能够一定程度上避免直播视频的卡顿和延迟。
进一步地,通过视频编码设备在获取t个参考数据集合之前,基于第一公式或第二公式确定t的值,可以保证视频编码设备为t设置合适大小的值,从而既能够避免对直播网络的网络资源的浪费,又能够避免视频解码设备无法成功解码得到目标视频数据段的情况发生。
在实际应用中,视频数据段包括的数据块的个数k与视频数据段的上行时延相关,其中该上行时延为视频数据段从主播终端发送至视频解码设备的传输时延,因此,本申请实施例可以为k设置一个合适大小的值,以使上述上行时延位于预设的传输时延范围内。为了实现上述技术过程,本申请实施例提供了另一种视频传输方法,该视频传输方法可以应用于图2A或图2B所示的直播网络中,该视频传输方法除了包括图3A所示实施例中的步骤301至309的技术过程外,还可以包括图5A所示的步骤501,其中,该步骤501可以在步骤301之前执行:
步骤501、视频编码设备确定k的值。
在本申请实施例中,视频编码设备可以接收其他设备发送的配置指令,该配置指令可以指示k的值,配置指令指示的k的值能够使传输时延位于预设的传输时延范围内,或者,视频编码设备也可以根据预设的传输时延与数据块个数k的对应关系,确定k的值,使得k对应的传输时延处于预设的传输时延范围内。需要指出的是,上述“传输时延”也即是上文所述的视频数据段的上行时延,换句话说,上述“传输时延”指的是视频数据段从主播终端发送至视频解码设备的传输时延。
下面,本申请实施例将对视频编码设备根据预设的传输时延与数据块个数k的对应关系,确定k的值的技术过程进行说明:
在实际应用中,该传输时延一般可以包括:主播终端生成一个视频数据段所需的时长、视频编码设备对该视频数据段进行编码所需的时长、视频编码设备将编码后的视频数据段发送至n个前端服务器所需的时长,该n个前段服务器将编码后的视频数据段发送至视频解码设备所需的时长以及视频解码设备对该视频数据段进行解码所需的时长。
需要说明的是,在视频编码设备为视频编码服务器时,该传输时延还可以包括主播终端将视频数据段发送至视频编码服务器所需的时长,但是,由于视频编码服务器通常可以设置于基站等距主播终端地理上较近的位置中,因此,上述主播终端将视频数据段发送至视频编码服务器所需的时长可以忽略不计。
主播终端生成一个视频数据段所需的时长generate_time通常等于视频数据段的播放时长play_time,其中,所谓视频数据段的播放时长指的是观众终端基于一个视频数据段播放待传输直播视频时所能播放的时长,其中,视频数据段的播放时长可以由上文所述第七公式计算得到,该第七公式为:
Figure BDA0001490447830000221
其中,B为数据块的数据量大小,bit_rate为待传输直播视频的视频播放码率。
视频编码设备对视频数据段进行编码所需的时长和视频解码设备对视频数据段进行解码所需的时长相等,均为Tcoding
Figure BDA0001490447830000231
其中,T0为视频编码设备编码或视频解码设备解码由k0个数据量大小为B0的数据块组成的视频数据段所需的时长,经过测量发现,在k0=10,B0=1KB时,T0=0.1ms,因此,Tcoding还可以为:
Figure BDA0001490447830000232
视频编码设备将编码后的视频数据段发送至n个前端服务器所需的时长trans_time1
Figure BDA0001490447830000233
其中,e为自然对数的底数,t为视频编码设备获取的参考数据集合的个数,β为常数,ρmin为视频编码设备与n个前端服务器中的每个前端服务器之间的丢包率的最小值,ρ为直播网络的平均丢包率,其可以根据经验值进行设定,例如ρ可以设定为0.03,thrw为视频编码设备与n个前端服务器中的第w个前端服务器之间的数据传输速率,ρw为视频编码设备与n个前端服务器中的第w个前端服务器之间的丢包率。
n个前段服务器将编码后的视频数据段发送至视频解码设备所需的时长trans_time2
Figure BDA0001490447830000234
其中,RTTv为数据包在n个前端服务器中的第v个前端服务器与视频解码设备之间的往返时长,loss%v为n个前端服务器中的第v个前端服务器与视频解码设备之间的丢包率,RTO为超时重传时限(英文:Retransmission Timeout),max()表示求最大值运算。
由上述分析可知,传输时延与数据块个数k的对应关系可以为:
Figure BDA0001490447830000235
其中,delay为传输时延,Δ为误差时延,其指的是由于链路停顿等原因造成的误差延迟,通常情况下,Δ的值可以根据经验值得出。
图5B所示为传输时延与数据块个数k的对应关系的一个示例性的示意图,如图5B所示,当需要保证传输时延小于100ms时,可以将k的值设定为30。
综上所述,本申请实施例提供的视频传输方法,通过视频编码设备利用t个参考数据集合分别对包括k个数据块的目标视频数据段进行编码,以得到与该t个参考数据集合一一对应的t个编码数据块,该t个参考数据集合中的任意k个参考数据集合和与该任意k个参考数据集合对应的k个编码数据块能够构建方程组矩阵,且该方程组矩阵的解矩阵的数据为目标视频数据段的数据,而后视频编码设备可以通过n个前端服务器向视频解码设备发送t个第一参考数据组,每个第一参考数据组包括一个编码数据块和与该编码数据块对应的编码数据集合,也即是每个第一参考数据组就相当于上述方程组矩阵对应的方程组中的一个方程,这样视频解码设备在接收到该t个第一参考数据组中的任意k个第一参考数据组,也即是在接收到任意k个方程后,就可以构建方程组矩阵,并求解该方程组矩阵的解矩阵以解码得到该目标视频数据段,这样,即使出现了丢包,视频编码设备仍有较大的概率接收到t个第一参考数据组中的k个参考数据组,这样就可以降低发生丢包时视频编码设备需要进行数据重传的概率,从而能够一定程度上避免直播视频的卡顿和延迟,此外,当n大于1时,视频编码设备可以在直播视频的上行过程中,通过多条路径,也即是通过多个前端服务器,发送视频数据,这提高了对直播网络上行带宽的利用率,从而能够一定程度上避免直播视频的卡顿和延迟。
进一步地,通过为k设置合适大小的值,可以使得视频数据段的上行时延位于预设的传输时延范围内,从而保证了视频数据段的上行速率,避免观众终端播放待传输直播视频时出现卡顿过为频繁或延迟过长的现象发生。
下述为本申请的装置实施例,可以用于执行本申请的方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
请参考图6,其示出了本申请实施例提供的一种视频传输装置600的框图。该视频传输装置600可以为视频编码设备,参见图6,该视频传输装置600可以包括第一获取模块601、第二获取模块602、编码模块603和发送模块604。
该第一获取模块601,用于获取目标视频数据段,目标视频数据段是待传输直播视频的视频数据流中的一段数据,目标视频数据段包括k个数据块,k为大于或等于1的正整数。
该第二获取模块602,用于获取t个参考数据集合,每个参考数据集合包括至少一个参考数据,t为大于k的正整数。
该编码模块603,用于利用每个参考数据集合分别对目标视频数据段进行编码,得到与t个参考数据集合一一对应的t个编码数据块,t个参考数据集合中的任意k个参考数据集合和与任意k个参考数据集合一一对应的k个编码数据块能够构建方程组矩阵,且方程组矩阵的解矩阵的数据为目标视频数据段的数据。
该发送模块604,用于通过n个前端服务器向视频解码设备发送t个第一参考数据组,n为大于或等于1的正整数;
其中,每个第一参考数据组包括一个编码数据块和对应的参考数据集合。
可选的,每个参考数据集合包括与k个数据块一一对应的k个参考数据,编码模块603,用于:对于每个参考数据集合,将参考数据集合包括的每个参考数据与对应的数据块相乘,得到k个乘积;将k个乘积相加,得到与参考数据集合对应的编码数据块。
可选的,第一获取模块601,用于:获取待传输直播视频的视频数据流;从视频数据流中获取数据块;在第一预设时长内,当获取到的数据块的个数不小于k时,将获取到的k个数据块组成目标视频数据段;当在第一预设时长结束时获取到的数据块的个数小于k时,使用预设数据对已经获取到的数据块进行填充以获得k个数据块,将填充获得的k个数据块组成目标视频数据段。
本申请实施例还提供了另一种视频传输装置700,该视频传输装置700除了包括视频传输装置600包括的各个模块外,还包括第一确定模块605、第二确定模块606、第三确定模块607和第四确定模块608。
第一确定模块605,用于:接收视频解码设备发送的p个历史解码差值,p个历史解码差值与视频数据流中目标视频数据段之前的p个视频数据段一一对应,每个历史解码差值用于反映视频解码设备在第二预设时长结束时距成功解码得到对应的视频数据段所差的参考数据组的个数;根据p个历史解码差值确定需要获取的参考数据集合的个数t的值。
p个历史解码差值中的第i个历史解码差值di满足:
当视频解码设备在第二预设时长内成功解码得到了与第i个历史解码差值对应的视频数据流中的第i个视频数据段时,di=0;
当视频解码设备在第二预设时长结束时未成功解码得到第i个视频数据段时,di=y-x;
其中,y为视频解码设备成功解码得到第i个视频数据段所需的参考数据组的个数,x为视频解码设备在第二预设时长结束时获取的与第i个视频数据段所对应参考数据组的个数,1≤i≤p。
第一确定模块605,用于:
根据p个历史解码差值,基于第一公式计算需要获取的参考数据集合的个数t的值,第一公式为:
Figure BDA0001490447830000251
其中,
Figure BDA0001490447830000252
g为权重参数,di为p个历史解码差值中的第i个历史解码差值,tp为视频编码设备在对视频数据流中的第p个视频数据段编码前,获取的参考数据集合的个数。
目标视频数据段是视频编码设备从视频数据流中获取的第1个视频数据段,第二确定模块606,用于:根据直播网络的平均丢包率确定需要获取的参考数据集合的个数t的值。
第二确定模块606,用于:
根据直播网络的平均丢包率,基于第二公式计算需要获取的参考数据集合的个数t的值,第二公式为:
Figure BDA0001490447830000253
其中,ρ为直播网络的平均丢包率,
Figure BDA0001490447830000254
为向下取整运算符。
第三确定模块607,用于:
确定与视频编码设备已建立通信连接的r个前端服务器,r为大于或等于n的正整数;
根据视频编码设备与r个前端服务器中的每个前端服务器之间的数据传输速率,从r个前端服务器中确定n个前端服务器,n个前端服务器与视频编码设备的通信质量优于其他前端服务器与视频编码设备的通信质量。
第三确定模块607,用于:
根据视频编码设备与r个前端服务器中的每个前端服务器之间的数据传输速率,基于第三公式计算每个前端服务器的效用值,第三公式为:
Figure BDA0001490447830000255
其中,uj为r个前端服务器中第j个前端服务器的效用值,1≤j≤r,thrj为视频编码设备与第j个前端服务器之间的数据传输速率,ρj为视频编码设备与第j个前端服务器之间的丢包率,ρ为直播网络的平均丢包率,β为常数;
按照效用值由高至低的顺序,从r个前端服务器中确定n个前端服务器。
发送模块604,用于:
根据第四公式确定与n个前端服务器中的每个前端服务器对应的第一参考数据组的个数,第四公式为:
Figure BDA0001490447830000261
其中,yl为n个前端服务器中第l个前端服务器对应的第一参考数据组的个数,ul为第l个前端服务器的效用值,
Figure BDA0001490447830000262
为n个前端服务器的效用值的和,1≤l≤n;
对于每个前端服务器,向前端服务器发送对应个数的第一参考数据组,以由前端服务器将接收到的第一参考数据组发送至视频解码设备。
第四确定模块608,用于:
根据预设的传输时延与数据块个数的对应关系,确定目标视频段的数据块个数k,使得数据块个数k对应的传输时延处于预设的传输时延范围内;
其中,传输时延为视频数据段由主播终端发送至视频解码设备的传输时延。
综上所述,本申请实施例提供的视频传输装置,通过利用t个参考数据集合分别对包括k个数据块的目标视频数据段进行编码,以得到与该t个参考数据集合一一对应的t个编码数据块,该t个参考数据集合中的任意k个参考数据集合和与该任意k个参考数据集合对应的k个编码数据块能够构建方程组矩阵,且该方程组矩阵的解矩阵的数据为目标视频数据段的数据,而后视频编码设备可以通过n个前端服务器向视频解码设备发送t个第一参考数据组,每个第一参考数据组包括一个编码数据块和与该编码数据块对应的编码数据集合,也即是每个第一参考数据组就相当于上述方程组矩阵对应的方程组中的一个方程,这样视频解码设备在接收到该t个第一参考数据组中的任意k个第一参考数据组,也即是在接收到任意k个方程后,就可以构建方程组矩阵,并求解该方程组矩阵的解矩阵以解码得到该目标视频数据段,这样,即使出现了丢包,视频编码设备仍有较大的概率接收到t个第一参考数据组中的k个参考数据组,这样就可以降低发生丢包时视频编码设备需要进行数据重传的概率,从而能够一定程度上避免直播视频的卡顿和延迟,此外,当n大于1时,视频编码设备可以在直播视频的上行过程中,通过多条路径,也即是通过多个前端服务器,发送视频数据,这提高了对直播网络上行带宽的利用率,从而能够一定程度上避免直播视频的卡顿和延迟。
请参考图8,其示出了本申请实施例提供的一种视频传输装置800的框图。该视频传输装置800可以为视频解码设备,参见图8,该视频传输装置800可以包括接收模块801、构建模块802和确定模块803。
接收模块801,用于接收u个前端服务器发送的第一参考数据组,每个第一参考数据组包括编码数据块和对应的参考数据集合,每个编码数据块是视频编码设备利用对应的参考数据集合对目标视频数据段进行编码得到的,目标视频数据段是直播视频的视频数据流中的一段数据,目标视频数据段包括k个数据块,参考数据集合包括至少一个参考数据,k为大于或等于1的正整数,u为大于或等于1的正整数。
构建模块802,用于在第二预设时长内,当接收到的第一参考数据组的个数达到k时,根据接收到的k个第一参考数据组中的编码数据块和参考数据集合构建方程组矩阵。
确定模块803,用于将计算得到的方程组矩阵的解矩阵的数据确定为目标视频数据段的数据。
可选的,构建模块802,用于:
解析接收到的k个第一参考数据组,得到k个编码数据块和与k个编码数据块一一对应的k个参考数据集合;
利用k个编码数据块构建方程组矩阵的常数项矩阵,每个编码数据块作为常数项矩阵的一行;
利用k个参考数据集合构建方程组矩阵的系数矩阵,每个参考数据集合作为系数矩阵的一行,每个参考数据集合所在系数矩阵的行的排序与对应的编码数据块所在常数项矩阵的行的排序相同。
本申请实施例还提供了另一种视频传输装置900,该视频传输装置900除了包括视频传输装置800包括的各个模块外,还包括第一发送模块804、第二发送模块805和存储模块806。
第一发送模块804,用于:
当在第二预设时长结束时接收到的第一参考数据组的个数小于k时,获取接收到的第一参考数据组的个数与k的差值的绝对值;
将绝对值作为当前解码差值发送至视频编码设备中。
第二发送模块805,用于:
在第二预设时长内,在接收到的第一参考数据组的个数达到k后,向视频编码设备发送当前解码差值,当前解码差值为0。
存储模块806,用于:
将第一参考数据组存储于预设存储位置;
预设存储位置的存储空间大小根据最大延迟时长、最小延迟时长和视频数据流中的视频数据段的生成时长确定;
最大延迟时长为参考数据组由视频编码设备经由前端服务器发送至视频解码设备所需的最大的时长,最小延迟时长为参考数据组由视频编码设备经由前端服务器发送至视频解码设备所需的最小的时长。
预设存储位置的存储空间大小满足第六公式,第六公式为:
Figure BDA0001490447830000271
其中,Q为预设存储位置的存储空间大小,max(delay)为最大延迟时长,min(delay)为最小延迟时长,generate_time为视频数据流中的视频数据段的生成时长,s为视频数据段的数据量大小。
综上所述,本申请实施例提供的视频传输装置,通过利用t个参考数据集合分别对包括k个数据块的目标视频数据段进行编码,以得到与该t个参考数据集合一一对应的t个编码数据块,该t个参考数据集合中的任意k个参考数据集合和与该任意k个参考数据集合对应的k个编码数据块能够构建方程组矩阵,且该方程组矩阵的解矩阵的数据为目标视频数据段的数据,而后视频编码设备可以通过n个前端服务器向视频解码设备发送t个第一参考数据组,每个第一参考数据组包括一个编码数据块和与该编码数据块对应的编码数据集合,也即是每个第一参考数据组就相当于上述方程组矩阵对应的方程组中的一个方程,这样视频解码设备在接收到该t个第一参考数据组中的任意k个第一参考数据组,也即是在接收到任意k个方程后,就可以构建方程组矩阵,并求解该方程组矩阵的解矩阵以解码得到该目标视频数据段,这样,即使出现了丢包,视频编码设备仍有较大的概率接收到t个第一参考数据组中的k个参考数据组,这样就可以降低发生丢包时视频编码设备需要进行数据重传的概率,从而能够一定程度上避免直播视频的卡顿和延迟,此外,当n大于1时,视频编码设备可以在直播视频的上行过程中,通过多条路径,也即是通过多个前端服务器,发送视频数据,这提高了对直播网络上行带宽的利用率,从而能够一定程度上避免直播视频的卡顿和延迟。
本实施例提供了一种终端,该终端可以用于执行上述各个实施例中提供的视频编码方法。参见图10,该终端1000包括:
终端1000可以包括RF(Radio Frequency,射频)电路1010、包括有一个或一个以上计算机可读存储介质的存储器1020、输入单元1030、显示单元1040、传感器1050、音频电路1060、WiFi(Wireless Fidelity,无线保真)模块1070、包括有一个或者一个以上处理核心的处理器1080、以及电源190等部件。本领域技术人员可以理解,图10中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
RF电路1010可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器1080处理;另外,将涉及上行的数据发送给基站。通常,RF电路1010包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(SIM)卡、收发信机、耦合器、LNA(Low Noise Amplifier,低噪声放大器)、双工器等。此外,RF电路1010还可以通过无线通信与网络和其他设备通信。所述无线通信可以使用任一通信标准或协议,包括但不限于GSM(Global System of Mobile communication,全球移动通讯***)、GPRS(General Packet Radio Service,通用分组无线服务)、CDMA(Code Division Multiple Access,码分多址)、WCDMA(Wideband Code DivisionMultiple Access,宽带码分多址)、LTE(Long Term Evolution,长期演进)、电子邮件、SMS(Short Messaging Service,短消息服务)等。
存储器1020可用于存储软件程序以及模块,处理器1080通过运行存储在存储器1020的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器1020可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据终端1000的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器1020可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器1020还可以包括存储器控制器,以提供处理器1080和输入单元1030对存储器1020的访问。
输入单元1030可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,输入单元1030可包括触敏表面1031以及其他输入设备1032。触敏表面1031,也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面1031上或在触敏表面1031附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触敏表面1031可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器1080,并能接收处理器1080发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触敏表面1031。除了触敏表面1031,输入单元1030还可以包括其他输入设备1032。具体地,其他输入设备1032可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元1040可用于显示由用户输入的信息或提供给用户的信息以及终端1000的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元1040可包括显示面板1041,可选的,可以采用LCD(Liquid Crystal Display,液晶显示器)、OLED(Organic Light-Emitting Diode,有机发光二极管)等形式来配置显示面板1041。进一步的,触敏表面1031可覆盖显示面板1041,当触敏表面1031检测到在其上或附近的触摸操作后,传送给处理器1080以确定触摸事件的类型,随后处理器1080根据触摸事件的类型在显示面板1041上提供相应的视觉输出。虽然在图10中,触敏表面1031与显示面板1041是作为两个独立的部件来实现输入和输入功能,但是在某些实施例中,可以将触敏表面1031与显示面板1041集成而实现输入和输出功能。
终端1000还可包括至少一种传感器1050,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板1041的亮度,接近传感器可在终端1000移动到耳边时,关闭显示面板1041和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于终端1000还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路1060、扬声器1061,传声器1062可提供用户与终端1000之间的音频接口。音频电路1060可将接收到的音频数据转换后的电信号,传输到扬声器1061,由扬声器1061转换为声音信号输出;另一方面,传声器1062将收集的声音信号转换为电信号,由音频电路1060接收后转换为音频数据,再将音频数据输出处理器1080处理后,经RF电路1010以发送给比如另一终端,或者将音频数据输出至存储器1020以便进一步处理。音频电路1060还可能包括耳塞插孔,以提供外设耳机与终端1000的通信。
WiFi属于短距离无线传输技术,终端1000通过WiFi模块1070可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图10示出了WiFi模块1070,但是可以理解的是,其并不属于终端1000的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器1080是终端1000的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器1020内的软件程序和/或模块,以及调用存储在存储器1020内的数据,执行终端1000的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器1080可包括一个或多个处理核心;优选的,处理器1080可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作***、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1080中。
终端1000还包括给各个部件供电的电源190(比如电池),优选的,电源可以通过电源管理***与处理器1080逻辑相连,从而通过电源管理***实现管理充电、放电、以及功耗管理等功能。电源190还可以包括一个或一个以上的直流或交流电源、再充电***、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
尽管未示出,终端1000还可以包括摄像头、蓝牙模块等,在此不再赘述。具体在本实施例中,终端的显示单元是触摸屏显示器,终端还包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行。所述一个或者一个以上程序包含用于执行以下操作的指令:获取目标视频数据段,该目标视频数据段是待传输直播视频的视频数据流中的一段数据,该目标视频数据段包括k个数据块,k为大于或等于1的正整数;获取t个参考数据集合,每个该参考数据集合包括至少一个参考数据,t为大于k的正整数;利用每个该参考数据集合分别对该目标视频数据段进行编码,得到与该t个参考数据集合一一对应的t个编码数据块,该t个参考数据集合中的任意k个参考数据集合和与该任意k个参考数据集合一一对应的k个编码数据块能够构建方程组矩阵,且该方程组矩阵的解矩阵的数据为该目标视频数据段的数据;通过n个前端服务器向该视频解码设备发送t个第一参考数据组,n为大于或等于1的正整数;其中,每个该第一参考数据组包括一个编码数据块和对应的参考数据集合。
图11是根据一示例性实施例示出的一种视频传输装置1100的框图。例如,装置1100可以被提供为一服务器。参照图11,装置1100包括处理组件1122,其进一步包括一个或多个处理器,以及由存储器1132所代表的存储器资源,用于存储可由处理组件1122的执行的指令,例如应用程序。存储器1132中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件1122被配置为执行指令,以执行下述方法:
获取目标视频数据段,该目标视频数据段是待传输直播视频的视频数据流中的一段数据,该目标视频数据段包括k个数据块,k为大于或等于1的正整数;获取t个参考数据集合,每个该参考数据集合包括至少一个参考数据,t为大于k的正整数;利用每个该参考数据集合分别对该目标视频数据段进行编码,得到与该t个参考数据集合一一对应的t个编码数据块,该t个参考数据集合中的任意k个参考数据集合和与该任意k个参考数据集合一一对应的k个编码数据块能够构建方程组矩阵,且该方程组矩阵的解矩阵的数据为该目标视频数据段的数据;通过n个前端服务器向该视频解码设备发送t个第一参考数据组,n为大于或等于1的正整数;其中,每个该第一参考数据组包括一个编码数据块和对应的参考数据集合。
或者,以执行下述方法:
接收u个前端服务器发送的第一参考数据组,每个该第一参考数据组包括编码数据块和对应的参考数据集合,每个该编码数据块是该视频编码设备利用对应的参考数据集合对目标视频数据段进行编码得到的,该目标视频数据段是直播视频的视频数据流中的一段数据,该目标视频数据段包括k个数据块,该参考数据集合包括至少一个参考数据,k为大于或等于1的正整数,u为大于或等于1的正整数;
在第二预设时长内,当接收到的该第一参考数据组的个数达到该k时,根据接收到的k个该第一参考数据组中的编码数据块和参考数据集合构建方程组矩阵;
将计算得到的该方程组矩阵的解矩阵的数据确定为该目标视频数据段的数据。
装置1100还可以包括一个电源组件1126被配置为执行装置1100的电源管理,一个有线或无线网络接口1150被配置为将装置1100连接到网络,和一个输入输出(I/O)接口1158。装置1100可以操作基于存储在存储器1132的操作***,例如Windows ServerTM,MacOS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质可以为非易失性的计算机可读存储介质,该计算机可读存储介质中存储有指令,当该指令在计算机的处理组件上运行时,使得处理组件执行上述图3A所示实施例所提供的视频传输方法。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (37)

1.一种视频传输方法,其特征在于,用于直播网络的视频编码设备中,所述直播网络包括所述视频编码设备、视频解码设备和多个前端服务器,所述方法包括:
获取目标视频数据段,所述目标视频数据段是待传输直播视频的视频数据流中的一段数据,所述目标视频数据段包括k个数据块,k为大于或等于1的正整数;
获取t个参考数据集合,每个所述参考数据集合包括与所述k个数据块一一对应的k个参考数据,t为大于k的正整数;
对于每个所述参考数据集合,将所述参考数据集合包括的每个参考数据与对应的数据块相乘,得到k个乘积,将所述k个乘积相加,得到与所述参考数据集合对应的编码数据块,所述t个参考数据集合中的任意k个参考数据集合和与所述任意k个参考数据集合一一对应的k个编码数据块能够构建方程组矩阵,且所述方程组矩阵的解矩阵的数据为所述目标视频数据段的数据;
通过n个前端服务器向所述视频解码设备发送t个第一参考数据组,n为大于或等于1的正整数;
其中,每个所述第一参考数据组包括一个编码数据块和对应的参考数据集合。
2.根据权利要求1所述的方法,其特征在于,所述获取目标视频数据段,包括:
获取所述待传输直播视频的视频数据流;
从所述视频数据流中获取数据块;
在第一预设时长内,当获取到的数据块的个数不小于所述k时,将获取到的k个数据块组成所述目标视频数据段;
当在所述第一预设时长结束时获取到的数据块的个数小于所述k时,使用预设数据对已经获取到的数据块进行填充以获得k个数据块,将填充获得的所述k个数据块组成所述目标视频数据段。
3.根据权利要求1所述的方法,其特征在于,所述目标视频数据段是所述视频编码设备从所述视频数据流中获取的第p+1个视频数据段,p为大于或等于1的正整数,所述获取t个参考数据集合之前,所述方法还包括:
接收所述视频解码设备发送的p个历史解码差值,所述p个历史解码差值与所述视频数据流中所述目标视频数据段之前的p个视频数据段一一对应,每个所述历史解码差值用于反映所述视频解码设备在第二预设时长结束时距成功解码得到对应的视频数据段所差的参考数据组的个数;
根据所述p个历史解码差值确定需要获取的所述参考数据集合的个数t的值。
4.根据权利要求3所述的方法,其特征在于,所述p个历史解码差值中的第i个历史解码差值di满足:
当所述视频解码设备在所述第二预设时长内成功解码得到了与所述第i个历史解码差值对应的所述视频数据流中的第i个视频数据段时,di=0;
当所述视频解码设备在所述第二预设时长结束时未成功解码得到所述第i个视频数据段时,di=y-x;
其中,所述y为所述视频解码设备成功解码得到所述第i个视频数据段所需的参考数据组的个数,所述x为所述视频解码设备在所述第二预设时长结束时获取的与所述第i个视频数据段所对应参考数据组的个数,1≤i≤p。
5.根据权利要求3或4所述的方法,其特征在于,所述根据所述p个历史解码差值确定需要获取的所述参考数据集合的个数t的值,包括:
根据所述p个历史解码差值,基于第一公式计算需要获取的所述参考数据集合的个数t的值,所述第一公式为:
Figure FDA0002601461880000021
其中,Fi=di/k,
Figure FDA0002601461880000022
g为权重参数,0≤g≤1,di为所述p个历史解码差值中的第i个历史解码差值,1≤i≤p,tp为所述视频编码设备在对所述视频数据流中的第p个视频数据段编码前,获取的参考数据集合的个数。
6.根据权利要求1所述的方法,其特征在于,所述目标视频数据段是所述视频编码设备从所述视频数据流中获取的第1个视频数据段,所述获取t个参考数据集合之前,所述方法还包括:
根据所述直播网络的平均丢包率确定需要获取的所述参考数据集合的个数t的值。
7.根据权利要求6所述的方法,其特征在于,所述根据所述直播网络的平均丢包率确定需要获取的所述参考数据集合的个数t的值,包括:
根据所述直播网络的平均丢包率,基于第二公式计算需要获取的所述参考数据集合的个数t的值,所述第二公式为:
Figure FDA0002601461880000023
其中,ρ为所述直播网络的平均丢包率,
Figure FDA0002601461880000024
为向下取整运算符。
8.根据权利要求1所述的方法,其特征在于,所述通过n个前端服务器向所述视频解码设备发送t个第一参考数据组之前,所述方法还包括:
确定与所述视频编码设备已建立通信连接的r个前端服务器,r为大于或等于n的正整数;
根据所述视频编码设备与所述r个前端服务器中的每个前端服务器之间的数据传输速率,从所述r个前端服务器中确定所述n个前端服务器,所述n个前端服务器与所述视频编码设备的通信质量优于其他前端服务器与所述视频编码设备的通信质量。
9.根据权利要求8所述的方法,其特征在于,所述根据所述视频编码设备与所述r个前端服务器中的每个前端服务器之间的数据传输速率,从所述r个前端服务器中确定所述n个前端服务器,包括:
根据所述视频编码设备与所述r个前端服务器中的每个前端服务器之间的数据传输速率,基于第三公式计算所述每个前端服务器的效用值,所述第三公式为:
Figure FDA0002601461880000031
其中,uj为所述r个前端服务器中第j个前端服务器的效用值,1≤j≤r,thrj为所述视频编码设备与所述第j个前端服务器之间的数据传输速率,ρj为所述视频编码设备与所述第j个前端服务器之间的丢包率,ρ为所述直播网络的平均丢包率,β为常数;
按照效用值由高至低的顺序,从所述r个前端服务器中确定所述n个前端服务器。
10.根据权利要求9所述的方法,其特征在于,所述通过n个前端服务器向所述视频解码设备发送t个第一参考数据组,包括:
根据第四公式确定与所述n个前端服务器中的每个前端服务器对应的所述第一参考数据组的个数,所述第四公式为:
Figure FDA0002601461880000032
其中,yl为所述n个前端服务器中第l个前端服务器对应的所述第一参考数据组的个数,ul为所述第l个前端服务器的效用值,
Figure FDA0002601461880000033
为所述n个前端服务器的效用值的和,1≤l≤n;
对于每个所述前端服务器,向所述前端服务器发送对应个数的所述第一参考数据组,以由所述前端服务器将接收到的所述第一参考数据组发送至所述视频解码设备。
11.根据权利要求1所述的方法,其特征在于,在所述获取目标视频数据段之前,所述方法还包括:
根据预设的传输时延与数据块个数的对应关系,确定所述目标视频段的数据块个数k,使得所述数据块个数k对应的传输时延处于预设的传输时延范围内;
其中,所述传输时延为视频数据段由主播终端发送至所述视频解码设备的传输时延。
12.一种视频传输方法,其特征在于,用于直播网络的视频解码设备中,所述直播网络包括视频编码设备、所述视频解码设备和多个前端服务器,所述方法包括:
接收u个前端服务器发送的第一参考数据组,每个所述第一参考数据组包括编码数据块和对应的参考数据集合,每个所述编码数据块是所述视频编码设备利用对应的参考数据集合包括的每个参考数据与目标视频数据段中对应的数据块相乘,得到k个乘积,将所述k个乘积相加得到的,所述目标视频数据段是直播视频的视频数据流中的一段数据,所述目标视频数据段包括k个数据块,所述参考数据集合包括与所述k个数据块一一对应的k个参考数据,k为大于或等于1的正整数,u为大于或等于1的正整数;
在第二预设时长内,当接收到的所述第一参考数据组的个数达到所述k时,根据接收到的k个所述第一参考数据组中的编码数据块和参考数据集合构建方程组矩阵;
将计算得到的所述方程组矩阵的解矩阵的数据确定为所述目标视频数据段的数据。
13.根据权利要求12所述的方法,其特征在于,所述方法还包括:
当在所述第二预设时长结束时接收到的所述第一参考数据组的个数小于所述k时,获取接收到的所述第一参考数据组的个数与所述k的差值的绝对值;
将所述绝对值作为当前解码差值发送至所述视频编码设备中。
14.根据权利要求12所述的方法,其特征在于,所述方法还包括:
在所述第二预设时长内,在接收到的所述第一参考数据组的个数达到所述k后,向所述视频编码设备发送当前解码差值,所述当前解码差值为0。
15.根据权利要求12所述的方法,其特征在于,所述根据接收到的k个所述第一参考数据组中的编码数据块和参考数据集合构建方程组矩阵,包括:
解析接收到的k个所述第一参考数据组,得到k个所述编码数据块和与k个所述编码数据块一一对应的k个所述参考数据集合;
利用k个所述编码数据块构建所述方程组矩阵的常数项矩阵,每个所述编码数据块作为所述常数项矩阵的一行;
利用k个所述参考数据集合构建所述方程组矩阵的系数矩阵,每个所述参考数据集合作为所述系数矩阵的一行,每个所述参考数据集合所在所述系数矩阵的行的排序与对应的所述编码数据块所在所述常数项矩阵的行的排序相同。
16.根据权利要求12所述的方法,其特征在于,所述接收u个前端服务器发送的第一参考数据组之后,所述方法还包括:
将所述第一参考数据组存储于预设存储位置;
所述预设存储位置的存储空间大小根据最大延迟时长、最小延迟时长和所述视频数据流中的视频数据段的生成时长确定;
所述最大延迟时长为参考数据组由所述视频编码设备经由所述前端服务器发送至所述视频解码设备所需的最大的时长,所述最小延迟时长为参考数据组由所述视频编码设备经由所述前端服务器发送至所述视频解码设备所需的最小的时长。
17.根据权利要求16所述的方法,其特征在于,
所述预设存储位置的存储空间大小满足第六公式,所述第六公式为:
Figure FDA0002601461880000041
其中,Q为所述预设存储位置的存储空间大小,max(delay)为所述最大延迟时长,min(delay)为所述最小延迟时长,generate_time为所述视频数据流中的视频数据段的生成时长,s为视频数据段的数据量大小。
18.一种视频传输装置,其特征在于,用于直播网络的视频编码设备中,所述直播网络包括所述视频编码设备、视频解码设备和多个前端服务器,所述装置包括:
第一获取模块,用于获取目标视频数据段,所述目标视频数据段是待传输直播视频的视频数据流中的一段数据,所述目标视频数据段包括k个数据块,k为大于或等于1的正整数;
第二获取模块,用于获取t个参考数据集合,每个所述参考数据集合包括与所述k个数据块一一对应的k个参考数据,t为大于k的正整数;
编码模块,用于对于每个所述参考数据集合,将所述参考数据集合包括的每个参考数据与对应的数据块相乘,得到k个乘积,将所述k个乘积相加,得到与所述参考数据集合对应的编码数据块,所述t个参考数据集合中的任意k个参考数据集合和与所述任意k个参考数据集合一一对应的k个编码数据块能够构建方程组矩阵,且所述方程组矩阵的解矩阵的数据为所述目标视频数据段的数据;
发送模块,用于通过n个前端服务器向所述视频解码设备发送t个第一参考数据组,n为大于或等于1的正整数;
其中,每个所述第一参考数据组包括一个编码数据块和对应的参考数据集合。
19.根据权利要求18所述的装置,其特征在于,所述第一获取模块,用于:
获取所述待传输直播视频的视频数据流;
从所述视频数据流中获取数据块;
在第一预设时长内,当获取到的数据块的个数不小于所述k时,将获取到的k个数据块组成所述目标视频数据段;
当在所述第一预设时长结束时获取到的数据块的个数小于所述k时,使用预设数据对已经获取到的数据块进行填充以获得k个数据块,将填充获得的所述k个数据块组成所述目标视频数据段。
20.根据权利要求18所述的装置,其特征在于,所述目标视频数据段是所述视频编码设备从所述视频数据流中获取的第p+1个视频数据段,p为大于或等于1的正整数,所述装置还包括第一确定模块,所述第一确定模块,用于:
接收所述视频解码设备发送的p个历史解码差值,所述p个历史解码差值与所述视频数据流中所述目标视频数据段之前的p个视频数据段一一对应,每个所述历史解码差值用于反映所述视频解码设备在第二预设时长结束时距成功解码得到对应的视频数据段所差的参考数据组的个数;
根据所述p个历史解码差值确定需要获取的所述参考数据集合的个数t的值。
21.根据权利要求20所述的装置,其特征在于,所述p个历史解码差值中的第i个历史解码差值di满足:
当所述视频解码设备在所述第二预设时长内成功解码得到了与所述第i个历史解码差值对应的所述视频数据流中的第i个视频数据段时,di=0;
当所述视频解码设备在所述第二预设时长结束时未成功解码得到所述第i个视频数据段时,di=y-x;
其中,所述y为所述视频解码设备成功解码得到所述第i个视频数据段所需的参考数据组的个数,所述x为所述视频解码设备在所述第二预设时长结束时获取的与所述第i个视频数据段所对应参考数据组的个数,1≤i≤p。
22.根据权利要求20或21所述的装置,其特征在于,所述第一确定模块,用于:
根据所述p个历史解码差值,基于第一公式计算需要获取的所述参考数据集合的个数t的值,所述第一公式为:
Figure FDA0002601461880000061
其中,Fi=di/k,
Figure FDA0002601461880000062
g为权重参数,0≤g≤1,di为所述p个历史解码差值中的第i个历史解码差值,1≤i≤p,tp为所述视频编码设备在对所述视频数据流中的第p个视频数据段编码前,获取的参考数据集合的个数。
23.根据权利要求18所述的装置,其特征在于,所述目标视频数据段是所述视频编码设备从所述视频数据流中获取的第1个视频数据段,所述装置还包括第二确定模块,所述第二确定模块,用于:
根据所述直播网络的平均丢包率确定需要获取的所述参考数据集合的个数t的值。
24.根据权利要求23所述的装置,其特征在于,所述第二确定模块,用于:
根据所述直播网络的平均丢包率,基于第二公式计算需要获取的所述参考数据集合的个数t的值,所述第二公式为:
Figure FDA0002601461880000063
其中,ρ为所述直播网络的平均丢包率,
Figure FDA0002601461880000064
为向下取整运算符。
25.根据权利要求18所述的装置,其特征在于,所述装置还包括第三确定模块,所述第三确定模块,用于:
确定与所述视频编码设备已建立通信连接的r个前端服务器,r为大于或等于n的正整数;
根据所述视频编码设备与所述r个前端服务器中的每个前端服务器之间的数据传输速率,从所述r个前端服务器中确定所述n个前端服务器,所述n个前端服务器与所述视频编码设备的通信质量优于其他前端服务器与所述视频编码设备的通信质量。
26.根据权利要求25所述的装置,其特征在于,所述第三确定模块,用于:
根据所述视频编码设备与所述r个前端服务器中的每个前端服务器之间的数据传输速率,基于第三公式计算所述每个前端服务器的效用值,所述第三公式为:
Figure FDA0002601461880000071
其中,uj为所述r个前端服务器中第j个前端服务器的效用值,1≤j≤r,thrj为所述视频编码设备与所述第j个前端服务器之间的数据传输速率,ρj为所述视频编码设备与所述第j个前端服务器之间的丢包率,ρ为所述直播网络的平均丢包率,β为常数;
按照效用值由高至低的顺序,从所述r个前端服务器中确定所述n个前端服务器。
27.根据权利要求26所述的装置,其特征在于,所述发送模块,用于:
根据第四公式确定与所述n个前端服务器中的每个前端服务器对应的所述第一参考数据组的个数,所述第四公式为:
Figure FDA0002601461880000072
其中,yl为所述n个前端服务器中第l个前端服务器对应的所述第一参考数据组的个数,ul为所述第l个前端服务器的效用值,
Figure FDA0002601461880000073
为所述n个前端服务器的效用值的和,1≤l≤n;
对于每个所述前端服务器,向所述前端服务器发送对应个数的所述第一参考数据组,以由所述前端服务器将接收到的所述第一参考数据组发送至所述视频解码设备。
28.根据权利要求18所述的装置,其特征在于,所述装置还包括第四确定模块,所述第四确定模块,用于:
根据预设的传输时延与数据块个数的对应关系,确定所述目标视频段的数据块个数k,使得所述数据块个数k对应的传输时延处于预设的传输时延范围内;
其中,所述传输时延为视频数据段由主播终端发送至所述视频解码设备的传输时延。
29.一种视频传输装置,其特征在于,用于直播网络的视频解码设备中,所述直播网络包括视频编码设备、所述视频解码设备和多个前端服务器,所述装置包括:
接收模块,用于接收u个前端服务器发送的第一参考数据组,每个所述第一参考数据组包括编码数据块和对应的参考数据集合,每个所述编码数据块是所述视频编码设备利用对应的参考数据集合包括的每个参考数据与目标视频数据段中对应的数据块相乘,得到k个乘积,将所述k个乘积相加得到的,所述目标视频数据段是直播视频的视频数据流中的一段数据,所述目标视频数据段包括k个数据块,所述参考数据集合包括与所述k个数据块一一对应的k个参考数据,k为大于或等于1的正整数,u为大于或等于1的正整数;
构建模块,用于在第二预设时长内,当接收到的所述第一参考数据组的个数达到所述k时,根据接收到的k个所述第一参考数据组中的编码数据块和参考数据集合构建方程组矩阵;
确定模块,用于将计算得到的所述方程组矩阵的解矩阵的数据确定为所述目标视频数据段的数据。
30.根据权利要求29所述的装置,其特征在于,所述装置还包括第一发送模块,所述第一发送模块,用于:
当在所述第二预设时长结束时接收到的所述第一参考数据组的个数小于所述k时,获取接收到的所述第一参考数据组的个数与所述k的差值的绝对值;
将所述绝对值作为当前解码差值发送至所述视频编码设备中。
31.根据权利要求29所述的装置,其特征在于,所述装置还包括第二发送模块,所述第二发送模块,用于:
在所述第二预设时长内,在接收到的所述第一参考数据组的个数达到所述k后,向所述视频编码设备发送当前解码差值,所述当前解码差值为0。
32.根据权利要求29所述的装置,其特征在于,所述构建模块,用于:
解析接收到的k个所述第一参考数据组,得到k个所述编码数据块和与k个所述编码数据块一一对应的k个所述参考数据集合;
利用k个所述编码数据块构建所述方程组矩阵的常数项矩阵,每个所述编码数据块作为所述常数项矩阵的一行;
利用k个所述参考数据集合构建所述方程组矩阵的系数矩阵,每个所述参考数据集合作为所述系数矩阵的一行,每个所述参考数据集合所在所述系数矩阵的行的排序与对应的所述编码数据块所在所述常数项矩阵的行的排序相同。
33.根据权利要求29所述的装置,其特征在于,所述装置还包括存储模块,所述存储模块,用于:
将所述第一参考数据组存储于预设存储位置;
所述预设存储位置的存储空间大小根据最大延迟时长、最小延迟时长和所述视频数据流中的视频数据段的生成时长确定;
所述最大延迟时长为参考数据组由所述视频编码设备经由所述前端服务器发送至所述视频解码设备所需的最大的时长,所述最小延迟时长为参考数据组由所述视频编码设备经由所述前端服务器发送至所述视频解码设备所需的最小的时长。
34.根据权利要求33所述的装置,其特征在于,
所述预设存储位置的存储空间大小满足第六公式,所述第六公式为:
Figure FDA0002601461880000081
其中,Q为所述预设存储位置的存储空间大小,max(delay)为所述最大延迟时长,min(delay)为所述最小延迟时长,generate_time为所述视频数据流中的视频数据段的生成时长,s为视频数据段的数据量大小。
35.一种视频传输装置,其特征在于,所述视频传输装置包括:处理器和存储器;
所述处理器被配置为执行所述存储器中存储的指令,所述处理器通过执行所述指令来实现权利要求1至11任一所述的视频传输方法。
36.一种视频传输装置,其特征在于,所述视频传输装置包括:处理器和存储器;
所述处理器被配置为执行所述存储器中存储的指令,所述处理器通过执行所述指令来实现权利要求12至17任一所述的视频传输方法。
37.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当所述指令在计算机的处理组件上运行时,使得所述处理组件执行权利要求1至11任一所述的视频传输方法,或者,使得所述处理组件执行权利要求12至17任一所述的视频传输方法。
CN201711244047.2A 2017-11-30 2017-11-30 视频传输方法、装置、***及计算机可读存储介质 Active CN109862377B (zh)

Priority Applications (6)

Application Number Priority Date Filing Date Title
CN201711244047.2A CN109862377B (zh) 2017-11-30 2017-11-30 视频传输方法、装置、***及计算机可读存储介质
PCT/CN2018/117678 WO2019105340A1 (zh) 2017-11-30 2018-11-27 视频传输方法、装置、***及计算机可读存储介质
JP2020529571A JP7030984B2 (ja) 2017-11-30 2018-11-27 ビデオ伝送方法、ビデオ伝送装置、およびビデオ伝送システム、ならびにコンピュータ可読記憶媒体
EP18884243.9A EP3709663A4 (en) 2017-11-30 2018-11-27 VIDEO TRANSMISSION PROCESS, APPARATUS AND SYSTEM, AND COMPUTER READABLE STORAGE MEDIA
KR1020207018508A KR102316873B1 (ko) 2017-11-30 2018-11-27 비디오 전송 방법, 장치, 및 시스템과 컴퓨터 판독가능 저장 매체
US16/888,005 US11012724B2 (en) 2017-11-30 2020-05-29 Video transmission method, apparatus, and system, and computer readable storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711244047.2A CN109862377B (zh) 2017-11-30 2017-11-30 视频传输方法、装置、***及计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN109862377A CN109862377A (zh) 2019-06-07
CN109862377B true CN109862377B (zh) 2020-12-01

Family

ID=66665418

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711244047.2A Active CN109862377B (zh) 2017-11-30 2017-11-30 视频传输方法、装置、***及计算机可读存储介质

Country Status (6)

Country Link
US (1) US11012724B2 (zh)
EP (1) EP3709663A4 (zh)
JP (1) JP7030984B2 (zh)
KR (1) KR102316873B1 (zh)
CN (1) CN109862377B (zh)
WO (1) WO2019105340A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109862387A (zh) * 2019-03-28 2019-06-07 北京达佳互联信息技术有限公司 直播的回看视频生成方法、装置及设备
CN111629234B (zh) * 2020-06-24 2022-09-02 上海大因多媒体技术有限公司 不同类型视频共存的传输方法、装置、设备和存储介质
CN111934823B (zh) * 2020-08-12 2022-08-02 中国联合网络通信集团有限公司 数据传输方法、无线接入网络设备、用户平面功能实体
US12015801B2 (en) * 2021-09-13 2024-06-18 Apple Inc. Systems and methods for streaming extensions for video encoding
KR102643682B1 (ko) * 2021-12-21 2024-03-05 울산과학기술원 미디어 스트리밍 처리 장치 및 방법
CN116170379B (zh) * 2023-04-25 2023-07-14 腾讯科技(深圳)有限公司 一种传输控制方法、装置、设备及计算机可读存储介质

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7260269B2 (en) * 2002-08-28 2007-08-21 Seiko Epson Corporation Image recovery using thresholding and direct linear solvers
CN102045554A (zh) * 2009-10-22 2011-05-04 浙江大学 视频和图像的空域预测方法及装置
CN102378001A (zh) * 2010-08-11 2012-03-14 中国电信股份有限公司 支持图片直播模式的移动终端、视频直播方法及***
US8885701B2 (en) * 2010-09-08 2014-11-11 Samsung Electronics Co., Ltd. Low complexity transform coding using adaptive DCT/DST for intra-prediction
JP2012147197A (ja) 2011-01-11 2012-08-02 Panasonic Corp 通信装置、通信方法、及び通信プログラム
US8839324B2 (en) * 2011-08-15 2014-09-16 Gradiant, Centro Tecnolóxico de Telecomunicacións de Galicia Method and system for digital content transmission
JP2014099708A (ja) 2012-11-13 2014-05-29 Panasonic Corp 送信装置、受信装置、送信方法、及び受信方法
JP5997226B2 (ja) 2014-09-17 2016-09-28 京セラコミュニケーションシステム株式会社 アップロードシステム
JP6415302B2 (ja) 2014-12-19 2018-10-31 株式会社エヌ・ティ・ティ・データ 通信装置、通信方法及びプログラム
CN105812840A (zh) * 2014-12-29 2016-07-27 乐视网信息技术(北京)股份有限公司 一种直播视频传输方法、装置,以及视频直播***
CN105847854A (zh) * 2016-04-12 2016-08-10 乐视控股(北京)有限公司 直播方法和***
CN106162209B (zh) * 2016-06-30 2019-10-18 中国科学院计算技术研究所 一种基于sdn技术的内容分发网络直播***与方法

Also Published As

Publication number Publication date
EP3709663A1 (en) 2020-09-16
EP3709663A4 (en) 2020-09-16
KR20200093614A (ko) 2020-08-05
WO2019105340A1 (zh) 2019-06-06
KR102316873B1 (ko) 2021-10-22
JP7030984B2 (ja) 2022-03-07
US11012724B2 (en) 2021-05-18
JP2021505081A (ja) 2021-02-15
CN109862377A (zh) 2019-06-07
US20200296438A1 (en) 2020-09-17

Similar Documents

Publication Publication Date Title
CN109862377B (zh) 视频传输方法、装置、***及计算机可读存储介质
CN109524015B (zh) 音频编码方法、解码方法、装置及音频编解码***
CN113518085B (zh) 一种基于多通道的数据传输方法以及相关装置
CN108737908B (zh) 一种媒体播放方法、装置及存储介质
CN108011686B (zh) 信息编码帧丢失恢复方法和装置
WO2015058656A1 (zh) 直播控制方法,及主播设备
CN113037440B (zh) 数据重传处理方法、装置、计算机设备和存储介质
CN108900856B (zh) 一种视频帧率预测方法、装置及设备
US20230083441A1 (en) Managing subpacket transmission and reception for advanced interactive services
CN112203100B (zh) 降低上下行带宽需求的传输方法及***
US20230071243A1 (en) Conserving network resources during transmission of packets of interactive services
CN109168013B (zh) 一种抽帧的方法、装置、设备及计算机可读存储介质
CN108696771B (zh) 一种视频播放方法及装置
KR102225235B1 (ko) 비디오 인코딩 방법, 장치, 및 디바이스, 및 저장 매체
CN108337533B (zh) 视频压缩方法和装置
CN113572836A (zh) 一种数据传输方法、装置、服务器及存储介质
CN114025389A (zh) 数据传输方法、装置、计算机设备及存储介质
CN112737971B (zh) 数据处理方法、装置、存储介质及网络设备
CN110035553B (zh) 资源调度请求方法、装置和移动终端
CN116827924B (zh) 一种数据调度方法、装置、设备以及存储介质
Go et al. Reliable and energy-efficient hybrid screen mirroring multicast system
US12041303B1 (en) Bandwidth estimation for video encoding
CN115314555B (zh) 一种基于数据传输确定数据分片的方法和相关装置
CN117955920A (zh) 一种数据传输方法、装置、设备以及存储介质
CN118353850A (zh) 一种数据包调度方法和相关装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant