视频流发送方法和装置制造方法及图纸

技术编号:16761837 阅读:25 留言:0更新日期:2017-12-09 05:45
本发明专利技术公开了一种视频流发送方法及装置,属于互联网技术领域。所述方法包括:采用当前启用的第一编码器对第一原始视频帧执行编码处理,得到第一编码后视频帧;若第一编码后视频帧的分辨率与前一个编码后视频帧的分辨率不同,则获取第一编码后视频帧对应的参数集,第一编码后视频帧对应的参数集中包括第一编码后视频帧所采用的编码参数;生成第一编码后视频帧所关联的头文件,头文件中包括第一编码后视频帧对应的参数集;向流媒体服务器发送头文件和第一编码后视频帧。通过在推流客户端中创建多个编码器,用于对不同分辨率的视频帧执行编码处理,达到了提高视频播放的流畅性的效果。

Video stream transmission method and device

The invention discloses a video stream transmission method and a device, which belongs to the field of Internet technology. The method includes: the first encoder is currently enabled to perform encoding processing of the first original video frame, the first frame of the video encoding; if the first encoding after the resolution of a video frame and a frame of video encoding after different resolution, obtaining the set parameters of the video frames corresponding to the first encoding, the first video encoding parameters the frame corresponding to the encoding parameters including video frame using the first encoding after; video frame header file associated with the first encoding, set parameters of the video frames corresponding to the first encoding after including the header file; to the streaming media server sends the header file and the first encoding video frames. By creating multiple encoders in the push client, it performs encoding processing on different resolutions of video frames, which achieves the effect of improving the fluency of video playback.

【技术实现步骤摘要】
视频流发送方法和装置
本专利技术实施例涉及互联网
,特别涉及一种视频流发送方法和装置。
技术介绍
随着多媒体技术的发展,视频播放场景的多样性成为多媒体应用开发过程中较为重要的一部分。在视频播放过程中,若要实现视频播放场景的切换,通常需要更改视频流中各个视频帧的分辨率。相关技术中,为了解决视频帧分辨率的更改问题,推流客户端先将正在发送中的视频流暂停发送,按照视频播放场景所需的视频帧的分辨率,重新创建能对该分辨率的视频帧执行编码处理的编码器,再通过新的编码器对已更改过分辨率的视频帧进行编码,最后将编码得到的视频帧发送出去。相关技术提供的视频流发送方法,由于在视频流的暂停发送和重新发送之间必然存在一定的时间间隔,导致拉流客户端无法连续地接收到视频帧,从而使得在视频播放过程中出现卡顿现象。
技术实现思路
为了解决现有技术中存在的问题,本专利技术实施例提供了一种视频流发送方法和装置。所述技术方案如下:根据本专利技术实施例的第一方面,提供一种视频流发送方法,应用于推流客户端中,所述推流客户端包括至少2个编码器,不同的编码器用于对不同分辨率的视频帧执行编码处理;所述方法包括:采用当前启用的第一编码器对第一原始视频帧执行编码处理,得到第一编码后视频帧;若所述第一编码后视频帧的分辨率与前一个编码后视频帧的分辨率不同,则获取所述第一编码后视频帧对应的参数集,所述第一编码后视频帧对应的参数集中包括所述第一编码后视频帧所采用的编码参数;生成所述第一编码后视频帧所关联的头文件,所述头文件中包括所述第一编码后视频帧对应的参数集;向流媒体服务器发送所述头文件和所述第一编码后视频帧。在一种可能的实施方式中,所述方法还包括:在检测到视频播放场景由第一场景变更为第二场景时,将所述第一编码器切换为第二编码器;其中,所述第一场景下采用所述第一编码器执行编码处理,所述第二场景下采用所述第二编码器执行编码处理。在另一种可能的实施方式中,所述将所述第一编码器切换为第二编码器之后,还包括:采用所述第二编码器对第二原始视频帧执行编码处理,得到第二编码后视频帧,其中,所述第二编码器编码得到的首个第二编码后视频帧被编码为关键帧。根据本专利技术实施例的第二方面,提供一种视频流发送方法,应用于流媒体服务器中,所述方法包括:接收推流客户端发送的视频数据,所述视频数据为头文件或编码后视频帧;其中,所述头文件由所述推流客户端在检测到当前编码得到的第一编码后视频帧的分辨率与前一个编码后视频帧的分辨率不同时生成,所述头文件中包含有所述第一编码后视频帧对应的参数集,所述第一编码后视频帧对应的参数集中包括所述第一编码后视频帧所采用的编码参数;向第一拉流客户端或者下一级的第一流媒体服务器转发所述视频数据。在一种可能的实施方式中,所述接收推流客户端发送的视频数据之后,还包括:当所述视频数据为所述头文件时,生成与所述头文件对应的元数据消息,所述元数据消息中包括所述参数集,所述元数据消息可被Flash播放器识别;向所述第一拉流客户端或者所述下一级的第一流媒体服务器发送所述元数据消息。在另一种可能的实施方式中,所述接收推流客户端发送的视频数据之后,还包括:当所述视频数据为所述头文件时,在头文件队列的尾部添加所述头文件;当所述视频数据为所述编码后视频帧时,为所述编码后视频帧添加属性信息,所述属性信息用于指示所述编码后视频帧所关联的头文件;将所述编码后视频帧所关联的头文件的被引用次数加1;在视频帧队列的尾部添加所述编码后视频帧。在另一种可能的实施方式中,所述在视频帧队列的尾部添加所述编码后视频帧之后,还包括:检测所述视频帧队列的长度是否超过预设阈值;若所述视频帧队列的长度超过所述预设阈值,则从所述视频帧队列的头部开始,将第一个属于关键帧的编码后视频帧,以及所述第一个属于关键帧的编码后视频帧和第二个属于关键帧的编码后视频帧之间的不属于关键帧的编码后视频帧删除;对于每一个已删除的编码后视频帧,将所述已删除的编码后视频帧所关联的头文件的被引用次数减1;当存在被引用次数为0的头文件时,将所述被引用次数为0的头文件从所述头文件队列中删除。在另一种可能的实施方式中,所述方法还包括:当接收到第二拉流客户端或者下一级的第二流媒体服务器发送的视频获取请求时,从所述视频帧队列的头部开始逐个获取编码后视频帧;当获取到第1个编码后视频帧时,生成与所述第1个编码后视频帧所关联的头文件对应的元数据消息,向所述第二拉流客户端或者所述下一级的第二流媒体服务器发送所述第1个编码后视频帧所关联的头文件、所述第1个编码后视频帧所关联的头文件对应的元数据消息和所述第1个编码后视频帧。当获取到第i个编码后视频帧时,检测所述第i个编码后视频帧所关联的头文件与第i-1个编码后视频帧所关联的头文件是否相同;若相同,则向所述第二拉流客户端或者所述下一级的第二流媒体服务器发送所述第i个编码后视频帧;若不同,则生成与所述第i个编码后视频帧所关联的头文件对应的元数据消息,向所述第二拉流客户端或者所述下一级的第二流媒体服务器发送所述第i个编码后视频帧所关联的头文件、所述第i个编码后视频帧所关联的头文件对应的元数据消息和所述第i个编码后视频帧;其中,所述i为大于1的整数。根据本专利技术实施例的第三方面,提供一种视频流发送装置,应用于推流客户端中,所述推流客户端包括至少2个编码器,不同的编码器用于对不同分辨率的视频帧执行编码处理;所述装置包括:编码模块,用于采用当前启用的第一编码器对第一原始视频帧执行编码处理,得到第一编码后视频帧;获取模块,用于在所述第一编码后视频帧的分辨率与前一个编码后视频帧的分辨率不同时,获取所述第一编码后视频帧对应的参数集,所述第一编码后视频帧对应的参数集中包括所述第一编码后视频帧所采用的编码参数;生成模块,用于生成所述第一编码后视频帧所关联的头文件,所述头文件中包括所述第一编码后视频帧对应的参数集;发送模块,用于向流媒体服务器发送所述头文件和所述第一编码后视频帧。在一种可能的实施方式中,所述装置还包括:切换模块,用于在检测到视频播放场景由第一场景变更为第二场景时,将所述第一编码器切换为第二编码器;其中,所述第一场景下采用所述第一编码器执行编码处理,所述第二场景下采用所述第二编码器执行编码处理。在另一种可能的实施方式中,所述编码模块,还用于采用所述第二编码器对第二原始视频帧执行编码处理,得到第二编码后视频帧,其中,所述第二编码器编码得到的首个第二编码后视频帧被编码为关键帧。根据本专利技术实施例的第四方面,提供一种视频流发送装置,应用于流媒体服务器中,所述装置包括:接收模块,用于接收推流客户端发送的视频数据,所述视频数据为头文件或编码后视频帧;其中,所述头文件由所述推流客户端在检测到当前编码得到的第一编码后视频帧的分辨率与前一个编码后视频帧的分辨率不同时生成,所述头文件中包含有所述第一编码后视频帧对应的参数集,所述第一编码后视频帧对应的参数集中包括所述第一编码后视频帧所采用的编码参数;发送模块,用于向第一拉流客户端或者下一级的第一流媒体服务器转发所述视频数据。在一种可能的实施方式中,所述装置还包括:生成模块;所述生成模块,用于当所述视频数据为所述头文件时,生成与所述头文件对应的元数据消息,所述元数据消息中包括所述参数集,所述元数据消本文档来自技高网...
视频流发送方法和装置

【技术保护点】
一种视频流发送方法,其特征在于,应用于推流客户端中,所述推流客户端包括至少2个编码器,不同的编码器用于对不同分辨率的视频帧执行编码处理;所述方法包括:采用当前启用的第一编码器对第一原始视频帧执行编码处理,得到第一编码后视频帧;若所述第一编码后视频帧的分辨率与前一个编码后视频帧的分辨率不同,则获取所述第一编码后视频帧对应的参数集,所述第一编码后视频帧对应的参数集中包括所述第一编码后视频帧所采用的编码参数;生成所述第一编码后视频帧所关联的头文件,所述头文件中包括所述第一编码后视频帧对应的参数集;向流媒体服务器发送所述头文件和所述第一编码后视频帧。

【技术特征摘要】
1.一种视频流发送方法,其特征在于,应用于推流客户端中,所述推流客户端包括至少2个编码器,不同的编码器用于对不同分辨率的视频帧执行编码处理;所述方法包括:采用当前启用的第一编码器对第一原始视频帧执行编码处理,得到第一编码后视频帧;若所述第一编码后视频帧的分辨率与前一个编码后视频帧的分辨率不同,则获取所述第一编码后视频帧对应的参数集,所述第一编码后视频帧对应的参数集中包括所述第一编码后视频帧所采用的编码参数;生成所述第一编码后视频帧所关联的头文件,所述头文件中包括所述第一编码后视频帧对应的参数集;向流媒体服务器发送所述头文件和所述第一编码后视频帧。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:在检测到视频播放场景由第一场景变更为第二场景时,将所述第一编码器切换为第二编码器;其中,所述第一场景下采用所述第一编码器执行编码处理,所述第二场景下采用所述第二编码器执行编码处理。3.根据权利要求2所述的方法,其特征在于,所述将所述第一编码器切换为第二编码器之后,还包括:采用所述第二编码器对第二原始视频帧执行编码处理,得到第二编码后视频帧,其中,所述第二编码器编码得到的首个第二编码后视频帧被编码为关键帧。4.一种视频流发送方法,其特征在于,应用于流媒体服务器中,所述方法包括:接收推流客户端发送的视频数据,所述视频数据为头文件或编码后视频帧;其中,所述头文件由所述推流客户端在检测到当前编码得到的第一编码后视频帧的分辨率与前一个编码后视频帧的分辨率不同时生成,所述头文件中包含有所述第一编码后视频帧对应的参数集,所述第一编码后视频帧对应的参数集中包括所述第一编码后视频帧所采用的编码参数;向第一拉流客户端或者下一级的第一流媒体服务器转发所述视频数据。5.根据权利要求4所述的方法,其特征在于,所述接收推流客户端发送的视频数据之后,还包括:当所述视频数据为所述头文件时,生成与所述头文件对应的元数据消息,所述元数据消息中包括所述参数集,所述元数据消息可被Flash播放器识别;向所述第一拉流客户端或者所述下一级的第一流媒体服务器发送所述元数据消息。6.根据权利要求4所述的方法,其特征在于,所述接收推流客户端发送的视频数据之后,还包括:当所述视频数据为所述头文件时,在头文件队列的尾部添加所述头文件;当所述视频数据为所述编码后视频帧时,为所述编码后视频帧添加属性信息,所述属性信息用于指示所述编码后视频帧所关联的头文件;将所述编码后视频帧所关联的头文件的被引用次数加1;在视频帧队列的尾部添加所述编码后视频帧。7.根据权利要求6所述的方法,其特征在于,所述在视频帧队列的尾部添加所述编码后视频帧之后,还包括:检测所述视频帧队列的长度是否超过预设阈值;若所述视频帧队列的长度超过所述预设阈值,则从所述视频帧队列的头部开始,将第一个属于关键帧的编码后视频帧,以及所述第一个属于关键帧的编码后视频帧和第二个属于关键帧的编码后视频帧之间的不属于关键帧的编码后视频帧删除;对于每一个已删除的编码后视频帧,将所述已删除的编码后视频帧所关联的头文件的被引用次数减1;当存在被引用次数为0的头文件时,将所述被引用次数为0的头文件从所述头文件队列中删除。8.根据权利要求6所述的方法,其特征在于,所述方法还包括:当接收到第二拉流客户端或者下一级的第二流媒体服务器发送的视频获取请求时,从所述视频帧队列的头部开始逐个获取编码后视频帧;当获取到第1个编码后视频帧时,生成与所述第1个编码后视频帧所关联的头文件对应的元数据消息,向所述第二拉流客户端或者所述下一级的第二流媒体服务器发送所述第1个编码后视频帧所关联的头文件、所述第1个编码后视频帧所关联的头文件对应的元数据消息和所述第1个编码后视频帧。当获取到第i个编码后视频帧时,检测所述第i个编码后视频帧所关联的头文件与第i-1个编码后视频帧所关联的头文件是否相同;若相同,则向所述第二拉流客户端或者所述下一级的第二流媒体服务器发送所述第i个编码后视频帧;若不同,则生成与所述第i个编码后视频帧所关联的头文件对应的元数据消息,向所述第二拉流客户端或者所述下一级的第二流媒体服务器发送所述第i个编码后视频帧所关联的头文件、所述第i个编码后视频帧所关联的头文件对应的元数据消息和所述第i个编码后视频帧;其中,所述i为大于1的整数。9.一种视频流发送装置,其特征在于,应用于推流客户端中,所述推流客户端包括至少2个编码器,不同的编码器用于对不同分辨率的视频帧执行编码处理;所述装置包括:编码模块,用于采用当前启用的第一编码器对第一原始视频帧执行编码处理,得到第一编码后视频帧;获取模块,用于在所述第一编码后视频帧...

【专利技术属性】
技术研发人员:吕现广
申请(专利权)人:广州酷狗计算机科技有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1