CN111866533A - 一种直播转码方法及装置 - Google Patents

一种直播转码方法及装置 Download PDF

Info

Publication number
CN111866533A
CN111866533A CN202010668331.8A CN202010668331A CN111866533A CN 111866533 A CN111866533 A CN 111866533A CN 202010668331 A CN202010668331 A CN 202010668331A CN 111866533 A CN111866533 A CN 111866533A
Authority
CN
China
Prior art keywords
frame
frame rate
rate
input
output
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202010668331.8A
Other languages
English (en)
Other versions
CN111866533B (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.)
Wangsu Science and Technology Co Ltd
Original Assignee
Wangsu Science and 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 Wangsu Science and Technology Co Ltd filed Critical Wangsu Science and Technology Co Ltd
Priority to CN202010668331.8A priority Critical patent/CN111866533B/zh
Publication of CN111866533A publication Critical patent/CN111866533A/zh
Application granted granted Critical
Publication of CN111866533B publication Critical patent/CN111866533B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/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/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
    • H04N21/440236Processing 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 by media transcoding, e.g. video is transformed into a slideshow of still pictures, audio is converted into text

Landscapes

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

Abstract

本发明实施例提供一种直播转码方法及装置,该方法包括:确定转码输入端的输入帧率和转码输出端的输出帧率;在所述输入帧率和所述输出帧率满足帧率调整条件时,根据所述输入帧率和所述输出帧率确定参考帧率和参考码率;设置编码器的工作帧率为所述参考帧率,并设置所述编码器的工作码率为所述参考码率;所述编码器用于根据所述工作帧率和所述工作码率为直播提供转码服务。上述方法中,编码器根据工作帧率和工作码率进行视频转码,可以实现在直播转码中的帧率不稳定的情况下,根据帧率动态调整编码器中的工作帧率和工作码率,在保证直播画质的情况下,降低客户端的卡顿率。

Description

一种直播转码方法及装置
技术领域
本申请涉及视频处理技术领域,尤其涉及一种直播转码方法及装置。
背景技术
近年来,随着网络的迅速发展及普及,网络的应用渗透到人们生活以及工作的方方面面,也衍生更多的工作职位和娱乐方式。如目前依靠网络兴起的直播,不只成为了人们的娱乐方式,也发展成了一种行业。
直播的实现为通过主播端将录制的视频实时上传至服务器,客户端实时从服务器获取主播端上传的视频。但现有技术中,主播端的推流的帧率会受到诸如推流器的采样策略、网络策略和实际网络链路质量的影响;因此,而存在帧率不稳定的情况。而编码器只针对开始推流的帧率设置码率,后续即使帧率不稳定,码率仍然不会改变。因此,帧率改变而码率不变,可能会造成直播过程中播放卡顿或者画面模糊的现象。例如,直播开始时,推流的帧率受网络状况的影响,帧率较低,进而得到较高的码率,当后续网络稳定后,得到一个较高的帧率,但码率仍然较高,则会造成客户端播放卡顿。
因此,现在亟需一种直播转码方法及装置,用于降低客户端卡顿率并保证直播画质。
发明内容
本发明实施例提供一种直播转码方法及装置,用于降低客户端卡顿率并保证直播画质。
第一方面,本发明实施例提供一种直播转码方法,该方法包括:确定转码输入端的输入帧率和转码输出端的输出帧率;在所述输入帧率和所述输出帧率满足帧率调整条件时,根据所述输入帧率和所述输出帧率确定参考帧率和参考码率;设置编码器的工作帧率为所述参考帧率,并设置所述编码器的工作码率为所述参考码率;所述编码器用于根据所述工作帧率和所述工作码率为直播提供转码服务。
上述方法中,根据转码输入端的输入帧率和转码输出端的输出帧率确定参考帧率和参考码率,并将参考帧率设置为编码器的工作帧率,参考码率设置为编码器的工作码率。如此,编码器根据工作帧率和工作码率进行视频转码。可以实现在直播转码中的帧率不稳定的情况下,根据帧率动态调整编码器中的工作帧率和工作码率,在保证直播画质的情况下,降低客户端的卡顿率。
可选的,确定转码输入端的输入帧率和转码输出端的输出帧率,包括:将从所述转码输入端获取的输入帧复制并缓存至第一帧缓存池,并根据所述第一帧缓存池中的输入帧确定所述输入帧率;将从所述转码输出端获取的输出帧复制并缓存至第二帧缓存池,并根据所述第二帧缓存池中的输出帧确定所述输出帧率。
上述方法中,将转码输入端获取的输入帧复制并缓存至第一帧缓存池,并根据第一帧缓存池中的输入帧确定输入帧率。如此,可以使得第一帧缓存池中存储一段时间内的输入帧,通过该输入帧与该段时间的比值获取帧率,借此将该段时间内帧率的突升和突降产生的突刺消除,得到较为稳定的帧率。将转码输出端获取的输出帧复制并缓存至第二帧缓存池,并根据第二帧缓存池中的输出帧确定输出帧率。如此,可以使得第二帧缓存池中存储一段时间内的输出帧,通过该输出帧与该段时间的比值获取帧率,借此将该段时间内帧率的突刺消除,得到较为稳定的帧率。因此,得到较为稳定的输入帧率和输出帧率,进而确定是否修改编码器中的工作帧率和工作码率。进而消除由于输入帧率或者输出帧率的突刺造成的,编码器频繁重置工作帧率和工作码率的情况,并加快编码速度。
可选的,根据所述第一帧缓存池中的输入帧确定所述输入帧率,包括:确定所述第一帧缓存池中的第一缓存帧数以及第一最大时间差;所述第一最大时间差是根据所述第一帧缓存池中最大时间戳的帧和最小时间戳的帧确定的;根据所述第一缓存帧数和所述第一最大时间差确定所述输入帧率;根据所述第二帧缓存池中的输出帧确定所述输出帧率,包括:确定所述第二帧缓存池中的第二缓存帧数以及第二最大时间差;所述第二最大时间差是根据所述第二帧缓存池中最大时间戳的帧和最小时间戳的帧确定的;根据所述第二缓存帧数和所述第二最大时间差确定所述输出帧率。
可选的,所述编码器工作于主线程;所述主线程还用于将从所述转码输入端获取的输入帧复制并缓存至所述第一帧缓存池,并将从所述转码输出端获取的输出帧复制并缓存至第二帧缓存池;设置副线程;所述副线程用于根据所述第一帧缓存池中的输入帧确定所述输入帧率,并根据所述第二帧缓存池中的输出帧确定所述输出帧率。
上述方法中,将主线程中的转码输入端获取的输入帧复制并缓存至第一帧缓存池,并将从转码输出端获取的输出帧复制并缓存至第二帧缓存池。进而,使得第一帧缓存池中的第一缓存帧来自转码输入端,与转码输入端的输入帧同步;第二帧缓存池中的第二缓存帧来自转码输出端,与转码输出端的输出帧同步。保证输入帧率和输出帧率计算的准确性,进一步保证编码器中的工作帧率和工作码率的准确性,由此,也在保证直播画质的前提下,降低客户端的卡顿率。
可选的,根据所述第一帧缓存池中的输入帧确定所述输入帧率之前,还包括:确定所述第一帧缓存池中的帧数达到第一帧数限制;根据所述第二帧缓存池中的输出帧确定所述输出帧率,包括:确定所述第二帧缓存池中的帧数达到第二帧数限制。
上述方法中,设置第一帧数限制和第二帧数限制,例如,第一帧数限制为60帧,则当第一帧缓存池中的帧数量达到60,则达到第一帧数限制,此时,若第一帧缓存池缓存主线程复制的5帧的同时,第一帧缓存池中最早缓存的5帧也会被删除;同理,第二帧数限制为20帧,则当第二帧缓存池中的帧数量达到20,则达到第二帧数限制,此时,若第二帧缓存池缓存主线程复制的5帧的同时,第二帧缓存池中最早缓存的5帧也会被删除;如此,使得帧缓存池中的缓存帧数不超过固定帧数量。也就是说,当帧缓存池中的帧数达到帧数限制,则帧缓存池在缓存主线程复制的一定数量的帧的同时,也会删除最早缓存的该数量的帧,以保证帧缓存池中的帧数为帧数限制。如此,通过合理设置帧数限制可以获得较为准确的帧率。进一步在保证直播画质的前提下,降低客户端的卡顿率。
可选的,根据第一帧缓存池中的帧确定所述输出帧率之前,还包括:所述第一帧缓存池初始为空;所述编码器在启动时未设置有所述工作帧率和所述工作码率;所述方法还包括:在确定所述第一帧缓存池中的帧数首次达到所述第一帧数限制时,根据所述第一帧缓存池中的输入帧确定所述工作帧率和所述工作码率。
上述方法中,在开始进行转码时,编码器中未设置码率,则在第一帧缓存池中的帧数首次达到第一帧数限制时,根据第一帧缓存池中的输入帧确定编码器的工作帧率和工作码率。如此,相比于现有技术中,直接根据输入帧的帧率确定编码器的工作帧率和工作码率来说;本申请通过上述方法能够有效消除转码刚开始,因为网络不稳定等因素造成的帧率偏低,码率较高的情况。保证在没有输出帧的情况下,仍然可以维持一个较为适合的帧率,在保证直播画质的前提下,降低客户端的卡顿率。
可选的,所述第一帧缓存池的存储量设置为受限于所述第一帧数限制;所述第二帧缓存池的存储量设置为受限于所述第二帧数限制。
上述方法中,第一帧缓存池的存储量设置为受限于所述第一帧数限制;如,若第一帧数限制为60帧,则第一帧缓存池的缓存帧数量不可超过60帧;同理,所述第二帧缓存池的存储量设置为受限于所述第二帧数限制;若第二帧数限制为20帧,则第二帧缓存池的缓存帧数量不可超过20帧。这里第一帧数限制和第二帧数限制可以根据直播转码类型、直播转码时间等条件确定,如,设定相应程序以根据不同条件设置不同第一帧数限制和第二帧数限制,这里第一帧数限制和第二帧数限制的设置具体不做限定。
可选的,所述输入帧率和所述输出帧率满足帧率调整条件,包括:若所述输入帧率和所述输出帧率的差值的绝对值大于波动检测阈值,和\或所述输入帧率和所述输出帧率的差值绝对值大于波动检测阈值的次数连续超过预设次数阈值。
上述方法中,当输入帧率和输出帧率的差值的绝对值大于波动检测阈值,则可以认为编码器中的工作帧率和工作码率不适合当前转码工作的进行;但为了防止编码器中的工作帧率和工作码率不适合当前转码工作,是由于帧率的偶发突刺造成;则预先设置次数阈值。当输入帧率和输出帧率的差值绝对值大于波动检测阈值的次数连续超过预设次数阈值,则证明当前帧率的突升或突降不是偶发突刺,则根据输入帧率和输出帧率调整编码器中的工作帧率和工作码率。防止由于编码器频繁设置工作帧率和工作码率,而降低转码速度。
第二方面,本发明实施例提供一种直播转码装置,该装置包括:
确定模块,用于确定转码输入端的输入帧率和转码输出端的输出帧率;
所述确定模块还用于,在所述输入帧率和所述输出帧率满足帧率调整条件时,根据所述输入帧率和所述输出帧率确定参考帧率和参考码率;
处理模块,用于设置编码器的工作帧率为所述参考帧率,并设置所述编码器的工作码率为所述参考码率;所述编码器用于根据所述工作帧率和所述工作码率为直播提供转码服务。
第三方面,本发明提供一种计算机设备,包括程序或指令,当所述程序或指令被执行时,用以执行上述第一方面及第一方面各个可选的方法。
第四方面,本发明提供一种存储介质,包括程序或指令,当所述程序或指令被执行时,用以执行上述第一方面及第一方面各个可选的方法。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种直播转码的架构示意图;
图2为本发明实施例提供的一种直播转码的架构示意图;
图3为本发明实施例提供的一种直播转码方法的流程示意图;
图4为本发明实施例提供的一种直播转码方法的流程示意图;
图5为本发明实施例提供的一种直播转码装置示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本发明实施例提供的一种直播转码的架构示意图,如图1所示,主播端101将录制的视频实时上传至转码服务器102,转码服务器102将主播端101的视频转码成各网络对应适合接收的视频编码,如,转码服务器102接收主播端101的5G网络上传的高码率视频,则分别转码成2G、3G、4G的较低码率的视频,使得主播端101上传的视频转码后,可以被使用2G、3G、4G网络的客户端103分别获取,并流畅播放。其中,本发明实施例提供的一种直播转码的架构示意图,如图2所示,主线程21中转码输入端211的输入帧,为主播端101上传的视频中的帧,对输入帧进行解码,根据编码器212中的工作帧率和工作码率对该输入帧进行编码,由转码输出端213输出编码后的输出帧。在直播转码过程中,转码开始时,编码器212中没有工作帧率和工作码率,主线程21将转码输入端211的输入帧复制到第一帧缓存池221,当第一帧缓存池221中的输入帧数量达到第一帧数限制后,副线程22中的第一算法单元222根据第一帧缓存池221中缓存的输入帧确定输入帧率,进而根据输入帧率设置编码器213的工作帧率和工作码率;后续主线程21将转码输出端213的输出帧复制到第二帧缓存池225,当第二帧缓存池225中的输出帧数量达到第二帧数限制后,副线程22中的第二算法单元224根据第二帧缓存池225中缓存的输出帧确定输出帧率,进而,由副线程22中的算法单元223根据输入帧率和输出帧率确定是否要重新设置编码器212中的工作帧率和工作码率。
基于此,本申请实施例提供了一种直播转码方法的流程,如图3所示,包括:
步骤301、确定转码输入端的输入帧率和转码输出端的输出帧率;
此处,例如,转码输入端的输入帧率为30fps/s,转码输出端的输出帧率10fps/s。
步骤302、在所述输入帧率和所述输出帧率满足帧率调整条件时,根据所述输入帧率和所述输出帧率确定参考帧率和参考码率;
此处,在上述示例中,当转码输入端的输入帧率为30fps/s,转码输出端的输出帧率10fps/s满足帧率调整条件时,假设确定参考帧率为30fps/s,且网络带宽为10240Kbps,则参考码率为10240Kbps/30fps/s=341.33Kbps。
步骤303、设置编码器的工作帧率为所述参考帧率,并设置所述编码器的工作码率为所述参考码率;所述编码器用于根据所述工作帧率和所述工作码率为直播提供转码服务。
上述方法中,根据转码输入端的输入帧率和转码输出端的输出帧率确定参考帧率和参考码率,并将参考帧率设置为编码器的工作帧率,参考码率设置为编码器的工作码率。相比于现有技术中码率根据开始转码的输入帧率设定,且不改变码率,忽略了帧率不稳定的情况;本申请编码器根据工作帧率和工作码率进行视频转码,且根据输入帧率和输出帧率动态调整编码器中的工作帧率和工作码率,可以实现在直播转码中的帧率不稳定的情况下,保证直播画质,降低客户端的卡顿率。
本申请实施例提供了一种输出帧率和输入帧率的确定方法,确定转码输入端的输入帧率和转码输出端的输出帧率,包括:将从所述转码输入端获取的输入帧复制并缓存至第一帧缓存池,并根据所述第一帧缓存池中的输入帧确定所述输入帧率;将从所述转码输出端获取的输出帧复制并缓存至第二帧缓存池,并根据所述第二帧缓存池中的输出帧确定所述输出帧率。在上述示例中,第一帧缓存池中存储有60帧,且这60帧为2秒内缓存的,则输入帧率为60/2=30fps/s,第二帧缓存池中存储有20帧,且这20帧为2秒内缓存的,则输入帧率为20/2=10fps/s。
本申请实施例提供了一种输出帧率和输入帧率的确定方法,根据所述第一帧缓存池中的输入帧确定所述输入帧率,包括:确定所述第一帧缓存池中的第一缓存帧数以及第一最大时间差;所述第一最大时间差是根据所述第一帧缓存池中最大时间戳的帧和最小时间戳的帧确定的;根据所述第一缓存帧数和所述第一最大时间差确定所述输入帧率;根据所述第二帧缓存池中的输出帧确定所述输出帧率,包括:确定所述第二帧缓存池中的第二缓存帧数以及第二最大时间差;所述第二最大时间差是根据所述第二帧缓存池中最大时间戳的帧和最小时间戳的帧确定的;根据所述第二缓存帧数和所述第二最大时间差确定所述输出帧率。在上述示例中,第一帧缓存池中存储有60帧,其中,帧的最大时间戳为00:00:03,帧的最小时间戳为00:00:01,则第一最大时间差为2秒,这60帧为2秒内缓存的,则输入帧率为60/2=30fps/s;第二帧缓存池中存储有20帧,其中,帧的最大时间戳为00:00:07,帧的最小时间戳为00:00:05,则第二最大时间差为2秒,这20帧为2秒内缓存的,则输入帧率为20/2=10fps/s。
本申请实施例提供了一种输出帧率和输入帧率的确定方法,所述编码器工作于主线程;所述主线程还用于将从所述转码输入端获取的输入帧复制并缓存至所述第一帧缓存池,并将从所述转码输出端获取的输出帧复制并缓存至第二帧缓存池;设置副线程;所述副线程用于根据所述第一帧缓存池中的输入帧确定所述输入帧率,并根据所述第二帧缓存池中的输出帧确定所述输出帧率。这里如图2中所示的主线程21进行直播转码,通过在主线程21上增加副线程22,以实现通过第一帧缓存池221、第一算法单元222和第二帧缓存池225、第二算法单元224确定输入帧率和输出帧率。如此,分别通过第一帧缓存池221和第二帧缓存池225消除输入帧率和输出帧率的突升和突降,且由于第一帧缓存池中的第一缓存帧来自转码输入端,与转码输入端的输入帧同步;第二帧缓存池中的第二缓存帧来自转码输出端,与转码输出端的输出帧同步。保证输入帧率和输出帧率计算的准确性,进一步保证编码器中的工作帧率和工作码率的准确性,由此,也在保证直播画质的前提下,降低客户端的卡顿率。
本申请实施例提供了一种直播转码方法,根据所述第一帧缓存池中的输入帧确定所述输入帧率之前,还包括:确定所述第一帧缓存池中的帧数达到第一帧数限制;根据所述第二帧缓存池中的输出帧确定所述输出帧率,包括:确定所述第二帧缓存池中的帧数达到第二帧数限制。在上述示例中,第一帧缓存池中存储有60帧,且最大存储帧数为60帧,则60帧为第一帧数限制。第二帧缓存池中存储有20帧,且最大存储帧数为20帧,则20帧为第二帧数限制。
本申请实施例提供了一种直播转码方法,根据第一帧缓存池中的帧确定所述输出帧率之前,还包括:所述第一帧缓存池初始为空;所述编码器在启动时未设置有所述工作帧率和所述工作码率;所述方法还包括:在确定所述第一帧缓存池中的帧数首次达到所述第一帧数限制时,根据所述第一帧缓存池中的输入帧确定所述工作帧率和所述工作码率。在上述示例中,在转码初始时,转码输入端刚开始接收输入帧,则复制输入帧到第一帧缓存池,直到第一帧缓存池中的输入帧数达到第一帧数限制,计算输入帧率,将输入帧率设置为编码器的工作帧率,同时确定工作码率,以使得编码器根据工作帧率和工作码率开始工作。如此,相比于现有技术中直接将根据主线程中的,转码输入端的输入帧确定的输入帧率确定为编码器的工作帧率;本申请通过第一帧缓存池缓和了转码开始时,由于网络状态不稳定造成的帧率不稳定的情况,通过第一帧缓存池获得相对较稳定的输入帧率,也就是编码器的工作帧率,提升直播画质,降低客户端的卡顿率。例如,开始转码的第一秒钟,主线程中输入帧率为10fps/s,第二秒钟为20fps/s,第三秒钟为30fps/s。若按照现有技术在开始转码时就根据开始的输入帧率设定编码器工作帧率,则编码器工作帧率为10fps/s,工作码率为10240Kbps/10fps/s=1024Kbps。当后续输入帧率为30fps/s时,码率仍然为1024Kbps,需要的网络速度为1024Kbps*30fps/s=30720Kbps,而输入帧率为30fps/s所需要的网络传输速度30720Kbps大于现有客户端所能提供的网络速度10240Kbps,则会造成卡顿,且30720Kbps大出10240Kbps2倍,客户端的播放视频卡顿非常严重。而本申请中设置第一帧缓存池,若第一帧缓存池中的第一帧数限制为60帧,则第一帧缓存池存储第一秒输入的10帧,第二秒输入的20帧,第三秒输入的30帧,输入帧率=(10+20+30)/3=20fps/s,输入帧率设为编码器的工作帧率20fps/s,工作码率10240Kbps/20fps/s=512Kbps。当后续输入帧率为30fps/s时,码率为512Kbps,需要的网络速度为512Kbps*30fps/s=15360Kbps,输入帧率为30fps/s所需要的网络传输速度15360Kbps虽然大于现有客户端所能提供的网络速度10240Kbps,但15360Kbps仅大出10240Kbps0.5倍,极大地缓解了客户端的播放视频卡顿的情况。
本申请实施例提供了一种帧缓存池的帧数限制设置方法,所述第一帧缓存池的存储量设置为受限于所述第一帧数限制;所述第二帧缓存池的存储量设置为受限于所述第二帧数限制。也就是说,若第一帧数限制为60帧,则第一帧缓存池的缓存帧数量不可超过60帧;若第二帧数限制为20帧,则第二帧缓存池的缓存帧数量不可超过20帧。这里第一帧数限制和第二帧数限制可以根据直播转码类型、直播转码时间等条件确定,如,设定相应程序以根据不同条件设置不同第一帧数限制和第二帧数限制,这里第一帧数限制和第二帧数限制的设置具体不做限定。
本申请实施例提供了一种编码器的工作帧率的工作码率调整方法,所述输入帧率和所述输出帧率满足帧率调整条件,包括:若所述输入帧率和所述输出帧率的差值的绝对值大于波动检测阈值,和\或所述输入帧率和所述输出帧率的差值绝对值大于波动检测阈值的次数连续超过预设次数阈值。这里可以在服务器设置相应的算法或程序实现帧率调整条件的限制,如,假设输入帧率为F_pre,输出帧率为F_cur,帧率波动检测阈值为T%,预设次数阈值为C。
Figure BDA0002581282510000111
在上述算法内可以有一个恒定循环,设定周期计算输入帧率和输出帧率,当输入帧率F_cur和输出帧率F_pre差值超过阈值时,则把计数值C自加1,当输入帧率F_cur和输出帧率F_pre差值没有超过阈值,则把计数值C重置为0。这样防止发生由于帧率的突升和突降而频繁地重置编码器,进而使编码效率降低。
基于上述方法流程,本申请实施例还提供了一种直播转码方法流程,如图4所示,包括:
步骤401、转码输入端接收输入帧,并在将输入帧输入到编码器的同时,将输入帧复制到第一帧缓存池。
步骤402、编码器存储输入帧等待被设置工作帧率和工作码率。
步骤403、第一帧缓存池中的帧数达到了第一帧数限制,根据第一帧缓存池中的帧确定输入帧率,根据输入帧率确定参考帧率和参考码率,并将该参考帧率设置为编码器的工作帧率,参考码率设置为编码器的工作码率。
步骤404、周期性获取第一帧缓存池的输入帧率和第二帧缓存池的输出帧率。
步骤405、输入帧率和输出帧率的差值的绝对值是否大于波动检测阈值,且输入帧率和输出帧率的差值绝对值大于波动检测阈值的次数连续是否超过预设次数阈值。若是,则执行步骤406,若否,则执行步骤404。
步骤406、根据输入帧率确定参考帧率和参考码率,并将该参考帧率设置为编码器的工作帧率,参考码率设置为编码器的工作码率。
基于同样的构思,本申请实施例提供一种直播转码装置,图5为本申请实施例提供的一种直播转码示意图,如图5示,包括:
确定模块501,用于确定转码输入端的输入帧率和转码输出端的输出帧率;
所述确定模块501还用于,在所述输入帧率和所述输出帧率满足帧率调整条件时,根据所述输入帧率和所述输出帧率确定参考帧率和参考码率;
处理模块502,用于设置编码器的工作帧率为所述参考帧率,并设置所述编码器的工作码率为所述参考码率;所述编码器用于根据所述工作帧率和所述工作码率为直播提供转码服务。
在一种可能的设计中,所述确定模块501具体用于:将从所述转码输入端获取的输入帧复制并缓存至第一帧缓存池,并根据所述第一帧缓存池中的输入帧确定所述输入帧率;将从所述转码输出端获取的输出帧复制并缓存至第二帧缓存池,并根据所述第二帧缓存池中的输出帧确定所述输出帧率。
在一种可能的设计中,所述确定模块501具体用于:确定所述第一帧缓存池中的第一缓存帧数以及第一最大时间差;所述第一最大时间差是根据所述第一帧缓存池中最大时间戳的帧和最小时间戳的帧确定的;根据所述第一缓存帧数和所述第一最大时间差确定所述输入帧率;根据所述第二帧缓存池中的输出帧确定所述输出帧率,包括:确定所述第二帧缓存池中的第二缓存帧数以及第二最大时间差;所述第二最大时间差是根据所述第二帧缓存池中最大时间戳的帧和最小时间戳的帧确定的;根据所述第二缓存帧数和所述第二最大时间差确定所述输出帧率。
在一种可能的设计中,所述编码器工作于主线程;所述主线程还用于将从所述转码输入端获取的输入帧复制并缓存至所述第一帧缓存池,并将从所述转码输出端获取的输出帧复制并缓存至第二帧缓存池;设置副线程;所述副线程用于根据所述第一帧缓存池中的输入帧确定所述输入帧率,并根据所述第二帧缓存池中的输出帧确定所述输出帧率。
在一种可能的设计中,所述确定模块501还用于,根据所述第一帧缓存池中的输入帧确定所述输入帧率之前,还包括:确定所述第一帧缓存池中的帧数达到第一帧数限制;根据所述第二帧缓存池中的输出帧确定所述输出帧率,包括:确定所述第二帧缓存池中的帧数达到第二帧数限制。
在一种可能的设计中,所述确定模块501还用于:所述第一帧缓存池初始为空;所述编码器在启动时未设置有所述工作帧率和所述工作码率;所述方法还包括:在确定所述第一帧缓存池中的帧数首次达到所述第一帧数限制时,根据所述第一帧缓存池中的输入帧确定所述工作帧率和所述工作码率。
在一种可能的设计中,所述第一帧缓存池的存储量设置为受限于所述第一帧数限制;所述第二帧缓存池的存储量设置为受限于所述第二帧数限制。
在一种可能的设计中,所述确定模块501具体用于:若所述输入帧率和所述输出帧率的差值的绝对值大于波动检测阈值,和\或所述输入帧率和所述输出帧率的差值绝对值大于波动检测阈值的次数连续超过预设次数阈值。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (11)

1.一种直播转码方法,其特征在于,所述方法包括:
确定转码输入端的输入帧率和转码输出端的输出帧率;
在所述输入帧率和所述输出帧率满足帧率调整条件时,根据所述输入帧率和所述输出帧率确定参考帧率和参考码率;
设置编码器的工作帧率为所述参考帧率,并设置所述编码器的工作码率为所述参考码率;所述编码器用于根据所述工作帧率和所述工作码率为直播提供转码服务。
2.如权利要求1所述的方法,其特征在于,确定转码输入端的输入帧率和转码输出端的输出帧率,包括:
将从所述转码输入端获取的输入帧复制并缓存至第一帧缓存池,并根据所述第一帧缓存池中的输入帧确定所述输入帧率;
将从所述转码输出端获取的输出帧复制并缓存至第二帧缓存池,并根据所述第二帧缓存池中的输出帧确定所述输出帧率。
3.如权利要求2所述的方法,其特征在于,根据所述第一帧缓存池中的输入帧确定所述输入帧率,包括:
确定所述第一帧缓存池中的第一缓存帧数以及第一最大时间差;所述第一最大时间差是根据所述第一帧缓存池中最大时间戳的帧和最小时间戳的帧确定的;
根据所述第一缓存帧数和所述第一最大时间差确定所述输入帧率;
根据所述第二帧缓存池中的输出帧确定所述输出帧率,包括:
确定所述第二帧缓存池中的第二缓存帧数以及第二最大时间差;所述第二最大时间差是根据所述第二帧缓存池中最大时间戳的帧和最小时间戳的帧确定的;
根据所述第二缓存帧数和所述第二最大时间差确定所述输出帧率。
4.如权利要求2所述的方法,其特征在于,所述编码器工作于主线程;
所述主线程还用于将从所述转码输入端获取的输入帧复制并缓存至所述第一帧缓存池,并将从所述转码输出端获取的输出帧复制并缓存至第二帧缓存池;
设置副线程;所述副线程用于根据所述第一帧缓存池中的输入帧确定所述输入帧率,并根据所述第二帧缓存池中的输出帧确定所述输出帧率。
5.如权利要求2所述的方法,其特征在于,根据所述第一帧缓存池中的输入帧确定所述输入帧率之前,还包括:
确定所述第一帧缓存池中的帧数达到第一帧数限制;
根据所述第二帧缓存池中的输出帧确定所述输出帧率之前,包括:
确定所述第二帧缓存池中的帧数达到第二帧数限制。
6.如权利要求5所述的方法,其特征在于,根据第一帧缓存池中的帧确定所述输出帧率之前,还包括:
所述第一帧缓存池初始为空;所述编码器在启动时未设置有所述工作帧率和所述工作码率;
根据第一帧缓存池中的帧确定所述输出帧率之前,还包括:
在确定所述第一帧缓存池中的帧数首次达到所述第一帧数限制时,根据所述第一帧缓存池中的输入帧确定所述工作帧率和所述工作码率。
7.如权利要求5所述的方法,其特征在于,所述第一帧缓存池的存储量设置为受限于所述第一帧数限制;所述第二帧缓存池的存储量设置为受限于所述第二帧数限制。
8.如权利要求1至7任一项所述的方法,其特征在于,所述输入帧率和所述输出帧率满足帧率调整条件,包括:
若所述输入帧率和所述输出帧率的差值的绝对值大于波动检测阈值,和/或所述输入帧率和所述输出帧率的差值绝对值大于波动检测阈值的次数连续超过预设次数阈值。
9.一种直播转码装置,其特征在于,所述方法包括:
确定模块,用于确定转码输入端的输入帧率和转码输出端的输出帧率;
所述处理模块还用于,在所述输入帧率和所述输出帧率满足帧率调整条件时,根据所述输入帧率和所述输出帧率确定参考帧率和参考码率;
处理模块,用于设置编码器的工作帧率为所述参考帧率,并设置所述编码器的工作码率为所述参考码率;所述编码器用于根据所述工作帧率和所述工作码率为直播提供转码服务。
10.一种计算机可读存储介质,其特征在于,所述存储介质存储有程序,当所述程序在计算机上运行时,使得计算机执行权利要求1至8中任一项所述的方法。
11.一种计算机设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于调用所述存储器中存储的计算机程序,按照获得的程序执行如权利要求1至8任一权利要求所述的方法。
CN202010668331.8A 2020-07-13 2020-07-13 一种直播转码方法及装置 Active CN111866533B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010668331.8A CN111866533B (zh) 2020-07-13 2020-07-13 一种直播转码方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010668331.8A CN111866533B (zh) 2020-07-13 2020-07-13 一种直播转码方法及装置

Publications (2)

Publication Number Publication Date
CN111866533A true CN111866533A (zh) 2020-10-30
CN111866533B CN111866533B (zh) 2022-03-08

Family

ID=72984430

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010668331.8A Active CN111866533B (zh) 2020-07-13 2020-07-13 一种直播转码方法及装置

Country Status (1)

Country Link
CN (1) CN111866533B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112887744A (zh) * 2021-01-21 2021-06-01 上海薏欣文化传播有限公司 一种大健康智慧直播厅直播数据传输控制方法
CN115278289A (zh) * 2022-09-27 2022-11-01 海马云(天津)信息技术有限公司 一种云应用渲染视频帧处理方法与装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103686227A (zh) * 2012-09-17 2014-03-26 南京中兴力维软件有限公司 用于移动终端的音视频采集编码方法、装置及系统
CN106817588A (zh) * 2017-02-06 2017-06-09 网宿科技股份有限公司 转码控制方法及装置、视频直播方法及系统
WO2017097126A1 (zh) * 2015-12-08 2017-06-15 阿里巴巴集团控股有限公司 一种转码方法及装置
CN109788316A (zh) * 2019-02-27 2019-05-21 腾讯科技(深圳)有限公司 码率控制、视频转码方法与装置、计算机设备及存储介质
CN110121089A (zh) * 2019-06-10 2019-08-13 杭州米络星科技(集团)有限公司 一种rtmp直播码率自适应方法
CN110913245A (zh) * 2019-11-08 2020-03-24 网宿科技股份有限公司 一种控制视频转码码率的方法和装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103686227A (zh) * 2012-09-17 2014-03-26 南京中兴力维软件有限公司 用于移动终端的音视频采集编码方法、装置及系统
WO2017097126A1 (zh) * 2015-12-08 2017-06-15 阿里巴巴集团控股有限公司 一种转码方法及装置
CN106817588A (zh) * 2017-02-06 2017-06-09 网宿科技股份有限公司 转码控制方法及装置、视频直播方法及系统
CN109788316A (zh) * 2019-02-27 2019-05-21 腾讯科技(深圳)有限公司 码率控制、视频转码方法与装置、计算机设备及存储介质
CN110121089A (zh) * 2019-06-10 2019-08-13 杭州米络星科技(集团)有限公司 一种rtmp直播码率自适应方法
CN110913245A (zh) * 2019-11-08 2020-03-24 网宿科技股份有限公司 一种控制视频转码码率的方法和装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112887744A (zh) * 2021-01-21 2021-06-01 上海薏欣文化传播有限公司 一种大健康智慧直播厅直播数据传输控制方法
CN112887744B (zh) * 2021-01-21 2022-03-04 上海薏欣文化传播有限公司 一种大健康智慧直播厅直播数据传输控制方法
CN115278289A (zh) * 2022-09-27 2022-11-01 海马云(天津)信息技术有限公司 一种云应用渲染视频帧处理方法与装置

Also Published As

Publication number Publication date
CN111866533B (zh) 2022-03-08

Similar Documents

Publication Publication Date Title
AU2014223523B2 (en) Adaptive streaming techniques
EP3520420B1 (en) Viewer importance adaptive bit rate delivery
US20190075342A1 (en) Codec techniques for fast switching
CN106791956B (zh) 网络直播卡顿的处理方法及装置
US8527649B2 (en) Multi-stream bit rate adaptation
CN109660879B (zh) 直播丢帧方法、系统、计算机设备和存储介质
US8781305B2 (en) Media streaming with smooth fast-forward and rewind
CA2758763C (en) Method and device for fast pushing unicast stream in fast channel change
EP3520421B1 (en) Viewer importance adaptive bit rate delivery
CN111866533B (zh) 一种直播转码方法及装置
CN110913245A (zh) 一种控制视频转码码率的方法和装置
EP3322189B1 (en) Method and system for controlling video transcoding
CN107801049B (zh) 一种实时视频传送、播放方法及装置
WO2018005083A1 (en) Method and system for dynamically adjusting a camera setting for a video stream
CN109769125B (zh) 流媒体码率的动态调整方法、媒体服务器及转码服务器
US10924812B2 (en) Constant quality video encoding with encoding parameter fine-tuning
WO2021013558A1 (en) A media client with adaptive buffer size and the related method
JP4878052B2 (ja) 映像符号量制御方法,映像符号化装置,映像符号量制御プログラムおよびその記録媒体
CN114079805A (zh) 一种多码率切换的方法、装置、系统、设备和存储介质
CN114827668A (zh) 基于解码能力的视频档位选择方法、装置及设备
CN117714729A (zh) 直播视频编码方法、装置、计算机设备及存储介质
CN117729376A (zh) 视频播放方法、装置、设备及存储介质
CN116886995A (zh) 一种实时切流直播转码方法、系统、设备及存储介质
Kamariotis Bridging the gap between CBR and VBR for H264 standard

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