CN113141523B - 资源传输方法、装置、终端及存储介质 - Google Patents

资源传输方法、装置、终端及存储介质 Download PDF

Info

Publication number
CN113141523B
CN113141523B CN202010054775.2A CN202010054775A CN113141523B CN 113141523 B CN113141523 B CN 113141523B CN 202010054775 A CN202010054775 A CN 202010054775A CN 113141523 B CN113141523 B CN 113141523B
Authority
CN
China
Prior art keywords
code rate
target
moment
resource
multimedia resource
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
CN202010054775.2A
Other languages
English (en)
Other versions
CN113141523A (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.)
Beijing Dajia Internet Information Technology Co Ltd
Original Assignee
Beijing Dajia Internet Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Dajia Internet Information Technology Co Ltd filed Critical Beijing Dajia Internet Information Technology Co Ltd
Priority to CN202010054775.2A priority Critical patent/CN113141523B/zh
Priority to EP20913374.3A priority patent/EP3952316A4/en
Priority to PCT/CN2020/133755 priority patent/WO2021143386A1/zh
Publication of CN113141523A publication Critical patent/CN113141523A/zh
Priority to US17/519,459 priority patent/US11652864B2/en
Application granted granted Critical
Publication of CN113141523B publication Critical patent/CN113141523B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS
    • 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/23805Controlling the feeding rate to the network, e.g. by controlling the video pump
    • 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/38Flow control; Congestion control by adapting coding or compression rate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/613Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for the control of the source by the destination
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/70Media network packetisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/762Media network packet handling at the source 
    • 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
    • H04N21/23439Processing 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 for generating different versions
    • 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/2387Stream processing in response to a playback request from an end-user, e.g. for trick-play
    • 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/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • H04N21/2662Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
    • 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/44004Processing 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 video buffer management, e.g. video decoder buffer or video display buffer
    • 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/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/44209Monitoring of downstream path of the transmission network originating from a server, e.g. bandwidth variations of a wireless network
    • 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/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/462Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
    • H04N21/4621Controlling the complexity of the content stream or additional data, e.g. lowering the resolution or bit-rate of the video stream for a mobile client with a small screen
    • 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/47End-user applications
    • H04N21/472End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
    • H04N21/47217End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for controlling playback functions for recorded or on-demand content, e.g. using progress bars, mode or play-point indicators or bookmarks
    • 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/64Addressing
    • 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/64723Monitoring of network processes or resources, e.g. monitoring of network load
    • H04N21/64738Monitoring network characteristics, e.g. bandwidth, congestion level
    • 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/65Transmission of management data between client and server
    • H04N21/658Transmission by the client directed to the server
    • H04N21/6581Reference data, e.g. a movie identifier for ordering a movie or a product identifier in a home shopping application
    • 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/65Transmission of management data between client and server
    • H04N21/658Transmission by the client directed to the server
    • H04N21/6587Control parameters, e.g. trick play commands, viewpoint selection
    • 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/8455Structuring of content, e.g. decomposing content into time segments involving pointers to the content, e.g. pointers to the I-frames of the video stream
    • 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/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/8547Content authoring involving timestamps for synchronizing content

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Human Computer Interaction (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本公开关于一种资源传输方法、装置、终端及存储介质,属于通信技术领域。本公开通过在播放多媒体资源的任一时刻,确定该时刻的目标码率,该目标码率为与该时刻的播放状态匹配度最高的码率,若该目标码率与当前码率不一致,获取该目标码率的多媒体资源的目标地址信息,向服务器发送携带该目标地址信息的帧获取请求,该帧获取请求用于指示该服务器以该目标码率返回该多媒体资源的媒体帧,从而可以达到帧级别的媒体流传输,无需对多媒体资源进行分片传输,大大降低了资源传输过程的延时,提升了资源传输的实时性,提升了资源传输效率。

Description

资源传输方法、装置、终端及存储介质
技术领域
本公开涉及通信技术领域,特别涉及一种资源传输方法、装置、终端及存储介质。
背景技术
随着通信技术的发展,用户可以随时随地在终端上浏览音视频资源,目前,在服务器向终端传输音视频资源(俗称为“拉流阶段”)时,可以采用基于分片的媒体传输方式。
基于分片的媒体传输方式包括常见的DASH(Dynamic Adaptive Streaming overHTTP,MPEG制定的基于HTTP的自适应流媒体传输标准,其中,MPEG的英文全称为MovingPicture Experts Group,中文全称为动态图像专家组)、HLS(HTTP Live Streaming,苹果公司制定的基于HTTP的自适应流媒体传输标准)等,服务器将音视频资源切分成一段一段的音视频片段,每个音视频片段都可以转码成不同的码率,终端在播放音视频资源时,分别访问音视频资源所切分成的各个音视频片段的网址,不同的音视频片段之间可以对应于相同或不同的码率,使得终端能够方便地在不同码率的音视频资源中进行切换,这种过程也称为基于终端自身带宽情况自适应调整码率。
在上述过程中,由于以音视频片段为单位进行资源传输,导致服务器总是需要等待一个完整的音视频片段到达之后,才能将整个音视频片段传输到终端,从而基于分片的媒体传输方式的延时高,也即是说,资源传输过程的延时高、实时性差。
发明内容
本公开提供一种资源传输方法、装置、终端及存储介质,以至少解决相关技术中资源传输过程的延时高、实时性差的问题。本公开的技术方案如下:
根据本公开实施例的第一方面,提供一种资源传输方法,包括:
在播放多媒体资源的任一时刻,确定所述时刻的目标码率,所述目标码率为与所述时刻的播放状态匹配度最高的码率;
若所述目标码率与当前码率不一致,获取所述目标码率的多媒体资源的目标地址信息;
向服务器发送携带所述目标地址信息的帧获取请求,所述帧获取请求用于指示所述服务器以所述目标码率返回所述多媒体资源的媒体帧。
在一种可能实施方式中,所述时刻为所述多媒体资源的启播时刻;或,所述时刻为所述多媒体资源中任一个画面组的下载完毕时刻;或,所述时刻为所述多媒体资源中任一媒体帧的播放时刻。
在一种可能实施方式中,所述确定所述时刻的目标码率包括:
基于所述时刻的带宽信息以及所述时刻的媒体缓存量,确定所述目标码率。
在一种可能实施方式中,所述基于所述时刻的带宽信息以及所述时刻的媒体缓存量,确定所述目标码率包括:
基于所述带宽信息和所述媒体缓存量,确定至少一种候选码率的预计缓存量,所述预计缓存量是指按照从所述时刻起按照对应码率对当前画面组继续进行下载,直到下载结束时刻所预计的媒体缓存量;
基于所述至少一种候选码率的预计缓存量,从所述至少一种候选码率或者所述当前码率中确定所述目标码率。
在一种可能实施方式中,所述确定所述时刻的目标码率包括:
若所述时刻为所述多媒体资源的启播时刻,将播放业务所指定的启播码率或者媒体描述文件的默认播放码率确定为所述目标码率。
在一种可能实施方式中,所述向服务器发送携带所述目标地址信息的帧获取请求之前,所述方法还包括:
若所述目标码率与当前码率不一致,确定目标位置信息,所述目标位置信息用于表示对所述多媒体资源的媒体帧的起始拉取位置;
将所述目标位置信息嵌入到携带所述目标地址信息的帧获取请求中。
在一种可能实施方式中,所述确定目标位置信息包括:
若所述时刻为所述多媒体资源的启播时刻,基于播放业务所指定的缓存时长,确定所述目标位置信息;或,
若所述时刻为所述多媒体资源中任一个画面组的下载完毕时刻,将所述画面组的下一个画面组中第一帧的时间戳确定为所述目标位置信息;或,
若所述时刻为所述多媒体资源中任一媒体帧的播放时刻,将当前下载的画面组中第一帧的时间戳确定为所述目标位置信息。
在一种可能实施方式中,所述在播放多媒体资源的任一时刻,确定所述时刻的目标码率之后,所述方法还包括:
若所述目标码率与当前码率一致,忽略所述目标码率,以所述当前码率继续执行多媒体资源传输。
在一种可能实施方式中,所述方法还包括:
在播放多媒体资源的过程中,若缓存区中存在多种码率的同一媒体帧,播放所述多种码率中最大码率的媒体帧。
根据本公开实施例的第二方面,提供一种资源传输装置,包括:
第一确定单元,被配置为执行在播放多媒体资源的任一时刻,确定所述时刻的目标码率,所述目标码率为与所述时刻的播放状态匹配度最高的码率;
获取单元,被配置为执行若所述目标码率与当前码率不一致,获取所述目标码率的多媒体资源的目标地址信息;
发送单元,被配置为执行向服务器发送携带所述目标地址信息的帧获取请求,所述帧获取请求用于指示所述服务器以所述目标码率返回所述多媒体资源的媒体帧。
在一种可能实施方式中,所述时刻为所述多媒体资源的启播时刻;或,所述时刻为所述多媒体资源中任一个画面组的下载完毕时刻;或,所述时刻为所述多媒体资源中任一媒体帧的播放时刻。
在一种可能实施方式中,所述第一确定单元包括:
确定子单元,被配置为执行基于所述时刻的带宽信息以及所述时刻的媒体缓存量,确定所述目标码率。
在一种可能实施方式中,所述确定子单元被配置为执行:
基于所述带宽信息和所述媒体缓存量,确定至少一种候选码率的预计缓存量,所述预计缓存量是指按照从所述时刻起按照对应码率对当前画面组继续进行下载,直到下载结束时刻所预计的媒体缓存量;
基于所述至少一种候选码率的预计缓存量,从所述至少一种候选码率或者所述当前码率中确定所述目标码率。
在一种可能实施方式中,所述第一确定单元被配置为执行:
若所述时刻为所述多媒体资源的启播时刻,将播放业务所指定的启播码率或者媒体描述文件的默认播放码率确定为所述目标码率。
在一种可能实施方式中,所述装置还包括:
第二确定单元,被配置为执行若所述目标码率与当前码率不一致,确定目标位置信息,所述目标位置信息用于表示对所述多媒体资源的媒体帧的起始拉取位置;
嵌入单元,被配置为执行将所述目标位置信息嵌入到携带所述目标地址信息的帧获取请求中。
在一种可能实施方式中,所述第二确定单元被配置为执行:
若所述时刻为所述多媒体资源的启播时刻,基于播放业务所指定的缓存时长,确定所述目标位置信息;或,
若所述时刻为所述多媒体资源中任一个画面组的下载完毕时刻,将所述画面组的下一个画面组中第一帧的时间戳确定为所述目标位置信息;或,
若所述时刻为所述多媒体资源中任一媒体帧的播放时刻,将当前下载的画面组中第一帧的时间戳确定为所述目标位置信息。
在一种可能实施方式中,所述装置还包括:
传输单元,被配置为执行若所述目标码率与当前码率一致,忽略所述目标码率,以所述当前码率继续执行多媒体资源传输。
在一种可能实施方式中,所述装置还包括:
播放单元,被配置为执行在播放多媒体资源的过程中,若缓存区中存在多种码率的同一媒体帧,播放所述多种码率中最大码率的媒体帧。
根据本公开实施例的第三方面,提供一种终端,包括:
一个或多个处理器;
用于存储所述一个或多个处理器可执行指令的一个或多个存储器;
其中,所述一个或多个处理器被配置为执行上述第一方面以及第一方面的可能实施方式中任一项的资源传输方法。
根据本公开实施例的第四方面,提供一种存储介质,当所述存储介质中的至少一条指令由终端的一个或多个处理器执行时,使得终端能够执行上述第一方面以及第一方面的可能实施方式中任一项的资源传输方法。
根据本公开实施例的第五方面,提供一种计算机程序产品,包括一条或多条指令,所述一条或多条指令可以由终端的一个或多个处理器执行,使得终端能够执行上述第一方面以及第一方面的可能实施方式中任一项的资源传输方法。
本公开的实施例提供的技术方案至少带来以下有益效果:
通过在播放多媒体资源的任一时刻,确定该时刻的目标码率,该目标码率为与该时刻的播放状态匹配度最高的码率,若该目标码率与当前码率不一致,获取该目标码率的多媒体资源的目标地址信息,向服务器发送携带该目标地址信息的帧获取请求,该帧获取请求用于指示该服务器以该目标码率返回该多媒体资源的媒体帧,无需对多媒体资源进行分片传输,也就不必在等待一个完整的资源片段到达之后才进行资源传输,从而可以达到帧级别的媒体流传输,大大降低了资源传输过程的延时,提升了资源传输的实时性,提升了资源传输效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是根据一示例性实施例示出的一种资源传输方法的实施环境示意图;
图2是本公开实施例提供的一种FAS框架的原理性示意图;
图3是根据一示例性实施例示出的一种资源传输方法的流程图;
图4是根据一示例性实施例示出的一种资源传输方法的交互流程图;
图5是根据一示例性实施例示出的一种资源传输装置的逻辑结构框图;
图6示出了本公开一个示例性实施例提供的一种终端的结构框图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
本公开所涉及的用户信息可以为经用户授权或者经过各方充分授权的信息。
以下,对本公开所涉及的术语进行解释。
一、FLV(Flash Video)
FLV是一种流媒体格式,FLV流媒体格式是随着Flash MX(一种动画制作软件)的推出发展而来的视频格式。由于它形成的文件极小、加载速度极快,使得网络观看视频文件(也即在线浏览视频)成为可能,它的出现有效地解决了视频文件导入Flash后导出的SWF(一种Flash的专用文件格式)文件体积庞大,以致不能在网络上很好的使用等问题。
二、流媒体(Streaming Media)
流媒体采用流式传输方法,是指将一连串的多媒体资源压缩后,通过网络发送资源包,从而在网上即时传输多媒体资源以供观赏的一种技术与过程,此技术使得资源包得以像流水一样发送;如果不使用此技术,就必须在使用前下载整个媒体文件,从而仅能进行离线观看多媒体资源。流式传输可传送现场多媒体资源或预存于服务器上的多媒体资源,当观众用户在收看这些多媒体资源时,多媒体资源在送达观众用户的观众终端后可以由特定播放软件进行播放。
三、FAS(FLV Adaptive Streaming,基于FLV的自适应流媒体传输标准)
FAS是本公开所提出的流式资源传输标准(或称为资源传输协议),与传统的基于分片的媒体传输方式不同,在FAS标准中,终端在启播时刻向服务器发送某一启播码率对应的帧获取请求,服务器响应于帧获取请求,按照启播码率将对应多媒体资源的媒体帧传输至终端,此后服务器与终端之间进行帧级别的多媒体传输,服务器无需等待一个完整的视频片段到达之后才能向终端发送资源包,而是能够将实时媒体帧逐帧发送到终端,终端在接收到媒体帧之后,可以进行缓存、解码、渲染等操作,从而在终端上播放媒体帧,在播放过程中若需要进行码率切换,仅在需要切换码率的时刻重新发送某一待切换码率对应的帧获取请求,服务器进行类似的处理逻辑,能够按照待切换码率将对应多媒体资源的媒体帧传输至终端,从而实现动态码率切换。其中,上述启播码率和待切换码率均可以视为是目标码率的示例。
在上述过程中,终端可以在帧获取请求中指定目标位置信息,从而保证从目标位置信息开始拉取媒体流,当然,终端也可以不在帧获取请求中指定目标位置信息,这是服务器会将目标位置信息配置为默认值,从而使得终端从目标位置信息的默认值开始拉取媒体流。可选地,目标位置信息小于零时,服务器可以从目标位置信息开始将已缓存的所有媒体帧打包发送至终端(无需分片),可选地,若目标位置信息大于或等于零或者除了已缓存的媒体帧之外还存在实时流,服务器可以将实时缓存的多媒体资源的媒体帧逐帧发送至终端。
需要说明的是,上述待切换码率可以基于终端自身的带宽信息以及媒体缓存量而确定,当带宽信息或者媒体缓存量发生变化时,终端可以适应性调整待切换码率,重新发送与待切换码率对应的帧获取请求,从而能够实现自适应调整多媒体资源码率,以便于及时地调整到最佳的播放状态,从而能够保障最优的播放效果、改善用户的观看体验。
FAS标准能够实现帧级传输、降低端到端延迟,提供了自适应切换码率的机制,且只有码率发生切换时才需要发送新的帧获取请求,极大减小请求数量,降低资源传输过程的通信开销。
四、直播与点播
直播:多媒体资源是实时录制的,主播用户通过主播终端将媒体流“推流”(指基于流式传输方式推送)到服务器上,观众用户在观众终端上触发进入主播用户的直播界面之后,将媒体流从服务器“拉流”(指基于流式传输方式拉取)到观众终端,观众终端解码并播放多媒体资源,从而实时地进行视频播放。
点播:也称为Video On Demand(VOD),多媒体资源预存在服务器上,服务器能够根据观众用户的要求来提供观众用户指定的多媒体资源,具体地,观众终端向服务器发送点播请求,服务器查询到点播请求所指定的多媒体资源之后,将多媒体资源发送至观众终端,也即是说,观众用户能够选择性地播放某个特定的多媒体资源。
直观地来讲,点播的内容可以任意控制播放进度,而直播则不然,直播的内容播放速度取决于主播用户的实时直播进度。
图1是根据一示例性实施例示出的一种资源传输方法的实施环境示意图,参见图1,在该实施环境中可以包括至少一个终端101和服务器102,下面进行详述:
该至少一个终端101,用于进行多媒体资源传输,在每个终端上可以安装有媒体编解码组件以及媒体播放组件,该媒体编解码组件用于在接收多媒体资源(例如分片传输的资源包、帧级传输的媒体帧)之后进行多媒体资源的解码,该媒体播放组件用于在解码多媒体资源之后进行多媒体资源的播放。
按照用户身份的不同,该至少一个终端101可以划分为主播终端以及观众终端,主播终端对应于主播用户,观众终端对应于观众用户,需要说明的是,对同一个终端而言,该终端即可以是主播终端,也可以是观众终端,比如,用户在录制直播时该终端为主播终端,用户在观看直播时该终端为观众终端。
该至少一个终端101和服务器102可以通过有线网络或无线网络相连。
该服务器102,用于提供待传输的多媒体资源,服务器102可以包括一台服务器、多台服务器、云计算平台或者虚拟化中心中的至少一种。可选地,服务器102可以承担主要计算工作,至少一个终端101可以承担次要计算工作;或者,服务器102承担次要计算工作,至少一个终端101承担主要计算工作;或者,至少一个终端101和服务器102两者之间采用分布式计算架构进行协同计算。
在一个示例性场景中,该服务器102可以是集群式的CDN(Content DeliveryNetwork,内容分发网络)服务器,CDN服务器包括中心平台以及部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使得用户所在终端能够依靠当地的边缘服务器来就近获取所需内容(即多媒体资源),从而降低网络拥塞,提升终端访问的响应速度和命中率。
换言之,CDN服务器在终端与中心平台之间增加了一个缓存机制,该缓存机制也即是部署在不同地理位置的边缘服务器(比如WEB服务器),在性能优化时,中心平台会根据终端与边缘服务器的距离远近,调度与终端之间距离最近的边缘服务器来向终端提供服务,能够更加有效地向终端发布内容。
本公开实施例所涉及的多媒体资源,包括但不限于:视频资源、音频资源、图像资源或者文本资源中至少一项,本公开实施例不对多媒体资源的类型进行具体限定。比如,该多媒体资源为网络主播的直播视频流,或者为预存在服务器上的历史点播视频,或者为电台主播的直播音频流,或者为预存在服务器上的历史点播音频。
可选地,至少一个终端101中每个终端的设备类型包括但不限于:电视机、智能手机、智能音箱、车载终端、平板电脑、电子书阅读器、MP3(Moving Picture Experts GroupAudio Layer III,动态影像专家压缩标准音频层面3)播放器、MP4(Moving PictureExperts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机或者台式计算机中的至少一种。以下实施例,以终端包括智能手机来进行举例说明。
本领域技术人员可以知晓,上述至少一个终端101的数量可以仅为一个,或者至少一个终端101的数量为几十个或几百个,或者更多数量。本公开实施例对至少一个终端101的数量和设备类型不加以限定。
图2是本公开实施例提供的一种FAS框架的原理性示意图,请参考图2,本公开实施例提供一种FAS(基于流式的多码率自适应)框架,在该框架内,至少一个终端101与服务器102之间通过FAS协议进行多媒体资源传输。
以任一终端为例进行说明,在终端上可以安装有应用程序(亦称为FAS客户端),该应用程序用于浏览多媒体资源,例如,该应用程序可以为短视频应用、直播应用、视频点播应用、社交应用、购物应用等,本公开实施例不对应用程序的类型进行具体限定。
用户可以在终端上启动应用程序,显示资源推送界面(例如应用程序的首页或者功能界面),在该资源推送界面中包括至少一个多媒体资源的缩略信息,该缩略信息包括标题、简介、发布者、海报、预告片或者精彩片段中至少一项,响应于用户对任一多媒体资源的缩略信息的触控操作,终端可以从资源推送界面跳转至资源播放界面,在该资源播放界面中包括该多媒体资源的播放选项,响应于用户对该播放选项的触控操作,终端从服务器中下载该多媒体资源的媒体描述文件(Media Presentation Description,MPD)。
进一步地,基于该媒体描述文件,确定启播码率(或默认播放码率,指启播时刻的目标码率)的多媒体资源的目标地址信息,向服务器发送启播码率(或默认播放码率)对应的帧获取请求(或称为FAS请求),使得服务器基于一定的规范(FAS请求的处理规范)来处理该帧获取请求,服务器定位到该多媒体资源的媒体帧(连续的媒体帧可以构成媒体流)之后,以启播码率(或默认播放码率)向终端返回该多媒体资源的媒体帧(也即以目标码率向终端返回媒体流)。终端接收到媒体流之后,调用媒体编解码组件对媒体流进行解码,得到解码后的媒体流,调用媒体播放组件播放解码后的媒体流。
需要说明的是,由于服务器在对多媒体资源进行转码之后,可能会形成多种码率的多媒体资源,此时服务器可以为不同码率的多媒体资源分配不同的地址信息,将各种码率的多媒体资源的地址信息均记录在MPD中,终端下载MPD之后,可以在不同时刻向服务器发送携带不同地址信息的帧获取请求,那么服务器会以不同的码率返回对应的多媒体资源的媒体帧。
进一步地,提供一种自适应调整码率的机制,随着终端当前的带宽信息或者媒体缓存量的波动变化,终端上多媒体资源的播放状态也会随之改变,终端可以适应性调整与当前播放状态匹配度最高的待切换码率(也即是播放过程中的目标码率)。具体地,FAS标准在帧获取请求中提供一种目标位置信息,不同的目标位置信息能够指定多媒体资源的不同起始拉取位置,那么在帧获取请求中规定了目标位置信息(若缺省,则服务器会配置默认值)和码率之后,若在播放过程中需要进行码率切换,终端只需要再次发送新的帧获取请求,服务器能够随时地从目标位置信息开始按照另一码率向终端发送媒体流,也即终端能够动态地从任一起始的媒体帧开始拉取另一码率的媒体流,这样保证了FAS框架的动态切换码率机制,也即保证了自适应码率的无缝切换。
在一个示例性场景中,在需要切换码率时,终端可以断开当前码率的媒体流传输链接,向服务器发送携带待切换码率所对应目标地址信息的帧获取请求,建立基于待切换码率的媒体流传输链接,当然,终端也可以不断开当前码率的媒体流传输链接,而是直接重新发起携带待切换码率所对应目标地址信息的帧获取请求,建立基于待切换码率的媒体流传输链接(用于传输新的媒体流),将原有的媒体流作为备用流,一旦新的媒体流出现传输异常,那么可以继续播放备用流,从而能够在播放过程中动态调整媒体流的码率,优化了终端的播放效果。
在上述FAS框架中,能够达到以任一媒体帧为起始拉取位置的、帧级别的媒体流传输,服务器无需对多媒体资源进行分片传输,大大降低了资源传输过程的延时,提升了资源传输的实时性,提升了资源传输效率。此外,提供了一种自适应调整码率的机制,能够在多媒体资源的播放过程中,自适应地进行无缝的码率切换。
以下,将对上述FAS框架内的MPD文件进行介绍:
在一些实施例中,MPD文件可以包括版本号(@version)和媒体描述集合(@adaptationSet),还可以包括服务类型(@type)、用于表示是否打开自适应功能的功能选项(@hideAuto)或者用于表示是否在启播时默认打开自适应功能的功能选项(@autoDefaultSelect)中至少一项,本公开实施例不对MPD文件承载的内容进行具体限定。
其中,版本号可以包括该媒体描述文件的版本号或者资源传输标准(FAS标准)的版本号中至少一项。
其中,该媒体描述集合用于表示多媒体资源的元信息,该媒体描述集合可以包括多个媒体描述元信息,每个媒体描述元信息对应于一种码率的多媒体资源,每个媒体描述元信息可以包括该媒体描述元信息所对应码率的多媒体资源的画面组长度(@gopDuration)以及属性信息(@representation)。
画面组(Group Of Pictures,GOP)长度是指两个关键帧之间的距离,关键帧是指视频编码序列中的帧内编码图像帧(Intra-coded picture,也称为“I帧”),I帧的编解码不需要参考其他图像帧,仅利用本帧信息即可实现,而相对地,P帧(Predictive-codedpicture,预测编码图像帧)和B帧(Bidirectionally predicted picture,双向预测编码图像帧)的编解码均需要参考其他图像帧,仅利用本帧信息无法完成编解码。
每个属性信息可以包括多媒体资源的标识信息(@id,独一无二的标识符)、多媒体资源的编码方式(@codec,遵从的编解码标准)、多媒体资源所支持的码率(@bitrate,资源传输时单位时间内传送的数据位数)以及该码率的多媒体资源的地址信息(@url,某一码率的多媒体资源对外提供的URL或域名,URL是指统一资源定位符,英文全称为:UniformResource Locator),当然,每个属性信息还可以包括多媒体资源的质量类型(@qualityType,包括分辨率、帧率等质量评价指标)、多媒体资源的隐藏选项(@hiden,用于表示某一码率的多媒体资源是否外显,也即用户是否能够手动该码率的多媒体资源)、用于表示多媒体资源是否相对于自适应功能可见的功能选项(@enableAdaptive,指自适应功能能否选中某一码率的多媒体资源)或者默认播放功能选项(@defaultSelect,指是否在启播时默认播放某一码率的多媒体资源)中至少一项。
其中,服务类型用于指定多媒体资源的业务类型,包括直播或者点播中至少一项。
在一些实施例中,MPD文件格式可以为JSON(JavaScript Object Notation,JS对象简谱),也可以为其他脚本格式,本公开实施例不对MPD文件格式进行具体限定。
图3是根据一示例性实施例示出的一种资源传输方法的流程图,参见图3,该资源传输方法应用于上述实施环境涉及的FAS框架中的终端,下面进行详述。
在步骤301中,终端在播放多媒体资源的任一时刻,确定该时刻的目标码率,该目标码率为与该时刻的播放状态匹配度最高的码率。
在步骤302中,若该目标码率与当前码率不一致,终端获取该目标码率的多媒体资源的目标地址信息。
在步骤303中,终端向服务器发送携带该目标地址信息的帧获取请求,该帧获取请求用于指示该服务器以该目标码率返回该多媒体资源的媒体帧。
本公开实施例提供的方法,通过在播放多媒体资源的任一时刻,确定该时刻的目标码率,该目标码率为与该时刻的播放状态匹配度最高的码率,若该目标码率与当前码率不一致,获取该目标码率的多媒体资源的目标地址信息,向服务器发送携带该目标地址信息的帧获取请求,该帧获取请求用于指示该服务器以该目标码率返回该多媒体资源的媒体帧,无需对多媒体资源进行分片传输,也就不必在等待一个完整的资源片段到达之后才进行资源传输,从而可以达到帧级别的媒体流传输,大大降低了资源传输过程的延时,提升了资源传输的实时性,提升了资源传输效率。
在一种可能实施方式中,该时刻为该多媒体资源的启播时刻;或,该时刻为该多媒体资源中任一个画面组的下载完毕时刻;或,该时刻为该多媒体资源中任一媒体帧的播放时刻。
在一种可能实施方式中,确定该时刻的目标码率包括:
基于该时刻的带宽信息以及该时刻的媒体缓存量,确定该目标码率。
在一种可能实施方式中,基于该时刻的带宽信息以及该时刻的媒体缓存量,确定该目标码率包括:
基于该带宽信息和该媒体缓存量,确定至少一种候选码率的预计缓存量,该预计缓存量是指按照从该时刻起按照对应码率对当前画面组继续进行下载,直到下载结束时刻所预计的媒体缓存量;
基于该至少一种候选码率的预计缓存量,从该至少一种候选码率或者该当前码率中确定该目标码率。
在一种可能实施方式中,确定该时刻的目标码率包括:
若该时刻为该多媒体资源的启播时刻,将播放业务所指定的启播码率或者媒体描述文件的默认播放码率确定为该目标码率。
在一种可能实施方式中,向服务器发送携带该目标地址信息的帧获取请求之前,该方法还包括:
若该目标码率与当前码率不一致,确定目标位置信息,该目标位置信息用于表示对该多媒体资源的媒体帧的起始拉取位置;
将该目标位置信息嵌入到携带该目标地址信息的帧获取请求中。
在一种可能实施方式中,确定目标位置信息包括:
若该时刻为该多媒体资源的启播时刻,基于播放业务所指定的缓存时长,确定该目标位置信息;或,
若该时刻为该多媒体资源中任一个画面组的下载完毕时刻,将该画面组的下一个画面组中第一帧的时间戳确定为该目标位置信息;或,
若该时刻为该多媒体资源中任一媒体帧的播放时刻,将当前下载的画面组中第一帧的时间戳确定为该目标位置信息。
在一种可能实施方式中,在播放多媒体资源的任一时刻,确定该时刻的目标码率之后,该方法还包括:
若该目标码率与当前码率一致,忽略该目标码率,以该当前码率继续执行多媒体资源传输。
在一种可能实施方式中,该方法还包括:
在播放多媒体资源的过程中,若缓存区中存在多种码率的同一媒体帧,播放该多种码率中最大码率的媒体帧。
上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再一一赘述。
图4是根据一示例性实施例示出的一种资源传输方法的交互流程图,如图4所示,该资源传输方法可以用于上述实施环境涉及的FAS框架中,该实施例包括以下步骤。
在步骤401中,终端在资源播放界面中播放多媒体资源。
其中,终端上可以安装有应用程序,该应用程序用于浏览多媒体资源,例如,该应用程序可以包括短视频应用、直播应用、视频点播应用、社交应用或者购物应用中至少一项,本公开实施例不对应用程序的类型进行具体限定。
本公开实施例所涉及的多媒体资源,包括但不限于:视频资源、音频资源、图像资源或者文本资源中至少一项,本公开实施例不对多媒体资源的类型进行具体限定。比如,该多媒体资源为网络主播的直播视频流,或者为预存在服务器上的历史点播视频,或者为电台主播的直播音频流,或者为预存在服务器上的历史点播音频。
在上述过程中,用户可以在终端上启动应用程序,该应用程序显示资源推送界面,例如该资源推送界面可以是应用程序的首页或者功能界面,本公开实施例不对资源推送界面的类型进行具体限定。在该资源推送界面中可以包括至少一个多媒体资源的缩略信息,该缩略信息包括多媒体资源的标题、简介、海报、预告片或者精彩片段中至少一项。用户在浏览资源推送界面的过程中,可以点击感兴趣的多媒体资源的缩略信息,响应于用户对该多媒体资源的缩略信息的触控操作,终端可以从资源推送界面跳转至资源播放界面。
在该资源播放界面中可以包括播放区域和评论区域,在播放区域内可以包括该多媒体资源的播放选项,在评论区域内可以包括其他用户针对该多媒体资源的观看评论。
可选地,在播放区域内还可以包括该多媒体资源的详情信息,该详情信息可以包括该多媒体资源的标题、简介、关键词、发布者信息或者当前热度中至少一项,其中,该发布者信息可以包括发布者昵称、发布者头像、发布者粉丝量等,本公开实施例不对详情信息或者发布者信息的内容进行具体限定。
可选地,在播放区域内还可以包括弹幕输入区和弹幕设置选项,用户可以通过弹幕设置选项控制是否显示弹幕、弹幕移动速度、弹幕显示区域或者弹幕显示方式(透明度、字号大小等)中至少一项,用户还可以通过点击弹幕输入区,输入自己想要评论的内容,弹幕形式不限于文本或者表情图像,本公开实施例不对弹幕设置选项的内容或者用户输入的弹幕形式进行具体限定。
可选地,在播放区域内还可以包括收藏选项和关注选项,若用户点击收藏选项,可以触发终端向服务器发送收藏请求,服务器响应于该收藏请求,将该多媒体资源添加至该用户所对应的收藏夹内,便于后续重复观看时进行快速查找多媒体资源,若用户点击关注选项,可以触发终端向服务器发送关注请求,服务器响应于该关注请求,将该多媒体资源的发布者添加至该用户所对应的关注列表内,便于后续再次收看该发布者所发布的内容。
可选地,在播放区域内还可以包括虚拟礼物的赠送选项,若用户点击赠送选项,可以显示虚拟礼物的赠送类别以及赠送数量的选择栏,用户在选择好某一类别以及某一数量的虚拟礼物之后,可以通过点击确认按钮,触发终端向服务器发送虚拟礼物的赠送请求,服务器对该赠送请求进行结算,分别从用户的账户中扣除一定数值,并向主播的账户中发放一定数值,在结算完毕之后,终端可以在播放区域中以浮层的方式展示虚拟礼物的特效动画,从而可以提供互动性更强、趣味性更高的播放方式。
上述各种可能实施方式,提供了资源播放界面的不同示例性布局,在实际应用中资源播放界面可以具有更多或者更少的布局方式,本公开实施例不对资源播放界面的布局方式进行具体限定。
在显示资源播放界面之后,用户在想要观看多媒体资源时,可以点击播放区域中的播放选项,终端响应于用户对该播放选项的触控操作,在播放过程的启播(指开始播放)时刻,终端可以通过下述步骤402-407所执行的操作,获取某一码率的多媒体资源的媒体流,调用媒体编解码组件对该媒体流进行解码,调用媒体播放组件对解码后的媒体流进行播放。
在一些实施例中,在播放过程中的除启播时刻外任一播放时刻,终端仍然可以通过下述步骤402-407所执行的操作,重新获取到另一码率的多媒体资源的媒体流(新的媒体流),从而从原有的媒体流切换至播放新的媒体流,实现多种码率的无缝切换,本公开实施例不对下述步骤402-407是在启播时刻执行,还是在播放过程中任一播放时刻执行进行具体限定。
在步骤402中,终端在播放多媒体资源的任一时刻,确定该时刻的目标码率,该目标码率为与该时刻的播放状态匹配度最高的码率。
可选地,该时刻可以为该多媒体资源的启播时刻;或,该时刻也可以为该多媒体资源中任一个画面组(GOP)的下载完毕时刻;或,该时刻还可以为该多媒体资源中任一媒体帧的播放时刻,本公开实施例不对该时刻为播放过程的哪一时刻进行具体限定。
在一些实施例中,终端还可以向用户提供码率选择列表,用户在点击码率选择列表中任一数值时,触发生成携带该数值的码率选择指令,终端响应于码率选择指令,将该码率选择指令所携带的数值确定为目标码率。
在一些实施例中,若该时刻为多媒体资源的启播时刻,这时有可能播放业务本身会指定一个启播码率,或者,在多媒体资源的MPD中会存在一个默认播放码率,因此,终端可以将播放业务所指定的启播码率或者媒体描述文件的默认播放码率确定为目标码率。
上述默认播放码率,是指在MPD文件的媒体描述元信息中@defaultSelect字段被置为true的多媒体资源的码率,由于媒体播放组件无法默认播放两种码率的多媒体资源(存在播放冲突),因此,在所有的媒体描述元信息中,最多只能出现一个码率的多媒体资源的@defaultSelect字段为true。
可选地,在上述过程中,终端可以先遍历MPD的媒体描述元信息,若存在唯一的@defaultSelect字段为true的多媒体资源,将该多媒体资源的@bitrate字段确定为目标码率,否则,若不存在唯一的@defaultSelect字段为true的多媒体资源(比如,存在至少两个@defaultSelect字段为true的多媒体资源,或者不存在任何@defaultSelect字段为true的多媒体资源),终端可以确定播放业务是否指定了启播码率,若播放业务指定了启播码率,将该启播码率确定为目标码率,若播放业务未指定启播码率,终端还可以通过下述自适应策略,基于带宽信息和媒体缓存量自动确定目标码率。
在一些实施例中,终端可以通过如下的自适应策略调整目标码率:终端基于该时刻的带宽信息以及该时刻的媒体缓存量,确定目标码率。可选地,该带宽信息可以由终端按照第一采样间隔进行采样得到,该媒体缓存量可以由终端按照第二采样间隔采样得到,该第一采样间隔和第二采样间隔可以相同,也可以不同,例如,两者采用同一定时器触发执行各自的采样逻辑,这样能够保证两者的采样间隔相同。
其中,该带宽信息可以指多媒体资源的传输速率,假设带宽信息的每次采样时长为T(单位:ms,毫秒),采样时长内终端所下载的数据量为S(单位:bytes,字节),那么一个带宽采样点B可以表示为:B=S*8/T,其中,B的单位可以为kbps(千比特每秒、千比特率),其中,T>0,例如T=500ms,S≥0,取决于终端实际的下载量。
其中,该媒体缓存量可以指缓存区内该多媒体资源的所有媒体帧的数据量。
在上述过程中,终端可以基于该带宽信息和该媒体缓存量,确定至少一种候选码率的预计缓存量,该预计缓存量是指按照从该时刻起按照对应码率对当前画面组继续进行下载,直到下载结束时刻所预计的媒体缓存量;基于该至少一种候选码率的预计缓存量,从该至少一种候选码率或者该当前码率中确定该目标码率。
此时终端可以配置媒体缓存量的两个阈值,分别包括第一阈值和第二阈值,其中,第一阈值大于第二阈值,也即是说,第一阈值是一个较高阈值,若媒体缓存量大于第一阈值,说明媒体缓存量十分充足,这时可以尝试增大多媒体资源的码率,以提升多媒体资源的清晰度,优化播放效果,因此,可以将该多媒体资源所支持的码率集合中大于当前码率的至少一个码率确定为至少一个候选码率;相反,而第二阈值是一个较低阈值,若媒体缓存量小于第二阈值,说明媒体缓存量十分匮乏,这时需要适当降低多媒体资源的码率,以避免在播放过程中出现卡顿,因此,可以将该多媒体资源所支持的码率集合中所有码率确定为至少一个候选码率,以便于全局筛选出保证媒体缓存量不下降的最大候选码率,也即保证在不卡顿的情况下持有最高的清晰度。
下面分别对媒体缓存量大于第一阈值或者小于第二阈值的情况进行讨论:
1):若媒体缓存量大于第一阈值,如上述分析可知,将码率集合中大于当前码率的至少一个码率确定为至少一个候选码率,对任一个候选码率均计算该候选码率的预计缓存量,候选码率的预计缓存量可以表示为下式:
q=qc+D-d-D*r*8/Best
在上述公式中,q为预计缓存量,qc为该时刻的媒体缓存量(当前缓存量),D为GOP长度(单位:ms,毫秒),d为当前的GOP中已下载完的长度(单位:ms,毫秒),r为任一个预估码率,Best为该时刻的带宽信息。
假设第一阈值为qh且当前码率为rc,终端计算出各个候选码率r(r>rc)的预计缓存量q之后,如果不存在预计缓存量大于第一阈值(q>qh)的多媒体资源,那么可以将当前码率rc确定为目标码率;否则,如果存在预计缓存量大于第一阈值(q>qh)的多媒体资源,那么将满足q>qh的候选码率中的最大候选码率确定为目标码率。
2):若媒体缓存量小于第二阈值,如上述分析可知,将码率集合中所有码率确定为至少一个候选码率,对任一个候选码率均按照与上述示例1)中类似的操作来获取该候选码率的预计缓存量,这里不做赘述。
假设第二阈值为ql(ql<qh),终端计算出各个候选码率r的预计缓存量q之后,如果存在预计缓存量大于或等于第二阈值(q≥ql)的多媒体资源,那么将满足q≥ql的候选码率中的最大候选码率确定为目标码率;反之,如果不存在预计缓存量大于或等于第二阈值(q≥ql)的多媒体资源,那么此时终端还需要计算一个对照缓存量,该对照缓存量是指以当前码率继续进行下载直到当前GOP下载完毕时的预计缓存量,当前码率的对照缓存量可以表示为下式:
q=qc+D-d-(D-d)*rc*8/Best
其中,rc表示当前码率,q、qc、D、d、Best的含义均与上一个公式中相同字符所表示的含义一致,这里不做赘述。
在计算了对照缓存量之后,将各个预计缓存量以及对照缓存量之间的最大缓存量所对应的码率r*确定为目标码率,特别地,若r*=rc,那么也即是将当前码率确定为目标码率,其余情况下目标码率r*与当前码率rc是不相等的。
上述过程中,提供了基于带宽信息和媒体缓存量来确定目标码率的机制,也即是提供了目标码率的自适应调整策略。需要说明的是,由于上述时刻可以是启播时刻、任一个GOP的下载完毕时刻或者任一媒体帧的播放时刻,那么,可选地,在启播时刻时若播放业务未指定启播码率,且MPD中未规定默认播放码率,终端可以调用自适应调整策略来确定启播时刻的目标码率;或者,在每个GOP下载完毕时,终端可以调用自适应策略来确定下载下一个GOP的目标码率,这种策略也称为“GOP边界决策”;或者,在任一媒体帧的播放时刻,终端可以调用自适应策略来确定下一时刻的目标码率,这种策略也称为“任意点决策”。
在一些实施例中,除了基于带宽信息和媒体缓存量确定目标码率之外,终端还可以基于带宽信息以及播放状态信息来确定目标码率,其中,该播放状态信息可以包括视频缓存量、音频缓存量、最近一次卡顿时间、最近一次卡顿时长或者采样时长内的丢帧率中至少一项,本公开实施例不对播放状态信息所包含的内容进行具体限定,其中,视频缓存量和音频缓存量可以统称为上述“媒体缓存量”。
上述自适应策略,结合终端的网络状态信息(带宽信息)和播放状态信息(媒体缓存量),动态选择最佳的目标码率,从而可以在播放效果的卡顿率、清晰度、平滑性之间取得折中,保证做出使得播放状态最优的决策,也即是说,自适应策略所确定的目标码率与多媒体资源的播放状态的匹配度最高。
在步骤403中,若目标码率与当前码率不一致,终端获取该目标码率的多媒体资源的目标地址信息以及目标位置信息,该目标位置信息用于表示对该多媒体资源的媒体帧的起始拉取位置。
在上述过程中,若目标码率和当前码率不一致,此时需要进行码率切换,终端可以以目标码率为索引,在MPD中查询得到与目标码率的多媒体资源对应的媒体描述元信息,在该媒体描述元信息中提取出@url字段内所存储的目标地址信息。
在一些实施例中,该目标位置信息(@fasSpts)用于指示服务器具体从哪帧开始发送媒体流,目标位置信息的数据类型可以为int64_t类型,当然,也可以为其他数据类型,本公开实施例不对目标位置信息的数据类型进行具体限定。
需要说明的是,目标位置信息代表的是相对于当前时刻的一个相对位置参数,若目标位置信息小于0,终端会拉取到一段历史时间段内的缓存数据,若目标位置信息等于0,终端会从当前时刻开始拉取实时媒体流,若目标位置信息大于0,终端会从未来某一时刻开始拉取实时媒体流。
下面将针对不同的执行时刻,分别讨论如何获取目标位置信息:
1):若该时刻为该多媒体资源的启播时刻,终端基于播放业务所指定的缓存时长,确定目标位置信息。
其中,该播放业务所指定的缓存时长由业务方根据业务需求来确定,比如,针对一些短视频而言,缓存时长可以设置为8秒,而针对一些长视频而言,缓存时长可以设置为1分钟,本公开实施例不对缓存时长的取值进行具体限定。
在基于缓存时长确定目标位置信息时,可以将缓存时长映射至对应的目标位置信息,比如,若缓存时长为8秒,那么可以映射为@fasSpts=-8000,此时目标位置信息是一个负值,代表拉取一段历史时间段内的缓存数据,这样表示终端的缓存区最多有8秒的缓存数据,实现延迟与网络抖动缓冲之间的折中。
在一些实施例中,播放业务也可以不指定缓存时长,而是直接指定一个目标位置信息,业务方指定的目标位置信息可以记为“fasSptsInit”,本公开实施例不对业务方指定缓存时长还是指定目标位置信息进行具体限定。
2):若该时刻为该多媒体资源中任一个画面组(GOP)的下载完毕时刻,终端将该画面组的下一个画面组中第一帧的时间戳确定为目标位置信息。
在上述过程中,终端每当一个GOP下载完毕之后,调用GOP边界决策的自适应策略,来确定下一个GOP的目标码率,在确定目标码率之后,可以将下一个GOP中第一帧的PTS(Presentation Time Stamp,显示时间戳)确定为目标位置信息,其中,若缓存区中包括视频资源,那么第一帧是指视频资源中第一个I帧,若缓存区中不包括视频资源,那么第一帧是指音频资源中第一个音频帧。
3):若该时刻为该多媒体资源中任一媒体帧的播放时刻,终端将当前下载的画面组中第一帧的时间戳确定为目标位置信息。
在上述过程中,终端在任一播放时刻,调用任意点决策的自适应策略来确定目标码率,而由于对同一个GOP而言,GOP内若I帧和P帧(或B帧)的码率不同,那么将无法进行解码,因此只能在GOP之间进行码率切换,而不能在GOP内部切换码率,而任一播放时刻不能保证刚好位于一个GOP的下载完毕时刻,因此,在确定目标码率之后,终端可以选择重新拉取一次当前的整个GOP,所以将当前下载的GOP中第一帧的PTS确定为目标位置信息,其中,若缓存区中包括视频资源,那么第一帧是指视频资源中第一个I帧,若缓存区中不包括视频资源,那么第一帧是指音频资源中第一个音频帧。
在上述示例2)和3)中,均是在播放过程中进行码率切换时的场景,而并非属于1)中的启播场景,在码率切换场景中所确定的目标地址信息可以记为“urlSwitch”,确定的目标位置信息可以记为“fasSptsSwitch”。
上述步骤403中,是在目标码率与当前码率不一致的情况下,终端如何确定目标地址信息以及目标位置信息的处理逻辑,而在一些实施例中,若该目标码率与当前码率一致,终端可以忽略该目标码率,以当前码率继续执行多媒体资源传输,此时码率不变,拉流的地址信息也就不变,终端无需生成新的帧获取请求,也就不用发送冗余的帧获取请求,直接以当前码率继续按照FAS标准进行媒体流传输即可,能够减少在FAS框架中实现动态码率切换时的通信量,节约通信开销。
在步骤404中,终端将该目标位置信息嵌入到携带该目标地址信息的帧获取请求中。
上述帧获取请求可以包括地址信息字段(@url)和扩展字段,终端可以将目标地址信息写入帧获取请求的地址信息字段,将目标位置信息写入帧获取请求的扩展字段。
在一个示例性场景中,观众用户在应用程序中进入某一主播用户的直播间(直播界面,属于一种资源播放界面),在播放的初始化阶段,终端需要拉取一定的缓存媒体流,开始启动播放,在启播时,终端依据业务指定的初始媒体流(启播码率的媒体流)或MPD中的默认初始媒体流(默认播放码率的媒体流),获取待请求的媒体流对应的目标地址信息(@url),此时可以将启播时刻的目标地址信息记为“urlStart”,假设业务还指定一个负值作为目标位置信息(@fasSpts=fasSptsInit<0),将启播时刻的目标地址信息和目标位置信息封装在帧获取请求中,此时的帧获取请求(启播时的FAS请求)可以表示为“urlStart&(fasSpts=fasSptsInit)”。
在一个示例性场景中,用户在观看多媒体资源的过程中,随着带宽信息和播放状态信息的变化,导致自适应策略输出的目标码率与当前码率不一致,此时终端需要进行码率切换,将码率切换过程的目标地址信息记为“urlSwitch”,将码率切换过程的目标位置信息记为“fasSptsSwitch”,将码率切换时的目标地址信息和目标位置信息封装在帧获取请求中,此时的帧获取请求(码率切换时的FAS请求)可以表示为“urlSwitch&(fasSpts=fasSptsSwitch)”。
在步骤405中,终端向服务器发送携带该目标地址信息和目标位置信息的帧获取请求,该帧获取请求用于指示该服务器从该目标位置信息开始以该目标码率返回该多媒体资源的媒体帧。
在上述过程中,相当于终端将目标地址信息和目标位置信息均封装在帧获取请求中,在一种可能实施情况中,终端可以仅将目标地址信息封装在帧获取请求中,也即是帧获取情况中缺省了目标位置信息,这时会由服务器按照FAS规范来配置目标位置信息的默认值,从而从目标位置信息的默认值开始进行媒体流传输。
在一些实施例中,该帧获取请求的扩展字段还可以携带音频参数,该音频参数,用于表示请求的媒体帧是否为音频帧,若设定为true,表示终端拉取的媒体帧为音频帧,也即只拉取纯音频流,否则,若设定为false,表示终端拉取的媒体帧为音视频帧,也即拉取音频流和视频画面流,若不做规定时,可以将“false”作为默认值。
可选地,在配置音频参数时,终端可以获取多媒体资源的类型,若多媒体资源的类型为视频,可以将第一扩展参数置为“false”或者默认值,若多媒体资源的类型为音频,可以将第一扩展参数置为“true”。
可选地,在配置音频参数时,终端还可以检测应用程序的类型,若应用程序的类型为视频应用,可以将第一扩展参数置为“false”或者默认值,若应用程序的类型为音频应用,可以将第一扩展参数置为“true”。
当然,该帧获取请求中也可以不携带音频参数,或者不携带目标位置信息,或者音频参数和目标位置信息均不携带,本公开实施例不对扩展字段的内容进行具体限定。
在步骤406中,服务器响应于该帧获取请求,从该目标位置信息开始以该目标码率向终端返回该多媒体资源的媒体帧。
在上述过程中,服务器在接收到帧获取请求之后,可以解析该帧获取请求,得到目标地址信息和目标位置信息,服务器基于目标地址信息,从资源库中定位到目标码率的多媒体资源的媒体帧,按照时间戳从小到大的顺序,从目标位置信息开始以目标码率向终端发送多媒体资源的媒体帧(连续的媒体帧也即形成媒体流)。
可选地,若帧获取请求中未携带目标位置信息中至少一项,服务器可以配置目标位置信息的默认值,不管是从帧获取请求中解析,还是自行配置默认值,服务器均能够确定目标位置信息,进一步地,基于目标位置信息确定从哪个时间戳开始拉取媒体帧,从而服务器能够从目标位置信息所指示的时间戳开始,以目标码率向终端返回音频参数所指示形式的媒体帧。
在一个示例性场景中,若服务器为CDN服务器,那么该目标地址信息可以是一个域名,终端可以向CDN服务器的中心平台发送帧获取请求,中心平台调用DNS(Domain NameSystem,域名系统,本质上是一个域名解析库)对域名进行解析,可以得到域名对应的CNAME(别名)记录,基于终端的地理位置信息对CNAME记录再次进行解析,可以得到一个距离终端最近的边缘服务器的IP(Internet Protocol,网际互连协议)地址,这时中心平台将帧获取请求导向至上述边缘服务器,由边缘服务器响应于帧获取请求,以目标码率向终端提供多媒体资源的媒体帧,从而能够使得终端就近访问目标码率的多媒体资源,这样可以使得CDN服务器整体的负载较为均衡,那么CDN系统的性能也就更加稳定。
在步骤407中,若终端接收到该目标码率的多媒体资源的媒体帧,切换至播放该目标码率的多媒体资源的媒体帧。
在上述过程中,若终端接收到目标码率的多媒体资源的媒体帧(连续接收到的媒体帧即可构成媒体流),为了保证播放流畅性,终端可以将该媒体帧存入缓存区中,调用媒体编解码组件对媒体帧进行解码,得到解码后的媒体帧,调用媒体播放组件按照时间戳(PTS)从小到大的顺序来对缓存区内的媒体帧进行播放。
在解码过程中,终端可以从媒体描述文件的@codec字段中确定多媒体资源的编码方式,根据编码方式确定对应的解码方式,从而按照确定的解码方式对媒体帧进行解码。
在一些切换码率的场景中,由于终端在发送待切换码率对应的帧获取请求时,可以选择断开已有的媒体流传输链接,也可以选择不断开已有的媒体流传输链接,在不断开已有的媒体流传输链接的情况下,相当于建立了两路媒体流传输链接,终端是基于一种主备流的方式进行播放,将原有的媒体流作为备用流,优先播放新的媒体流,一旦新的媒体流出现传输异常,那么可以继续播放备用流,从而能够在播放过程中动态调整媒体流的码率,优化了终端的播放效果。
也即是说,在上述播放多媒体资源的过程中,若缓存区中存在多种码率的同一媒体帧,终端播放该多种码率中最大码率的媒体帧,这种可以保证在缓存了多路媒体流的情况下,优先播放清晰度最高的媒体帧,以保证最佳的播放效果。
在上述过程中,这种基于流式的媒体传输方式,能够做到多媒体资源的帧级传输,而由于帧获取请求携带目标位置信息,这样就能够实现不同码率的媒体流之间的无缝切换,达到多码率自适应的目的,若网络状况改变而需要切换码率时,可以通过FAS框架进行码率的无缝切换。
上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再一一赘述。
本公开实施例提供的方法,通过在播放多媒体资源的任一时刻,确定该时刻的目标码率,该目标码率为与该时刻的播放状态匹配度最高的码率,若该目标码率与当前码率不一致,获取该目标码率的多媒体资源的目标地址信息,向服务器发送携带该目标地址信息的帧获取请求,该帧获取请求用于指示该服务器以该目标码率返回该多媒体资源的媒体帧,无需对多媒体资源进行分片传输,也就不必在等待一个完整的资源片段到达之后才进行资源传输,从而可以达到帧级别的媒体流传输,大大降低了资源传输过程的延时,提升了资源传输的实时性,提升了资源传输效率。
图5是根据一示例性实施例示出的一种资源传输装置的逻辑结构框图。参照图5,该装置包括第一确定单元501、获取单元502和发送单元503:
第一确定单元501,被配置为执行在播放多媒体资源的任一时刻,确定该时刻的目标码率,该目标码率为与该时刻的播放状态匹配度最高的码率;
获取单元502,被配置为执行若该目标码率与当前码率不一致,获取该目标码率的多媒体资源的目标地址信息;
发送单元503,被配置为执行向服务器发送携带该目标地址信息的帧获取请求,该帧获取请求用于指示该服务器以该目标码率返回该多媒体资源的媒体帧。
本公开实施例提供的装置,通过在播放多媒体资源的任一时刻,确定该时刻的目标码率,该目标码率为与该时刻的播放状态匹配度最高的码率,若该目标码率与当前码率不一致,获取该目标码率的多媒体资源的目标地址信息,向服务器发送携带该目标地址信息的帧获取请求,该帧获取请求用于指示该服务器以该目标码率返回该多媒体资源的媒体帧,无需对多媒体资源进行分片传输,也就不必在等待一个完整的资源片段到达之后才进行资源传输,从而可以达到帧级别的媒体流传输,大大降低了资源传输过程的延时,提升了资源传输的实时性,提升了资源传输效率。
在一种可能实施方式中,该时刻为该多媒体资源的启播时刻;或,该时刻为该多媒体资源中任一个画面组的下载完毕时刻;或,该时刻为该多媒体资源中任一媒体帧的播放时刻。
在一种可能实施方式中,基于图5的装置组成,该第一确定单元501包括:
确定子单元,被配置为执行基于该时刻的带宽信息以及该时刻的媒体缓存量,确定该目标码率。
在一种可能实施方式中,该确定子单元被配置为执行:
基于该带宽信息和该媒体缓存量,确定至少一种候选码率的预计缓存量,该预计缓存量是指按照从该时刻起按照对应码率对当前画面组继续进行下载,直到下载结束时刻所预计的媒体缓存量;
基于该至少一种候选码率的预计缓存量,从该至少一种候选码率或者该当前码率中确定该目标码率。
在一种可能实施方式中,该第一确定单元501被配置为执行:
若该时刻为该多媒体资源的启播时刻,将播放业务所指定的启播码率或者媒体描述文件的默认播放码率确定为该目标码率。
在一种可能实施方式中,基于图5的装置组成,该装置还包括:
第二确定单元,被配置为执行若该目标码率与当前码率不一致,确定目标位置信息,该目标位置信息用于表示对该多媒体资源的媒体帧的起始拉取位置;
嵌入单元,被配置为执行将该目标位置信息嵌入到携带该目标地址信息的帧获取请求中。
在一种可能实施方式中,该第二确定单元被配置为执行:
若该时刻为该多媒体资源的启播时刻,基于播放业务所指定的缓存时长,确定该目标位置信息;或,
若该时刻为该多媒体资源中任一个画面组的下载完毕时刻,将该画面组的下一个画面组中第一帧的时间戳确定为该目标位置信息;或,
若该时刻为该多媒体资源中任一媒体帧的播放时刻,将当前下载的画面组中第一帧的时间戳确定为该目标位置信息。
在一种可能实施方式中,基于图5的装置组成,该装置还包括:
传输单元,被配置为执行若该目标码率与当前码率一致,忽略该目标码率,以该当前码率继续执行多媒体资源传输。
在一种可能实施方式中,基于图5的装置组成,该装置还包括:
播放单元,被配置为执行在播放多媒体资源的过程中,若缓存区中存在多种码率的同一媒体帧,播放该多种码率中最大码率的媒体帧。
上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再一一赘述。
关于上述实施例中的装置,其中各个单元执行操作的具体方式已经在有关该资源传输方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图6示出了本公开一个示例性实施例提供的一种终端的结构框图。该终端600可以是:智能手机、平板电脑、MP3播放器(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving Picture Experts Group Audio LayerIV,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。终端600还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。
通常,终端600包括有:处理器601和存储器602。
处理器601可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器601可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器601也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器601可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器601还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器602可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器602还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器602中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器601所执行以实现本公开中各个实施例提供的资源传输方法。
在一些实施例中,终端600还可选包括有:外围设备接口603和至少一个外围设备。处理器601、存储器602和外围设备接口603之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口603相连。具体地,外围设备包括:射频电路604、触摸显示屏605、摄像头组件606、音频电路607、定位组件608和电源609中的至少一种。
外围设备接口603可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器601和存储器602。在一些实施例中,处理器601、存储器602和外围设备接口603被集成在同一芯片或电路板上;在一些其他实施例中,处理器601、存储器602和外围设备接口603中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路604用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路604通过电磁信号与通信网络以及其他通信设备进行通信。射频电路604将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路604包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路604可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:城域网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路604还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本公开对此不加以限定。
显示屏605用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏605是触摸显示屏时,显示屏605还具有采集在显示屏605的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器601进行处理。此时,显示屏605还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏605可以为一个,设置终端600的前面板;在另一些实施例中,显示屏605可以为至少两个,分别设置在终端600的不同表面或呈折叠设计;在再一些实施例中,显示屏605可以是柔性显示屏,设置在终端600的弯曲表面上或折叠面上。甚至,显示屏605还可以设置成非矩形的不规则图形,也即异形屏。显示屏605可以采用LCD(LiquidCrystal Display,液晶显示屏)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。
摄像头组件606用于采集图像或视频。可选地,摄像头组件606包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件606还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路607可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器601进行处理,或者输入至射频电路604以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端600的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器601或射频电路604的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路607还可以包括耳机插孔。
定位组件608用于定位终端600的当前地理位置,以实现导航或LBS(LocationBased Service,基于位置的服务)。定位组件608可以是基于美国的GPS(GlobalPositioning System,全球定位系统)、中国的北斗系统、俄罗斯的格雷纳斯系统或欧盟的伽利略系统的定位组件。
电源609用于为终端600中的各个组件进行供电。电源609可以是交流电、直流电、一次性电池或可充电电池。当电源609包括可充电电池时,该可充电电池可以支持有线充电或无线充电。该可充电电池还可以用于支持快充技术。
在一些实施例中,终端600还包括有一个或多个传感器610。该一个或多个传感器610包括但不限于:加速度传感器611、陀螺仪传感器612、压力传感器613、指纹传感器614、光学传感器615以及接近传感器616。
加速度传感器611可以检测以终端600建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器611可以用于检测重力加速度在三个坐标轴上的分量。处理器601可以根据加速度传感器611采集的重力加速度信号,控制触摸显示屏605以横向视图或纵向视图进行用户界面的显示。加速度传感器611还可以用于游戏或者用户的运动数据的采集。
陀螺仪传感器612可以检测终端600的机体方向及转动角度,陀螺仪传感器612可以与加速度传感器611协同采集用户对终端600的3D动作。处理器601根据陀螺仪传感器612采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器613可以设置在终端600的侧边框和/或触摸显示屏605的下层。当压力传感器613设置在终端600的侧边框时,可以检测用户对终端600的握持信号,由处理器601根据压力传感器613采集的握持信号进行左右手识别或快捷操作。当压力传感器613设置在触摸显示屏605的下层时,由处理器601根据用户对触摸显示屏605的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
指纹传感器614用于采集用户的指纹,由处理器601根据指纹传感器614采集到的指纹识别用户的身份,或者,由指纹传感器614根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器601授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器614可以被设置终端600的正面、背面或侧面。当终端600上设置有物理按键或厂商Logo时,指纹传感器614可以与物理按键或厂商Logo集成在一起。
光学传感器615用于采集环境光强度。在一个实施例中,处理器601可以根据光学传感器615采集的环境光强度,控制触摸显示屏605的显示亮度。具体地,当环境光强度较高时,调高触摸显示屏605的显示亮度;当环境光强度较低时,调低触摸显示屏605的显示亮度。在另一个实施例中,处理器601还可以根据光学传感器615采集的环境光强度,动态调整摄像头组件606的拍摄参数。
接近传感器616,也称距离传感器,通常设置在终端600的前面板。接近传感器616用于采集用户与终端600的正面之间的距离。在一个实施例中,当接近传感器616检测到用户与终端600的正面之间的距离逐渐变小时,由处理器601控制触摸显示屏605从亮屏状态切换为息屏状态;当接近传感器616检测到用户与终端600的正面之间的距离逐渐变大时,由处理器601控制触摸显示屏605从息屏状态切换为亮屏状态。
本领域技术人员可以理解,图6中示出的结构并不构成对终端600的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
在示例性实施例中,还提供了一种包括至少一条指令的存储介质,例如包括至少一条指令的存储器,上述至少一条指令可由终端中的处理器执行以完成上述实施例中资源传输方法。可选地,上述存储介质可以是非临时性计算机可读存储介质,例如,该非临时性计算机可读存储介质可以包括ROM(Read-Only Memory,只读存储器)、RAM(Random-AccessMemory,随机存取存储器)、CD-ROM(Compact Disc Read-Only Memory,只读光盘)、磁带、软盘和光数据存储设备等。
在示例性实施例中,还提供了一种计算机程序产品,包括一条或多条指令,该一条或多条指令可以由终端的处理器执行,以完成上述各个实施例提供的资源传输方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

Claims (16)

1.一种资源传输方法,其特征在于,包括:
在播放多媒体资源的任一时刻,基于所述时刻的带宽信息和所述时刻的媒体缓存量,确定至少一种候选码率的预计缓存量,所述预计缓存量是指从所述时刻起按照对应码率对当前画面组继续进行下载,直到下载结束时刻所预计的媒体缓存量;
当所述至少一种候选码率的预计缓存量中不存在预计缓存量大于第一阈值的多媒体资源,将当前码率确定为目标码率;当所述至少一种候选码率的预计缓存量中存在预计缓存量大于所述第一阈值的多媒体资源,将满足预计缓存量大于所述第一阈值的候选码率中最大候选码率确定为所述目标码率;当所述至少一种候选码率的预计缓存量中存在预计缓存量大于或等于第二阈值的多媒体资源,将满足预计缓存量大于或等于第二阈值的最大候选码率确定为所述目标码率;当所述至少一种候选码率的预计缓存量中不存在预计缓存量大于或等于第二阈值的多媒体资源,计算对照缓存量,所述对照缓存量是指以所述当前码率继续进行下载直到当前画面组下载完毕时的预计缓存量,将各个预计缓存量和所述对照缓存量之间的最大缓存量对应的码率确定为所述目标码率;所述第一阈值大于所述第二阈值,所述目标码率为与所述时刻的播放状态匹配度最高的码率;
若所述目标码率与当前码率不一致,获取所述目标码率的多媒体资源的目标地址信息;
向服务器发送携带所述目标地址信息的帧获取请求,所述帧获取请求用于指示所述服务器以所述目标码率返回所述多媒体资源的媒体帧。
2.根据权利要求1所述的资源传输方法,其特征在于,所述时刻为所述多媒体资源的启播时刻;或,所述时刻为所述多媒体资源中任一个画面组的下载完毕时刻;或,所述时刻为所述多媒体资源中任一媒体帧的播放时刻。
3.根据权利要求1所述的资源传输方法,其特征在于,所述方法还包括:
若所述时刻为所述多媒体资源的启播时刻,将播放业务所指定的启播码率或者媒体描述文件的默认播放码率确定为所述目标码率。
4.根据权利要求1至3中任一项所述的资源传输方法,其特征在于,所述向服务器发送携带所述目标地址信息的帧获取请求之前,所述方法还包括:
若所述目标码率与当前码率不一致,确定目标位置信息,所述目标位置信息用于表示对所述多媒体资源的媒体帧的起始拉取位置;
将所述目标位置信息嵌入到携带所述目标地址信息的帧获取请求中。
5.根据权利要求4所述的资源传输方法,其特征在于,所述确定目标位置信息包括:
若所述时刻为所述多媒体资源的启播时刻,基于播放业务所指定的缓存时长,确定所述目标位置信息;或,
若所述时刻为所述多媒体资源中任一个画面组的下载完毕时刻,将所述画面组的下一个画面组中第一帧的时间戳确定为所述目标位置信息;或,
若所述时刻为所述多媒体资源中任一媒体帧的播放时刻,将当前下载的画面组中第一帧的时间戳确定为所述目标位置信息。
6.根据权利要求1所述的资源传输方法,其特征在于,所述在播放多媒体资源的任一时刻,确定所述时刻的目标码率之后,所述方法还包括:
若所述目标码率与当前码率一致,忽略所述目标码率,以所述当前码率继续执行多媒体资源传输。
7.根据权利要求1所述的资源传输方法,其特征在于,所述方法还包括:
在播放多媒体资源的过程中,若缓存区中存在多种码率的同一媒体帧,播放所述多种码率中最大码率的媒体帧。
8.一种资源传输装置,其特征在于,包括:
第一确定单元,被配置为执行在播放多媒体资源的任一时刻,基于所述时刻的带宽信息和所述时刻的媒体缓存量,确定至少一种候选码率的预计缓存量,所述预计缓存量是指从所述时刻起按照对应码率对当前画面组继续进行下载,直到下载结束时刻所预计的媒体缓存量;当所述至少一种候选码率的预计缓存量中不存在预计缓存量大于第一阈值的多媒体资源,将当前码率确定为目标码率;当所述至少一种候选码率的预计缓存量中存在预计缓存量大于所述第一阈值的多媒体资源,将满足预计缓存量大于所述第一阈值的候选码率中最大候选码率确定为所述目标码率;当所述至少一种候选码率的预计缓存量中存在预计缓存量大于或等于第二阈值的多媒体资源,将满足预计缓存量大于或等于第二阈值的最大候选码率确定为所述目标码率;当所述至少一种候选码率的预计缓存量中不存在预计缓存量大于或等于第二阈值的多媒体资源,计算对照缓存量,所述对照缓存量是指以所述当前码率继续进行下载直到当前画面组下载完毕时的预计缓存量,将各个预计缓存量和所述对照缓存量之间的最大缓存量对应的码率确定为所述目标码率;所述第一阈值大于所述第二阈值,所述目标码率为与所述时刻的播放状态匹配度最高的码率;
获取单元,被配置为执行若所述目标码率与当前码率不一致,获取所述目标码率的多媒体资源的目标地址信息;
发送单元,被配置为执行向服务器发送携带所述目标地址信息的帧获取请求,所述帧获取请求用于指示所述服务器以所述目标码率返回所述多媒体资源的媒体帧。
9.根据权利要求8所述的资源传输装置,其特征在于,所述时刻为所述多媒体资源的启播时刻;或,所述时刻为所述多媒体资源中任一个画面组的下载完毕时刻;或,所述时刻为所述多媒体资源中任一媒体帧的播放时刻。
10.根据权利要求8所述的资源传输装置,其特征在于,所述第一确定单元被配置为执行:
若所述时刻为所述多媒体资源的启播时刻,将播放业务所指定的启播码率或者媒体描述文件的默认播放码率确定为所述目标码率。
11.根据权利要求8至10中任一项所述的资源传输装置,其特征在于,所述装置还包括:
第二确定单元,被配置为执行若所述目标码率与当前码率不一致,确定目标位置信息,所述目标位置信息用于表示对所述多媒体资源的媒体帧的起始拉取位置;
嵌入单元,被配置为执行将所述目标位置信息嵌入到携带所述目标地址信息的帧获取请求中。
12.根据权利要求11所述的资源传输装置,其特征在于,所述第二确定单元被配置为执行:
若所述时刻为所述多媒体资源的启播时刻,基于播放业务所指定的缓存时长,确定所述目标位置信息;或,
若所述时刻为所述多媒体资源中任一个画面组的下载完毕时刻,将所述画面组的下一个画面组中第一帧的时间戳确定为所述目标位置信息;或,
若所述时刻为所述多媒体资源中任一媒体帧的播放时刻,将当前下载的画面组中第一帧的时间戳确定为所述目标位置信息。
13.根据权利要求8所述的资源传输装置,其特征在于,所述装置还包括:
传输单元,被配置为执行若所述目标码率与当前码率一致,忽略所述目标码率,以所述当前码率继续执行多媒体资源传输。
14.根据权利要求8所述的资源传输装置,其特征在于,所述装置还包括:
播放单元,被配置为执行在播放多媒体资源的过程中,若缓存区中存在多种码率的同一媒体帧,播放所述多种码率中最大码率的媒体帧。
15.一种终端,其特征在于,包括:
一个或多个处理器;
用于存储所述一个或多个处理器可执行指令的一个或多个存储器;
其中,所述一个或多个处理器被配置为执行所述指令,以实现如权利要求1至权利要求7中任一项所述的资源传输方法。
16.一种计算机可读存储介质,其特征在于,当所述存储介质中的至少一条指令由终端的一个或多个处理器执行时,使得所述终端能够执行如权利要求1至权利要求7中任一项所述的资源传输方法。
CN202010054775.2A 2020-01-17 2020-01-17 资源传输方法、装置、终端及存储介质 Active CN113141523B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN202010054775.2A CN113141523B (zh) 2020-01-17 2020-01-17 资源传输方法、装置、终端及存储介质
EP20913374.3A EP3952316A4 (en) 2020-01-17 2020-12-04 RESOURCE TRANSMISSION METHOD AND TERMINAL
PCT/CN2020/133755 WO2021143386A1 (zh) 2020-01-17 2020-12-04 资源传输方法及终端
US17/519,459 US11652864B2 (en) 2020-01-17 2021-11-04 Method and apparatus for transmitting resources and non-transitory storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010054775.2A CN113141523B (zh) 2020-01-17 2020-01-17 资源传输方法、装置、终端及存储介质

Publications (2)

Publication Number Publication Date
CN113141523A CN113141523A (zh) 2021-07-20
CN113141523B true CN113141523B (zh) 2022-07-22

Family

ID=76809529

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010054775.2A Active CN113141523B (zh) 2020-01-17 2020-01-17 资源传输方法、装置、终端及存储介质

Country Status (4)

Country Link
US (1) US11652864B2 (zh)
EP (1) EP3952316A4 (zh)
CN (1) CN113141523B (zh)
WO (1) WO2021143386A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114221870B (zh) * 2021-12-16 2023-01-20 北京达佳互联信息技术有限公司 用于服务器的带宽分配方法和装置
CN115086300B (zh) * 2022-06-16 2023-09-08 乐视云网络技术(北京)有限公司 一种视频文件调度方法和装置
CN115396732B (zh) * 2022-08-11 2024-02-02 深圳海翼智新科技有限公司 音视频数据包的传输方法、装置、电子设备及存储介质
CN116684468B (zh) * 2023-08-02 2023-10-20 腾讯科技(深圳)有限公司 数据处理方法、装置、设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102333089A (zh) * 2011-09-26 2012-01-25 南京邮电大学 基于超文本传输协议流化的多码率媒体流自适应控制方法
CN109040801A (zh) * 2018-07-19 2018-12-18 北京达佳互联信息技术有限公司 媒体码率自适应方法、装置、计算机设备及存储介质
CN110636346A (zh) * 2019-09-19 2019-12-31 北京达佳互联信息技术有限公司 一种码率自适应切换方法、装置、电子设备及存储介质

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007070056A1 (en) * 2005-12-15 2007-06-21 Thomson Licensing An adaptive joint source and channel coding scheme for h.264 video multicasting over wireless networks
CN101068236B (zh) * 2007-04-13 2011-10-26 华为技术有限公司 流媒体码率控制方法、系统和设备
US9124642B2 (en) * 2009-10-16 2015-09-01 Qualcomm Incorporated Adaptively streaming multimedia
CN102695081A (zh) * 2012-06-13 2012-09-26 百视通网络电视技术发展有限责任公司 基于互联网电视的视频资源调度方法及电视终端
WO2014011848A2 (en) * 2012-07-12 2014-01-16 Huawei Technologies Co., Ltd. Signaling and processing content with variable bitrates for adaptive streaming
CN103338393A (zh) * 2013-06-13 2013-10-02 西安交通大学 一种hspa系统下用户体验驱动的视频码率选择方法
US9386308B2 (en) * 2013-07-16 2016-07-05 Cisco Technology, Inc. Quality optimization with buffer and horizon constraints in adaptive streaming
CN103533386A (zh) * 2013-10-21 2014-01-22 腾讯科技(深圳)有限公司 一种直播控制方法,及主播设备
CN105025351B (zh) * 2014-04-30 2018-06-29 深圳Tcl新技术有限公司 流媒体播放器缓冲的方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102333089A (zh) * 2011-09-26 2012-01-25 南京邮电大学 基于超文本传输协议流化的多码率媒体流自适应控制方法
CN109040801A (zh) * 2018-07-19 2018-12-18 北京达佳互联信息技术有限公司 媒体码率自适应方法、装置、计算机设备及存储介质
CN110636346A (zh) * 2019-09-19 2019-12-31 北京达佳互联信息技术有限公司 一种码率自适应切换方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
WO2021143386A1 (zh) 2021-07-22
US20220060533A1 (en) 2022-02-24
US11652864B2 (en) 2023-05-16
CN113141523A (zh) 2021-07-20
EP3952316A1 (en) 2022-02-09
EP3952316A4 (en) 2022-07-27

Similar Documents

Publication Publication Date Title
CN113141514B (zh) 媒体流传输方法、系统、装置、设备及存储介质
CN113141523B (zh) 资源传输方法、装置、终端及存储介质
CN108600773B (zh) 字幕数据推送方法、字幕展示方法、装置、设备及介质
CN113141524B (zh) 资源传输方法、装置、终端及存储介质
US11537562B2 (en) Auxiliary manifest file to provide timed metadata
CN110213616B (zh) 视频提供方法、获取方法、装置及设备
US8676952B2 (en) User adaptive HTTP stream manager and method for using same
CN103190092B (zh) 用于流数字内容的同步重放的系统和方法
CN108769726B (zh) 多媒体数据推送方法、装置、存储介质及设备
CN109874043B (zh) 视频流发送方法、播放方法及装置
CN113141522B (zh) 资源传输方法、装置、计算机设备及存储介质
CN112995759A (zh) 互动业务处理方法、系统、装置、设备及存储介质
CN108600778B (zh) 媒体流发送方法、装置、系统及服务器、终端、存储介质
CN110996117B (zh) 视频转码方法、装置、电子设备和存储介质
US10419825B2 (en) Queue to display information for entities during video playback
CN113835649A (zh) 一种投屏方法和终端
KR100630166B1 (ko) 멀티미디어 서비스 시스템에서 멀티미디어 컨텐츠의 정보를제공하는 방법
US20220095020A1 (en) Method for switching a bit rate, and electronic device
CN111010588B (zh) 直播处理方法、装置、存储介质及设备
CN111698262B (zh) 带宽确定方法、装置、终端及存储介质
CN116264619A (zh) 资源处理方法、装置、服务器、终端、系统及存储介质
CN117812341A (zh) 一种显示设备及媒资播放方法
CN111770373A (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