CN114245178A - 一种传输视频的方法、装置、设备和存储介质 - Google Patents

一种传输视频的方法、装置、设备和存储介质 Download PDF

Info

Publication number
CN114245178A
CN114245178A CN202111560145.3A CN202111560145A CN114245178A CN 114245178 A CN114245178 A CN 114245178A CN 202111560145 A CN202111560145 A CN 202111560145A CN 114245178 A CN114245178 A CN 114245178A
Authority
CN
China
Prior art keywords
slice
sent
frame
video
frames
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202111560145.3A
Other languages
English (en)
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.)
Future Tv Co ltd
Original Assignee
Future Tv 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 Future Tv Co ltd filed Critical Future Tv Co ltd
Priority to CN202111560145.3A priority Critical patent/CN114245178A/zh
Publication of CN114245178A publication Critical patent/CN114245178A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/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/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/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本申请提供一种传输视频的方法、装置、设备和存储介质,该方法通过确定视频流中待发送切片的码率;根据待发送切片的码率和待发送切片的时长,确定待发送切片的目标比特,其中视频流中各个待发送切片的时长是相同的;将待发送切片的目标比特按照预设的分配规则分配到待发送切片中的各个帧上,并根据待发送切片中各个帧所分配的比特数对待发送切片进行编码,得到编码后的待发送切片;将编码后的待发送切片发送给终端设备。通过该方法可以达到提高视频流畅度的效果。

Description

一种传输视频的方法、装置、设备和存储介质
技术领域
本申请涉及视频流传输的领域,具体而言,涉及一种传输视频的方法、装置、设备和存储介质。
背景技术
目前在动态自适应流技术中,视频以多码率切片的形式存放在服务器中,供用户端根据网络状况自适应选择下载。
但是由于用户端播放器无法预知每个切片的大小,而是通过每个流的平均码率来估算切片下载时间,因此切片的实际码率相对于平均码率的波动会影响自适应算法的正确决策,导致视频播放会产生卡顿或者传输过程中浪费资源的现象。
因此,如何使视频播放更流畅,成为亟需解决的技术问题。
发明内容
本申请实施例的目的在于提供一种传输视频的方法,通过本申请的实施例的技术方案可以达到提高视频流畅度的效果。
第一方面,本申请实施例提供了一种传输视频的方法,该方法通过确定视频流中待发送切片的码率;根据待发送切片的码率和待发送切片的时长,确定待发送切片的目标比特,其中视频流中各个待发送切片的时长是相同的;将待发送切片的目标比特按照预设的分配规则分配到待发送切片中的各个帧上,并根据待发送切片中各个帧所分配的比特数对待发送切片进行编码,得到编码后的待发送切片;将编码后的待发送切片发送给终端设备。
在上述过程中,通过每个切片的时长和预先确定好的切片码率,给每个视频切片分配固定数量的比特,使每个视频切片达到固定的码率,并将上述固定的比特按照预设的规则分配给每一帧,使视频质量达到最优,通过稳定且固定的切片码率可以达到提高视频流畅度的效果。
可选的,当视频流为点播视频流时,确定视频流中待发送切片的目标码率包括:
根据***中历史视频流中的视频切片的平均码率确定待发送切片的目标码率,其中视频流中的各个待发送切片的目标码率是相同的。
在上述过程中,在点播视频时,可以根据***数据中视频切片的平局码率作为该视频流中切片的码率,达到该视频流码率恒定的效果。
可选的,当视频流为直播视频流时,确定视频流中待发送切片的目标码率包括:
根据视频流中待发送切片之前已编码的视频切片的平均码率确定待发送切片的目标码率。
在上述过程中,通过该视频流中已编码的切片的平均码率确定当前切片的目标码率,可以使当前切片的码率与之前的切片的码率幅度更小,进而使视频播放的过程中更加流畅。
可选的,将待发送切片的目标比特按照预设的分配规则分配到待发送切片中的各个帧上,并根据待发送切片中各个帧所分配的比特数对待发送切片进行编码,得到编码后的待发送切片,包括:
根据待发送切片中的各个帧在待发送切片中的权值占比将待发送切片的目标比特分配到待发送切片中的各个帧上,并根据待发送切片中各个帧所分配的比特数对待发送切片进行编码,得到编码后的待发送切片,其中权值占比表示各个帧在待发送切片中的重要程度。
在上述过程中,按照每个帧在该切片中的权值占比来分配每个切片的固定的比特数,并根据分配的比特对该视频切片进行编码,使视频切片可以获得稳定的码率,进而使视频播放的更加流畅。
可选的,在将待发送切片的目标比特按照预设的分配规则分配到待发送切片中的各个帧上,并根据待发送切片中各个帧所分配的比特数对待发送切片进行编码,得到编码后的待发送切片之前,所述方法还包括;
利用前向预测算法对待发送切片中的帧进行预测,得到预测结果,其中预测结果包括待发送切片中的帧的类型和数量。
在上述过程中,通过前向预测的算法,可以对该切片中的帧的类型和数量进行预测,只有在清楚切片中帧的类型和数量的情况下,才可以对切片中的帧进行比特的分配。
可选的,帧的类型包括以下帧的至少一种:
帧内编码帧、前向预测编码帧、双向差别帧和参考双向差别帧,其中各种帧在视频切片中的权值占比依次降低的顺序为:
帧内编码帧、前向预测编码帧、参考双向差别帧和双向差别帧。
在上述过程中,根据帧的类型和各个帧的权值占比,可以实现对应的比特的合理分配。
可选的,前向预测编码帧,包括以下帧的至少一种:
普通前向预测编码帧和关键前向预测编码帧,其中关键前向预测编码帧分配的比特数大于前向预测编码帧,其用于编码复杂场景下的视频切片。
在上述过程中,前向预测编码帧可以分为普通前向预测编码帧和关键前向预测编码帧,他们分别编码不同场景下的视频切片,可以使视频更加的流畅。
可选的,将待发送切片的目标比特按照预设的分配规则分配到待发送切片中的各个帧上,是他通过如下方式实现的:
Figure BDA0003420465290000031
其中,Tp表示当前帧分配的比特数,Ts表示目标比特,Rc表示当前帧之前已分配的比特数,Ws表示待发送切片中所有帧的权值总和,Wc表示当前帧之前已编码的帧的权值和,Wp表示当前帧的权值。
在上述过程中,通过当前帧的权值在未编码帧中的权值占比,可以计算出当前帧需要通过分配得到的比特数。
第二方面,本申请实施例提供了一种用于传输视频的装置,包括:
第一确定模块,用于确定视频流中待发送切片的码率;
第二确定模块,用于根据待发送切片的码率和待发送切片的时长,确定待发送切片的目标比特,其中视频流中各个待发送切片的时长是相同的;
分配模块,用于将待发送切片的目标比特按照预设的分配规则分配到待发送切片中的各个帧上,并根据待发送切片中各个帧所分配的比特数对待发送切片进行编码,得到编码后的待发送切片;
发送模块,用于将编码后的待发送切片发送给终端设备。
可选的,第一确定模块具体用于:
视频流为点播视频流时,根据***中历史视频流中的视频切片的平均码率确定待发送切片的目标码率,其中视频流中的各个待发送切片的目标码率是相同的。
可选的,第一确定模块具体用于:
视频流为直播视频流时,根据视频流中待发送切片之前已编码的视频切片的平均码率确定待发送切的目标码率。
可选的,分配模块具体用于:
根据待发送切片中的各个帧在待发送切片中的权值占比将待发送切片的目标比特分配到待发送切片中的各个帧上,并根据待发送切片中各个帧所分配的比特数对待发送切片进行编码,得到编码后的待发送切片,其中权值占比表示各个帧在待发送切片中的重要程度。
可选的,所述装置还包括:
预测模块,用于所述分配模块在将待发送切片的目标比特按照预设的分配规则分配到待发送切片中的各个帧上,并根据待发送切片中各个帧所分配的比特数对待发送切片进行编码,得到编码后的待发送切片之前,利用前向预测算法对待发送切片中的帧进行预测,得到预测结果,其中预测结果包括待发送切片中的帧的类型和数量。
可选的,帧的类型包括以下帧的至少一种:
帧内编码帧、前向预测编码帧、双向差别帧和参考双向差别帧,其中各种帧在视频切片中的权值占比依次降低的顺序为:
帧内编码帧、前向预测编码帧、参考双向差别帧和双向差别帧。
可选的,前向预测编码帧包括以下帧的至少一种:
普通前向预测编码帧和关键前向预测编码帧,其中关键前向预测编码帧分配的比特数大于前向预测编码帧,其用于编码复杂场景下的视频切片。
可选的,分配模块将待发送切片的目标比特按照预设的分配规则分配到待发送切片中的各个帧上,是他通过如下方式实现的:
Figure BDA0003420465290000051
其中,Tp表示当前帧分配的比特数,Ts表示目标比特,Rc表示当前帧之前已分配的比特数,Ws表示待发送切片中所有帧的权值总和,Wc表示当前帧之前已编码的帧的权值和,Wp表示当前帧所占的权值。
第三方面,本申请实施例提供一种电子设备,包括处理器以及存储器,所述存储器存储有计算机可读取指令,当所述计算机可读取指令由所述处理器执行时,运行如上述第一方面提供的所述方法中的步骤。
第四方面,本申请实施例提供一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时运行如上述第一方面提供的所述方法中的步骤。
本申请的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请实施例了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种传输视频的方法的流程图;
图2为本申请实施例提供的一种帧的类型以及其参考关系的示意图;
图3为本申请实施例提供的一种各类型帧的权值对应的表格;
图4为本申请实施例提供的一种传输视频的方法的详细流程图;
图5为本申请实施例提供的一种传输视频的装置的示意框图;
图6为本申请实施例提供的一种传输视频的装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
本申请应传输视频的场景,具体场景为文以x264的编码框架为基础,提出了一种切片层级的码率控制以及传输方法,通过控制每个视频切片比特的分配来精确控制每个视频切片的码率,在比特分配方面,根据各类型的帧在帧间预测中的参考关系,通过前向预测对切片的帧类型构成进行预估,确定了各类型的帧并使用了基于帧的类型的码率分配方法,根据不同类型帧和数量对切片内的帧进行对应的比特分配,并将编码后的切片发送给客户端,客户端只有完整下载该切片之后,才可以播放该切片。
但是在目前的使用的x264等编码器基于连续码流的应用场景而设计,所使用的码率控制方法没有考虑视频被分割的情况,缺乏切片级的码率控制,因此产生的切片码率波动较大,导致自适应算法判断失准,在实际应用中易产生卡顿或带宽浪费。
为此本文提出的比特分配算法在两个级别分别进行,切片级和帧级。通过优先确定需要编码的切片的码率,然后再根据切片的码率和设置好的切片时长来确定要给切片分配的比特数,通过分配固定的比特数,使视频切片的码率达到需求的码率设置,之后再根据各个帧类型在切片中的重要程度将固定的比特数分配给视频切片中的每个帧,使视频的质量达到最优并且不会出现卡顿的现象。
下面结合图1对本申请实施例的一种传输视频的方法进行描述。
请参照图1,图1为本申请实施例提供的一种传输视频的方法的流程图,应用于服务器,如图1所示的传输视频的方法包括:
110:确定视频流中待发送切片的码率。
在上述过程中,确定了视频流中切片的码率达到要求之后,可以使视频播放的过程中不会出现卡顿的现象。
其中,切片代表组成视频切片的一组帧,为码率控制最大的处理单位,为了保证客户端自适应决策的准确性,理想情况下,每个切片的码率都应当同M3U8(索引文件)文件中的设定码率相同。切片之间互不相关,独立编码,同时作为单独的单位下载,和渐进式下载不同,客户端在完整下载一个视频切片后才能开始对该切片的播放。
待发送切片的码率可以是***中历史视频切片的码率的平均码率,也可以是当前视频流中已编码切片的平均码率。
此外,视频流可以是点播视频流,也可以是直播视频流。
可选的,当视频流为点播视频流时,确定视频流中待发送切片的目标码率包括:
根据***中历史视频流中的视频切片的平均码率确定待发送切片的目标码率,其中视频流中的各个待发送切片的目标码率是相同的。
在上述过程中,在点播视频时,可以根据***数据中视频切片的平局码率作为该视频流中切片的码率,达到该视频流码率恒定的效果。
其中,该视频流中所有视频切片的目标码率是恒定不变的,***中历史视频流可以是当前服务器中存放的历史视频数据,也可以是其它服务器中存放的视频数据。
可选的,当视频流为直播视频流时,确定视频流中待发送切片的目标码率包括:
根据视频流中待发送切片之前已编码的视频切片的平均码率确定待发送切片的目标码率。
在上述过程中,通过该视频流中已编码的切片的平均码率确定当前切片的目标码率,可以使当前切片的码率与之前的切片的码率幅度更小,进而使视频播放的过程中更加流畅。
120:根据待发送切片的码率和待发送切片的时长,确定待发送切片的目标比特。
在上述过程中,通过预先确定好的码率和预设时长的切片,可以计算出给每个切片分配的固定比特数,使每个切片分配到一定的比特数,可以达到切片级的码率控制,使视频更加的流畅。
其中,每个视频切片的预设时长是相同的,切片的时长一般为2秒到10秒,例如:为了方便管理,把所有切片的时长都设定为固定的时长2秒。由于切片独立性的存在,每个切片的比特分配也是相互独立的,前一个切片的实际比特数并不会影响当前切片的比特分配,因此,在目标码率和切片时长确定后,每个切片的目标比特数也确定下来,由如下公式计算得到:
Ts=Dur*R(其中Dur表示切片时长,R表示目标码率,Ts表示目标比特数)。
同时,可以根据帧率和切片时长计算出切片包含的帧数。
Ns=Dur*fps(其中电fps为帧率,即每秒播放的帧的数量,Ns为帧数)。
在该帧的比特分配完成后,分配下一帧的比特,直到Ns个帧都分配完再继续对下一个切片中的帧进行比特分配,此处不再过多赘述。
130:将待发送切片的目标比特按照预设的分配规则分配到待发送切片中的各个帧上,并根据待发送切片中各个帧所分配的比特数对待发送切片进行编码,得到编码后的待发送切片。
在上述过程中,把上述步骤中分配到每个切片的比特再按照预设的分配规则分配到每个帧上面,使每个帧都分配到一定的比特数,并根据分配到的比特数对该视频切片进行编码,进而让视频的质量达到最佳。
其中,预设的分配规则可以是根据每个帧在切片中的权值占比来分配目标比特,权值占比表示帧在切片中的重要程度。充分利用了帧之间的时域相关性,将更多的比特分配给帧间预测贡献更大的帧,使视频的质量得到了很大的提升。此外,在分配比特时需要考虑到如下的因素:切片之间是否是互不相关且独立编码的,自适应帧类型选择策略导致切片中P(predictive-frame)帧和B(Bi-directional interpolated prediction frame)帧的比例具有不确定性,不同场景下的图像的复杂度有很大的差别。
可选的,将待发送切片的目标比特按照预设的分配规则分配到待发送切片中的各个帧上,并根据待发送切片中各个帧所分配的比特数对待发送切片进行编码,得到编码后的待发送切片,包括:
根据待发送切片中的各个帧在待发送切片中的权值占比将待发送切片的目标比特分配到待发送切片中的各个帧上,并根据待发送切片中各个帧所分配的比特数对待发送切片进行编码,得到编码后的待发送切片,其中权值占比表示各个帧在待发送切片中的重要程度。
在上述过程中,按照每个帧在该切片中的权值占比来分配每个切片的固定的比特数,并根据分配的比特对该视频切片进行编码,使视频切片可以获得稳定的码率,进而使视频播放的更加流畅。
其中,每个帧的类型在切片中的权值占比是不相同的。在理想情况下,在切片内可以使用可变码率(VBR)的分配方式,给复杂度高的部分分配较多码率,给复杂度低的部分分配较少码率,也就是说可以给权值占比大的帧分配较多的比特,权值占比小的帧分配较少的比特,使视频切片的质量可以达到最优。
可选的,在将待发送切片的目标比特按照预设的分配规则分配到待发送切片中的各个帧上,并根据待发送切片中各个帧所分配的比特数对待发送切片进行编码,得到编码后的待发送切片之前,图1所示的方法还可以包括;
利用前向预测算法对待发送切片中的帧进行预测,得到预测结果,其中预测结果包括待发送切片中的帧的类型和数量。
在上述过程中,通过前向预测的算法,可以对该切片中的帧的类型和数量进行预测,只有在清楚切片中帧的类型和数量的情况下,才可以对切片中的帧进行比特的分配。
其中,前向预测算法可以根据上一帧预测当前帧,还可以根据下一帧和上一帧共同去预测当前帧。
可选的,帧的类型包括以下帧的至少一种:
帧内编码帧、前向预测编码帧、双向差别帧和参考双向差别帧,其中各种帧在视频切片中的权值占比依次降低的顺序为:
帧内编码帧、前向预测编码帧、参考双向差别帧和双向差别帧。
在上述过程中,根据帧的类型和各个帧的权值占比,可以实现对应的比特的合理分配。
其中,x264编码器主要将帧分为四种类型包括:帧内编码帧又称I(intrapicture)帧,I帧通常是每个GOP(MPEG所使用的一种视频压缩技术)的第一个帧(IDR帧),经过适度地压缩,其作为随机访问的参考点,可以当成图像。前向预测编码帧又称P(predictive-frame)帧,通过充分将图像序列中前面已编码帧的时间冗余信息来压缩传输数据量的编码图像,也叫预测帧;表示的是这一帧跟之前的一个关键帧(或P帧)的差别,解码时需要用之前缓存的画面叠加上本帧定义的差别,生成最终画面。双向差别帧又称B(Bi-directional interpolated prediction frame)帧,也就是B帧记录的是本帧与前后帧的差别,换言之,要解码B帧,不仅要取得之前的缓存画面,还要解码之后的画面,通过前后画面的与本帧数据的叠加取得最终的画面。参考双向差别帧(B-ref)是参考帧的B帧,其也是记录的是本帧与前后帧的差别,根据参考双向差别帧进一步的预测可以得到双向差别帧。
下面结合图2举例说明各个帧之间的参考关系。
请参照图2,图2为本申请实施例提供的一种帧的类型以及其参考关系的示意图:
其中,I0为首帧,可以压缩视频中大部分的图像,解码时可以直接根据本帧的数据完成解码,P1可以根据I0的冗余信息进行数据的压缩,解码时需要用I0缓存的画面叠加上本帧定义的差别,生成最终的画面,P5同理可以根据P1的冗余信息进行数据的压缩,解码时需要用之前缓存的画面叠加上本帧定义的差别,生成最终的画面,B3可以根据I0缓存的画面和本帧定义的差别以及B-ref2和本帧的差别信息的叠加进行数据的压缩,解码时也需要根据I0缓存的数据以及两帧画面与本帧的差别叠加来生成最终画面,同理B-ref2可以根据之前缓存的数据以及I0和P1与本帧数据差别的叠加得到本帧的数据,同理B4也可以直接根据之前已经缓存的数据以及B-ref2与本帧的差别的叠加得到本帧的数据,同理B7可以根据之前已经缓存的数据以及P1和B-ref6与本帧数据差别的叠加得到本帧的数据,同理B-ref6可以根据之前缓存的数据以及P1和P5与本帧数据差别的叠加得到本帧的数据,同理B8可以根据之前已经缓存的数据以及B-ref6和P5与本帧数据差别的叠加得到本帧的数据等等,本申请不再过多赘述。
可选的,前向预测编码帧,包括以下帧的至少一种:
普通前向预测编码帧和关键前向预测编码帧,其中关键前向预测编码帧分配的比特数大于前向预测编码帧,其用于编码复杂场景下的视频切片。
在上述过程中,前向预测编码帧可以分为普通前向预测编码帧和关键前向预测编码帧,他们分别编码不同场景下的视频切片,可以使视频更加的流畅。
其中,其中关键前向预测编码帧(P-special)分配的比特数大于前向预测编码帧,其用于编码复杂场景下的视频切片。
下面结合图3对本申请实施例提供的不同帧的类型的取值进行详细描述。
请参照图3,图3为本申请实施例提供的一种各类型帧的权值对应的表格:
其中,不同类型的帧包块:帧内编码帧(I帧)、关键前向预测编码帧(P-special帧)、前向预测编码帧(P帧)、参考双向差别帧(B-ref帧)和双向差别帧(B帧),对应的,其权值分别是130、80、40、5和3。
在上述过程中,每个切片中的每个帧可根据对应的权值占比进行比特的分配,进而使视频的质量达到最佳,减少卡顿的现象。
可选的,将待发送切片的目标比特按照预设的分配规则分配到待发送切片中的各个帧上,是他通过如下方式实现的:
Figure BDA0003420465290000121
其中,Tp表示当前帧分配的比特数,Ts表示目标比特,Rc表示当前帧之前已分配的比特数,Ws表示待发送切片中所有帧的权值总和,Wc表示当前帧之前已编码的帧的权值和,Wp表示当前帧的权值。
在上述过程中,通过当前帧的权值在未编码帧中的权值占比,可以计算出当前帧需要通过分配得到的比特数。
140:将编码后的待发送切片发送给终端设备。
在上述过程中,将设置好的固定码率的切片发送给终端,终端可以依次下载对应的视频切片并进行解码,最后实现视频的播放。
下面结合图4对本申请实施例的一种传输视频的方法进行详细描述。
请参照图4,图4为本申请实施例提供的一种传输视频的方法的详细流程图,应用于服务器,如图4所示的传输视频的方法包括:
410:切片比特分配。
优先对视频切片进行比特的分配,其中每个视频切片分配到固定的比特数。
通过对视频切片分配到固定数量的比特,可以控制视频切片的码率。
420:帧级比特分配。
根据每个帧的权值占比,将目标比特分配给每一帧,使每一帧根据每一帧数据的重要程度得到对应数量的比特。
430:帧级码率控制。
通过对每一帧的比特分配,实现对每一帧的码率控制,使视频的质量达到最佳。
440:更新剩余权值。
在对下一帧进行比特分配之前,对剩余的帧对应的总权值进行更新,作为下一帧参考的总权值,下一帧根据此时的总权值对应的权值占比进行对应的比特分配。
450:判断是否是最后一帧。
若不是最后一帧,则对下一帧进行比特的分配,若是最后一帧则开始对下一个切片中的每一帧进行比特的分配。
460:判断是否是最后一个切片。
若不是最后一个切片,则对下一切片的每一帧进行比特的分配,若是最后一个切片则结束比特的分配,实现了对每个视频切片和切片中每一帧的码率控制。
前文通过结合图1-图4描述了传输视频的方法,下面结合图5-图6描述传输视频的装置。
请参照图5,为本申请实施例中提供的一种传输视频的装置500的示意框图,该装置500可以是电子设备上的模块、程序段或代码。该装置500与上述图1方法实施例对应,能够执行图1方法实施例涉及的各个步骤,该装置500具体的功能可以参见下文中的描述,为避免重复,此处适当省略详细描述。
可选的,装置500包括:
第一确定模块510,用于确定视频流中待发送切片的码率;
第二确定模块520,用于根据待发送切片的码率和待发送切片的时长,确定待发送切片的目标比特,其中视频流中各个待发送切片的时长是相同的;
分配模块530,用于将待发送切片的目标比特按照预设的分配规则分配到待发送切片中的各个帧上,并根据待发送切片中各个帧所分配的比特数对待发送切片进行编码,得到编码后的待发送切片;
发送模块540,用于将编码后的待发送切片发送给终端设备。
可选的,第一确定模块具体用于:
视频流为点播视频流时,根据***中历史视频流中的视频切片的平均码率确定待发送切片的目标码率,其中视频流中的各个待发送切片的目标码率是相同的。
可选的,第一确定模块具体用于
视频流为直播视频流时,根据视频流中待发送切片之前已编码的视频切片的平均码率确定待发送切的目标码率。
可选的,分配模块具体用于:
根据待发送切片中的各个帧在待发送切片中的权值占比将待发送切片的目标比特分配到待发送切片中的各个帧上,并根据待发送切片中各个帧所分配的比特数对待发送切片进行编码,得到编码后的待发送切片,其中权值占比表示各个帧在待发送切片中的重要程度。
可选的,所述装置还包括:
预测模块,用于所述分配模块在将待发送切片的目标比特按照预设的分配规则分配到待发送切片中的各个帧上,并根据待发送切片中各个帧所分配的比特数对待发送切片进行编码,得到编码后的待发送切片之前,利用前向预测算法对待发送切片中的帧进行预测,得到预测结果,其中预测结果包括待发送切片中的帧的类型和数量。
可选的,帧的类型包括以下帧的至少一种:
帧内编码帧、前向预测编码帧、双向差别帧和参考双向差别帧,其中各种帧在视频切片中的权值占比依次降低的顺序为:
帧内编码帧、前向预测编码帧、参考双向差别帧和双向差别帧。
可选的,前向预测编码帧包括以下帧的至少一种:
普通前向预测编码帧和关键前向预测编码帧,其中关键前向预测编码帧分配的比特数大于前向预测编码帧,其用于编码复杂场景下的视频切片。
可选的,分配模块将待发送切片的目标比特按照预设的分配规则分配到待发送切片中的各个帧上,是他通过如下方式实现的:
Figure BDA0003420465290000151
其中,Tp表示当前帧分配的比特数,Ts表示目标比特,Rc表示当前帧之前已分配的比特数,Ws表示待发送切片中所有帧的权值总和,Wc表示当前帧之前已编码的帧的权值和,Wp表示当前帧所占的权值。
请参照图6为本申请实施例中提供的一种传输视频的装置600的结构示意框图,该装置可以包括处理器620和存储器610。可选的,该装置还可以包括:通信接口630和通信总线640。该装置与上述图1方法实施例对应,能够执行图1方法实施例涉及的各个步骤,该装置具体的功能可以参见下文中的描述。
具体的,存储器610,用于存储计算机可读指令。
处理器620,用于处理存储器存储的可读指令,能够执行图1方法实施例110至140各个步骤。
通信接口630,用于与其他节点设备进行信令或数据的通信。例如:用于与服务器或者终端的通信,或者与其它设备节点进行通信,本申请实施例并不限于此。
通信总线640,用于实现上述组件直接的连接通信。
其中,本申请实施例中设备的通信接口630用于与其他节点设备进行信令或数据的通信。存储器610可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器。存储器610可选的还可以是至少一个位于远离前述处理器的存储装置。存储器610中存储有计算机可读取指令,当所述计算机可读取指令由所述处理器620执行时,电子设备执行上述图1所示方法过程。处理器620可以用于装置500上,并且用于执行本申请中的功能。示例性地,上述的处理器620可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、现成可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,本申请实施例并不局限于此。
本申请实施例还提供一种可读存储介质,所述计算机程序被处理器执行时,执行如图1所示方法实施例中电子设备所执行的方法过程。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法中的对应过程,在此不再过多赘述。
综上所述,本申请实施例提供一种传输视频的方法、装置、电子设备及可读存储介质,该方法通过确定视频流中待发送切片的码率;根据待发送切片的码率和待发送切片的时长,确定待发送切片的目标比特,其中视频流中各个待发送切片的时长是相同的;将待发送切片的目标比特按照预设的分配规则分配到待发送切片中的各个帧上,并根据待发送切片中各个帧所分配的比特数对待发送切片进行编码,得到编码后的待发送切片;将编码后的待发送切片发送给终端设备。通过该方法可以达到提高视频流畅度的效果。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

Claims (10)

1.一种传输视频的方法,其特征在于,应用于服务器,包括:
确定视频流中待发送切片的码率;
根据所述待发送切片的码率和所述待发送切片的时长,确定所述待发送切片的目标比特,其中所述视频流中各个待发送切片的时长是相同的;
将所述待发送切片的目标比特按照预设的分配规则分配到所述待发送切片中的各个帧上,并根据所述待发送切片中各个帧所分配的比特数对所述待发送切片进行编码,得到编码后的待发送切片;
将所述编码后的待发送切片发送给终端设备。
2.根据权利要求1所述的方法,其特征在于,所述视频流为点播视频流时,所述确定视频流中待发送切片的目标码率包括:
根据***中历史视频流中的视频切片的平均码率确定所述待发送切片的目标码率,其中所述视频流中的各个所述待发送切片的目标码率是相同的。
3.根据权利要求1所述的方法,其特征在于,所述视频流为直播视频流时,所述确定视频流中待发送切片的目标码率包括:
根据所述视频流中所述待发送切片之前已编码的视频切片的平均码率确定所述待发送切的目标码率。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述将所述待发送切片的目标比特按照预设的分配规则分配到所述待发送切片中的各个帧上,并根据所述待发送切片中各个帧所分配的比特数对所述待发送切片进行编码,得到编码后的待发送切片,包括:
根据所述待发送切片中的各个帧在所述待发送切片中的权值占比将所述待发送切片的目标比特分配到所述待发送切片中的各个帧上,并根据所述待发送切片中各个帧所分配的比特数对所述待发送切片进行编码,得到编码后的待发送切片。
5.根据权利要求1至3中任一项所述的方法,其特征在于,在所述将所述待发送切片的目标比特按照预设的分配规则分配到所述待发送切片中的各个帧上,并根据所述待发送切片中各个帧所分配的比特数对所述待发送切片进行编码,得到编码后的待发送切片之前,所述方法还包括;
利用前向预测算法对所述待发送切片中的帧进行预测,得到预测结果,其中所述预测结果包括所述待发送切片中的帧的类型和数量。
6.根据权利要求5所述的方法,其特征在于,所述帧的类型包括以下帧的至少一种:
帧内编码帧、前向预测编码帧、双向差别帧和参考双向差别帧,其中各种帧在视频切片中的权值占比依次降低的顺序为:
帧内编码帧、前向预测编码帧、参考双向差别帧和双向差别帧。
7.根据权利要求6所述的方法,其特征在于,所述前向预测编码帧包括以下帧的至少一种:
普通前向预测编码帧和关键前向预测编码帧,其中所述关键前向预测编码帧分配的比特数大于所述前向预测编码帧,其用于编码特殊场景下的视频切片。
8.一种传输视频的装置,其特征在于,包括:
第一确定模块,用于确定视频流中待发送切片的码率;
第二确定模块,用于根据所述待发送切片的码率和所述待发送切片的时长,确定所述待发送切片的目标比特,其中所述视频流中各个待发送切片的时长是相同的;
分配模块,用于将所述待发送切片的目标比特按照预设的分配规则分配到所述待发送切片中的各个帧上,并根据所述待发送切片中各个帧所分配的比特数对所述待发送切片进行编码,得到编码后的待发送切片;
发送模块,用于将所述编码后的待发送切片发送给终端设备。
9.一种传输视频的设备,其特征在于,包括:
存储器和处理器,所述存储器存储有计算机可读取指令,当所述计算机可读取指令由所述处理器执行时,运行如权利要求1至8中任一项所述方法中的步骤。
10.一种计算机可读存储介质,其特征在于,包括:
计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行如权利要求1至8中任一项所述的方法。
CN202111560145.3A 2021-12-20 2021-12-20 一种传输视频的方法、装置、设备和存储介质 Pending CN114245178A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111560145.3A CN114245178A (zh) 2021-12-20 2021-12-20 一种传输视频的方法、装置、设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111560145.3A CN114245178A (zh) 2021-12-20 2021-12-20 一种传输视频的方法、装置、设备和存储介质

Publications (1)

Publication Number Publication Date
CN114245178A true CN114245178A (zh) 2022-03-25

Family

ID=80758992

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111560145.3A Pending CN114245178A (zh) 2021-12-20 2021-12-20 一种传输视频的方法、装置、设备和存储介质

Country Status (1)

Country Link
CN (1) CN114245178A (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101897190A (zh) * 2007-11-28 2010-11-24 松下电器产业株式会社 图像编码方法和图像编码装置
US20120281767A1 (en) * 2011-05-04 2012-11-08 Alberto Duenas Low latency rate control system and method
CN103167318A (zh) * 2011-12-13 2013-06-19 中国电信股份有限公司 流媒体处理方法、装置和服务器、***
CN104717500A (zh) * 2013-12-12 2015-06-17 中国电信股份有限公司 一种视频编码码率控制方法和***
CN105898319A (zh) * 2015-12-22 2016-08-24 乐视云计算有限公司 视频转码方法和装置
CN111787322A (zh) * 2020-08-04 2020-10-16 北京百度网讯科技有限公司 视频编码的方法、装置、电子设备及计算机可读存储介质
CN112312231A (zh) * 2019-07-31 2021-02-02 北京金山云网络技术有限公司 一种视频图像编码方法、装置、电子设备及介质

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101897190A (zh) * 2007-11-28 2010-11-24 松下电器产业株式会社 图像编码方法和图像编码装置
US20120281767A1 (en) * 2011-05-04 2012-11-08 Alberto Duenas Low latency rate control system and method
CN103718555A (zh) * 2011-05-04 2014-04-09 凯为公司 低时延速率控制***和方法
CN103167318A (zh) * 2011-12-13 2013-06-19 中国电信股份有限公司 流媒体处理方法、装置和服务器、***
CN104717500A (zh) * 2013-12-12 2015-06-17 中国电信股份有限公司 一种视频编码码率控制方法和***
CN105898319A (zh) * 2015-12-22 2016-08-24 乐视云计算有限公司 视频转码方法和装置
CN112312231A (zh) * 2019-07-31 2021-02-02 北京金山云网络技术有限公司 一种视频图像编码方法、装置、电子设备及介质
CN111787322A (zh) * 2020-08-04 2020-10-16 北京百度网讯科技有限公司 视频编码的方法、装置、电子设备及计算机可读存储介质

Similar Documents

Publication Publication Date Title
KR101716071B1 (ko) 적응적 스트리밍 기법
US7958532B2 (en) Method of transmitting layered video-coded information
US9571827B2 (en) Techniques for adaptive video streaming
KR101044213B1 (ko) 비디오 전송 방법
KR100966447B1 (ko) 데이터 스트리밍 시스템 및 방법
JP4690280B2 (ja) メディアデータをストリーミングする方法、システム及びクライアント装置
EP2612495B1 (en) Adaptive streaming of video at different quality levels
US20130046902A1 (en) Procedure and device for transmission of multimedia digital data
CN104584495B (zh) 用于无线网络上的自适应速率多媒体通信的装置和方法
Li et al. A unified architecture for real-time video-coding systems
US10148990B2 (en) Video streaming resource optimization
JP2003525547A (ja) スケーラブルビデオをストリーミングするための方法及び装置
KR20150036232A (ko) 완만한 품질 전이를 가능하게 하는 적응형 스트리밍 인식 노드, 인코더 및 클라이언트
KR20140027393A (ko) 낮은 레이턴시 레이트 제어 시스템 및 방법
MXPA04012517A (es) Servidor multimedia con adaptacion simple con condiciones dinamicas de perdida de red.
CN107509120A (zh) 一种基于缓冲区下溢概率估计的流媒体自适应传输方法
EP2308215A1 (en) Thinning of packet-switched video data
CN114245178A (zh) 一种传输视频的方法、装置、设备和存储介质
US7533075B1 (en) System and method for controlling one or more signal sequences characteristics
Clayman et al. In-network scalable video adaption using big packet protocol
CN104717500B (zh) 一种视频编码码率控制方法和***
CN105306970A (zh) 一种流媒体直播发送速度的控制方法及装置
Xu et al. Efficient partitioning of unequal error protected mpeg video streams for multiple channel transmission
TWI683572B (zh) 基於畫面動態資訊的視訊位元率傳輸控制方法
WO2021083286A1 (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