CN116233504A - 一种直播推流方法及装置 - Google Patents
一种直播推流方法及装置 Download PDFInfo
- Publication number
- CN116233504A CN116233504A CN202310377088.8A CN202310377088A CN116233504A CN 116233504 A CN116233504 A CN 116233504A CN 202310377088 A CN202310377088 A CN 202310377088A CN 116233504 A CN116233504 A CN 116233504A
- Authority
- CN
- China
- Prior art keywords
- live
- video data
- live broadcast
- push
- broadcast
- 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
Images
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/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/262—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
- H04N21/26208—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints
-
- 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/21—Server components or server architectures
- H04N21/218—Source of audio or video content, e.g. local disk arrays
- H04N21/2187—Live feed
-
- 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/24—Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本申请提供一种直播推流方法及装置,涉及音视频数据处理领域,也可用于金融领域,包括:根据主播客户端设定的直播信息建立直播间并接收所述主播客户端上传的直播视频数据;根据所述主播客户端的直播管控指令对所述直播视频数据进行健康监控下的直播推流。本申请能够降低对主播客户端设备性能及网络带宽的要求,从而为观众提供稳定的后台推流直播观看体验。
Description
技术领域
本申请涉及音视频数据处理领域,可以用于金融领域,具体是一种直播推流方法及装置。
背景技术
在目前的直播推流系统中,有些系统仅支持主播在线直播,其通过主播的客户端或外设实时采集音视频流后推送至服务器。该种直播推流系统的直播画质以及网络延时状况等严重依赖主播的网络带宽、客户端设备性能等。另有一些支持录制视频推流的客户端软件,其需先将视频文件预上传至主播的客户端设备,才能完成直播推流。这种直播推流系统,其视频文件会占用大量的客户端本地存储资源,对主播的客户端设备依赖程度较高,性能要求更为苛刻。目前尚无一种能够有效解决上述问题的直播推流方法。
发明内容
针对现有技术中的问题,本申请提供一种直播推流方法及装置,能够降低对主播客户端设备性能及网络带宽的要求,从而为观众提供稳定的后台推流直播观看体验。
为解决上述技术问题,本申请提供以下技术方案:
第一方面,本申请提供一种直播推流方法,包括:
根据主播客户端设定的直播信息建立直播间并接收所述主播客户端上传的直播视频数据;
根据所述主播客户端的直播管控指令对所述直播视频数据进行健康监控下的直播推流。
进一步地,根据主播客户端设定的直播信息建立直播间,包括:
接收所述主播客户端发送的直播信息;其中,所述直播信息包括直播开始时间、直播结束时间、主播身份标识、录播标识及录播视频地址;
根据所述直播开始时间及所述直播结束时间进行直播时间校验;
根据所述主播身份标识进行主播身份认证;
根据所述录播标识及录播视频地址建立所述直播间。
进一步地,接收所述主播客户端上传的直播视频数据,包括:
将预设的分片配置参数发送至所述主播客户端,以使所述主播客户端根据所述分片配置参数对所述直播视频数据进行分片处理,得到直播视频数据分片;
以并行方式接收各直播视频数据分片,并将接收到的直播视频数据分片的文件大小与所述主播客户端发送的该直播视频数据分片的文件大小进行比较;其中,若二者一致,则该直播视频数据分片的接收已完成;
对已完成接收的直播视频数据分片进行完整性校验。
进一步地,直播管控指令为直播开始指令;所述根据所述主播客户端的直播管控指令对所述直播视频数据进行健康监控下的直播推流,包括:
根据所述录播视频地址读取对应的直播视频数据;
异步开启所述直播视频数据的推流进程,在健康监控下向内容分发网络推流该直播视频数据。
进一步地,所述直播管控指令为直播暂停指令;所述根据所述主播客户端的直播管控指令对所述直播视频数据进行健康监控下的直播推流,包括:
异步暂停所述直播视频数据的推流进程,并记录推流暂停时直播视频数据的播放时长。
进一步地,所述直播管控指令为直播恢复指令;所述根据所述主播客户端的直播管控指令对所述直播视频数据进行健康监控下的直播推流,包括:
根据所述暂停播放时长,异步开启所述直播视频数据的接续推流进程,继续向内容分发网络推流所述直播视频数据;其中,所述接续推流进程以推流暂停时直播视频数据的播放时长作为本次直播推流的起始时间。
进一步地,所述直播管控指令为直播结束指令;所述根据所述主播客户端的直播管控指令对所述直播视频数据进行健康监控下的直播推流,包括:
异步结束所述直播视频数据的推流进程。
进一步地,所述在健康监控下向内容分发网络推流该直播视频数据,包括:
监控是否返回异常关键字;
若是,获取各推流节点的资源使用状态及系统性能参数;
根据所述资源使用状态及系统性能参数对各推流节点进行健康分值计算;
根据各推流节点的健康分值调度所述直播视频数据至所述健康分值超过健康阈值的推流节点进行基于断点续传技术的直播推流。
进一步地,在对已完成接收的直播视频数据分片进行完整性校验之后,还包括:
对已完成接收的直播视频数据分片进行编码格式转换及封装格式转换。
第二方面,本申请提供一种直播推流装置,包括:
直播数据接收单元,用于根据主播客户端设定的直播信息建立直播间并接收所述主播客户端上传的直播视频数据;
健康监控推流单元,用于根据所述主播客户端的直播管控指令对所述直播视频数据进行健康监控下的直播推流。
进一步地,所述直播数据接收单元,包括:
直播信息接收模块,用于接收所述主播客户端发送的直播信息;其中,所述直播信息包括直播开始时间、直播结束时间、主播身份标识、录播标识及录播视频地址;
时间校验模块,用于根据所述直播开始时间及所述直播结束时间进行直播时间校验;
身份认证模块,用于根据所述主播身份标识进行主播身份认证;
直播间建立模块,用于根据所述录播标识及录播视频地址建立所述直播间。
进一步地,所述直播数据接收单元,包括:
分片参数发送模块,用于将预设的分片配置参数发送至所述主播客户端,以使所述主播客户端根据所述分片配置参数对所述直播视频数据进行分片处理,得到直播视频数据分片;
数据分片接收模块,用于以并行方式接收各直播视频数据分片,并将接收到的直播视频数据分片的文件大小与所述主播客户端发送的该直播视频数据分片的文件大小进行比较;其中,若二者一致,则该直播视频数据分片的接收已完成;
完整校验模块,用于对已完成接收的直播视频数据分片进行完整性校验。
进一步地,直播管控指令为直播开始;所述健康监控推流单元,包括:
视频数据读取模块,用于根据所述录播视频地址读取对应的直播视频数据;
推流开启模块,用于异步开启所述直播视频数据的推流进程,在健康监控下向内容分发网络推流该直播视频数据。
进一步地,所述直播管控指令为直播暂停;所述健康监控推流单元,包括:
推流暂停模块,用于异步暂停所述直播视频数据的推流进程,并记录推流暂停时直播视频数据的播放时长。
进一步地,所述直播管控指令为直播恢复;所述健康监控推流单元,包括:
推流恢复模块,用于根据所述暂停播放时长,异步开启所述直播视频数据的接续推流进程,继续向内容分发网络推流所述直播视频数据;其中,所述接续推流进程以推流暂停时直播视频数据的播放时长作为本次直播推流的起始时间。
进一步地,所述直播管控指令为直播结束;所述健康监控推流单元,包括:
推流结束模块,用于异步结束所述直播视频数据的推流进程。
进一步地,所述健康监控推流单元,包括:
异常返回模块,用于监控是否返回异常关键字;
状态参数获取模块,用于获取各推流节点的资源使用状态及系统性能参数;
健康计算模块,用于根据所述资源使用状态及系统性能参数对各推流节点进行健康分值计算;
推流调度模块,用于根据各推流节点的健康分值调度所述直播视频数据至所述健康分值超过健康阈值的推流节点进行基于断点续传技术的直播推流。
进一步地,在对已完成接收的直播视频数据分片进行完整性校验之后,还包括:
对已完成接收的直播视频数据分片进行编码格式转换及封装格式转换。
第三方面,本申请提供一种电子设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现所述直播推流方法的步骤。
第四方面,本申请提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现所述直播推流方法的步骤。
第五方面,本申请提供一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现所述直播推流方法的步骤。
针对现有技术中的问题,本申请提供的直播推流方法及装置,能够克服直播客户端推送录制视频流的技术缺陷,利用后台推送录制视频流的系统,使主播客户端无需参与音视频流的推送过程,仅通过操作页面按钮即可实现与观众的互动或直播过程管控;在此情况下,直播推流不消耗主播客户端的网络流量,对主播的设备性能也无特殊要求;对于观众而言,录制视频的直播观看效果与实时直播也完全一致,透明无感;既能支持主播的非在线直播,降低对主播客户端设备性能及网络带宽的要求,又能提高观众的体验度,提升直播观看效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例中直播推流方法的流程图;
图2为本申请实施例中建立直播间的流程图;
图3为本申请实施例中接收直播视频数据的流程图;
图4为本申请实施例中直播推流的流程图之一;
图5为本申请实施例中直播推流的流程图之二;
图6为本申请实施例中直播推流装置的结构图;
图7为本申请实施例中直播数据接收单元的结构图之一;
图8为本申请实施例中直播数据接收单元的结构图之二;
图9为本申请实施例中健康监控推流单元的结构图之一;
图10为本申请实施例中健康监控推流单元的结构图之二;
图11为本申请实施例中的电子设备的结构示意图。
图12为本申请实施例中的整体构架图;
图13为本申请实施例中视频上传的过程示意图;
图14为本申请实施例中视频转码的过程示意图;
图15为本申请实施例中推流及状态监控过程示意图;
图16为本申请实施例中监控调度过程示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本申请提供的直播推流方法及装置,可用于金融领域,也可用于除金融领域之外的任意领域,本申请提供的直播推流方法及装置的应用领域不做限定。
本申请技术方案中对数据的获取、存储、使用及处理等均符合法律法规的相关规定。
一实施例中,参见图1,为了能够降低对主播客户端设备性能及网络带宽的要求,从而为观众提供稳定的后台推流直播观看体验,本申请提供一种直播推流方法,包括:
S101:根据主播客户端设定的直播信息建立直播间并接收所述主播客户端上传的直播视频数据;
S102:根据所述主播客户端的直播管控指令对所述直播视频数据进行健康监控下的直播推流。
可以理解的是,本申请实施例中涉及以下术语,含义如下:
内容分发网络(Content Delivery Network,简称CDN):一种网络内容服务体系,其基于IP网络而构建,基于内容访问与应用的效率要求、质量要求及内容秩序而提供内容的分发与服务。利用内容分发网络,用户可就近获取内容资源,降低网络延迟,提高访问响应速度。
直播推流:主播通过客户端硬件设备或外设采集音视频流后推送至内容分发网络。
直播拉流:观众从内容分发网络拉取前述音视频流。
录播视频转码:对提前录制好的视频文件进行统一的格式转化。
后台推流:区别于客户端应用软件的前端推流方式,由后台服务器实现视频的自动推流。在本申请实施例中,是由本申请实施例的执行主体,即一能实现直播推流方法的服务器,来完成直播推流过程的。
参见图12,本申请实施例用于实现上述直播推流方法的服务器包括以下组件:创建直播间组件、视频上传组件、视频转码组件、直播管控组件、推流及状态监控组件、监控调度组件与数据存储组件(对应于数据存储层及文件服务器)。其中,文件服务器用于存储主播上传的音视频流文件。数据存储层用于存储与音视频流文件相关的各属性及参数,例如但不限于视频文件地址。
具体实施时,可先由主播定义直播间的基本信息,若主播选择录播视频推流,则需利用视频上传组件上传提前录制好的视频文件至文件服务器,相应地,文件服务器则需接收该视频文件。创建直播间组件还可以根据上述基本信息创建直播间。
由于视频文件格式多样且编码不一,为了更好地兼容观看端(也称观众客户端),视频转码组件还需对视频文件做统一的转码处理;转码处理后,再将视频文件写入文件服务器以生成访问地址,然后通过数据存储层实现持久化。
主播通过直播管控组件开始直播后,推流及状态监控组件从数据存储层查询视频文件地址并异步开启推流进程,将视频文件地址对应的音视频流推送至内容分发网络。
监控调度组件通过预设的监控指标及健康评分算法,对所有推流节点进行健康分值计算,然后将健康分值计算结果写入数据存储层,记录出现异常推流中断的直播间信息,并选取调度新的推流节点继续从断点时间点推流,从而确保推流的稳定性与连续性。
其中,数据存储组件负责直播的相关数据存储与校验。数据存储组件通过关系型数据库持久化存储直播间的基本信息,以分布式缓存的方式存储直播中的热点数据。数据存储组件底层组件提供读写能力,供其它组件调用。此外,该组件也可实现对主播身份、直播时间及直播场次等的合法性校验。
从上述描述可知,本申请提供的直播推流方法,能够克服直播客户端推送录制视频流的技术缺陷,利用后台推送录制视频流的系统,使主播客户端无需参与音视频流的推送过程,仅通过操作页面按钮即可实现与观众的互动或直播过程管控;在此情况下,直播推流不消耗主播客户端的网络流量,对主播的设备性能也无特殊要求;对于观众而言,录制视频的直播观看效果与实时直播也完全一致,透明无感;既能支持主播的非在线直播,降低对主播客户端设备性能及网络带宽的要求,又能提高观众的体验度,提升直播观看效果。
下面对步骤S101至步骤S102分别进行详细说明。
步骤S101:根据主播客户端设定的直播信息建立直播间并接收所述主播客户端上传的直播视频数据。
图2为本申请实施例实现直播推流方法的一具体实施例。
一实施例中,参见图2,根据主播客户端设定的直播信息建立直播间,包括:
S201:接收所述主播客户端发送的直播信息;其中,所述直播信息包括直播开始时间、直播结束时间、主播身份标识、录播标识及录播视频地址;
S202:根据所述直播开始时间及所述直播结束时间进行直播时间校验;
S203:根据所述主播身份标识进行主播身份认证;
S204:根据所述录播标识及录播视频地址建立所述直播间。
可以理解的是,在直播间创建的过程中,主播可以定义直播间的基本信息。主服务器应相应地接收上述基本信息,再根据上述基本信息建立直播间。
具体地,主播发起直播前,需先定义直播间的基本信息,可以但不限于包含直播开始时间startTime、直播结束时间endTime、是否录播(也称录播标识)recordLiveFlag、主播id uccid及录播视频地址pushRtmpUrl。对于以上基本信息,主播端通过服务接口上送后交由数据存储组件持久化。数据存储组件还需对主播的直播间信息进行校验,如根据直播开始与结束时间判断同一个主播是否有直播时间重合的情况,开播的用户id是否为真实主播id,例如下表所示。
直播开始时 | 直播结束时间 | 是否录播 | 主播id | 录播视频地址 |
2022-02-18 16:00 | 2022-02-18 17:00 | 是 | 10159 | NULL |
从上述描述可知,本申请提供的直播推流方法,能够根据主播客户端设定的直播信息建立直播间。
图3为本申请实施例实现直播推流方法的一具体实施例。
一实施例中,参见图3,接收所述主播客户端上传的直播视频数据,包括:
S301:将预设的分片配置参数发送至所述主播客户端,以使所述主播客户端根据所述分片配置参数对所述直播视频数据进行分片处理,得到直播视频数据分片;
S302:以并行方式接收各直播视频数据分片,并将接收到的直播视频数据分片的文件大小与所述主播客户端发送的该直播视频数据分片的文件大小进行比较;其中,若二者一致,则该直播视频数据分片的接收已完成;
S303:对已完成接收的直播视频数据分片进行完整性校验。
可以理解的是,参见图13,接收主播客户端上传的直播视频数据的过程对应于主播将预先录制完成的音视频流快速上传至后台文件服务器的过程。
主播为了提供更为高清的直播画面,待上传的音视频流文件可能达到几个GB。为了提升上传速率,可以采用分片上传的技术实现:主播客户端先从数据存储层获取分片大小配置,再根据分片大小对视频文件实现本地分片;当文件服务器接收到各分片文件后,将它们追加到同一存储目录的同一个文件中。其中,数据存储层中的分片大小配置可以由本申请的执行主体自行设置,并告知主播,即对应于将预设的分片配置参数发送至所述主播客户端的过程。
对主播客户端选择上传文件的大小于后台写入分片后计算的文件大小进行比对;如大小一致,可确定音视频流文件已上传完成,此时再对主播客户端上传的视频文件MD5值与后台写入文件的MD5值进行比对;如比对一致,可确定视频文件在传输过程中未丢失也未被篡改,从而证明文件的完整性。音视频流文件上传完成,则将视频文件移动到待转码目录,由视频转码组件接管处理。
从上述描述可知,本申请提供的直播推流方法,能够接收所述主播客户端上传的直播视频数据。
图4为本申请实施例实现直播推流方法的一具体实施例。
一实施例中,参见图4,所述直播管控指令为直播开始指令;所述根据所述主播客户端的直播管控指令对所述直播视频数据进行健康监控下的直播推流,包括:
S401:根据所述录播视频地址读取对应的直播视频数据;
S402:异步开启所述直播视频数据的推流进程,在健康监控下向内容分发网络推流该直播视频数据。
具体地,参见图5,所述在健康监控下向内容分发网络推流该直播视频数据,包括:监控是否返回异常关键字(S501);若是,获取各推流节点的资源使用状态及系统性能参数(S502);根据所述资源使用状态及系统性能参数对各推流节点进行健康分值计算(S503);根据各推流节点的健康分值调度所述直播视频数据至所述健康分值超过健康阈值的推流节点进行基于断点续传技术的直播推流(S504)。
可以理解的是,参见图15,推流及状态监控组件负责录播视频的后台推流、执行控制、向内容分发网络推流及向内容分发网络推流过程中的状态监控。
推流及状态监控组件中的推流组件将文件服务器的转码视频资源pushRtmpUrl作为输出源,内容分发网络作为输入源。推流及状态监控组件中的推流组件需要的参数配置由数据存储层提供。如参数需要调整,可通过数据存储层实现实时刷新。推流过程中会同步监控推流状态,推流结束后可以解析控制台的输出信息,如不包含异常错误关键字“error”,则表明录播视频流已结束推送,后台将自动结束直播间。如包含错误关键字“error”,则表明推流异常结束,需交由监控调度组件接管处理。
参见图16,监控调度组件负责推流节点的健康检查及系统性能容量监控,根据健康评分值实现自动调度。
推流及状态监控组件中的监控组件可以定时收集后台推流服务器(一般在推流时建立连接,推流结束前一直保持连接)的资源使用状态及系统性能参数,如CPU使用率、内存占用率、网络带宽、推流组件进程的运行状态等。对于不同的监控指标,推流及状态监控组件利用健康评分算法,进行汇总统计,计算获取每个推流服务器的后台推流进程(对应于推流节点)的健康分值。按健康分值大小将推流节点进行排序后,将健康分值及排序写入数据存储层,健康分值越大代表当前推流节点越繁忙。
本申请实施例支持健康监控指标及健康分值统计算法的自定义,可根据使用场景灵活实现。举例而言,设置的健康监控指标包括“CPU使用率”、“内存占用率”、“网络带宽占用比”,分值统计算法为∑指标值i×权重i。例如,CPU使用率权重设置0.4、内存占用率权重设置为0.4、网络带宽占用权重设置0.2。当CPU使用率为70%,内存占用率为80%,网络带宽占用总带宽为20%时计算推流节点的健康分值为:0.4×0.7+0.4×0.8+0.2×0.2=0.64。
针对每个推流节点,根据权重与指标占比值计算得到其健康分值。当健康分值超过预设的阈值(如0.7)时,即可判定当前推流节点为“繁忙节点”,暂时不再接收新的直播推流任务,转而从数据存储层获取所有推流服务器节点中“最为空闲”(健康分值最小)的节点负责其它直播的后台推流任务。
对于推流过程中因系统故障出现的“推流中断”的情况,由监控组件将中断的直播间及中断时间信息写入数据存储层,再由调度组件选取新的“最为空闲”节点从数据存储层获取发生异常中断的直播间信息。由新节点异步继续推流进程,从而实现中断视频文件的断点续传,确保后台直播推流的稳定性与连续性。
从上述描述可知,本申请提供的直播推流方法,能够根据所述主播客户端的直播管控指令对所述直播视频数据进行健康监控下的直播推流。
一实施例中,所述直播管控指令为直播暂停指令;所述根据所述主播客户端的直播管控指令对所述直播视频数据进行健康监控下的直播推流,包括:
异步暂停所述直播视频数据的推流进程,并记录推流暂停时直播视频数据的播放时长。
一实施例中,所述直播管控指令为直播恢复指令;所述根据所述主播客户端的直播管控指令对所述直播视频数据进行健康监控下的直播推流,包括:
根据所述暂停播放时长,异步开启所述直播视频数据的接续推流进程,继续向内容分发网络推流所述直播视频数据;其中,所述接续推流进程以推流暂停时直播视频数据的播放时长作为本次直播推流的起始时间。
一实施例中,所述直播管控指令为直播结束指令;所述根据所述主播客户端的直播管控指令对所述直播视频数据进行健康监控下的直播推流,包括:
异步结束所述直播视频数据的推流进程。
可以理解的是,直播管控组件用于主播在直播中控制直播间的各种状态。主播可控制的直播间状态包括:开始、结束、暂停及恢复。这些状态之间的转换可以通过本申请实施例执行主体的服务接口提供给主播,例如可通过APP或WEB工具实现。
①直播开始状态:先从数据存储层读取直播间的基本信息(包括录播视频地址),再由推流及状态监控组件异步开启推流进程,实现录播视频的读取,并向CDN分发推流。
②直播暂停状态:由推流及状态监控组件异步结束推流进程,并向数据存储层记录视频暂停时的播放时长。
③直播恢复状态:先从数据存储层获取直播间的暂停播放时长,再由推流及状态监控组件异步开启新的推流进程,新的推流进程将以暂停时的播放时长作为本次推流的起始时间。
④直播结束状态:由推流及状态监控组件异步结束推流进程。
从上述描述可知,本申请提供的直播推流方法,能够根据所述主播客户端的直播管控指令对所述直播视频数据进行健康监控下的直播推流。
一实施例中,在对已完成接收的直播视频数据分片进行完整性校验之后,还包括:
对已完成接收的直播视频数据分片进行编码格式转换及封装格式转换。
可以理解的是,参见图14,视频转码组件在录播视频成功上传至文件服务器后,用于实现将原始视频文件转换为具有统一编码格式及封装格式的视频转码文件。
主播上传的视频文件可能对应不同的封装格式(如mp4、flv等),不同的视频编码格式(如H264、MPEG-1等),不同的音频编码格式(如MP3、AAC等)。为了适配观看端的播放器,提高观众的直播观看体验,需对视频文件做统一的转码处理。由视频转码组件扫描待转码目录,如存在待转码的视频文件,则先从数据存储组件获取视频文件的业务锁。若业务锁获取成功,则表明该视频文件将由指定的转码服务器单独处理,其它服务器将不再对同一视频文件做转码处理。视频转码组件将启动转码服务线程,对视频内容进行音视频编码格式及封装格式的统一转换。转码完成后交由文件服务器生成视频转码文件的访问地址,并通过数据存储层更新直播间基本信息中的录播视频地址。
其中,转码过程可以按照分片逐一进行,也可以将各分片组成完整文件后再进行转码处理。
从上述描述可知,本申请提供的直播推流方法,能够对已完成接收的直播视频数据分片进行编码格式转换及封装格式转换。
综上所述,本发明充分利用后台服务器的硬件资源配置,实现录播视频文件的后台推流,通过对推流进程的定时监控,可判定推流节点的运行健康状态,统一的调度确保推流负载的均衡,实现推流过载自我保护以及异常自我修复。直播效果不再依赖主播客户端的设备性能及网络带宽,降低了主播的直播成本,提升了观看端的直播体验。
基于同一发明构思,本申请实施例还提供了一种直播推流装置,可以用于实现上述实施例所描述的方法,如下面的实施例所述。由于直播推流装置解决问题的原理与直播推流方法相似,因此直播推流装置的实施可以参见基于软件性能基准确定方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的系统较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
一实施例中,参见图6,为了能够降低对主播客户端设备性能及网络带宽的要求,从而为观众提供稳定的后台推流直播观看体验,本申请提供一种直播推流装置,包括:直播数据接收单元601及健康监控推流单元602。
直播数据接收单元601,用于根据主播客户端设定的直播信息建立直播间并接收所述主播客户端上传的直播视频数据;
健康监控推流单元602,用于根据所述主播客户端的直播管控指令对所述直播视频数据进行健康监控下的直播推流。
一实施例中,参见图7,所述直播数据接收单元601,包括:
直播信息接收模块701,用于接收所述主播客户端发送的直播信息;其中,所述直播信息包括直播开始时间、直播结束时间、主播身份标识、录播标识及录播视频地址;
时间校验模块702,用于根据所述直播开始时间及所述直播结束时间进行直播时间校验;
身份认证模块703,用于根据所述主播身份标识进行主播身份认证;
直播间建立模块704,用于根据所述录播标识及录播视频地址建立所述直播间。
一实施例中,参见图8,所述直播数据接收单元601,包括:
分片参数发送模块801,用于将预设的分片配置参数发送至所述主播客户端,以使所述主播客户端根据所述分片配置参数对所述直播视频数据进行分片处理,得到直播视频数据分片;
数据分片接收模块802,用于以并行方式接收各直播视频数据分片,并将接收到的直播视频数据分片的文件大小与所述主播客户端发送的该直播视频数据分片的文件大小进行比较;其中,若二者一致,则该直播视频数据分片的接收已完成;
完整校验模块803,用于对已完成接收的直播视频数据分片进行完整性校验。
一实施例中,参见图9,直播管控指令为直播开始;所述健康监控推流单元602,包括:视频数据读取模块901及推流开启模块902。
视频数据读取模块901,用于根据所述录播视频地址读取对应的直播视频数据;
推流开启模块902,用于异步开启所述直播视频数据的推流进程,在健康监控下向内容分发网络推流该直播视频数据。
一实施例中,所述直播管控指令为直播暂停;所述健康监控推流单元602,包括:
推流暂停模块,用于异步暂停所述直播视频数据的推流进程,并记录推流暂停时直播视频数据的播放时长。
进一步地,所述直播管控指令为直播恢复;所述健康监控推流单元,包括:
推流恢复模块,用于根据所述暂停播放时长,异步开启所述直播视频数据的接续推流进程,继续向内容分发网络推流所述直播视频数据;其中,所述接续推流进程以推流暂停时直播视频数据的播放时长作为本次直播推流的起始时间。
进一步地,所述直播管控指令为直播结束;所述健康监控推流单元,包括:
推流结束模块,用于异步结束所述直播视频数据的推流进程。
一实施例中,参见图10,所述健康监控推流单元502,包括:异常返回模块1001、状态参数获取模块1002、健康计算模块1003及推流调度模块1004。
异常返回模块1001,用于监控是否返回异常关键字;
状态参数获取模块1002,用于获取各推流节点的资源使用状态及系统性能参数;
健康计算模块1003,用于根据所述资源使用状态及系统性能参数对各推流节点进行健康分值计算;
推流调度模块1004,用于根据各推流节点的健康分值调度所述直播视频数据至所述健康分值超过健康阈值的推流节点进行基于断点续传技术的直播推流。
一实施例中,在对已完成接收的直播视频数据分片进行完整性校验之后,还包括:
对已完成接收的直播视频数据分片进行编码格式转换及封装格式转换。
从硬件层面来说,为了能够降低对主播客户端设备性能及网络带宽的要求,从而为观众提供稳定的后台推流直播观看体验,本申请提供一种用于实现所述直播推流方法中的全部或部分内容的电子设备的实施例,所述电子设备具体包含有如下内容:
处理器(Processor)、存储器(Memory)、通讯接口(Communications Interface)和总线;其中,所述处理器、存储器、通讯接口通过所述总线完成相互间的通讯;所述通讯接口用于实现所述直播推流装置与核心业务系统、用户终端以及相关数据库等相关设备之间的信息传输;该逻辑控制器可以是台式计算机、平板电脑及移动终端等,本实施例不限于此。在本实施例中,该逻辑控制器可以参照实施例中的直播推流方法的实施例,以及直播推流装置的实施例进行实施,其内容被合并于此,重复之处不再赘述。
可以理解的是,所述用户终端可以包括智能手机、平板电子设备、网络机顶盒、便携式计算机、台式电脑、个人数字助理(PDA)、车载设备、智能穿戴设备等。其中,所述智能穿戴设备可以包括智能眼镜、智能手表、智能手环等。
在实际应用中,直播推流方法的部分可以在如上述内容所述的电子设备侧执行,也可以所有的操作都在所述客户端设备中完成。具体可以根据所述客户端设备的处理能力,以及用户使用场景的限制等进行选择。本申请对此不作限定。若所有的操作都在所述客户端设备中完成,所述客户端设备还可以包括处理器。
上述的客户端设备可以具有通讯模块(即通讯单元),可以与远程的服务器进行通讯连接,实现与所述服务器的数据传输。所述服务器可以包括任务调度中心一侧的服务器,其他的实施场景中也可以包括中间平台的服务器,例如与任务调度中心服务器有通讯链接的第三方服务器平台的服务器。所述的服务器可以包括单台计算机设备,也可以包括多个服务器组成的服务器集群,或者分布式装置的服务器结构。
图11为本申请实施例的电子设备9600的系统构成的示意框图。如图11所示,该电子设备9600可以包括中央处理器9100和存储器9140;存储器9140耦合到中央处理器9100。值得注意的是,该图11是示例性的;还可以使用其他类型的结构,来补充或代替该结构,以实现电信功能或其他功能。
一实施例中,直播推流方法功能可以被集成到中央处理器9100中。其中,中央处理器9100可以被配置为进行如下控制:
S101:根据主播客户端设定的直播信息建立直播间并接收所述主播客户端上传的直播视频数据;
S102:根据所述主播客户端的直播管控指令对所述直播视频数据进行健康监控下的直播推流。
从上述描述可知,本申请提供的直播推流方法及装置,能够克服直播客户端推送录制视频流的技术缺陷,利用后台推送录制视频流的系统,使主播客户端无需参与音视频流的推送过程,仅通过操作页面按钮即可实现与观众的互动或直播过程管控;在此情况下,直播推流不消耗主播客户端的网络流量,对主播的设备性能也无特殊要求;对于观众而言,录制视频的直播观看效果与实时直播也完全一致,透明无感;既能支持主播的非在线直播,降低对主播客户端设备性能及网络带宽的要求,又能提高观众的体验度,提升直播观看效果。
在另一个实施方式中,直播推流装置可以与中央处理器9100分开配置,例如可以将数据复合传输装置直播推流装置配置为与中央处理器9100连接的芯片,通过中央处理器的控制来实现直播推流方法的功能。
如图11所示,该电子设备9600还可以包括:通讯模块9110、输入单元9120、音频处理器9130、显示器9160、电源9170。值得注意的是,电子设备9600也并不是必须要包括图11中所示的所有部件;此外,电子设备9600还可以包括图11中没有示出的部件,可以参考现有技术。
如图11所示,中央处理器9100有时也称为控制器或操作控件,可以包括微处理器或其他处理器装置和/或逻辑装置,该中央处理器9100接收输入并控制电子设备9600的各个部件的操作。
其中,存储器9140,例如可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其它合适装置中的一种或更多种。可储存上述与失败有关的信息,此外还可存储执行有关信息的程序。并且中央处理器9100可执行该存储器9140存储的该程序,以实现信息存储或处理等。
输入单元9120向中央处理器9100提供输入。该输入单元9120例如为按键或触摸输入装置。电源9170用于向电子设备9600提供电力。显示器9160用于进行图像和文字等显示对象的显示。该显示器例如可为LCD显示器,但并不限于此。
该存储器9140可以是固态存储器,例如,只读存储器(ROM)、随机存取存储器(RAM)、SIM卡等。还可以是这样的存储器,其即使在断电时也保存信息,可被选择性地擦除且设有更多数据,该存储器的示例有时被称为EPROM等。存储器9140还可以是某种其它类型的装置。存储器9140包括缓冲存储器9141(有时被称为缓冲器)。存储器9140可以包括应用/功能存储部9142,该应用/功能存储部9142用于存储应用程序和功能程序或用于通过中央处理器9100执行电子设备9600的操作的流程。
存储器9140还可以包括数据存储部9143,该数据存储部9143用于存储数据,例如联系人、数字数据、图片、声音和/或任何其他由电子设备使用的数据。存储器9140的驱动程序存储部9144可以包括电子设备的用于通讯功能和/或用于执行电子设备的其他功能(如消息传送应用、通讯录应用等)的各种驱动程序。
通讯模块9110即为经由天线9111发送和接收信号的发送机/接收机9110。通讯模块(发送机/接收机)9110耦合到中央处理器9100,以提供输入信号和接收输出信号,这可以和常规移动通讯终端的情况相同。
基于不同的通讯技术,在同一电子设备中,可以设置有多个通讯模块9110,如蜂窝网络模块、蓝牙模块和/或无线局域网模块等。通讯模块(发送机/接收机)9110还经由音频处理器9130耦合到扬声器9131和麦克风9132,以经由扬声器9131提供音频输出,并接收来自麦克风9132的音频输入,从而实现通常的电信功能。音频处理器9130可以包括任何合适的缓冲器、解码器、放大器等。另外,音频处理器9130还耦合到中央处理器9100,从而使得可以通过麦克风9132能够在本机上录音,且使得可以通过扬声器9131来播放本机上存储的声音。
本申请的实施例还提供能够实现上述实施例中的执行主体为服务器或客户端的直播推流方法中全部步骤的一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的执行主体为服务器或客户端的直播推流方法的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:
S101:根据主播客户端设定的直播信息建立直播间并接收所述主播客户端上传的直播视频数据;
S102:根据所述主播客户端的直播管控指令对所述直播视频数据进行健康监控下的直播推流。
从上述描述可知,本申请提供的直播推流方法及装置,能够克服直播客户端推送录制视频流的技术缺陷,利用后台推送录制视频流的系统,使主播客户端无需参与音视频流的推送过程,仅通过操作页面按钮即可实现与观众的互动或直播过程管控;在此情况下,直播推流不消耗主播客户端的网络流量,对主播的设备性能也无特殊要求;对于观众而言,录制视频的直播观看效果与实时直播也完全一致,透明无感;既能支持主播的非在线直播,降低对主播客户端设备性能及网络带宽的要求,又能提高观众的体验度,提升直播观看效果。
本领域内的技术人员应明白,本发明的实施例可提供为方法、装置、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(装置)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (13)
1.一种直播推流方法,其特征在于,包括:
根据主播客户端设定的直播信息建立直播间并接收所述主播客户端上传的直播视频数据;
根据所述主播客户端的直播管控指令对所述直播视频数据进行健康监控下的直播推流;其中,进行健康监控下的直播推流是指根据推流节点的健康状态进行直播推流。
2.根据权利要求1所述的直播推流方法,其特征在于,根据主播客户端设定的直播信息建立直播间,包括:
接收所述主播客户端发送的直播信息;其中,所述直播信息包括直播开始时间、直播结束时间、主播身份标识、录播标识及录播视频地址;
根据所述直播开始时间及所述直播结束时间进行直播时间校验;
根据所述主播身份标识进行主播身份认证;
根据所述录播标识及录播视频地址建立所述直播间。
3.根据权利要求1所述的直播推流方法,其特征在于,接收所述主播客户端上传的直播视频数据,包括:
将预设的分片配置参数发送至所述主播客户端,以使所述主播客户端根据所述分片配置参数对所述直播视频数据进行分片处理,得到直播视频数据分片;
以并行方式接收各直播视频数据分片,并将接收到的直播视频数据分片的文件大小与所述主播客户端发送的该直播视频数据分片的文件大小进行比较;其中,若二者一致,则该直播视频数据分片的接收已完成;
对已完成接收的直播视频数据分片进行完整性校验。
4.根据权利要求2所述的直播推流方法,其特征在于,所述直播管控指令为直播开始指令;所述根据所述主播客户端的直播管控指令对所述直播视频数据进行健康监控下的直播推流,包括:
根据所述录播视频地址读取对应的直播视频数据;
异步开启所述直播视频数据的推流进程,在健康监控下向内容分发网络推流该直播视频数据。
5.根据权利要求1所述的直播推流方法,其特征在于,所述直播管控指令为直播暂停指令;所述根据所述主播客户端的直播管控指令对所述直播视频数据进行健康监控下的直播推流,还包括:
异步暂停所述直播视频数据的推流进程,并记录推流暂停时直播视频数据的播放时长。
6.根据权利要求5所述的直播推流方法,其特征在于,所述直播管控指令为直播恢复指令;所述根据所述主播客户端的直播管控指令对所述直播视频数据进行健康监控下的直播推流,还包括:
根据暂停播放时长,异步开启所述直播视频数据的接续推流进程,继续向内容分发网络推流所述直播视频数据;其中,所述接续推流进程以推流暂停时直播视频数据的播放时长作为本次直播推流的起始时间。
7.根据权利要求1所述的直播推流方法,其特征在于,所述直播管控指令为直播结束指令;所述根据所述主播客户端的直播管控指令对所述直播视频数据进行健康监控下的直播推流,还包括:
异步结束所述直播视频数据的推流进程。
8.根据权利要求4所述的直播推流方法,其特征在于,所述在健康监控下向内容分发网络推流该直播视频数据,包括:
监控是否返回异常关键字;
若是,获取各推流节点的资源使用状态及系统性能参数;
根据所述资源使用状态及系统性能参数对各推流节点进行健康分值计算;
根据各推流节点的健康分值调度所述直播视频数据至所述健康分值超过健康阈值的推流节点进行基于断点续传技术的直播推流。
9.根据权利要求3所述的直播推流方法,其特征在于,在对已完成接收的直播视频数据分片进行完整性校验之后,还包括:
对已完成接收的直播视频数据分片进行编码格式转换及封装格式转换。
10.一种直播推流装置,其特征在于,包括:
直播数据接收单元,用于根据主播客户端设定的直播信息建立直播间并接收所述主播客户端上传的直播视频数据;
健康监控推流单元,用于根据所述主播客户端的直播管控指令对所述直播视频数据进行健康监控下的直播推流。
11.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至9任一项所述的直播推流方法的步骤。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至9任一项所述的直播推流方法的步骤。
13.一种计算机程序产品,包括计算机程序/指令,其特征在于,该计算机程序/指令被处理器执行时实现权利要求1至9任一项所述的直播推流方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310377088.8A CN116233504A (zh) | 2023-04-10 | 2023-04-10 | 一种直播推流方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310377088.8A CN116233504A (zh) | 2023-04-10 | 2023-04-10 | 一种直播推流方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116233504A true CN116233504A (zh) | 2023-06-06 |
Family
ID=86571549
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310377088.8A Pending CN116233504A (zh) | 2023-04-10 | 2023-04-10 | 一种直播推流方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116233504A (zh) |
-
2023
- 2023-04-10 CN CN202310377088.8A patent/CN116233504A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110012300B (zh) | 视频直播方法及装置 | |
US9240214B2 (en) | Multiplexed data sharing | |
US9699518B2 (en) | Information processing apparatus, information processing system, recording medium, and method for transmission and reception of moving image data | |
WO2016049987A1 (zh) | 一种数据处理方法、装置及相关服务器 | |
CN107018427B (zh) | 直播分享内容处理方法及装置 | |
CN106998485B (zh) | 视频直播方法及装置 | |
CN102710966A (zh) | 基于http协议的视频直播方法及系统 | |
CN102547478A (zh) | 基于cdn的流媒体触发式切片点播系统和方法 | |
US11540028B2 (en) | Information presenting method, terminal device, server and system | |
CN112752109B (zh) | 视频播放控制方法和系统 | |
CN101646076A (zh) | 一种无线网络视频传送方法 | |
CN102036058A (zh) | 视频监控系统中视频切换的方法、服务器、终端及系统 | |
US20140281011A1 (en) | System and method for replicating a media stream | |
CN103379379A (zh) | 流媒体缓冲播放方法和装置 | |
CN112019905A (zh) | 直播回放方法、计算机设备及可读存储介质 | |
CN111726657A (zh) | 直播视频的播放处理方法、装置及服务器 | |
CN101848367B (zh) | 基于文件的动态影像网络直播方法 | |
CN107333163A (zh) | 一种视频处理方法及装置、一种终端及存储介质 | |
CN103313095A (zh) | 视频传输方法、播放方法、终端和服务器 | |
CN106358050A (zh) | 基于安卓的音频视频流推送方法及装置、播放方法及装置 | |
CN103716681A (zh) | 一种码流切换方法及电子设备 | |
CN109376254A (zh) | 数据流的处理方法、装置、电子设备及可读存储介质 | |
US10721500B2 (en) | Systems and methods for live multimedia information collection, presentation, and standardization | |
CN112383794B (zh) | 直播方法、直播系统、服务器和计算机存储介质 | |
CN203387627U (zh) | 移动流媒体直播点播系统 |
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 |