CN109729439B - 实时视频传输方法 - Google Patents
实时视频传输方法 Download PDFInfo
- Publication number
- CN109729439B CN109729439B CN201910029880.8A CN201910029880A CN109729439B CN 109729439 B CN109729439 B CN 109729439B CN 201910029880 A CN201910029880 A CN 201910029880A CN 109729439 B CN109729439 B CN 109729439B
- Authority
- CN
- China
- Prior art keywords
- video data
- video
- server
- available
- sending
- 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
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本发明提供了一种实时视频传输方法,涉及数据传输领域,该方法应用于实时视频传输系统中的视频发送端,该方法包括:根据服务器发送的反馈信息,得到可用带宽和可用帧率;根据可用带宽和可用帧率,对视频数据进行丢帧处理,得到丢帧处理后的视频数据;根据可用带宽和可用帧率,对丢帧处理后的视频数据进行编码,得到编码后的视频数据;向服务器发送编码后的视频数据。根据服务器发送的反馈信息得到可用带宽和可用帧率,进而对视频数据进行丢帧处理,然后对经丢帧处理的视频数据进行编码发送,使得该实时视频传输平滑了视频码率,实现了自适应编码调整,从而在弱网环境下保证了视频发送端实时发送视频的画质和流畅度。
Description
技术领域
本发明涉及数据传输领域,具体涉及一种实时视频传输方法。
背景技术
随着网络技术的不断发展,互联网视频传输技术得到广泛的应用。互联网视频的实时性使得可以例如在课堂或会议室中传输实时视频流。互联网实时视频传输中不仅传输大量的视频数据,并且实时视频传输对视频的延时和画面质量有较高的要求。
为了保证视频实时传输质量,可以基于TCP(Transmission Control Protocol,传输控制协议)或RUDP(Reliable User Datagram Protocol,可靠用户数据报协议)等传输协议进行设计。TCP通过传输层的重传,可以克服丢包问题,RUDP在UDP(User DatagramProtocol,用户数据报协议)/IP(Internet Protocol,互联网协议)的协议层之上,为传输连接提供了可靠的有序传送。
然而,基于TCP或RUDP等传输协议设计,视频延迟时间不可控,特别是在弱网环境下,视频数据传输延迟时间较高,导致画面卡顿现象严重,从而降低了实时视频传输的画质和流畅度。
发明内容
本发明的目的在于,针对上述现有技术中的不足,提供一种实时视频传输方法,以解决在弱网环境下实时视频传输的画质和流畅度低的问题。
为实现上述目的,本发明实施例采用的技术方案如下:
第一方面,本发明实施例提供了一种实时视频传输方法,该方法应用于实时视频传输系统中的视频发送端,实时视频传输系统包括视频发送端和服务器,该方法包括:
根据服务器发送的反馈信息,计算得到可用带宽和可用帧率,反馈信息包括:重传请求信息、缓冲时长、预估网络带宽、丢包率;
根据可用带宽和可用帧率,对视频数据进行丢帧处理,得到丢帧处理后的视频数据;
根据可用带宽和可用帧率,对丢帧处理后的视频数据进行编码,得到编码后的视频数据;
向服务器发送编码后的视频数据。
可选地,所述根据可用带宽和可用帧率,对视频数据进行丢帧处理,得到丢帧处理后的视频数据,包括:
根据可用带宽和可用帧率,计算得到预估码率;
根据可用带宽和预估码率,对视频数据进行丢帧处理,得到丢帧处理后的视频数据。
可选地,所述向服务器发送编码后的视频数据,包括:
缓存编码后的视频数据,得到经缓存的视频数据;
根据可用带宽和可用帧率,计算得到预估重传带宽和重传窗口,重传窗口用于限制每次重传的数据量;
根据重传请求信息、预估重传带宽、重传窗口以及经缓存的视频数据,确定待重传视频数据;
向服务器发送待重传视频数据。
可选地,在所述根据服务器发送的反馈信息,计算得到可用带宽和可用帧率之前,包括:
根据视频发送端的地理位置信息、互联网服务提供商信息和链路质量信息,从多个初始服务器中选择服务器;
向服务器发送初始视频数据。
可选地,所述向服务器发送编码后的视频数据,包括:
根据可用带宽和可用帧率,计算得到预估前向纠错带宽;
根据丢包率、缓冲时长、预估前向纠错带宽,对编码后的视频数据进行前向纠错,得到纠错后的视频数据;
向服务器发送纠错后的视频数据。
第二方面,本发明实施例提供了一种实时视频传输方法,该方法应用于实时视频传输系统中的服务器,实时视频传输系统包括服务器、视频发送端和视频播放端,该方法包括:
向视频发送端发送反馈信息,反馈信息包括:重传请求信息、缓冲时长、预估网络带宽、丢包率,反馈信息用于计算可用带宽和可用帧率;
接收视频发送端发送的视频数据,其中,视频数据为视频发送端根据可用带宽和可用帧率进行丢帧处理并编码得到的。
可选地,在所述向视频发送端发送反馈信息之前,还包括:
根据预先接收到的视频数据,生成重传请求信息,重传请求信息用于指示视频发送端重传被标识的视频数据。
可选地,在所述向视频发送端发送反馈信息之前,还包括:
缓存预先接收到的视频数据,得到经缓存的视频数据;
根据预定缓冲时长和经缓存的视频数据,得到待解码视频数据;
根据待解码视频数据,计算反馈信息中的缓冲时长;
根据预先接收到的视频数据,得到视频数据的接收码率和丢包率;
根据接收码率、丢包率和缓冲时长,计算得到预估网络带宽。
可选地,在所述根据预定缓冲时长和经缓存的视频数据,得到待解码视频数据之后,还包括:
检测待解码视频数据中的画面组的完整性;
丢弃不完整的画面组,得到待发送视频数据;
向视频播放端发送待发送视频数据用于解码播放。
可选地,所述向视频播放端发送待发送视频数据用于解码播放,包括:
根据视频播放端和服务器的地理位置信息、互联网服务提供商信息、链路质量信息,采用动态路由的方式,确定从服务器向视频播放端传输待发送视频数据的目标传输路径;
经由目标传输路径,向视频播放端发送待发送视频数据。
第三方面,本发明实施例提供了一种实时视频传输装置,该装置应用于实时视频传输系统中的视频发送端,实时视频传输系统包括视频发送端和服务器,该装置包括:
第一计算模块,用于根据服务器发送的反馈信息,计算得到可用带宽和可用帧率,反馈信息包括:重传请求信息、缓冲时长、预估网络带宽、丢包率;
丢帧处理模块,用于根据可用带宽和可用帧率,对视频数据进行丢帧处理,得到丢帧处理后的视频数据;
编码模块,用于根据可用带宽和可用帧率,对丢帧处理后的视频数据进行编码,得到编码后的视频数据;
视频数据发送模块,用于向服务器发送编码后的视频数据。
可选地,丢帧处理模块,具体用于:
根据可用带宽和可用帧率,计算得到预估码率;
根据可用带宽和预估码率,对视频数据进行丢帧处理,得到丢帧处理后的视频数据。
可选地,视频数据发送模块,具体用于:
缓存编码后的视频数据,得到经缓存的视频数据;
根据可用带宽和可用帧率,计算得到预估重传带宽和重传窗口,重传窗口用于限制每次重传的数据量;
根据重传请求信息、预估重传带宽、重传窗口以及经缓存的视频数据,确定待重传视频数据;
向服务器发送待重传视频数据。
可选地,该装置还包括服务器选择模块,该服务器选择模块用于:
根据视频发送端的地理位置信息、互联网服务提供商信息和链路质量信息,从多个初始服务器中选择服务器;
向服务器发送初始视频数据。
可选地,视频数据发送模块,具体还用于:
根据可用带宽和可用帧率,计算得到预估前向纠错带宽;
根据丢包率、缓冲时长、预估前向纠错带宽,对编码后的视频数据进行前向纠错,得到纠错后的视频数据;
向服务器发送纠错后的视频数据。
第四方面,本发明实施例提供了一种实时视频传输装置,该装置应用于实时视频传输系统中的服务器,实时视频传输系统包括服务器、视频发送端和视频播放端,该装置包括:
反馈信息发送模块,用于向视频发送端发送反馈信息,反馈信息包括:重传请求信息、缓冲时长、预估网络带宽、丢包率,反馈信息用于计算可用带宽和可用帧率;
视频数据接收模块,用于接收视频发送端发送的视频数据,其中,视频数据为视频发送端根据可用带宽和可用帧率进行丢帧处理并编码得到的。
可选地,该装置还包括:
请求信息生成模块,用于根据预先接收到的视频数据,生成重传请求信息,重传请求信息用于指示视频发送端重传被标识的视频数据。
可选地,该装置还包括第二计算模块,该第二计算模块用于:
缓存预先接收到的视频数据,得到经缓存的视频数据;
根据预定缓冲时长和经缓存的视频数据,得到待解码视频数据;
根据待解码视频数据,计算反馈信息中的缓冲时长;
根据预先接收到的视频数据,得到视频数据的接收码率和丢包率;
根据接收码率、丢包率和缓冲时长,计算得到预估网络带宽。
可选地,该装置还包括:
画面组检测模块,用于检测待解码视频数据中的画面组的完整性;
画面组筛选模块,用于丢弃不完整的画面组,得到待发送视频数据;
播放视频发送模块,用于向视频播放端发送待发送视频数据用于解码播放。
可选地,播放视频发送模块,具体用于:
根据视频播放端和服务器的地理位置信息、互联网服务提供商信息、链路质量信息,采用动态路由的方式,确定从服务器向视频播放端传输待发送视频数据的目标传输路径;
经由目标传输路径,向视频播放端发送待发送视频数据。
本发明的有益效果包括:
本发明实施例根据服务器发送的反馈信息,得到可用带宽和可用帧率;根据可用带宽和可用帧率,对视频数据进行丢帧处理,得到丢帧处理后的视频数据;根据可用带宽和可用帧率,对丢帧处理后的视频数据进行编码,得到编码后的视频数据;向服务器发送编码后的视频数据。根据服务器发送的反馈信息得到可用带宽和可用帧率,进而对视频数据进行丢帧处理,然后对经丢帧处理的视频数据进行编码发送,使得该实时视频传输平滑了视频码率,实现了自适应编码调整,从而在弱网环境下保证了视频发送端实时发送视频的画质和流畅度。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明一实施例提供的实时视频传输方法的流程示意图;
图2为本发明另一实施例提供的实时视频传输方法的流程示意图;
图3为本发明实施例提供的交互示意图;
图4为本发明一实施例提供的实时视频传输装置的结构示意图;
图5为本发明另一实施例提供的实时视频传输装置的结构示意图;
图6为本发明又一实施例提供的实时视频传输装置的结构示意图;
图7为本发明再一实施例提供的实时视频传输装置的结构示意图;
图8为本发明实施例提供的实时视频传输装置的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。
本申请中使用的流程图示出了根据本申请的一些实施例实现的操作。应该理解,流程图的操作可以不按顺序实现,没有逻辑的上下文关系的步骤可以反转顺序或者同时实施。此外,本领域技术人员在本申请内容的指引下,可以向流程图添加一个或多个其他操作,也可以从流程图中移除一个或多个操作。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
在网络中实时传输视频数据时,由于在每个网络节点进行路由选择,并且每个数据包进行排队增加了报文传输延时,当传输延时超过一定限度后会采取丢包处理。这些情况都会导致视频呈现的质量降低。本发明提供了一种用于实时视频传输系统的实时视频传输方法,有效解决了在弱网环境下,由于视频延时高而导致卡顿现象严重的问题。
本发明提供的实时视频传输系统包括视频发送端、服务器和视频播放端,视频发送端与服务器之间以及服务器与视频播放端之间均通过网络连接。视频发送端用于获取实时视频数据,并且将所获取的视频数据经由网络发送至服务器,服务器用于接收视频数据,并且根据视频播放端的请求,经由网络将所接收的视频数据发送至视频播放端用于解码播放。本发明实施例中的视频发送端可以为例如视频会议摄像装置、视频课堂摄像装置等任何实时视频采集电子装置。本发明实施例中的视频播放端可以为例如用户个人电脑、计算机、手机、智能电视机等任何与具有视频播放功能的电子装置。本发明对于视频发送端和视频播放端的具体类型不做限制。
图1为本发明一实施例提供的实时视频传输方法的流程示意图,如图1所示,该方法应用于实时视频传输系统中的视频发送端,实时视频传输系统包括视频发送端和服务器,该方法包括:
步骤101、根据服务器发送的反馈信息,计算得到可用带宽和可用帧率。
其中,反馈信息包括:重传请求信息、缓冲时长、预估网络带宽、丢包率。
视频发送端接收到服务器发送的重传请求信息、缓冲时长、预估网络带宽、丢包率之后,可以采用预定算法计算得到可用带宽和可用帧率。服务器可以根据预先接收到的来自视频发送端的视频数据来生成上述反馈信息。
其中,带宽是指在单位时间内能传输的数据量。帧率是称为帧的位图图像连续出现在显示器上的频率(速率)。一帧就是一副静止的画面,连续的帧就形成动画,如视频图像等。帧率通常为在1秒钟时间里传输的图片的帧数,也可以理解为图形处理器每秒钟能够刷新几次,通常用fps(frames per second,每秒钟帧数)表示。每一帧都是静止的图象,快速连续地显示帧便形成了运动的假象。高的帧率可以得到更流畅、更逼真的动画。每秒钟帧数愈多,所显示的动作就会愈流畅。重传请求是一种数据传输错误控制方法,使用确认消息和超时来实现不可靠服务的可靠数据传输。当视频发送端接收到来自服务器重传请求信息时,视频发送端对重传请求信息中所标识的视频数据进行重传。丢包率是指在数据传输过程中所丢失数据包数量占所发送数据组的比率。计算方法是:丢包率=(发送包数-接收包数)/发送包数*100%。
步骤102、根据可用带宽和可用帧率,对视频数据进行丢帧处理,得到丢帧处理后的视频数据。
在弱网环境下,如果连续完整地传输原始视频数据,可能导致视频延时高,卡顿严重,并且加剧网络拥塞。由于连续相邻的视频帧的图像数据相似度非常高,因此,可以采用预定算法舍弃掉其中一部分帧后而不会影响播放效果,同时,由于舍弃掉一部分帧之后,视频传输数据量减小,因此,可以使得网络传输更加流畅,避免了卡顿。
为了实现在弱网环境下,流畅地传输视频数据,可以根据可用带宽和可用帧率,对视频数据进行丢帧处理,得到丢帧处理后的视频数据。当可用带宽和可用帧率较大时,在丢帧处理时,可以舍弃较少的帧,保留较多的原始帧。当可用带宽和可用帧率较小时,在丢帧处理时,则需要舍弃较多的帧,而仅保留较少的原始帧。
步骤103、根据可用带宽和可用帧率,对丢帧处理后的视频数据进行编码,得到编码后的视频数据。
在根据步骤102对视频数据进行丢帧处理后,需要采用预定编码算法对视频数据进行编码压缩,以用于传输。
视频编码方式就是指通过特定的压缩技术,将某个视频格式的文件转换成另一种视频格式文件的方式。视频流传输中最为重要的编解码标准有国际电联的H.261、H.263、H.264,以及M-JPEG(Motion-Join Photographic Experts Group,运动静止图像专家组)和MPEG(Moving Picture Experts Group,动态图像专家组)系列标准等。
步骤104、向服务器发送编码后的视频数据。
根据步骤103对视频数据编码后,可以将经编码的视频数据发送给服务器。
综上所述,本发明实施例视频发送端根据服务器发送的反馈信息得到可用带宽和可用帧率,进而对视频数据进行丢帧处理,使得视频数据量得以减小,然后对经丢帧处理的视频数据进行编码发送,使得该实时视频传输平滑了视频码率,实现了自适应编码调整,从而在弱网环境下保证了视频发送端实时发送视频的画质和流畅度。
图2为本发明另一实施例提供的实时视频传输方法的流程示意图,如图2所示,该方法应用于实时视频传输系统中的服务器,实时视频传输系统包括服务器、视频发送端和视频播放端,该方法包括:
步骤201、向视频发送端发送反馈信息。
其中,反馈信息包括:重传请求信息、缓冲时长、预估网络带宽、丢包率,反馈信息用于计算可用带宽和可用帧率。
在服务器接收到来自视频发送端的视频数据之后,可以根据所接收到的视频数据,确定重传请求信息,并且计算缓冲时长、预估网络带宽、丢包率,并且将这些数据作为反馈信息发送给视频发送端,以用于计算供视频发送端使用的可用带宽和可用帧率。
步骤202、接收视频发送端发送的视频数据。
其中,视频数据为视频发送端根据可用带宽和可用帧率进行丢帧处理并编码得到的。
服务器除了根据已经接收到的视频数据来产生反馈信息并发送至视频发送端之外,同时接收来自视频发送端的视频数据,并且根据该视频数据来产生后续的反馈信息。该视频数据是视频发送端根据可用带宽和可用帧率进行丢帧处理并编码得到的。其中,可用带宽和可用帧率是视频发送端根据在此之前已经接收到的由服务器发送的反馈信息而计算得到的。
综上所述,本发明实施例服务器生成反馈信息发送至视频发送端,反馈信息用于视频发送端计算可用带宽和可用帧率,进而对视频数据进行丢帧处理并进行编码发送给服务器,使得该实时视频传输平滑了视频码率,实现了自适应编码调整,从而在弱网环境下保证了视频发送端实时传输视频的画质和流畅度。
图3为本发明实施例提供的交互示意图,如图3所示,该交互示意图示出了应用于实时视频传输系统的实时视频传输方法,实时视频传输系统包括服务器、视频发送端和视频播放端。
步骤301、根据预先接收到的视频数据,生成重传请求信息。
本步骤301由服务器执行。重传请求信息用于指示视频发送端重传被标识的视频数据。
可选地,还可以缓存预先接收到的视频数据,得到经缓存的视频数据;根据预定缓冲时长和经缓存的视频数据,得到待解码视频数据;根据待解码视频数据,计算反馈信息中的缓冲时长;根据预先接收到的视频数据,得到视频数据的接收码率和丢包率;根据接收码率、丢包率和缓冲时长,计算得到预估网络带宽。
在接收到视频数据后,可以执行FEC(Forward Error Correction,前向纠错)恢复,然后进行缓冲,接收缓冲反馈丢包情况,生成重传请求,根据当前接收码率、传输时延和丢包率计算预估带宽,根据缓冲延时弹出数据包组,组成数据帧,反馈帧完整性以及帧传输延时,以计算缓冲延时。
步骤302、向视频发送端发送反馈信息。
本步骤302由服务器执行,具体如步骤201中所述,其中,反馈信息包括:重传请求信息、缓冲时长、预估网络带宽、丢包率,反馈信息用于计算可用带宽和可用帧率。
步骤303、根据服务器发送的反馈信息,计算得到可用带宽和可用帧率。
本步骤303由视频发送端执行,与步骤101类似。
可选地,视频发送端根据反馈的控制信息以及重传、FEC等信息计算可用带宽和可用帧率,计算重传预估带宽和窗口大小,然后计算FEC预估带宽。其中,FEC是增加数据通讯可信度的方法。在单向通讯信道中,一旦错误被发现,其接收器将无权再请求传输。FEC是利用数据进行传输冗余信息的方法,当传输中出现错误,将允许接收器再建数据。
可选地,本步骤303之前,还可以包括由视频发送端执行的如下步骤:根据视频发送端的地理位置信息、ISP(Internet Service Provider,互联网服务提供商)信息和链路质量信息等,从多个初始服务器中选择待上传视频数据的服务器,然后向该服务器发送初始视频数据,从而使得该服务器针对所接收到的视频数据而生成反馈信息。
步骤304、根据可用带宽和可用帧率,计算得到预估码率。
本步骤304由视频发送端执行。
视频码率就是数据传输时单位时间传送的数据位数,一般采用的单位是kbps(千位每秒),也就是取样率,单位时间内取样率越大,精度就越高,处理出来的文件就越接近原始文件。因此,可以首先根据可用带宽和可用帧率计算出预估码率。
步骤305、根据可用带宽和预估码率,对视频数据进行丢帧处理,得到丢帧处理后的视频数据。
本步骤305由视频发送端执行。
在计算得到可用带宽和预估码率之后,可以根据步骤102中所述进行处理,得到丢帧处理后的视频数据。
步骤306、根据可用带宽和可用帧率,对丢帧处理后的视频数据进行编码,得到编码后的视频数据。
本步骤306由视频发送端执行。
可以如步骤103中所述,对丢帧处理后的视频数据进行编码。
步骤307、向服务器发送编码后的视频数据。
本步骤307由视频发送端执行。
可以如步骤104中所述,将编码后的视频数据发送给服务器。
可选地,可以缓存编码后的视频数据,得到经缓存的视频数据;根据可用带宽和可用帧率,计算得到预估重传带宽和重传窗口,重传窗口用于限制每次重传的数据量;根据重传请求信息、预估重传带宽、重传窗口以及经缓存的视频数据,确定待重传视频数据;向服务器发送待重传视频数据。
视频发送端根据可用带宽和可用帧率编码,编码一帧数据后用于封装,同时反馈编码的帧类型、帧数据大小、帧率、画面组(Group Of Picture,GOP)长度用于计算。视频发送端可以合并重传请求,调用缓存的视频数据,并根据预估重传带宽和窗口大小执行重传,超出窗口限制的剩余请求包等待下一个窗口发送。
可选地,还可以根据可用带宽和可用帧率,计算得到预估前向纠错带宽;根据丢包率、缓冲时长、预估前向纠错带宽,对编码后的视频数据进行前向纠错,得到纠错后的视频数据;向服务器发送纠错后的视频数据。
可以根据丢包率、缓冲时长、预估FEC带宽计算冗余度,划分发送数据包组并生成FEC包用于实时网络传输,实时传输网可以选择最优路径传输视频数据包。
步骤308、接收视频发送端发送的视频数据。
本步骤308由服务器执行,具体如步骤202中所述。
步骤309、检测待解码视频数据中的画面组的完整性。
本步骤309由服务器执行。
当服务器接收到视频发送端发送的视频数据后,则可以检测视频数据中GOP的完整性。将服务器接收的视频数据进行转码成图像,然后对图像的完整性进行检测,若发现有图像损坏,则对损坏的图像进行处理。
步骤310、丢弃不完整的画面组,得到待发送视频数据。
本步骤310由服务器执行。
当服务器检测到某帧图像损坏,也就是GOP出现丢包时,将损坏的图像丢弃,然后将没有损坏的图像进行重新进行编码。
步骤311、向视频播放端发送待发送视频数据用于解码播放。
本步骤311由服务器执行,服务器将步骤310中重新编码生成的视频数据发送至视频播放端,用于解码播放。
可选地,服务器可以根据视频播放端和服务器的地理位置信息、ISP信息、链路质量信息等,采用动态路由的方式,确定从服务器向视频播放端传输待发送视频数据的目标传输路径,该目标传输路径可以为可供选择的所有传输路径中的最优路径,然后经由该目标传输路径,向视频播放端发送待发送视频数据。
需要说明的是,本发明实施例的实时传输协议在所有的发送端和接收端之间(例如,视频发送端和服务器之间、各个转发服务器之间、服务器和视频播放端之间)都会执行。另外,对于编码功能的控制仅在视频发送端执行,在其他端(例如,服务器和视频播放端)上仅会根据反馈动态调节重传和FEC等的工作情况。
综上所述,本发明实施例中视频发送端根据服务器发送的反馈信息得到可用带宽和可用帧率,进而对视频数据进行丢帧处理,使得视频数据量得以减小,然后对经丢帧处理的视频数据进行编码发送,使得该实时视频传输平滑了视频码率,实现了自适应编码调整,保证了实时传输视频画质和流畅度,另外服务器根据播放和重传采用GOP丢弃方式,避免花屏问题,同时避免不必要的重传请求消耗带宽,从而在弱网环境下保证了视频播放端所播放的视频的画质和流畅度。
图4为本发明一实施例提供的实时视频传输装置的结构示意图,如图4所示,该装置应用于实时视频传输系统中的视频发送端,实时视频传输系统包括视频发送端和服务器,该装置包括:
第一计算模块401,用于根据服务器发送的反馈信息,计算得到可用带宽和可用帧率,反馈信息包括:重传请求信息、缓冲时长、预估网络带宽、丢包率;
丢帧处理模块402,用于根据可用带宽和可用帧率,对视频数据进行丢帧处理,得到丢帧处理后的视频数据;
编码模块403,用于根据可用带宽和可用帧率,对丢帧处理后的视频数据进行编码,得到编码后的视频数据;
视频数据发送模块404,用于向服务器发送编码后的视频数据。
可选地,丢帧处理模块402,具体用于:
根据可用带宽和可用帧率,计算得到预估码率;
根据可用带宽和预估码率,对视频数据进行丢帧处理,得到丢帧处理后的视频数据。
可选地,视频数据发送模块404,具体用于:
缓存编码后的视频数据,得到经缓存的视频数据;
根据可用带宽和可用帧率,计算得到预估重传带宽和重传窗口,重传窗口用于限制每次重传的数据量;
根据重传请求信息、预估重传带宽、重传窗口以及经缓存的视频数据,确定待重传视频数据;
向服务器发送待重传视频数据。
可选地,如图5所示,该装置还包括服务器选择模块405,该服务器选择模块405用于:
根据视频发送端的地理位置信息、互联网服务提供商信息和链路质量信息,从多个初始服务器中选择服务器;
向服务器发送初始视频数据。
可选地,视频数据发送模块404,具体还用于:
根据可用带宽和可用帧率,计算得到预估前向纠错带宽;
根据丢包率、缓冲时长、预估前向纠错带宽,对编码后的视频数据进行前向纠错,得到纠错后的视频数据;
向服务器发送纠错后的视频数据。
综上所述,本发明实施例的实时视频传输装置用于视频发送端,使得视频发送端根据服务器发送的反馈信息得到可用带宽和可用帧率,进而对视频数据进行丢帧处理,使得视频数据量得以减小,然后对经丢帧处理的视频数据进行编码发送,使得该实时视频传输平滑了视频码率,实现了自适应编码调整,从而在弱网环境下保证了视频发送端实时发送视频的画质和流畅度。
图6为本发明又一实施例提供的实时视频传输装置的结构示意图,如图6所示,该装置应用于实时视频传输系统中的服务器,实时视频传输系统包括服务器、视频发送端和视频播放端,该装置包括:
反馈信息发送模块501,用于向视频发送端发送反馈信息,反馈信息包括:重传请求信息、缓冲时长、预估网络带宽、丢包率,反馈信息用于计算可用带宽和可用帧率;
视频数据接收模块502,用于接收视频发送端发送的视频数据,其中,视频数据为视频发送端根据可用带宽和可用帧率进行丢帧处理并编码得到的。
可选地,如图7所示,该装置还包括:
请求信息生成模块503,用于根据预先接收到的视频数据,生成重传请求信息,重传请求信息用于指示视频发送端重传被标识的视频数据。
可选地,该装置还包括第二计算模块504,该第二计算模块504用于:
缓存预先接收到的视频数据,得到经缓存的视频数据;
根据预定缓冲时长和经缓存的视频数据,得到待解码视频数据;
根据待解码视频数据,计算反馈信息中的缓冲时长;
根据预先接收到的视频数据,得到视频数据的接收码率和丢包率;
根据接收码率、丢包率和缓冲时长,计算得到预估网络带宽。
可选地,该装置还包括:
画面组检测模块505,用于检测待解码视频数据中的画面组的完整性;
画面组筛选模块506,用于丢弃不完整的画面组,得到待发送视频数据;
播放视频发送模块507,用于向视频播放端发送待发送视频数据用于解码播放。
可选地,该播放视频发送模块507,具体用于:
根据视频播放端和服务器的地理位置信息、互联网服务提供商信息、链路质量信息,采用动态路由的方式,确定从服务器向视频播放端传输待发送视频数据的目标传输路径;
经由目标传输路径,向视频播放端发送待发送视频数据。
本发明实施例的实时视频传输装置用于服务器,使得服务器生成反馈信息发送至视频发送端,反馈信息用于视频发送端计算可用带宽和可用帧率,进而对视频数据进行丢帧处理并进行编码发送给服务器,使得该实时视频传输平滑了视频码率,实现了自适应编码调整,从而在弱网环境下保证了视频发送端实时传输视频的画质和流畅度。
上述装置用于执行前述实施例提供的方法,其实现原理和技术效果类似,在此不再赘述。
以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),或,一个或多个微处理器(digital singnal processor,简称DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,简称FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(CentralProcessing Unit,简称CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,简称SOC)的形式实现。
图8为本发明实施例提供的实时视频传输装置的流程示意图,该装置可以集成于终端设备或者终端设备的芯片,该终端可以是具备图像处理功能的计算设备。
该装置包括:存储器801、处理器802。
存储器801用于存储程序,处理器802调用存储器801存储的程序,以执行上述方法实施例。具体实现方式和技术效果类似,这里不再赘述。
可选地,本发明还提供一种程序产品,例如计算机可读存储介质,包括程序,该程序在被处理器执行时用于执行上述方法实施例。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取存储器(英文:Random Access Memory,简称:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
Claims (8)
1.一种实时视频传输方法,其特征在于,应用于实时视频传输系统中的视频发送端,所述实时视频传输系统包括所述视频发送端和服务器,所述方法包括:
根据所述服务器发送的反馈信息,计算得到可用带宽和可用帧率,所述反馈信息包括:重传请求信息、缓冲时长、预估网络带宽、丢包率,所述重传请求信息用于指示所述视频发送端对标识的视频数据进行重传,所述预估网络带宽为所述服务器根据所述视频数据的接收码率、丢包率和缓冲时长计算得到的;
根据所述可用带宽和所述可用帧率,对视频数据进行丢帧处理,得到丢帧处理后的视频数据;
根据所述可用带宽和所述可用帧率,对所述丢帧处理后的视频数据进行编码,得到编码后的视频数据;
向所述服务器发送所述编码后的视频数据;
所述向所述服务器发送所述编码后的视频数据,包括:
缓存所述编码后的视频数据,得到经缓存的视频数据;
根据所述可用带宽和所述可用帧率,计算得到预估重传带宽和重传窗口,所述重传窗口用于限制每次重传的数据量;
根据所述重传请求信息、所述预估重传带宽、所述重传窗口以及所述经缓存的视频数据,确定待重传视频数据;
向所述服务器发送所述待重传视频数据。
2.根据权利要求1所述的方法,其特征在于,所述根据所述可用带宽和所述可用帧率,对视频数据进行丢帧处理,得到丢帧处理后的视频数据,包括:
根据所述可用带宽和所述可用帧率,计算得到预估码率;
根据所述可用带宽和所述预估码率,对视频数据进行丢帧处理,得到丢帧处理后的视频数据。
3.根据权利要求1所述的方法,其特征在于,在所述根据所述服务器发送的反馈信息,计算得到可用带宽和可用帧率之前,包括:
根据所述视频发送端的地理位置信息、互联网服务提供商信息和链路质量信息,从多个初始服务器中选择所述服务器;
向所述服务器发送初始视频数据。
4.根据权利要求1所述的方法,其特征在于,所述向所述服务器发送所述编码后的视频数据,包括:
根据所述可用带宽和所述可用帧率,计算得到预估前向纠错带宽;
根据所述丢包率、所述缓冲时长、所述预估前向纠错带宽,对所述编码后的视频数据进行前向纠错,得到纠错后的视频数据;
向所述服务器发送所述纠错后的视频数据。
5.一种实时视频传输方法,其特征在于,应用于实时视频传输系统中的服务器,所述实时视频传输系统包括所述服务器、视频发送端和视频播放端,所述方法包括:
向所述视频发送端发送反馈信息,所述反馈信息包括:重传请求信息、缓冲时长、预估网络带宽、丢包率,所述反馈信息用于计算可用带宽和可用帧率,所述重传请求信息用于指示所述视频发送端对标识的视频数据进行重传,所述预估网络带宽为所述服务器根据所述视频数据的接收码率、丢包率和缓冲时长计算得到的;
接收所述视频发送端发送的视频数据,其中,所述视频数据为所述视频发送端根据所述可用带宽和所述可用帧率进行丢帧处理并编码得到的;
在所述向所述视频发送端发送反馈信息之前,还包括:
缓存预先接收到的视频数据,得到经缓存的视频数据;
根据预定缓冲时长和所述经缓存的视频数据,得到待解码视频数据;
根据所述待解码视频数据,计算缓冲时长;
根据所述预先接收到的视频数据,得到所述视频数据的接收码率和丢包率;
根据所述接收码率、所述丢包率和所述缓冲时长,计算得到预估网络带宽。
6.根据权利要求5所述的方法,其特征在于,在所述向所述视频发送端发送反馈信息之前,还包括:
根据预先接收到的视频数据,生成重传请求信息,所述重传请求信息用于指示所述视频发送端重传被标识的视频数据。
7.根据权利要求5所述的方法,其特征在于,在所述根据预定缓冲时长和所述经缓存的视频数据,得到待解码视频数据之后,还包括:
检测所述待解码视频数据中的画面组的完整性;
丢弃不完整的画面组,得到待发送视频数据;
向所述视频播放端发送所述待发送视频数据用于解码播放。
8.根据权利要求7所述的方法,其特征在于,所述向所述视频播放端发送所述待发送视频数据用于解码播放,包括:
根据所述视频播放端和所述服务器的地理位置信息、互联网服务提供商信息、链路质量信息,采用动态路由的方式,确定从所述服务器向所述视频播放端传输所述待发送视频数据的目标传输路径;
经由所述目标传输路径,向所述视频播放端发送所述待发送视频数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910029880.8A CN109729439B (zh) | 2019-01-11 | 2019-01-11 | 实时视频传输方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910029880.8A CN109729439B (zh) | 2019-01-11 | 2019-01-11 | 实时视频传输方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109729439A CN109729439A (zh) | 2019-05-07 |
CN109729439B true CN109729439B (zh) | 2022-06-17 |
Family
ID=66299024
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910029880.8A Active CN109729439B (zh) | 2019-01-11 | 2019-01-11 | 实时视频传输方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109729439B (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110505503A (zh) * | 2019-08-08 | 2019-11-26 | 武汉兴图新科电子股份有限公司 | 音视频分级自适应传输系统 |
CN110557598A (zh) * | 2019-09-18 | 2019-12-10 | 天津卓朗科技发展有限公司 | 视频会议调度方法及相关装置 |
CN110912922B (zh) * | 2019-12-03 | 2022-09-16 | 锐捷网络股份有限公司 | 一种图像传输方法、装置、电子设备及存储介质 |
CN111107297B (zh) * | 2019-12-30 | 2021-06-01 | 广州市百果园网络科技有限公司 | 一种视频传输方法、装置、资源服务器和存储介质 |
CN111428560B (zh) * | 2020-02-20 | 2023-09-12 | 重庆创通联达智能技术有限公司 | 视频图像处理方法、装置、电子设备及存储介质 |
CN110996131B (zh) * | 2020-03-02 | 2020-11-10 | 腾讯科技(深圳)有限公司 | 视频编码方法、装置、计算机设备及存储介质 |
CN111641804A (zh) * | 2020-06-16 | 2020-09-08 | 广州迈聆信息科技有限公司 | 视频数据处理方法和装置、终端、摄像头及视频会议系统 |
CN113824992B (zh) * | 2020-06-19 | 2023-04-14 | 京东方科技集团股份有限公司 | 终端及上传方法、服务器及监测方法、介质、设备及系统 |
CN112104872B (zh) * | 2020-08-17 | 2024-05-17 | 西安万像电子科技有限公司 | 图像传输方法及装置 |
CN112312229A (zh) * | 2020-10-27 | 2021-02-02 | 唐桥科技(杭州)有限公司 | 一种视频传输方法、装置、电子设备及存储介质 |
CN112399268A (zh) * | 2020-11-12 | 2021-02-23 | 唐桥科技(杭州)有限公司 | 实时流媒体传输方法、装置和电子设备 |
CN112954389B (zh) * | 2021-03-11 | 2022-07-12 | 山东浪潮超高清视频产业有限公司 | 一种快速换台的方法 |
CN113115111A (zh) * | 2021-03-16 | 2021-07-13 | 广州朗国电子科技有限公司 | 一种录屏直播的视频帧率控制方法、系统及存储介质 |
CN113438512A (zh) * | 2021-05-28 | 2021-09-24 | 福州市拾联信息科技有限公司 | 一种视频数据快速切换画质及低码流控制系统及其控制方法 |
CN113992967B (zh) * | 2021-10-25 | 2022-11-01 | 北京字节跳动网络技术有限公司 | 一种投屏数据传输方法、装置、电子设备及存储介质 |
CN116320641B (zh) * | 2023-05-19 | 2023-08-04 | 河北网新科技集团股份有限公司 | 一种视频数据传输方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102075769A (zh) * | 2011-01-10 | 2011-05-25 | 苏州博联科技有限公司 | 视频无线传输监控系统的视频QoS优化方法 |
CN102368834A (zh) * | 2011-10-27 | 2012-03-07 | 东莞中山大学研究院 | 一种区端网络自适应视频传输系统及方法 |
CN104935958A (zh) * | 2015-06-24 | 2015-09-23 | 青岛科技大学 | 一种实时视频传输装置及方法 |
CN105357592A (zh) * | 2015-10-26 | 2016-02-24 | 山东大学苏州研究院 | 一种流媒体自适应传输选择性丢帧方法 |
CN107888342A (zh) * | 2016-09-30 | 2018-04-06 | 瞬已网络科技(上海)有限公司 | 一种网络实时视频传输方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130315296A1 (en) * | 2012-05-22 | 2013-11-28 | Broadcom Corporation | Systems and methods for adaptive selection of video encoding resources |
CN107623851B (zh) * | 2017-09-01 | 2019-12-31 | 苏州科达科技股份有限公司 | 视频码流传输控制装置及控制方法 |
-
2019
- 2019-01-11 CN CN201910029880.8A patent/CN109729439B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102075769A (zh) * | 2011-01-10 | 2011-05-25 | 苏州博联科技有限公司 | 视频无线传输监控系统的视频QoS优化方法 |
CN102368834A (zh) * | 2011-10-27 | 2012-03-07 | 东莞中山大学研究院 | 一种区端网络自适应视频传输系统及方法 |
CN104935958A (zh) * | 2015-06-24 | 2015-09-23 | 青岛科技大学 | 一种实时视频传输装置及方法 |
CN105357592A (zh) * | 2015-10-26 | 2016-02-24 | 山东大学苏州研究院 | 一种流媒体自适应传输选择性丢帧方法 |
CN107888342A (zh) * | 2016-09-30 | 2018-04-06 | 瞬已网络科技(上海)有限公司 | 一种网络实时视频传输方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109729439A (zh) | 2019-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109729439B (zh) | 实时视频传输方法 | |
CN107231328B (zh) | 实时视频传输方法、装置、设备及系统 | |
US7502818B2 (en) | Data communications system, data sender, data receiver, data communications method, and computer program | |
CN107196746B (zh) | 实时通信中的抗丢包方法、装置和系统 | |
JP5588019B2 (ja) | 信頼性のあるデータ通信のためにネットワーク抽象化レイヤを解析する方法および装置 | |
KR101242663B1 (ko) | 패킷 송신 장치, 통신 시스템 및 컴퓨터 판독가능한 기록매체 | |
US7957307B2 (en) | Reducing effects of packet loss in video transmissions | |
US7443797B2 (en) | Medium streaming distribution system | |
US8005028B2 (en) | Data communication system, data transmitting device, data transmitting method, data receiving device, and data receiving method | |
US10230651B2 (en) | Effective intra-frame refresh in multimedia communications over packet networks | |
US10944973B2 (en) | Estimation of video quality of experience on media servers | |
JP2020502832A (ja) | データストリーミングの前方誤り訂正 | |
CN111093083A (zh) | 数据传输方法及装置 | |
US20100318675A1 (en) | Method of sending data and associated device | |
JP3871661B2 (ja) | マルチメディアコンテンツ受信装置及びマルチメディアコンテンツ受信方法 | |
KR101953580B1 (ko) | 영상회의 시스템에서 데이터 송수신 장치 및 방법 | |
JP2005033556A (ja) | データ送信装置、データ送信方法、データ受信装置、データ受信方法 | |
EP2908516A1 (en) | Process for transmitting an ongoing video stream from a publisher to a receiver through a MCU unit during a live session | |
JP5523163B2 (ja) | 送信装置、送信方法、プログラム | |
CN114554198B (zh) | 基于纠删码的视频关键帧冗余传输方法和系统 | |
JP4049378B2 (ja) | 双方向画像通信システムにおけるサーバ及びその処理方法並びにプログラム | |
Kropfberger et al. | Evaluation of RTP immediate feedback and retransmission extensions [video streaming applications] | |
JP2005020499A (ja) | 通信装置、その方法およびそのシステム | |
CN115623154A (zh) | 校正网络数据丢包的系统和方法 | |
Jero | Performance Analysis of the Datagram Congestion Control Protocol DCCP for Real-Time Streaming Media Applications |
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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20210302 Address after: Room 1702-03, Lantian Hesheng building, 32 Zhongguancun Street, Haidian District, Beijing 100082 Applicant after: BEIJING CENTURY TAL EDUCATION TECHNOLOGY Co.,Ltd. Address before: 102200 a1-05-001 maker Plaza, 338 Huilongguan East Street, Changping District, Beijing Applicant before: BEIJING SANTICLOUD TECHNOLOGY Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |