CN104683866A - 一种接收视频流的播放处理方法 - Google Patents
一种接收视频流的播放处理方法 Download PDFInfo
- Publication number
- CN104683866A CN104683866A CN201310630015.1A CN201310630015A CN104683866A CN 104683866 A CN104683866 A CN 104683866A CN 201310630015 A CN201310630015 A CN 201310630015A CN 104683866 A CN104683866 A CN 104683866A
- Authority
- CN
- China
- Prior art keywords
- frame
- video
- cache
- buffer memory
- time
- 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
Landscapes
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本申请公开了一种接收视频流的播放处理方法,从发送端和接收端的视频传输链路接通开始,接收端等待设定的缓存时间后,逐帧对缓存的视频帧进行播放处理;其中,对于任一视频帧的播放处理包括:对所述任一视频帧进行播放,并根据当前缓存帧数和所述缓存时间计算当前播放帧率N=当前缓存帧数/缓存时间;根据计算得到的当前播放帧率N,确定在间隔1/N秒后执行下一个缓存的视频帧的播放处理。应用本申请,能够在严格控制时延的前提下,更好地对接收视频流进行平滑处理。
Description
技术领域
本申请涉及通信技术,特别涉及一种接收视频流的播放处理方法。
背景技术
当视频流通过无线链路传输的时候,由于无线链路的重传、乱序等原因,视频包到达接收端的时刻相对发送端有不规则的时延,造成在接收端播放的时候视频图像不够平滑,有卡顿情况。
目前在接收端进行视频流播放时的处理方法主要有如下几种:
第一种,对于接收的视频帧不做缓存,即来即播。也就是接收端在收到视频包后立刻组帧解码播放;
第二种,缓存一定时间的视频帧,并且以固定的帧率播放;
第三种,对每一帧视频帧都进行固定的延时播放。
在上述三种处理方式中,当传输链路不良时,均会存在一定的问题。
使用第一种即来即播的方式时,由于传输链路的不稳定,比如无线传输,会导致对每个视频包的传输时延不一致;同时,传输带来的误码、重传、乱码等,虽然可以通过TCP等方法来保证数据的完整有序,但是这些处理必然会带来不固定的时延的开销。上述不均匀的时延导致的后果就是,虽然发送端在按照固定的帧率发送数据包,但在接收端收到的视频包的数量并非均匀分布,单位时间内,视频包有时多有时少,甚至有时没有,这样播放出来的效果就会图像时快时慢甚至停顿,给人卡顿的感觉。可见,即来即播的方式只能用于传输链路良好的情况,对于传输链路有问题的情况,必然带来卡顿情况,无法解决。
使用第二种固定帧率播放视频的方式时,若传输链路不良,可以一定程度上平滑卡顿问题,但是,由于帧率是固定的,而固定时间内缓存的数据却时多时少,导致在有视频数据少的时候,会出现播放完毕等视频数据而图像停顿的情况,在视频数据多的时候,又会出现视频数据播放不完而增加额外的时延问题,播放还是不够平滑。另外,使用该方法,需要首先读出帧率数据,或者自己根据视频包到来的情况算出帧率,而缓存数据本身时多时少,固定帧率无法适应这种情况。因此这种方法只能说是缓解了卡顿情况,无法根除卡顿情况。
使用第三种固定延时播放的方式时,这种方法在收端接收到视频帧后每帧等待固定的时延后播放,对于不同帧率设置情况下,需要反复调试,以达到较好的效果。但是由于传输链路不良可能导致发端到收端的传输时延不可控,视频帧间隔时大时小,而固定时延却一刀切都进行延时播放,对于本来就已经有时延的视频帧,就会造成人为的时延,从而造成发端到收端播放视频的时延会不断累加。这种方法不仅会导致视频失真(慢动作),还会导致不可接受的累加时延,以及相应的缓存过大。
发明内容
本申请提供一种接收视频流的播放处理方法,能够在严格控制时延的前提下,更好地对接收视频流进行平滑处理。
为实现上述目的,本申请采用如下的技术方案:
一种接收视频流的播放处理方法,从发送端和接收端的视频传输链路接通开始,接收端等待设定的缓存时间后,逐帧对缓存的视频帧进行播放处理;其中,对于任一视频帧的播放处理包括:
对所述任一视频帧进行播放,并根据当前缓存帧数和所述缓存时间计算当前播放帧率N=当前缓存帧数/缓存时间;
根据计算得到的当前播放帧率N,确定在间隔1/N秒后执行下一个缓存的视频帧的播放处理。
较佳地,所述当前缓存帧数的确定方式为:当前缓存帧数=上次统计的缓存帧数+上次统计后新缓存的视频帧数-上次统计后已进行播放处理的视频帧数。
较佳地,所述设定的缓存时间为***默认设置或由用户设置。
较佳地,所述缓存的视频帧为:接收端接收视频数据包后将其组合成的视频数据帧;
所述播放处理包括:对缓存的视频帧解码成图像数据并进行播放。
较佳地,所述缓存的视频帧为:接收端将接收的视频数据包组合成视频数据帧后,对所述视频数据帧解码成的图像数据;
所述播放处理包括:对缓存的图像数据直接进行播放。
由上述技术方案可见,本申请中,发送端和接收端的视频传输链路接通后,接收端等待设定的缓存时间后,逐帧对缓存的视频帧进行播放处理;对每个视频帧进行播放处理时,先对相应视频帧进行播放,再根据当前缓存帧数和所述缓存时间计算当前播放帧率N=当前缓存帧数/缓存时间,并根据计算得到的当前播放帧率N,确定在间隔1/N秒后执行下一视频帧的播放处理。通过上述方式,一方面根据实时统计的当前缓存帧数计算播放帧率,使本申请中的播放处理能够自适应各种不同的视频源帧率;另一方面,根据特定的播放帧率计算方式,能够严格控制视频帧播放的时延,并通过每帧更新的播放帧率确定下一帧的处理时间,从而实现了更优的平滑效果。
附图说明
图1为本申请中接收视频流的播放处理方法的基本流程示意图。
具体实施方式
为了使本申请的目的、技术手段和优点更加清楚明白,以下结合附图对本申请做进一步详细说明。
图1为本申请中接收视频流的播放处理方法的基本流程示意图。如图1所示,该方法包括:
步骤101,发送端和接收端建立视频传输链路后,从视频传输链路接通开始,接收端等待设定的缓存时间。
从视频传输链路接通开始,接收端开始接收视频帧,对于视频帧的接收一直持续不断地进行,贯穿于整个本申请的播放处理方法中。
与现有技术不同的,本申请中,为控制播放视频帧的时延,从视频传输链路接通开始计算缓存时间,而不考虑什么时候开始接收到视频帧,这样,可以实现视频帧时延的严格可控,不会由于接收视频帧的时间先后而导致播放视频帧的时延不可控。
其中,设定的缓存时间可以是***默认设置的缓存时间,或者可以由用户根据需要进行设置。在缓存时间内,接收端对接收的视频帧进行缓存,不做播放处理。因此,缓存时间与视频帧的播放时延是严格相关的,缓存时间越长,视频帧的播放时延越大,平滑效果越明显。当缓存时间设为0时,即为背景技术中提到的即来即播的方式。
步骤102,接收端开始逐帧对缓存的视频帧进行播放处理。
缓存时间结束后,接收端开始对视频帧进行处理。
步骤103,对当前视频帧进行播放。
步骤104,根据当前缓存帧数和缓存时间计算当前播放帧率N。
本申请中,对每一个视频帧,都重新计算播放帧率,因此本申请中的播放帧率为动态帧率,这使得播放视频帧的时候确保是以当前最优的平滑效果进行平滑。其中,播放帧率N=当前缓存帧数/缓存时间。通过该动态播放帧率的计算方式,不论缓存时间内积累多少视频帧,都能够保证在缓存时间内将缓存的所有视频帧播放完毕,因此视频帧的播放时延是在严格控制之中,避免固定帧率下带来的时延累加。
另外,为保证播放帧率N的计算能够适应当前最新缓存帧数,计算播放帧率所使用的当前缓存帧数也必须动态计算,具体可以在每次计算播放帧率N前都计算一次当前缓存帧数,计算方式可以为:当前缓存帧数=上次统计时的帧数+上次统计以后新接收的帧数-上次统计以后已播放帧数。
步骤105,接收端在间隔1/N秒后返回执行步骤103及其后续操作,执行下一个视频帧的播放处理。
步骤104计算得到的当前播放帧率N是用于确定下一个视频帧的播放处理时间的,也就是根据当前播放帧率N计算与下一帧的时间间隔为1/N秒,然后间隔1/N秒后仍然通过步骤103-104的操作进行下一帧的播放处理,并根据该计算结果执行步骤105,确定再下一帧的播放处理时间。这样循环往复地进行视频帧的处理和播放。
上述即为本申请中基本的视频帧播放处理方法。上述对视频帧的平滑处理可以在接收端的多个处理节点中加入。具体地,接收端对视频数据的处理顺序包括:a.接收视频数据包;b.将视频数据包组合成视频数据帧;c.将视频数据帧解码成图像数据,图像数据就可以直接进行播放展示了。上述本申请中对每个视频帧的播放处理可以在步骤b和步骤c之间进行,或者也可以在步骤c之后进行。
也就是说,对应于在步骤b和c直接进行播放处理的第一种实现方式可以为:接收端接收视频数据包后将其组合成视频数据帧,然后,对视频数据帧进行缓存;即图1中缓存的视频帧即是接收的视频数据包组合成的视频数据帧;在步骤102开始逐个对缓存的视频数据帧进行播放处理;其中,步骤103中对视频帧进行播放指的就是将缓存的视频数据帧解码成图像数据再进行播放的处理。
对应于在步骤c之后进行播放处理的第二种实现方式可以为:接收端接收视频数据包并组合成视频数据帧,并将视频数据帧解码成图像数据后,对解码出的每个帧的图像数据进行缓存;即图1中缓存的视频帧即是每个视频帧解码后的图像数据;在步骤102开始逐个对缓存的每帧的图像数据进行播放处理。其中,步骤103中对视频帧进行播放值的就是将缓存的每个视频帧的图像数据之间进行播放的处理。
上述两种实现方式中,第一种实现方式缓存的是解码前的视频数据帧,由于视频数据帧相对较小,因此,对内存占用比较少,但是,由于对视频数据帧的解码也会耗费一定的时间,并请对于不同视频帧,其解码的难易程度不同,耗费的时间也不尽相同,而播放帧率计算的是解码前的时间,未将解码时间计入,平滑效果相比第二种实现方式会受到一定影响。
而第二种实现方式缓存的是解码后的图像数据,由于解码过程已经完成,播放帧率的计算已将解码时间计入,可以直接播放,因此平滑效果最佳;但是,由于图像数据量较大,因此对内存占用比较多。
如上,即为本申请中接收视频流播放处理方法的具体实现。在该方法中,由于是每一帧都要计算动态帧率,使得播放的时候能确保是以当前最优的平滑效果进行平滑,既避免了即来即播时链路不良带来的卡顿,也避免了固定帧率时缓存不均匀带来的卡顿。同时,由于本申请中计算播放帧率的方法是确保在缓存时间内把所有缓存帧播放完毕,因此时延实际上是在严格控制之中,而且是明确可预先设置的,既避免了即来即播的随机情况,也避免了固定帧率带来的时延累加。另外,由于播放帧率是动态自适应调节的,因此可以适应各种不同的视频源帧率,不需要重新调试。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (5)
1.一种接收视频流的播放处理方法,其特征在于,从发送端和接收端的视频传输链路接通开始,接收端等待设定的缓存时间后,逐帧对缓存的视频帧进行播放处理;其中,对于任一视频帧的播放处理包括:
对所述任一视频帧进行播放,并根据当前缓存帧数和所述缓存时间计算当前播放帧率N=当前缓存帧数/缓存时间;
根据计算得到的当前播放帧率N,确定在间隔1/N秒后执行下一个缓存的视频帧的播放处理。
2.根据权利要求1所述的方法,其特征在于,所述当前缓存帧数的确定方式为:当前缓存帧数=上次统计的缓存帧数+上次统计后新缓存的视频帧数-上次统计后已进行播放处理的视频帧数。
3.根据权利要求1所述的方法,其特征在于,所述设定的缓存时间为***默认设置或由用户设置。
4.根据权利要求1、2或3所述的方法,其特征在于,所述缓存的视频帧为:接收端接收视频数据包后将其组合成的视频数据帧;
所述播放处理包括:对缓存的视频帧解码成图像数据并进行播放。
5.根据权利要求1、2或3所述的方法,其特征在于,所述缓存的视频帧为:接收端将接收的视频数据包组合成视频数据帧后,对所述视频数据帧解码成的图像数据;
所述播放处理包括:对缓存的图像数据直接进行播放。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310630015.1A CN104683866A (zh) | 2013-11-29 | 2013-11-29 | 一种接收视频流的播放处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310630015.1A CN104683866A (zh) | 2013-11-29 | 2013-11-29 | 一种接收视频流的播放处理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104683866A true CN104683866A (zh) | 2015-06-03 |
Family
ID=53318338
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310630015.1A Pending CN104683866A (zh) | 2013-11-29 | 2013-11-29 | 一种接收视频流的播放处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104683866A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106713855A (zh) * | 2016-12-13 | 2017-05-24 | 深圳英飞拓科技股份有限公司 | 一种视频播放方法及装置 |
CN106791956A (zh) * | 2016-11-25 | 2017-05-31 | 百度在线网络技术(北京)有限公司 | 网络直播卡顿的处理方法及装置 |
CN107087210A (zh) * | 2017-03-30 | 2017-08-22 | 青岛海信电器股份有限公司 | 基于缓存时间判断视频播放状态的方法及终端 |
CN109413371A (zh) * | 2017-08-17 | 2019-03-01 | 成都鼎桥通信技术有限公司 | 视频帧率计算方法及装置 |
CN110072143A (zh) * | 2019-03-18 | 2019-07-30 | 视联动力信息技术股份有限公司 | 一种视频流解码方法和装置 |
CN110673813A (zh) * | 2019-09-29 | 2020-01-10 | 百度在线网络技术(北京)有限公司 | 一种数据处理方法、装置、电子设备和介质 |
CN115460466A (zh) * | 2022-08-23 | 2022-12-09 | 北京泰豪智能工程有限公司 | 一种视频通信中视频画面定制方法及*** |
CN115665502A (zh) * | 2022-10-24 | 2023-01-31 | 昆易电子科技(上海)有限公司 | 视频数据处理方法、注入方法、***、设备及存储介质 |
CN115866309A (zh) * | 2022-11-29 | 2023-03-28 | 广州后为科技有限公司 | 一种支持多路视频同步的音视频缓存方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1067793A2 (en) * | 1999-06-29 | 2001-01-10 | Matsushita Electric Industrial Co., Ltd. | Digital video decoding method |
CN101552909A (zh) * | 2009-04-28 | 2009-10-07 | 山东大学 | 基于无线视频监控的帧率控制方法 |
CN102185835A (zh) * | 2011-04-14 | 2011-09-14 | 广东威创视讯科技股份有限公司 | 一种实时网络信号播放方法及装置 |
CN102387409A (zh) * | 2011-12-07 | 2012-03-21 | 江苏远为科技有限公司 | 基于流媒体***的视频播放方法 |
-
2013
- 2013-11-29 CN CN201310630015.1A patent/CN104683866A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1067793A2 (en) * | 1999-06-29 | 2001-01-10 | Matsushita Electric Industrial Co., Ltd. | Digital video decoding method |
CN101552909A (zh) * | 2009-04-28 | 2009-10-07 | 山东大学 | 基于无线视频监控的帧率控制方法 |
CN102185835A (zh) * | 2011-04-14 | 2011-09-14 | 广东威创视讯科技股份有限公司 | 一种实时网络信号播放方法及装置 |
CN102387409A (zh) * | 2011-12-07 | 2012-03-21 | 江苏远为科技有限公司 | 基于流媒体***的视频播放方法 |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106791956A (zh) * | 2016-11-25 | 2017-05-31 | 百度在线网络技术(北京)有限公司 | 网络直播卡顿的处理方法及装置 |
CN106791956B (zh) * | 2016-11-25 | 2020-01-21 | 百度在线网络技术(北京)有限公司 | 网络直播卡顿的处理方法及装置 |
CN106713855A (zh) * | 2016-12-13 | 2017-05-24 | 深圳英飞拓科技股份有限公司 | 一种视频播放方法及装置 |
CN106713855B (zh) * | 2016-12-13 | 2020-01-07 | 深圳英飞拓科技股份有限公司 | 一种视频播放方法及装置 |
CN107087210B (zh) * | 2017-03-30 | 2020-04-14 | 青岛海信电器股份有限公司 | 基于缓存时间判断视频播放状态的方法及终端 |
CN107087210A (zh) * | 2017-03-30 | 2017-08-22 | 青岛海信电器股份有限公司 | 基于缓存时间判断视频播放状态的方法及终端 |
CN109413371A (zh) * | 2017-08-17 | 2019-03-01 | 成都鼎桥通信技术有限公司 | 视频帧率计算方法及装置 |
CN109413371B (zh) * | 2017-08-17 | 2021-08-03 | 成都鼎桥通信技术有限公司 | 视频帧率计算方法及装置 |
CN110072143A (zh) * | 2019-03-18 | 2019-07-30 | 视联动力信息技术股份有限公司 | 一种视频流解码方法和装置 |
CN110072143B (zh) * | 2019-03-18 | 2021-03-12 | 视联动力信息技术股份有限公司 | 一种视频流解码方法和装置 |
CN110673813A (zh) * | 2019-09-29 | 2020-01-10 | 百度在线网络技术(北京)有限公司 | 一种数据处理方法、装置、电子设备和介质 |
CN115460466A (zh) * | 2022-08-23 | 2022-12-09 | 北京泰豪智能工程有限公司 | 一种视频通信中视频画面定制方法及*** |
CN115665502A (zh) * | 2022-10-24 | 2023-01-31 | 昆易电子科技(上海)有限公司 | 视频数据处理方法、注入方法、***、设备及存储介质 |
CN116437161A (zh) * | 2022-10-24 | 2023-07-14 | 昆易电子科技(上海)有限公司 | 视频数据处理方法、注入方法、***、设备及存储介质 |
CN116437161B (zh) * | 2022-10-24 | 2024-02-09 | 昆易电子科技(上海)有限公司 | 视频数据处理方法、注入方法、***、设备及存储介质 |
CN115866309A (zh) * | 2022-11-29 | 2023-03-28 | 广州后为科技有限公司 | 一种支持多路视频同步的音视频缓存方法和装置 |
CN115866309B (zh) * | 2022-11-29 | 2023-09-22 | 广州后为科技有限公司 | 一种支持多路视频同步的音视频缓存方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104683866A (zh) | 一种接收视频流的播放处理方法 | |
US10020023B2 (en) | Method, apparatus and system for playing audio synchronously | |
CN103888818B (zh) | 一种电视节目播放方法、设备和*** | |
CN107005727B (zh) | 媒体内容流 | |
CN102739661B (zh) | 一种基于数据统计的网络音频同步输出的方法及*** | |
US20140108622A1 (en) | Streaming media transmission method, device, and system | |
US9888401B2 (en) | Media content delivery over a wireless network | |
CN104254007B (zh) | 一种音频处理方法及装置 | |
WO2020220902A1 (zh) | 视频资源的传输参数分发方法及装置 | |
JP2009284282A (ja) | コンテンツサーバ、情報処理装置、ネットワーク機器、コンテンツ配信方法、情報処理方法およびコンテンツ配信システム | |
CN101924914A (zh) | 一种切换电视频道的方法、***及装置 | |
US11863841B2 (en) | Video playing control method and system | |
JP2013509768A5 (zh) | ||
CN202759552U (zh) | 一种基于ip网络的多终端视频同步播放的*** | |
CN113242436B (zh) | 直播数据的处理方法、装置及电子设备 | |
CN105142002A (zh) | 音/视频直播方法、装置及控制方法、装置 | |
CN108810656A (zh) | 一种实时直播ts流的去抖处理方法及处理*** | |
CN104683823A (zh) | 一种多屏联动音视频同步*** | |
WO2017071428A1 (zh) | 快进快退的处理方法及终端 | |
CN105472404A (zh) | 一种视频业务中的数据处理方法 | |
CN103929682A (zh) | 一种在视频直播***中设置关键帧的方法及装置 | |
CN105991476A (zh) | 一种语音数据延时处理方法及装置 | |
JP2010509879A (ja) | サービスの高速変更のための方法及び受信ユニット | |
CN109218809B (zh) | 一种流媒体的播放方法和装置 | |
CN110177294A (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: 20150603 |