CN105898371A - 实时转码的实时控制方法及装置 - Google Patents
实时转码的实时控制方法及装置 Download PDFInfo
- Publication number
- CN105898371A CN105898371A CN201510891571.3A CN201510891571A CN105898371A CN 105898371 A CN105898371 A CN 105898371A CN 201510891571 A CN201510891571 A CN 201510891571A CN 105898371 A CN105898371 A CN 105898371A
- Authority
- CN
- China
- Prior art keywords
- time
- consuming
- transcoding
- coding
- real
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
- H04N21/234309—Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4 or from Quicktime to Realvideo
Abstract
本发明实施例提供一种实时转码的实时控制方法及装置。在转码过程中实时获取当前编码的反馈信息;根据所述反馈信息计算当前一定数量编码帧的实际耗时;根据预先计算的期望耗时与所述实际耗时计算所述一定数量编码帧的耗时偏差;根据所述耗时偏差,调整编码参数进行转码控制。实现了在有限的转码资源情况下,仍能提供流畅的直播体验的转码。
Description
技术领域
本发明实施例涉及视频技术领域,尤其涉及一种实时转码的实时控制方法及装置。
背景技术
近年来,广播以及IP网络视频应用的发展,高清视频时代正式来临。对数字设备来说,视频画面质量大幅提升的同时也给视频内容处理带来不便。
随着云计算及虚拟化技术越来越多的普及和应用,云端实时转码已经成为目前互联网视频网站普遍采用的方式。实时转码是近年来高速发展和逐步广泛应用的一种视频转码技术,功能上与离线转码一致。
实时转码对CPU及内存的消耗是巨大的,如何在有限的转码资源情况下,仍能提供流畅的直播体验的转码是一个亟待解决的技术问题。
发明内容
本发明实施例提供一种实时转码的实时控制方法及装置,用以解决现有技术中,实时转码系统资源不足导致转码不流畅的缺陷,实现视频转码的实时控制,保证了直播的流畅性。
本发明实施例提供一种实时转码的实时控制方法,包括:
在转码过程中实时获取当前编码的反馈信息;
根据所述反馈信息计算当前一定数量编码帧的实际耗时;
根据预先计算的期望耗时与所述实际耗时计算所述一定数量编码帧的耗时偏差;
根据所述耗时偏差,调整编码参数进行转码控制。
本发明实施例提供一种实时转码的实时控制装置,包括:
信息获取模块,用于在转码过程中实时获取当前编码的反馈信息;
计算模块,用于根据所述反馈信息计算当前一定数量编码帧的实际耗时;根据预先计算的期望耗时与所述实际耗时计算所述一定数量编码帧的耗时偏差;
转码控制模块,用于根据所述耗时偏差,调整编码参数进行转码控制。
本发明实施例提供的实时转码的实时控制方法及装置,通过对编码过程进行监控,实时获取编码过程的反馈信息,根据反馈信息对编码的复杂度参数进行调整,从而实现了转码系统性能的调整,使得转码过程不会因为服务器的负载,而影响直播的流畅性;与此同时,本发明实施例提出的技术方案算法和框架实现较为简单,很容易扩展至其它的转码器,如H.265。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一的技术流程图;
图2为本发明实实施例耗时偏差等级与编码参数映射示例图;
图3为本发明实施例二的装置结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
图1是本发明实施例一的技术流程图,结合图1,本发明实施例一种实时转码的实时控制方法主要包括如下的步骤:
步骤110:在转码过程中实时获取当前编码的反馈信息;
视频转码(Video Transcoding)是指将已经压缩编码的视频码流转换成另一个视频码流,以适应不同的网络带宽、不同的终端处理能力和不同的用户需求。转码本质上是一个先解码,再编码的过程,本发明实施例的核心在于,根据编码的反馈信息来控制编码的编码复杂度参数,从而实现转码的实时控制。
本实施例所述的反馈信息包括转码的帧率值、当前一定数量编码帧中每一帧的编码耗时等,其中,帧率(Frame rate)即为每秒编码的帧数。
转码器以默认编码参数进行转码,在转码过程中,实时监控编码器的性能。通常编码器为了更好的进行帧率控制,通常都会有lookahead buffer(LAB,先行缓冲),来实时分析输入内容的复杂度。
如果设置LAB=25,那么真正的第一个编码帧会在25帧之后输出,同理,若设置LAB=30,那么真正的第一个编码帧会在30帧之后输出。
根据所述帧率值计算所述一定数量编码帧的所述期望耗时的计算公式如下:
time_expected=帧数/帧率值
其中,time_expected为所述期望耗时,帧数为所述一定数量编码帧的总数。
假设当前帧率为25fps/s,设置LAB=帧率值=25,则编码器的延时为1s。若LAB=30,则需根据帧率换算编码器编码完成30帧的耗时时间的换算结果为(30×1s)/25=1.2s。
步骤120:根据所述反馈信息计算当前一定数量编码帧的实际耗时;
从所述反馈信息中获取所述一定数量编码帧中每一帧的编码耗时,累加得到所述一定数量编码帧的实际耗时。具体计算公式如下所示:
其中,time_elasped为所述实际耗时,time_frame为所述每一帧的编码耗时,N为编码帧数量的总和,i为每一帧的序号,其中i∈[1,N]。
步骤130:根据预先计算的期望耗时与所述实际耗时计算所述一定数量编码帧的耗时偏差;
耗时偏差计算公式如下:
time_delta=(timeelasped-timeexpected)/time_expected
其中,time_delta为耗时偏差值,time_expected为期望耗时。
步骤140:根据所述耗时偏差,调整编码参数进行转码控制。
本发明实施例中,预先设置耗时偏差等级,并对每个所述耗时偏差等级预设需调整的编码参数。
本实施例中,耗时偏差等级的示例如下:
enc_delay_thresh_0=10;
enc_delay_thresh_10=30;
enc_delay_thresh_30=50;
enc_delay_thresh_50=70;
enc_delay_thresh_70=100;
enc_delay_thresh_100=200;
其中,enc_delay_thresh_0至enc_delay_thresh_100表示编码器实际编码耗时与期望耗时的不同偏差值,本发明实施例以百分比作为实际编码耗时与期望耗时的差异,如enc_delay_thresh_0表示实际编码耗时与期望耗时偏差为10%,以1s为单位,则表示偏差为100ms。当然上述数据仅供举例使用,对本发明实施例并不构成限制。
当步骤130中,计算出耗时偏差time_delta后,根据所述耗时偏差,查询预先设置的所述耗时偏差等级,获得相应的编码参数,并对所述编码进行相应的参数调整。当然对应每个参数调整对整体系统性能的贡献,预先会做具体的分析。
图2为本发明实实施例耗时偏差等级与编码参数映射示例图,参考图2,前一个耗时偏差等级区间为下一个耗时偏差等级区间的子集。图2中,thresh为不同的耗时偏差等级,参数NULL:偏差在10%之内,认为可以不做调整;参数Disable_i8x8:不做i_8x8的帧内预测,只做i_4x4和i_16x16;参数Subme-1:亚像素运动估计复杂度,减1为在现有参数基础上减1;参数Subme-2:亚像素运动估计复杂度,减2为在现有参数基础上减2;参数Subme-3:亚像素运动估计复杂度,减3为在现有参数基础上减3;参数ME_RANGE:运动估计搜索范围;几个参数组合在一起表示几个参数同时调整,以此来降低编码复杂度。
本实施例通过对编码过程进行监控,实时获取编码过程的反馈信息,根据反馈信息对编码的复杂度参数进行调整,从而实现了转码系统性能的调整,使得转码过程不会因为服务器的负载,而影响直播的流畅性,从而提升了用户的观看体验。
实施例二
图3是本发明实施例二的装置结构示意图,结合图3,本发明实施例一种实时转码的实时控制装置,主要包括如下模块:信息获取模块310、计算模块320、转码控制模块330。
所述信息获取模块310,用于在转码过程中实时获取当前编码的反馈信息;
所述计算模块320,用于根据所述反馈信息计算当前一定数量编码帧的实际耗时;根据预先计算的期望耗时与所述实际耗时计算所述一定数量编码帧的耗时偏差;
所述转码控制模块330,用于根据所述耗时偏差,调整编码参数进行转码控制。
具体地,所述计算模块320进一步用于:从所述反馈信息中获取所述一定数量编码帧中每一帧的编码耗时,累加得到所述一定数量编码帧的实际耗时。
具体地,所述计算模块320进一步用于:在计算所述一定数量编码帧的耗时偏差之前,获取所述编码的帧率值,根据所述帧率值计算所述一定数量编码帧的所述期望耗时。
具体地,所述转码控制模块330进一步用于:预先设置耗时偏差等级,并对每个所述耗时偏差等级预设需调整的编码参数。
具体地,所述转码控制模块330进一步用于:根据所述耗时偏差,查询预先设置的所述耗时偏差等级,获得相应的编码参数,并对所述编码进行相应的参数调整。
图3所示装置可以执行图1、图2对应实施例的方法,其实现原理和技术效果可以参考图1、图2对应的实施例的内容,此处不再赘述。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机装置(可以是个人计算机,服务器,或者网络装置等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种实时转码的实时控制方法,其特征在于,包括如下步骤:
在转码过程中实时获取当前编码的反馈信息;
根据所述反馈信息计算当前一定数量编码帧的实际耗时;
根据预先计算的期望耗时与所述实际耗时计算所述一定数量编码帧的耗时偏差;
根据所述耗时偏差,调整编码参数进行转码控制。
2.根据权利要求1所述的方法,其特征在于,根据所述反馈信息计算当前一定数量编码帧的实际耗时,进一步包括:
从所述反馈信息中获取所述一定数量编码帧中每一帧的编码耗时,累加得到所述一定数量编码帧的实际耗时。
3.根据权利要求1所述的方法,其特征在于,计算所述一定数量编码帧的耗时偏差之前,进一步包括:
获取所述编码的帧率值,根据所述帧率值计算所述一定数量编码帧的所述期望耗时。
4.根据权利要求1所述的方法,其特征在于,根据所述耗时偏差,调整编码参数,进一步包括:
预先设置耗时偏差等级,并对每个所述耗时偏差等级预设需调整的编码参数。
5.根据权利要求1或4所述的方法,其特征在于,根据所述耗时偏差,调整编码参数,进一步包括:
根据所述耗时偏差,查询预先设置的所述耗时偏差等级,获得相应的编码参数,并对所述编码进行相应的参数调整。
6.一种实时转码的实时控制装置,其特征在于,包括如下模块:
信息获取模块,用于在转码过程中实时获取当前编码的反馈信息;
计算模块,用于根据所述反馈信息计算当前一定数量编码帧的实际耗时;根据预先计算的期望耗时与所述实际耗时计算所述一定数量编码帧的耗时偏差;
转码控制模块,用于根据所述耗时偏差,调整编码参数进行转码控制。
7.根据权利要求6所述的装置,其特征在于,所述计算模块进一步用于:
从所述反馈信息中获取所述一定数量编码帧中每一帧的编码耗时,累加得到所述一定数量编码帧的实际耗时。
8.根据权利要求6所述的装置,其特征在于,所述计算模块进一步用于:
在计算所述一定数量编码帧的耗时偏差之前,获取所述编码的帧率值,根据所述帧率值计算所述一定数量编码帧的所述期望耗时。
9.根据权利要求6所述的装置,其特征在于,所述转码控制模块进一步用于:
预先设置耗时偏差等级,并对每个所述耗时偏差等级预设需调整的编码参数。
10.根据权利要求6或9所述的装置,其特征在于,所述转码控制模块进一步用于:
根据所述耗时偏差,查询预先设置的所述耗时偏差等级,获得相应的编码参数,并对所述编码进行相应的参数调整。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510891571.3A CN105898371A (zh) | 2015-12-07 | 2015-12-07 | 实时转码的实时控制方法及装置 |
PCT/CN2016/096002 WO2017096947A1 (zh) | 2015-12-07 | 2016-08-19 | 实时转码的实时控制方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510891571.3A CN105898371A (zh) | 2015-12-07 | 2015-12-07 | 实时转码的实时控制方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105898371A true CN105898371A (zh) | 2016-08-24 |
Family
ID=57002944
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510891571.3A Pending CN105898371A (zh) | 2015-12-07 | 2015-12-07 | 实时转码的实时控制方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN105898371A (zh) |
WO (1) | WO2017096947A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023011604A1 (en) * | 2021-08-05 | 2023-02-09 | Beijing Bytedance Network Technology Co., Ltd. | Method, apparatus, and medium for video processing |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1860792A (zh) * | 2003-09-02 | 2006-11-08 | 索尼株式会社 | 视频编码设备、控制视频编码方法和控制视频编码程序 |
CN102045312A (zh) * | 2009-10-21 | 2011-05-04 | 三星电子(中国)研发中心 | 自适应转码方法和系统 |
US20120281748A1 (en) * | 2011-05-02 | 2012-11-08 | Futurewei Technologies, Inc. | Rate Control for Cloud Transcoding |
CN104159126A (zh) * | 2014-08-07 | 2014-11-19 | 西安交通大学 | 基于Map-Reduce的视频转码任务调度方法 |
US20150043659A1 (en) * | 2008-01-03 | 2015-02-12 | Broadcom Corporation | Video processing system and transcoder for use with layered video coding and methods for use therewith |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7403660B2 (en) * | 2003-04-30 | 2008-07-22 | Nokia Corporation | Encoding picture arrangement parameter in picture bitstream |
CN102868708A (zh) * | 2011-07-04 | 2013-01-09 | 腾讯科技(深圳)有限公司 | 一种获得转码后的目标文件的方法和系统 |
US20130304934A1 (en) * | 2011-09-29 | 2013-11-14 | Avvasi Inc. | Methods and systems for controlling quality of a media session |
WO2013082750A1 (zh) * | 2011-12-06 | 2013-06-13 | 华为技术有限公司 | 实时转码方法及设备 |
CN103188521B (zh) * | 2011-12-29 | 2015-10-28 | 北京大学 | 转码分配方法及装置,转码方法及设备 |
CN103297807A (zh) * | 2013-06-21 | 2013-09-11 | 哈尔滨工业大学深圳研究生院 | 一种基于hadoop平台的提高视频转码效率的方法 |
CN103458270B (zh) * | 2013-09-09 | 2017-01-18 | 融创天下(上海)科技发展有限公司 | 视频转码系统和方法 |
CN103686207A (zh) * | 2013-12-04 | 2014-03-26 | 乐视网信息技术(北京)股份有限公司 | 转码任务的调度方法和系统 |
-
2015
- 2015-12-07 CN CN201510891571.3A patent/CN105898371A/zh active Pending
-
2016
- 2016-08-19 WO PCT/CN2016/096002 patent/WO2017096947A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1860792A (zh) * | 2003-09-02 | 2006-11-08 | 索尼株式会社 | 视频编码设备、控制视频编码方法和控制视频编码程序 |
US20150043659A1 (en) * | 2008-01-03 | 2015-02-12 | Broadcom Corporation | Video processing system and transcoder for use with layered video coding and methods for use therewith |
CN102045312A (zh) * | 2009-10-21 | 2011-05-04 | 三星电子(中国)研发中心 | 自适应转码方法和系统 |
US20120281748A1 (en) * | 2011-05-02 | 2012-11-08 | Futurewei Technologies, Inc. | Rate Control for Cloud Transcoding |
CN104159126A (zh) * | 2014-08-07 | 2014-11-19 | 西安交通大学 | 基于Map-Reduce的视频转码任务调度方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2017096947A1 (zh) | 2017-06-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7751478B2 (en) | Prediction intra-mode selection in an encoder | |
CN107404648B (zh) | 一种基于hevc的视频多路转码方法 | |
Jokhio et al. | A computation and storage trade-off strategy for cost-efficient video transcoding in the cloud | |
CN103237216A (zh) | 深度图像的编解码方法和编解码装置 | |
EP3643069B1 (en) | Effective encoding for screen data | |
CN103702122B (zh) | 编码模式选择方法、装置及编码器 | |
US11477461B2 (en) | Optimized multipass encoding | |
CN115866356A (zh) | 一种视频的水印添加方法、装置、设备及存储介质 | |
Chen et al. | Efficient software H. 264/AVC to HEVC transcoding on distributed multicore processors | |
CN106231320A (zh) | 一种支持多机并行编码的联合码率控制方法及系统 | |
US10536696B2 (en) | Image encoding device and image encoding method | |
US20230023369A1 (en) | Video processing method, video processing apparatus, smart device, and storage medium | |
CN105245896A (zh) | Hevc并行运动补偿方法及装置 | |
Koziri et al. | Adaptive tile parallelization for fast video encoding in HEVC | |
CN107147738A (zh) | 基于云桌面spice通信协议的性能优化的方法 | |
US20140205020A1 (en) | Real-time transcoding method and device | |
CN107124610A (zh) | 一种视频编码方法及装置 | |
CN105898371A (zh) | 实时转码的实时控制方法及装置 | |
CN113014922A (zh) | 模型训练、视频编码方法,装置,设备以及存储介质 | |
Bouaafia et al. | VVC in-loop filtering based on deep convolutional neural network | |
Telili et al. | Benchmarking learning-based bitrate ladder prediction methods for adaptive video streaming | |
EP3844957A1 (en) | Benefit-based bitrate distribution for video encoding | |
CN102577412A (zh) | 一种图像编码方法和装置 | |
Wang et al. | Quality assessment for MPEG-2 video streams using a neural network model | |
CN102036074A (zh) | 基于嵌入式设备的码率控制方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20160824 |