利索能及
我要发布
收藏
专利号: 2016107542185
申请人: 武汉斗鱼网络科技有限公司
专利类型:发明专利
专利状态:无效专利
更新日期:2024-12-09
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种直播客户端实现自适应屏幕旋转的方法,所述直播客户端分为推流端和播放端,其特征在于,该方法包括以下步骤:步骤S1:推流端获取屏幕或摄像头的图像数据,该图像数据与当前屏幕方向相关;

步骤S2:推流端根据当前屏幕方向所对应的分辨率情况,对采集的图像数据进行编码处理;并将编码处理后的图像数据与当前最新的媒体描述信息混合,形成媒体数据流,所述媒体描述信息中包括图像分辨率的属性;

步骤S3:推流端将媒体数据流按照指定的格式和指定的流媒体协议推送至服务器端;

步骤S4:播放端按照指定的流媒体协议从服务器端获取媒体数据流;

步骤S5:播放端对媒体数据流中的媒体描述信息进行解析,获取其中图像分辨率的属性的值;并根据图像分辨率的变化情况对媒体数据流中的图像数据进行解码;

步骤S6:播放端根据解析的媒体描述信息配置相应的播放器,并在配置的播放器中播放解码后的图像数据,结束;

其中,步骤S2的具体流程包括:

步骤S201:通过调用推流端设备系统的分辨率获取接口函数获取当前图像的分辨率,转入步骤S202;

步骤S202:判断当前图像的分辨率是否发生变化,若是,转入步骤S204;否则,转入步骤S203;

步骤S203:利用已有的编码器将采集的图像数据按照指定的编码格式进行数据压缩,实现图像数据的编码,转入步骤S205;

步骤S204:根据新的分辨率重新初始化已有的编码器,并利用重新初始化后的编码器将采集的图像数据按照指定的编码格式进行数据压缩,实现图像数据的编码;同时,按照新的分辨率更新媒体描述信息中的图像分辨率的属性,转入步骤S205;

步骤S205:将编码处理后的图像数据与当前的媒体描述信息混合,形成媒体数据流;

步骤S5的具体流程包括:

步骤S501:播放端从获取到的媒体数据流中查找到媒体描述信息,并从中解析出图像分辨率的属性值,转入步骤S502;

步骤S502:判断图像的分辨率是否发生变化,若是,转入步骤S504;否则,转入步骤S503;

步骤S503:利用已有的解码器按照图像编码对应的格式对媒体数据流中的图像数据进行解码;

步骤S504:根据新的分辨率重新初始化已有的解码器,并利用重新初始化后的解码器按照图像编码对应的格式对媒体数据流中的图像数据进行解码。

2.如权利要求1所述的直播客户端实现自适应屏幕旋转的方法,其特征在于:步骤S203和步骤S204中,所述指定的编码格式为H264压缩格式;步骤S205中形成的媒体数据流中还包括有外部采集到的音频数据。

3.如权利要求1和2中任一项所述的直播客户端实现自适应屏幕旋转的方法,其特征在于:步骤S3中,推流端是将媒体数据流以FLV格式,按照RTMP协议推送至服务器端的;步骤S4中,播放端按照RTMP协议从服务器端获取媒体数据流。

4.一种直播客户端实现自适应屏幕旋转的系统,包括直播客户端和服务器端,所述直播客户端分为推流端和播放端,其特征在于:所述推流端包括屏幕/摄像头采集模块、编码及数据流生成模块、数据流推送模块;所述播放端包括数据流接收模块、图像数据解码模块和图像播放模块;

所述屏幕/摄像头采集模块用于:获取屏幕或摄像头的图像数据,该图像数据与当前屏幕方向相关;

所述编码及数据流生成模块用于:根据当前屏幕方向所对应的分辨率情况,对采集的图像数据进行编码处理;并将编码处理后的图像数据与当前最新的媒体描述信息混合,形成媒体数据流,所述媒体描述信息中包括图像分辨率的属性;

所述数据流推送模块用于:将媒体数据流按照指定的格式和指定的流媒体协议推送至服务器端;

所述数据流接收模块用于:按照指定的流媒体协议从服务器端获取媒体数据流;

所述图像数据解码模块用于:对媒体数据流中的媒体描述信息进行解析,获取其中图像分辨率的属性的值;并根据图像分辨率的变化情况对媒体数据流中的图像数据进行解码;

所述图像播放模块用于:根据解析的媒体描述信息配置相应的播放器,并在配置的播放器中播放解码后的图像数据;

所述编码及数据流生成模块包括分辨率获取子模块、分辨率判断子模块、第一编码子模块、第二编码子模块和数据流生成子模块;

所述分辨率获取子模块用于:通过调用推流端设备系统的分辨率获取接口函数获取当前图像的分辨率,向分辨率判断子模块发送判断信号;

所述分辨率判断子模块用于:收到判断信号后,判断当前图像的分辨率是否发生变化,若是,向第一编码子模块发送第一编码信号;否则,向第二编码子模块发送第二编码信号;

所述第一编码子模块用于:收到第一编码信号后,根据新的分辨率重新初始化已有的编码器,并利用重新初始化后的编码器将采集的图像数据按照指定的编码格式进行数据压缩,实现图像数据的编码;同时,按照新的分辨率更新媒体描述信息中的图像分辨率的属性,向数据流生成子模块发送生成信号;

所述第二编码子模块用于:收到第二编码信号后,利用已有的编码器将采集的图像数据按照指定的编码格式进行数据压缩,实现图像数据的编码,向数据流生成子模块发送生成信号;

所述数据流生成子模块用于:收到生成信号后,将编码处理后的图像数据与当前的媒体描述信息混合,形成媒体数据流;

所述图像数据解码模块包括媒体描述信息解析子模块、分辨率变化判断子模块、第一解码子模块和第二解码子模块;

所述媒体描述信息解析子模块用于:从获取到的媒体数据流中查找到媒体描述信息,并从中解析出图像分辨率的属性值,向分辨率变化判断子模块发送变化判断信号;

所述分辨率变化判断子模块用于:收到变化判断信号后,判断图像的分辨率是否发生变化,若是,向第一解码子模块发送第一解码信号;否则,向第二解码子模块发送第二解码信号;

所述第一解码子模块用于:收到第一解码信号后,根据新的分辨率重新初始化已有的解码器,并利用重新初始化后的解码器按照图像编码对应的格式对媒体数据流中的图像数据进行解码;

所述第二解码子模块用于:收到第二解码信号后,利用已有的解码器按照图像编码对应的格式对媒体数据流中的图像数据进行解码。

5.如权利要求4所述的直播客户端实现自适应屏幕旋转的系统,其特征在于:所述第一编码子模块、第二编码子模块均是按照H264的编码格式进行数据压缩;所述数据流生成子模块形成的媒体数据流中还包括有外部采集到的音频数据。

6.如权利要求4或5所述的直播客户端实现自适应屏幕旋转的系统,其特征在于:所述数据流推送模块是将媒体数据流以FLV格式,按照RTMP协议推送至服务器端的;所述数据流接收模块是按照RTMP协议从服务器端获取媒体数据流的。