CN110475122B - 用于直播视频流播放的方法及装置 - Google Patents
用于直播视频流播放的方法及装置 Download PDFInfo
- Publication number
- CN110475122B CN110475122B CN201810444511.0A CN201810444511A CN110475122B CN 110475122 B CN110475122 B CN 110475122B CN 201810444511 A CN201810444511 A CN 201810444511A CN 110475122 B CN110475122 B CN 110475122B
- Authority
- CN
- China
- Prior art keywords
- memory
- video stream
- stream data
- anchor
- video
- 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
- 238000000034 method Methods 0.000 title claims abstract description 126
- 230000015654 memory Effects 0.000 claims abstract description 495
- 238000009877 rendering Methods 0.000 claims abstract description 57
- 238000013500 data storage Methods 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 9
- 230000004044 response Effects 0.000 claims description 9
- 238000005457 optimization Methods 0.000 abstract description 11
- 238000010586 diagram Methods 0.000 description 28
- 230000008569 process Effects 0.000 description 12
- 238000012545 processing Methods 0.000 description 11
- 238000012216 screening Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 238000011161 development Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 238000012544 monitoring process Methods 0.000 description 6
- 238000005065 mining Methods 0.000 description 5
- 244000025254 Cannabis sativa Species 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000003993 interaction Effects 0.000 description 3
- 230000009191 jumping Effects 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000009412 basement excavation Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 238000010899 nucleation Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 241000023320 Luma <angiosperm> Species 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000000692 anti-sense effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 239000008280 blood Substances 0.000 description 1
- 210000004369 blood Anatomy 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000004880 explosion Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
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/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
-
- 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/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
- H04N21/234363—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by altering the spatial resolution, e.g. for clients with a lower screen resolution
-
- 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
-
- 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/258—Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
-
- 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/258—Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
- H04N21/25808—Management of client data
- H04N21/25816—Management of client data involving client authentication
-
- 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/266—Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
- H04N21/2662—Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
-
- 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/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/431—Generation of visual interfaces for content selection or interaction; Content or additional data rendering
- H04N21/4312—Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations
-
- 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/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/478—Supplemental services, e.g. displaying phone caller identification, shopping application
- H04N21/4788—Supplemental services, e.g. displaying phone caller identification, shopping application communicating with other users, e.g. chatting
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Computer Graphics (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本发明的实施例提供了一种用于直播视频流播放的方法及装置、计算机可读介质和电子设备。所述用于直播视频流播放的方法包括:获取主播列表信息,所述主播列表信息包括主播的视频地址;根据所述视频地址拉取所述主播的视频流数据;根据所述视频流数据的帧分辨率,分配内存池中的内存块用于存储所述视频流数据的帧视频流数据;将所述视频流数据渲染至视频渲染窗口;其中,相同大小的内存块位于所述内存池中的相同内存组。本发明实施例的技术方案能够通过内存优化,实现直播视频流的实时动态播放。
Description
技术领域
本申请涉及计算机技术领域,具体而言,涉及一种用于直播视频流播放的方法及装置、计算机可读介质和电子设备。
背景技术
随着移动上下行带宽提升及资费的下调,直播的普及率越来越高,视频直播被赋予了更多娱乐和社交的属性,很多主播摆脱以往工会的限制以个人的名义加入直播大军,同时越来越多的普通人也加入直播的浪潮。直播行业的迅猛发展造就了大量网红,但伴随其双刃发展不可避免的出现了各种网黑。网红和网黑就像天堂和地狱,一端给直播平台输送着血液和利润,另一端腐蚀着平台的健康和发展。
因此,需要对平台的主播状态进行监控。现有技术中,通过web页面间隔几秒去拉取一份主播当前直播内容的截图进行分析。
如图1所示,现有技术中的用于直播视频流播放的方法包括以下步骤:步骤S101,主播上传视频流至业务服务器;步骤S102,业务服务器将视频流转换成为截图;步骤S103,将截图存储至图片缓存服务器。步骤S104,创建定时器;步骤S105,若定时器超时(timeout,到达预设的间隔时间),则进入步骤S106;步骤S106,从图片缓存服务器拉取主播视频截图;步骤S107,将截图渲染至web页面;步骤S108,判断本次监控是否结束;若结束,则跳转到步骤S110;若未结束,则跳转到步骤S109;步骤S109,等待下一次循环,跳回到步骤S105;步骤S110,结束。
上述现有技术至少存在以下缺点:
第一,显示的是静态截图(图片),不能动态显示主播真实状态。
第二,图片依赖于后台服务器截图生成,而往往生成的图片是很长时间之前的数据,可能监管到的时候主播已离开直播,从而造成监管的滞后性。
因此,需要一种新的用于直播视频流播放的方法及装置、计算机可读介质和电子设备。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本发明的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本发明实施例的目的在于提供一种用于直播视频流播放的方法及装置、计算机可读介质和电子设备,进而至少在一定程度上克服相关技术中存在的无法显示主播的动态视频、且截取主播的直播视频图片的方式造成监管滞后的问题。
本发明的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本发明的实践而习得。
根据本发明实施例的一方面,提供了一种用于直播视频流播放的方法,包括:获取主播列表信息,所述主播列表信息包括主播的视频地址;根据所述视频地址拉取所述主播的视频流数据;根据所述视频流数据的帧分辨率,分配内存池中的内存块用于存储所述视频流数据的帧视频流数据;将所述视频流数据渲染至视频渲染窗口;其中,相同大小的内存块位于所述内存池中的相同内存组。
在本发明的一些实施例中,基于前述方案,所述主播包括多个主播,所述视频地址包括所述多个主播的多路视频地址,所述视频流数据包括根据所述多路视频地址拉取的所述多个主播的多路视频流数据,所述视频渲染窗口包括分别用于渲染所述多路视频流数据的多路视频渲染窗口;所述方法还包括:将渲染完成的所述多路视频流数据同时显示于同一界面中。
在本发明的一些实施例中,基于前述方案,所述内存组包括第一内存组,所述第一内存组中包括第一内存块;所述方法还包括:设置第一内存队列和第二内存队列;将所述第一内存组中当前未被占用的第一内存块的内存地址存储于所述第一内存队列中;将所述第一内存组中当前被占用的第一内存块的内存地址存储于所述第二内存队列中。
在本发明的一些实施例中,基于前述方案,所述主播包括第一主播,所述视频地址包括所述第一主播的第一视频地址,所述视频流数据包括根据所述第一视频地址拉取的所述第一主播的第一视频流数据,所述第一视频流数据具有第一帧分辨率;所述第一内存队列中包括第一内存地址;所述根据所述视频流数据的帧分辨率,分配内存池中的内存块用于存储所述视频流数据的帧视频流数据,包括:根据所述第一帧分辨率选择所述第一内存组;从所述第一内存队列获取所述第一内存地址;将所述第一内存地址移至所述第二内存队列;将所述第一视频流数据的帧视频流数据存储至所述第一内存地址对应的第一内存块;若所述第一视频流数据的帧视频流数据使用完所述对应的第一内存块,将所述第一内存地址移至所述第一内存队列。
在本发明的一些实施例中,基于前述方案,还包括:若满足预设条件,则根据所述第一帧分辨率申请获取内存资源;将所述内存资源划分成多个与所述第一帧分辨率大小相应的第一内存块;将所述多个与所述第一帧分辨率大小相应的第一内存块存入所述第一内存组;将所述多个与所述第一帧分辨率大小相应的第一内存块的内存地址存入所述第一内存队列。
在本发明的一些实施例中,基于前述方案,所述预设条件为所述第一内存队列中的内存地址数量小于阈值。
在本发明的一些实施例中,基于前述方案,所述第一内存队列和所述第二内存队列均为FIFO队列。
在本发明的一些实施例中,基于前述方案,所述主播还包括第二主播,所述视频地址还包括所述第二主播的第二视频地址,所述视频流数据还包括根据所述第二视频地址拉取的所述第二主播的第二视频流数据,所述第二视频流数据具有第二帧分辨率;所述根据所述视频流数据的帧分辨率,分配内存池中的内存块用于存储所述视频流数据的帧视频流数据还包括:若所述第一帧分辨率不同于所述第二帧分辨率,则分配所述内存池中不同内存组中的内存块分别用于存储所述第一视频流数据和所述第二视频流数据的帧视频流数据。
在本发明的一些实施例中,基于前述方案,还包括:创建带索引的所述内存池,各索引分别对应各内存组。
在本发明的一些实施例中,基于前述方案,还包括:创建线程池以用于执行获取视频地址任务、拉取视频流数据任务、存储视频流数据任务、解码视频流数据任务、渲染视频流数据任务中的任意一种或者多种。
在本发明的一些实施例中,基于前述方案,还包括:响应于针对所述多个主播中的任一主播的选择操作,获取被选择的主播的音频地址;根据所述音频地址拉取所述被选择的主播的一路音频流数据;将所述音频流数据渲染至音频设备,播放所述被选择的主播的声音。
在本发明的一些实施例中,基于前述方案,所述主播列表信息还包括所述主播的主播信息;所述方法还包括:响应于针对所述主播的上传操作,将所述主播信息发送至服务器以用于对所述主播进行标记。
根据本发明实施例的一方面,提供了一种用于直播视频流播放的装置,包括:主播列表信息获取模块,配置为获取主播列表信息,所述主播列表信息包括主播的视频地址;视频流数据获取模块,配置为根据所述视频地址拉取所述主播的视频流数据;视频流数据存储模块,配置为根据所述视频流数据的帧分辨率,分配内存池中的内存块用于存储所述视频流数据的帧视频流数据;视频流数据渲染模块,配置为将所述视频流数据渲染至视频渲染窗口;其中,相同大小的内存块位于所述内存池中的相同内存组。
根据本发明实施例的一方面,提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现如上述实施例中所述的用于直播视频流播放的方法。
根据本发明实施例的一方面,提供了一种电子设备,包括:一个或多个处理器;存储装置,配置为存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上述实施例中所述的用于直播视频流播放的方法。
在本发明的一些实施例所提供的技术方案中,通过获取包括主播的视频地址的主播列表信息,并根据所述视频地址拉取所述主播的视频流数据,根据所述视频流数据的帧分辨率,分配内存池中的内存块用于存储所述视频流数据的帧视频流数据,将所述视频流数据渲染至视频渲染窗口;其中,相同大小的内存块位于所述内存池中的相同内存组,即本方案通过内存优化的方法,可以提高内存利用效率,实现直播视频的动态视频播放,可以实时的监控到主播的真实状态。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1示出了现有技术中的一种用于直播视频流播放的方法的流程图;
图2示出了可以应用本发明实施例的用于直播视频流播放的方法或用于直播视频流播放的装置的示例性***架构的示意图;
图3示出了适于用来实现本发明实施例的电子设备的计算机***的结构示意图;
图4示意性示出了根据本发明的一实施例的用于直播视频流播放的方法的流程图;
图5示出了图4中所示的步骤S410在一个实施例中的处理过程示意图;
图6示意性示出了根据本发明的另一实施例的用于直播视频流播放的方法的流程图;
图7示出了图4中所示的步骤S430在一个实施例中的处理过程示意图;
图8示意性示出了根据本发明的又一实施例的用于直播视频流播放的方法的流程图;
图9示意性示出了根据本发明的再一实施例的用于直播视频流播放的方法的流程图;
图10示意性示出了根据本发明的一实施例的内存池的示意图;
图11示意性示出了根据本发明的一实施例的第一内存队列和第二内存队列的示意图;
图12示意性示出了根据本发明的再一实施例的用于直播视频流播放的方法的流程图;
图13示意性示出了根据本发明的再一实施例的用于直播视频流播放的方法的流程图;
图14示意性示出了根据本发明的再一实施例的用于直播视频流播放的方法的流程图;
图15示出了根据本发明的一实施例的用于直播视频流播放的方法或用于直播视频流播放的装置的应用场景示意图;
图16示出了根据本发明的另一实施例的用于直播视频流播放的方法或用于直播视频流播放的装置的应用场景示意图;
图17示出了根据本发明的再一实施例的用于直播视频流播放的方法或用于直播视频流播放的装置的应用场景示意图;
图18示出了根据本发明的再一实施例的用于直播视频流播放的方法或用于直播视频流播放的装置的应用场景示意图;
图19示意性示出了根据本发明的一实施例的用于直播视频流播放的装置的框图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本发明将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本发明的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本发明的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本发明的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
首先对本发明实施例中提及的术语进行定义或者示例说明。
直播是指广播电视节目的后期合成、播出同时进行的播出方式,例如,Now直播。
主播是指直播内容的提供者。
观众是指观看直播者。
网红是指网络名人,亦称网络红人,简称为网红,是指因为偶然的网络爆红而短暂成为名人的人。本发明实施例中特指直播过程中提供优质网络内容的主播。
网黑是网红的反义词,指直播过程中提供劣质、违规网络内容的主播。
草根在本发明实施例中特指那些自身具有优秀的才华与技能,但是还未被大众所发现的主播。
图2示出了可以应用本发明实施例的用于直播视频流播放的方法或用于直播视频流播放的装置的示例性***架构200的示意图。
如图2所示,***架构200可以包括终端设备201、202、203中的一种或多种,网络204和服务器205。网络204用以在终端设备201、202、203和服务器205之间提供通信链路的介质。网络204可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
应所述理解,图2中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。比如服务器205可以是多个服务器组成的服务器集群等。
用户可以使用终端设备201、202、203通过网络204与服务器205交互,以接收或发送消息等。终端设备201、202、203可以是具有显示屏的各种电子设备,包括但不限于智能手机、平板电脑、便携式计算机和台式计算机、智能聊天机器人等等。
服务器205可以是提供各种服务的服务器。例如用户利用终端设备203(也可以是终端设备201或202)向服务器205发送获取主播列表信息请求。服务器205可以基于所述获取主播列表信息请求拉取主播列表,并将主播列表信息反馈给终端设备203,进而用户可以基于终端设备203上显示主播列表。用户根据终端设备203上显示的主播列表,利用终端设备203(也可以是终端设备201或202)向服务器205发送获取主播的视频地址请求。服务器205可以基于所述获取主播的视频地址请求给终端设备203返回所述主播的视频地址。终端设备203基于接收到的所述主播的视频地址拉取所述主播的视频流数据,从而获取到所述主播的视频流数据的帧分辨率,根据所述视频流数据的帧分辨率,分配内存池中的内存块用于存储所述视频流数据的帧视频流数据,并将所述视频流数据渲染至视频渲染窗口,显示于终端设备203(也可以是终端设备201或202)的显示屏幕。
图3示出了适于用来实现本发明实施例的电子设备的计算机***的结构示意图。
需要说明的是,图3示出的电子设备的计算机***300仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图3所示,计算机***300包括中央处理单元(CPU)301,其可以根据存储在只读存储器(ROM)302中的程序或者从存储部分308加载到随机访问存储器(RAM)303中的程序而执行各种适当的动作和处理。在RAM 303中,还存储有***操作所需的各种程序和数据。CPU301、ROM 302以及RAM 303通过总线304彼此相连。输入/输出(I/O)接口305也连接至总线304。
以下部件连接至I/O接口305:包括键盘、鼠标等的输入部分306;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分307;包括硬盘等的存储部分308;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分309。通信部分309经由诸如因特网的网络执行通信处理。驱动器310也根据需要连接至I/O接口305。可拆卸介质311,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器310上,以便于从其上读出的计算机程序根据需要被安装入存储部分308。
特别地,根据本发明的实施例,下文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,所述计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,所述计算机程序可以通过通信部分309从网络上被下载和安装,和/或从可拆卸介质311被安装。在所述计算机程序被中央处理单元(CPU)301执行时,执行本申请的方法和/或装置中限定的各种功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,所述程序可以被指令执行***、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,所述计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的方法、装置和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块和/或单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的模块和/或单元也可以设置在处理器中。其中,这些模块和/或单元的名称在某种情况下并不构成对所述模块和/或单元本身的限定。
作为另一方面,本申请还提供了一种计算机可读介质,所述计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入所述电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个所述电子设备执行时,使得所述电子设备实现如下述实施例中所述的方法。例如,所述的电子设备可以实现如图4至图14任一实施例所示的各个步骤。
图4示意性示出了根据本发明的一实施例的用于直播视频流播放的方法的流程图。
如图4所示,本实施方式提供的用于直播视频流播放的方法可以包括以下步骤。
在步骤S410中,获取主播列表信息,所述主播列表信息包括主播的视频地址。
本发明实施例中,所述主播列表信息可以视应用场景而定,受限于客户端显示屏幕的大小,同一显示屏幕通常是无法同时将所有主播的直播视频流一起显示的,这里可以设置一个自动更换逻辑,例如可以根据直播平台的监管人员设定的时间(例如5秒,本发明对此不作限定),自动刷新下一显示屏幕要显示的主播的主播列表信息。
本发明实施例中,所述主播列表信息可以包括一个或者多个主播的主播信息,每个主播的主播信息可以包括主播的用户标识(identification,ID)和上传的直播视频流数据的视频地址,还可以包括其他信息,例如直播视频流数据上传的时间、地点、环境等。在其他实施例中,其中任意一个或者几个或者全部主播的主播信息还可以主播上传的直播音频流数据的音频地址。下面以所述一个或者多个主播中的任意一个称之为第一主播为例进行举例说明。
在步骤S420中,根据所述视频地址拉取所述主播的视频流数据。
本发明实施例中,可以将所述主播列表信息存储于业务服务器,而将主播上传的直播视频流数据存储于音视频服务器。当用户通过客户端向所述业务服务器发起请求时,所述业务服务器会向所述客户端返回所述主播的所述视频地址,客户端根据接收到的所述视频地址,登录所述音视频服务器,从所述音视频服务器拉取所述主播的视频流数据。但本公开并不限定于此,例如也可以将所述主播列表信息和主播上传的直播视频流数据存储于同一服务器。
在步骤S430中,根据所述视频流数据的帧分辨率,分配内存池中的内存块用于存储所述视频流数据的帧视频流数据。
本发明实施例中,拉取到所述主播的视频流数据后,可以获得所述视频流数据的帧分辨率,这里假设所述视频流数据包括一帧或者多帧视频流数据,其中,对于同一个主播上传的同一直播视频流而言,所述一帧或者多帧视频流数据的帧分辨率大小是相同的,例如这里可以将第一主播的第一视频流数据具有的帧分辨率称之为第一帧分辨率,此时,可以根据所述第一帧分辨率大小,分配内存池中的内存块用于存储所述第一视频流数据的帧视频流数据。
其中,相同大小的内存块位于所述内存池中的相同内存组。
本发明实施例中,假设根据所述第一主播的第一视频流数据的第一帧分辨率选择第一内存组用于存储所述第一视频流数据的帧视频流数据,所述第一内存组中包括第一内存块,各第一内存块的大小相同,且所述第一内存组中的各第一内存块的大小与所述第一帧分辨率的大小相关。
在步骤S440中,将所述视频流数据渲染至视频渲染窗口。
在示例性实施例中,所述主播可以包括多个主播,所述视频地址可以包括所述多个主播的多路视频地址,所述视频流数据可以包括根据所述多路视频地址拉取的所述多个主播的多路视频流数据,所述视频渲染窗口可以包括分别用于渲染所述多路视频流数据的多路视频渲染窗口;所述方法还可以包括:将渲染完成的所述多路视频流数据同时显示于同一界面中。
本公开实施方式提供的用于直播视频流播放的方法,通过获取包括主播的视频地址的主播列表信息,并根据所述视频地址拉取所述主播的视频流数据,根据所述视频流数据的帧分辨率,分配内存池中的内存块用于存储所述视频流数据的帧视频流数据,将所述视频流数据渲染至视频渲染窗口;其中,相同大小的内存块位于所述内存池中的相同内存组,即本方案通过内存优化的方法,可以提高内存利用效率,将实时的视频流直接显示在客户端应用程序(application,APP,例如直播平台的监管APP)界面上,不需要后台服务器将直播视频流预处理为图片,实现直播视频的动态播放,增加了监管的实时性,可以实时的监控到主播的真实状态。
图5示出了图4中所示的步骤S410在一个实施例中的处理过程示意图。步骤S410主要负责从后台业务服务器拉取主播列表信息,通过与数据后台交互,拿到所需要的主播列表信息,以备后续使用。
如图5所示,上述实施例中的步骤S410可以进一步包括以下步骤。
在步骤S411中,进行模块初始化。
在步骤S412中,通过客户端登录业务服务器后台。
在步骤S413中,所述客户端向所述业务服务器后台请求主播列表信息。
在步骤S414中,所述业务服务器向所述客户端返回所述主播列表信息。
在步骤S415中,所述客户端获取所述业务服务器返回的所述主播列表信息。
本发明实施例中,所述主播列表信息中存储一个或者多个主播的主播信息,且会指定相应主播的视频地址,甚至还可以指定相应主播的音频地址。
本发明实施例中,当所述客户端登录所述业务服务器后,所述客户端向所述业务服务器发送获取视频地址的请求,当所述业务服务器验证所述客户端的有效性后,所述业务服务器向所述客户端返回所述主播的视频地址。所述客户端从所述业务服务器后台获取到所述主播的所述视频地址,所述客户端根据所述视频地址访问音视频服务器,客户端登录所述音视频服务器后从所述音视频服务器拉取视频流数据,以备后续渲染使用。
其中,业务服务器验证所述客户端的有效性,是所述客户端与所述业务服务器之间有一个权限约定,就像钥匙一样,所述客户端把正确的钥匙给到所述业务服务器,才能正常与所述业务服务器通信。
本发明实施例中,客户端从音视频服务器拉取视频流数据,采用的拉取方式可以是根据直播列表从上到下,一次拉取一显示屏幕所需要显示的主播个数的视频流数据(例如监管人员预先设定的监管路数);也可以是用户例如直播平台的监管人员或者运维人员自主选择需要拉取的某个主播或者某些主播的视频流数据。本发明对此不作限定,可以根据具体应用场景而定。
图6示意性示出了根据本发明的另一实施例的用于直播视频流播放的方法的流程图。
如图6所示,本实施方式提供的用于直播视频流播放的方法与上述实施方式的不同之处在于,所述内存组可以包括第一内存组,所述第一内存组中可以包括第一内存块。所述方法还可以包括以下步骤。
在步骤S610中,设置第一内存队列和第二内存队列。
在步骤S620中,将所述第一内存组中当前未被占用的第一内存块的内存地址存储于所述第一内存队列中。
在步骤S630中,将所述第一内存组中当前被占用的第一内存块的内存地址存储于所述第二内存队列中。
图7示出了图4中所示的步骤S430在一个实施例中的处理过程示意图。
本发明实施例中,所述主播可以包括第一主播,所述视频地址可以包括所述第一主播的第一视频地址,所述视频流数据可以包括根据所述第一视频地址拉取的所述第一主播的第一视频流数据,所述第一视频流数据具有第一帧分辨率;所述第一内存队列中可以包括第一内存地址。
如图7所示,上述步骤S430可以进一步包括以下步骤。
在步骤S431中,根据所述第一帧分辨率选择所述第一内存组。
在步骤S432中,从所述第一内存队列获取第一内存地址。
在步骤S433中,将所述第一内存地址移至所述第二内存队列。
在步骤S434中,将所述第一视频流数据的帧视频流数据存储至所述第一内存地址对应的第一内存块。
在步骤S435中,若所述第一视频流数据的帧视频流数据使用完所述对应的第一内存块,将所述第一内存地址移至所述第一内存队列。
在示例性实施例中,所述第一内存队列和所述第二内存队列可以均为FIFO(FirstIn First Out,先进先出)队列。
图8示意性示出了根据本发明的又一实施例的用于直播视频流播放的方法的流程图。
如图8所示,本实施方式提供的用于直播视频流播放的方法与上述实施方式的不同之处在于,所述方法还可以包括以下步骤。
在步骤S810中,若满足预设条件,则根据所述第一帧分辨率申请获取内存资源。
在示例性实施例中,所述预设条件为所述第一内存队列中的内存地址数量小于阈值。
例如,所述阈值可以为0,即当所述第一内存队列中的内存地址数量为空时,说明所述第一内存组中所有的第一内存块当前均已被占用,此时需要申请获取内存资源。
需要说明的是,上述阈值可以根据具体需求进行设置为其他数值,本发明对此不作限定。
在步骤S820中,将所述内存资源划分成多个与所述第一帧分辨率大小相应的第一内存块。
在步骤S830中,将所述多个与所述第一帧分辨率大小相应的第一内存块存入所述第一内存组。
在步骤S840中,将所述多个与所述第一帧分辨率大小相应的第一内存块的内存地址存入所述第一内存队列。
图9示出了图4中所示的步骤S430在另一个实施例中的处理过程示意图。
本发明实施例中,所述主播还包括第二主播,所述视频地址还包括所述第二主播的第二视频地址,所述视频流数据还包括根据所述第二视频地址拉取的所述第二主播的第二视频流数据,所述第二视频流数据具有第二帧分辨率。
如图9所示,上述步骤S430可以进一步包括以下步骤。
在步骤S436中,若所述第一帧分辨率不同于所述第二帧分辨率,则分配所述内存池中不同内存组中的内存块分别用于存储所述第一视频流数据和所述第二视频流数据的帧视频流数据。
例如,若根据所述第一帧分辨率给所述第一主播的第一视频流数据的帧视频流数据分配所述第一内存组中的第一内存块,根据所述第二帧分辨率给所述第二主播的第二视频流数据的帧视频流数据分配第二内存组中的第二内存块,则所述第二内存块的大小不等于所述第一内存块的大小。
但本公开并不限定于此,在其他实施例中,一次拉取的多路视频流数据中,也可能存在帧分辨率相同的两路或者以上的视频流数据的帧分辨率相同,此时可以给该帧分辨率相同的两路或者以上的视频流数据分配所述内存池中的同一内存组。
在示例性实施例中,所述方法还可以包括:将所述第一视频流数据和所述第二视频流数据同时显示于同一界面。
需要说明的是,这里仅用第一和第二视频流数据用于举例说明,实际上,本发明实施方式提供的方法可以实现将多路(例如上百路)视频流数据同时显示于同一界面。
下面通过图10和图11对上述图4-9所示的方法进行举例说明。
图10示意性示出了根据本发明的一实施例的内存池的示意图。
在示例性实施例中,所述方法还可以包括:创建带索引的所述内存池,各索引分别对应各内存组。
其中,各内存组用于存放大小相同的内存块。
初始化时,预先创建带索引的内存池,这里使用类hash表的内存池,每一个hash表的元素所对应的便是所述索引大小所对应的定长内存块组成的内存组。
如图10所示,例如索引(index)为0的内存组可以用于存放字节数为1的内存块;索引为1的内存组可以用于存放字节数为2的内存块;索引为2的内存组可以用于存放字节数为3的内存块;……,索引为n-1的内存组可以用于存放字节数为n的内存块。其中,n为大于等于1的正整数。
需要说明的是,初始化时,内存池中的各索引对应的内存组中为空,即均没有任何的内存块,在后续接收到视频流数据或音频流数据或其他数据时,才会根据接收到的视频流数据的帧分辨率大小或音频流数据大小或其他数据大小申请的内存资源,并将申请获得的内存资源划分成相应大小的内存块,存放于相应的内存组中。
当需要分配内存时,例如接收到大块的视频流数据或音频流数据时,或者接收到小块的其他数据时,先根据接收到的视频流数据的帧分辨率大小或音频流数据或其他数据的大小查询内存池,是否有所述大小的当前未被占用的内存块。
若所述内存池中有所述大小的当前未被占用的内存块,则从第一内存队列例如第一FIFO内存队列中拿出相应内存地址的内存块直接使用。
若所述内存池中没有所述大小的当前未被占用的内存块,则申请与所述视频流数据的帧分辨率大小或音频流数据或其他数据的大小相应的内存资源,并根据所述视频流数据的帧分辨率大小或音频流数据或其他数据的大小重新分割申请获得的所述内存资源,并将分割所述内存资源获得的内存块的内存地址存放于第一内存队列即未使用内存FIFO中,然后拿取所述第一内存队列中的内存地址对应的内存块用于存储所述视频流数据的帧视频流数据或者音频流数据或者其他数据,并将被占用的内存块的内存地址从所述第一内存队列移至第二内存队列。
若使用完上述被占用的内存块,即不需要再占用所述内存块,则将所述内存块对应的内存地址从所述第二内存队列放回第一内存队列即未使用内存FIFO中。
当程序结束时,释放这些内存。
本发明实施例通过使用无锁队列,提高了内存使用效率。因为采用了FIFO内存队列用于存放内存地址,当一帧视频流数据被一个用户取走之后,存储所述帧视频流数据的内存块对应的内存地址从第一FIFO内存队列被移至第二FIFO内存队列,从而使得其他用户无法再取到所述帧视频流数据,就不会存在数据混乱的问题,例如用户A正在使用,用户B同时写入导致的数据混乱。
图11示意性示出了根据本发明的一实施例的第一内存队列和第二内存队列的示意图。
如图11所示,假设索引为499的内存组中当前有7个字节数为500的内存块。其中,有4个内存块当前是未被占用的,各自的内存地址分别存放于第一FIFO内存队列(未使用内存FIFO)中;有3个内存块当前是已被占用的,各自的内存地址分别存放于第二FIFO内存队列(处理后内存FIFO)中。
需要说明的是,这里的处理后不是使用完的意思,例如一帧视频流数据被解码处理后,可能还会等待后续渲染使用,此时,将所述帧视频流数据占用的内存地址存放于处理后内存FIFO,即表示所述相应的内存块还处于被占用状态。
本发明实施例中,可以针对大块且每帧视频流数据大小固定(例如假设为500字节,仅用于举例说明)的第一视频流数据内存进行优化:若接收到第一视频流数据时,第一内存队列为空,此时可以统一申请一大块内存,例如500字节*10大小的内存资源,使用两个FIFO内存队列,第一FIFO内存队列用来存储未使用的内存地址,第二个FIFO内存队列用来存储数据处理后的内存地址,这样形成一个循环,未使用内存地址—>处理后数据内存地址—>未使用内存地址,达到一个闭环,而这个过程中对内存都是重复使用,不需要每一次从网络上获取到视频流数据就分配内存、使用、然后释放。
具体流程可以包括如下步骤:
第一步,获取到第一视频流数据后,根据所述第一视频流数据的第一帧分辨率大小,统一申请一块大的内存资源。
本发明实施例中,所述第一帧分辨率大小是指所述第一主播上传原始拍摄的直播视频流中的任意一帧视频图像的宽和高,例如,可以通过以下公式计算:所述第一视频流数据中的任意一帧视频流数据所需使用的内存块的大小=所述第一主播原始拍摄的直播视频流中的任意一帧视频图像的宽*高*3/2。
这里假设根据上述计算公式,第一视频流数据中的一帧视频流数据所需的内存块大小为500字节,则对应内存池中索引值为499的内存组。则假设统一申请一块大的内存资源大小为500字节*10(仅用于举例说明)。
第二步,将第一步申请获得的所述大的内存资源分成多个小块第一内存块,然后将所述多个小块第一内存块的内存地址存于未使用内存FIFO中。
本发明实施例中,所述多个小块第一内存块中的每一第一内存块的大小均相同,且均与上述计算获得的第一视频流数据中的一帧视频流数据所需的内存块大小相等,例如每一个第一内存块的大小均为500字节,这样,划分后可以获得10块大小为500字节的第一内存块。并将所述10块大小为500字节的第一内存块的内存地址存放于第一FIFO内存队列中。
通过上述申请内存资源并将申请获得内存资源进行划分的方式,可以增加动态申请内存的效率,例如假设当前500字节大小的第一内存块均被占用,通过上述方式一次申请500字节*10的内存资源,再将所述500字节*10内存资源划分为10块500字节的第一内存块,这样相比于10次申请内存,每次申请500字节的效率要高。
第三步,当所述第一视频流数据的一帧视频流数据来的时候,从未使用内存FIFO中拿出一块未使用的内存地址例如第一内存地址移至处理后内存FIFO,第一内存地址当前被移至处理后内存FIFO对应的第一内存块用来存储当前接收到的所述帧视频流数据,并进行处理显示。
分配方式例如可以参考图10。
第四步,使用完这块第一内存地址对应的第一内存块后,将所述第一内存地址存于未使用内存FIFO中,这里的使用完是指所述第一内存地址对应的第一内存块中的帧视频流数据不再占用所述对应的第一内存块。
第五步,当程序结束时,释放这些内存。
类似的,若客户端APP同时显示多路直播画面,则在接收到第一主播的第一视频流数据的同时,还可以接收到第二主播的第二视频流数据,其中,所述第二主播的第二视频流数据的第二帧分辨率可能与所述第一主播的第一视频流数据的第一帧分辨率相同,也可能不同。
若所述第二帧分辨率大小与所述第一帧分辨率大小相同,则处理方式与上述第一视频流数据相同,例如同样是从内存池中索引为499的内存组中查找当前未被占用的字节数为500的内存块,即从内存池中索引为499的内存组对应的第一FIFO内存队列中查找相应的内存地址,例如若上述10块500字节的第一内存块,第一主播的第一视频流数据当前只占用了5块,则第二主播的第二视频流数据可以直接分配内存池中剩余的其他5块500字节的内存块,这样,当接收到第二主播的第二视频流数据时,不再需要去申请内存资源,提高了效率。
若所述第二帧分辨率大小与所述第一帧分辨率大小不同,例如假设根据所述第二帧分辨率大小计算获得所述第二视频流数据中的任意一帧视频流数据所需使用的内存块的大小为600字节,则从内存池中索引为599的内存组中查找当前未被占用的字节数为600的内存块,即从内存池中索引为599的内存组对应的第一FIFO内存队列中查找相应的内存地址。
需要说明的是,虽然上述实施例中仅以视频流数据为例进行说明,但上述内存优化方法同样可以适用于主播的音频流数据和其他数据,即视频流数据、音频流数据和其他数据对内存的使用方式都是一样的,只是音频流数据和其他数据大小可能与视频流数据的帧分辨率大小不同。
例如,音频流数据大小是根据实际接收的音频流数据大小来决定的,假设当前要播放第一主播的声音,则可以根据实际接收到的第一主播的音频数据的大小来分配相应大小的内存块。
本实施方式提供的用于直播视频流播放的方法,通过内存优化,一方面,可以减少应用层的APP与***内核交互的次数,提高交互效率高,降低耗时;另一方面,还可以减少***碎片,同时提升内存使用率。
在示例性实施例中,所述方法还可以包括:创建线程池以用于执行获取视频地址任务、拉取视频流数据任务、存储视频流数据任务、解码视频流数据任务、渲染视频流数据任务等中的任意一种或者多种。
本发明实施例中,可以创建一个线程池,所述线程池中包括多个线程,当一个任务来临时,从所述线程池中选择任意一个当前可用的线程用于执行所述任务,当所述任务执行完成后,将所述线程再放回所述线程池中,以等待下一个任务来临。这样,可以极大的提高线程池中的线程利用率。
本实施方式提供的用于直播视频流播放的方法,还可以通过线程池优化来实现性能优化。APP为了达到上百路直播画面同时显示的目的,使用了多线程模型,当线程过多的情况下,不停的创建线程、运行线程、结束线程会消耗大量的***资源,使应用卡顿,因此本发明实施例中例如可以标准的线程池技术ThreadPool,从而减少***在线程方面的开销。
图12示意性示出了根据本发明的再一实施例的用于直播视频流播放的方法的流程图。
如图12所示,本实施方式提供的用于直播视频流播放的方法与上述实施方式的不同之处在于,所述方法还可以包括以下步骤。
在步骤S1210中,创建多路视频渲染窗口。
本发明实施例中,所述多路例如可以是上百路,但本发明并不限定于此。具体的路数是可以根据实际需求选择和设定的。
在步骤S1220中,分别根据所述主播列表信息拉取多路视频流数据。
本发明实施例中,根据视频地址可以拉取到相应主播的视频流数据,把拉取到的视频流数据进行解码,例如解码为YUV(Y表示Luminance或Luma,明亮度;U和V表示Chrominance或Chroma,色度)或者RGB(Red,Green,Blue)数据,然后就可以进行渲染了。
在步骤S1230中,将所述多路视频流数据逐一渲染至所述多路视频渲染窗口。
逐一渲染完所述多路视频流数据后,则退出渲染流程。
在步骤S1240中,若所述多路视频流数据均渲染完成,则在同一界面同时显示所述多路视频流数据。
本实施方式提供的用于直播视频流播放的方法,通过开发独立的APP,并通过内存优化和/或线程池优化,可以做到多路(上百路)直播视频流同时播放的高并发技术效果,可以完全由C++开发,效率会高很多而现有技术采用web端定时拉取直播视频截图的方式,限制于浏览器,往往只能监视到很少的几路画面,很难做到高并发。采用多路显示技术,当所述方法应用于直播平台的监管时,使一次可以监管的主播数量大大提升,从而减轻监管人员的工作量。
图13示意性示出了根据本发明的再一实施例的用于直播视频流播放的方法的流程图。
如图13所示,本实施方式提供的用于直播视频流播放的方法与上述实施方式的不同之处在于,所述方法还可以包括以下步骤。
在步骤S1310中,响应于针对所述多个主播中的任一主播的选择操作,获取被选择的主播的音频地址。
在步骤S1320中,根据所述音频地址拉取所述被选择的主播的一路音频流数据。
在步骤S1330中,将所述音频流数据渲染至音频设备,播放所述被选择的主播的声音。
本发明实施例中,所述方法还可以包括:将拉取到的所述音频流数据解码成PCM(Pulse Code Modulation,脉冲编码调制)数据。
现有技术中采用拉取主播视频截图的方式,无法获取主播的音频流数据,从而无法识别主播所说的语音内容,导致监管难度较大。
图14示意性示出了根据本发明的再一实施例的用于直播视频流播放的方法的流程图。
如图14所示,本实施方式提供的用于直播视频流播放的方法与上述实施方式的不同之处在于,所述方法还可以包括以下步骤。
在步骤S1410中,用户选择视频渲染路数。
例如,程序初始化过程中,让用户选择监管主播的路数,用户可以选择1路、5路、10路,甚至上百路。
在步骤S1420中,创建多路视频渲染窗口。
本发明实施例中,根据用户选择的视频渲染路数,逐一创建视频渲染窗口,并初始化视频渲染窗口,为后续的视频渲染做准备。
在步骤S1430中,判断是否渲染完所有路视频;若渲染完所有路视频,则进入步骤S1460;若没有渲染完所有路视频,则进入步骤S1440。
在步骤S1440中,初始化所述路窗口信息。
初始化所述路窗口信息例如分配一些必备的内存,获取相关窗口句柄等。
在步骤S1450中,拿主播的视频流地址直接进行渲染。返回上述步骤S1430。
本发明实施例中,先拉取主播列表信息,如果用户选择了5路,那么就按照列表依次显示各主播,第一次显示1、2、3、4、5号主播,第二次显示6、7、8、9、10号主播,依次类推。
每个视频渲染窗口从业务服务器获取当前需要显示的主播视频地址,将获取的视频地址保存下来。通过视频地址拉取视频流数据。将视频流数据渲染至相应的视频渲染窗口。
在步骤S1460中,显示所有画面至屏幕。
在步骤S1470中,判断用户是否选择播放声音;若选择播放声音,则进入步骤S1480;若未选择播放声音,则进入步骤S1490。
本发明实施例中,判断用户选择播放哪一个主播的音频。根据用户的选择,从业务服务器获取所述主播的音频流地址。拉取所述音频流地址的音频流数据。将所述音频流数据渲染至音频设备上。
在步骤S1480中,播放声音。
在步骤S1490中,结束。
本实施方式提供的用于直播视频流播放的方法,一方面,采用动态的直播视频流而不是图片,更具实时性;另一方面,不需要依赖于外部应用例如浏览器,如果通过浏览器浏览的方式直接监控直播视频,性能会有很大的开销,从而不能支持多路直播,所以采用了静态图片隔几秒刷新一次的技术,本方案采用了独立开发的APP,可以实现音视频解码、渲染等整个流程,在性能和资源利用率上来说比web端好很多,能支持到上百路直播视频。在相同的硬件配置下,本方法可以观看到比现有技术方案更多路的直播视频。
在示例性实施例中,所述主播列表信息还包括所述主播的主播信息;所述方法还包括:响应于针对所述主播的上传操作,将所述主播信息发送至服务器以用于对所述主播进行标记。
本发明实施例中,可以通过一键上传的方式实现优秀主播的挖掘或者劣质主播的发现,例如,当监管人员发现某一个主播显示的画面内容不符合平台要求时,可以在所述主播的显示画面上右击,然后会弹出相应的选择列表,监管人员点击所述选择列表中的“网黑”,即可将所述主播的主播信息上传到后台服务器,以便于后台服务器对其进行相应的处理。
在很多场景下,直播平台需要从众多的主播中筛选满足条件的主播信息。这里的条件可以根据实际场景来定,例如想筛选网红,那么就根据网红的条件去筛选。或者筛选网红里边更优秀的主播,进行适当的曝光,使更多的观众可以看到。在其他应用场景下,因为网黑会播放一些直播平台或者国家法规不允许的内容,就需要筛选出来对他们进行禁播等操作。
例如,发现一个草根主播很不错,这个时候平台的用户没有关注到他,那么平台可以主动的增加所述主播的曝光度,给予一定的资源倾斜,包括但不限于推荐页显示,顶部banner(标题)曝光等,这样就可以提高主播的人气,使更多的观众看到所述主播,主播的价值自然被放大,有了好的主播,那么直播平台才可能做的越来越好。
本实施方式提供的用于直播视频流播放的方法可应用于以下场景的任何音视频平台,如腾讯Now直播。
图15示出了根据本发明的一实施例的用于直播视频流播放的方法或用于直播视频流播放的装置的应用场景示意图。
如图15所示,是所述方法的应用场景一:品牌展示。
直播平台为了达到品牌宣传的目的,往往需要品牌展示,从而需要筛选出一些优质的内容用来展示,这个时候就需要提前从百万主播中筛选出适合品牌展示的主播来,本实施方式提供的用于直播视频流播放的方法即可通过高并发的能力筛选多路直播内容摆放在任何需要的位置,达到产品品牌宣传的目的。
图16示出了根据本发明的另一实施例的用于直播视频流播放的方法或用于直播视频流播放的装置的应用场景示意图。
如图16所示,是所述方法的应用场景二:网红挖掘。
网红的评审是非常主观的,要判断主播的才能、直播技巧、衣着等因素,这些筛选条件目标机器是很难做到的,因此需要人工挖掘。人工挖掘的成本是人力,那么为了让一个产品运营人员在同一时间内筛选更多的主播,就需要产品运营人员在一定时间内收集到更多的主播信息,那怎么让产品运营人员在一定时间内接触到更多的主播信息?就是让产品运营人员一眼看到更多的主播,从而提高效率。直播平台产品运营人员可以通过所述方法,通过高并发的形式,一次快速预览上百路主播,从而达到在很少人力的情况下快速筛选,进行网红挖掘。
需要说明的是,网红判断是一个主观感受,并且各个业务侧也有自己的标准。
图17示出了根据本发明的再一实施例的用于直播视频流播放的方法或用于直播视频流播放的装置的应用场景示意图。
如图17所示,是所述方法的应用场景三:网黑打击。
随着网络主播数量的增加,主播内容的监管达到了不得不做的地步,本方法通过高并发的形式,达到快速筛选,快速发现不良主播,从而有效的进行打击。打击网黑主播不需要知道细节内容,有时候只需要看一眼就可以看出来,而不是逐一仔细对比,如果看画面觉得哪个主播有问题,可以调出这个主播的声音来进一步判断。
图18示出了根据本发明的再一实施例的用于直播视频流播放的方法或用于直播视频流播放的装置的应用场景示意图。
如图18所示,应用所述方法可以显示一个高并发监控墙,提升平台感知能力,宏观性把控平台直播现状,时间性感知平台变化;提升UGC(User Generated Content,用户原创内容)到PGC(Professional Generated Content,专业生产内容)转化率,发现主播价值,放大主播价值,反哺平台;维护平台健康发展,及时发现,打击各类“黑”主播,倡导正直、绿色直播理念,树立行业榜样。
上述图15-18所示的应用场景中,显示布局可以根据实际场景变化,比如图16的左右两边都是小的,中间是大的,应用场景可以理解为,挖掘人员挖掘出了一批优质主播,想在这一批优质主播中选择出能力更强的,那么挖掘人员就会针对这些主播仔细观察,这个时候挖掘人员可以根据需要将需要更细致观察的主播调整到中间大图上观看。在图18中,标题栏上预设了5个不同的布局,用户可以根据自己的需求随意切换,若所述布局满足不了用户的需求,用户也可以在配置文件中自行设计。
本实施方式提供的用于直播视频流播放的方法,一方面,可以在应用程序中显示实时动态的直播视频,从而可以显示主播真实状态;另一方面,由于直播视频流不需要后台预处理,而是直接显示,不存在太大的延迟,与观众看到的直播内容一致。此外,本方法还通过内存优化、线程池优化等技术,实现多画面实时视频直播,一次可以同时显示上百路直播画面,效率更高,可以用于大量减轻监管人员监管的难度以及增加实时性,从而可以有效的维护直播平台的健康发展;还可以用于帮助产品运维人员筛选优秀草根主播,为运维人员提供了更便捷的挑选方式。同时,还可以获取主播的音频数据,可以监管主播的语音内容。
以下介绍本发明的装置实施例,可以用于执行本发明上述的用于直播视频流播放的方法。对于本发明装置实施例中未披露的细节,请参照本发明上述的用于直播视频流播放的方法的实施例。
图19示意性示出了根据本发明的一实施例的用于直播视频流播放的装置的框图。
如图19所示,本实施例提供的用于直播视频流播放的装置1900可以包括主播列表信息获取模块1910、视频流数据获取模块1920、视频流数据存储模块1930以及视频流数据渲染模块1940。
其中,主播列表信息获取模块1910可以配置为获取主播列表信息,所述主播列表信息包括主播的视频地址。
视频流数据获取模块1920可以配置为根据所述视频地址拉取所述主播的视频流数据。
视频流数据存储模块1930可以配置为根据所述视频流数据的帧分辨率,分配内存池中的内存块用于存储所述视频流数据的帧视频流数据。
其中,相同大小的内存块位于所述内存池中的相同内存组。
视频流数据渲染模块1940可以配置为将所述视频流数据渲染至视频渲染窗口。
在示例性实施例中,所述主播可以包括多个主播,所述视频地址可以包括所述多个主播的多路视频地址,所述视频流数据可以包括根据所述多路视频地址拉取的所述多个主播的多路视频流数据,所述视频渲染窗口可以包括分别用于渲染所述多路视频流数据的多路视频渲染窗口。
在示例性实施例中,用于直播视频流播放的装置1900还可以包括:显示模块,可以配置为将渲染完成的所述多路视频流数据同时显示于同一界面中。
在示例性实施例中,所述内存组可以包括第一内存组,所述第一内存组中可以包括第一内存块。
在示例性实施例中,用于直播视频流播放的装置1900还可以包括:内存队列设置模块,可以配置为设置第一内存队列和第二内存队列;第一内存地址存储模块,可以配置为将所述第一内存组中当前未被占用的第一内存块的内存地址存储于所述第一内存队列中;第二内存地址存储模块,可以配置为将所述第一内存组中当前被占用的第一内存块的内存地址存储于所述第二内存队列中。
在示例性实施例中,所述主播可以包括第一主播,所述视频地址可以包括所述第一主播的第一视频地址,所述视频流数据可以包括根据所述第一视频地址拉取的所述第一主播的第一视频流数据,所述第一视频流数据具有第一帧分辨率;所述第一内存队列中可以包括第一内存地址。
在示例性实施例中,视频流数据存储模块1930可以包括:内存组选择单元,可以配置为根据所述第一帧分辨率选择所述第一内存组;内存地址获取单元,可以配置为从所述第一内存队列获取所述第一内存地址;内存地址移动单元,可以配置为将所述第一内存地址移至所述第二内存队列;视频流数据存储单元,可以配置为将所述第一视频流数据的帧视频流数据存储至所述第一内存地址对应的第一内存块;内存地址移回单元,可以配置为若所述第一视频流数据的帧视频流数据使用完所述对应的第一内存块,将所述第一内存地址移至所述第一内存队列。
在示例性实施例中,用于直播视频流播放的装置1900还可以包括:内存资源申请模块,可以配置为若满足预设条件,则根据所述第一帧分辨率申请获取内存资源;内存资源划分模块,可以配置为将所述内存资源划分成多个与所述第一帧分辨率大小相应的第一内存块;内存块存入模块,可以配置为将所述多个与所述第一帧分辨率大小相应的第一内存块存入所述第一内存组;内存地址存入模块,可以配置为将所述多个与所述第一帧分辨率大小相应的第一内存块的内存地址存入所述第一内存队列。
在示例性实施例中,所述预设条件为所述第一内存队列中的内存地址数量小于阈值。
在示例性实施例中,所述第一内存队列和所述第二内存队列均为FIFO队列。
在示例性实施例中,所述主播还包括第二主播,所述视频地址还包括所述第二主播的第二视频地址,所述视频流数据还包括根据所述第二视频地址拉取的所述第二主播的第二视频流数据,所述第二视频流数据具有第二帧分辨率。
在示例性实施例中,视频流数据存储模块1930还可以配置为若所述第一帧分辨率不同于所述第二帧分辨率,则分配所述内存池中不同内存组中的内存块分别用于存储所述第一视频流数据和所述第二视频流数据的帧视频流数据。
在示例性实施例中,用于直播视频流播放的装置1900还可以包括:内存池创建模块,可以配置为创建带索引的所述内存池,各索引分别对应各内存组。
在示例性实施例中,用于直播视频流播放的装置1900还可以包括:线程池创建模块,可以配置为创建线程池以用于执行获取视频地址任务、拉取视频流数据任务、存储视频流数据任务、解码视频流数据任务、渲染视频流数据任务中的任意一种或者多种。
在示例性实施例中,用于直播视频流播放的装置1900还可以包括:音频地址获取模块,可以配置为响应于针对所述多个主播中的任一主播的选择操作,获取被选择的主播的音频地址;音频流数据拉取模块,可以配置为根据所述音频地址拉取所述被选择的主播的一路音频流数据;声音播放模块,可以配置为将所述音频流数据渲染至音频设备,播放所述被选择的主播的声音。
在示例性实施例中,所述主播列表信息还包括所述主播的主播信息。
在示例性实施例中,用于直播视频流播放的装置1900还可以包括:主播标记模块,可以配置为响应于针对所述主播的上传操作,将所述主播信息发送至服务器以用于对所述主播进行标记。
本公开实施方式提供的用于直播视频流播放的装置,获取包括主播的视频地址的主播列表信息,并根据所述视频地址拉取所述主播的视频流数据,根据所述视频流数据的帧分辨率,分配内存池中的内存块用于存储所述视频流数据的帧视频流数据,将所述视频流数据渲染至视频渲染窗口;其中,相同大小的内存块位于所述内存池中的相同内存组,即本方案通过内存优化的方法,可以提高内存利用效率,实现直播视频的动态视频播放,可以实时的监控到主播的真实状态。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本发明实施方式的技术方案可以以软件产品的形式体现出来,所述软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本发明实施方式的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
Claims (22)
1.一种用于直播视频流播放的方法,其特征在于,包括:
获取主播列表信息,所述主播列表信息包括主播的视频地址,所述主播包括第一主播,所述视频地址包括所述第一主播的第一视频地址;
根据所述视频地址拉取所述主播的视频流数据,所述视频流数据包括根据所述第一视频地址拉取的所述第一主播的第一视频流数据,所述第一视频流数据具有第一帧分辨率;
根据所述视频流数据的帧分辨率,分配内存池中的内存块用于存储所述视频流数据的帧视频流数据;其中,相同大小的内存块位于所述内存池中的相同内存组,所述内存组包括第一内存组,所述第一内存组中包括第一内存块;
将所述视频流数据渲染至视频渲染窗口;
设置第一内存队列和第二内存队列;
将所述第一内存组中当前未被占用的第一内存块的内存地址存储于所述第一内存队列中,所述第一内存队列中包括第一内存地址;
将所述第一内存组中当前被占用的第一内存块的内存地址存储于所述第二内存队列中;
其中,所述根据所述视频流数据的帧分辨率,分配内存池中的内存块用于存储所述视频流数据的帧视频流数据,包括:
根据所述第一帧分辨率选择所述第一内存组;
从所述第一内存队列获取所述第一内存地址;
将所述第一内存地址移至所述第二内存队列;
将所述第一视频流数据的帧视频流数据存储至所述第一内存地址对应的第一内存块;
若所述第一视频流数据的帧视频流数据使用完所述对应的第一内存块,将所述第一内存地址移至所述第一内存队列。
2.根据权利要求1所述的方法,其特征在于,所述主播包括多个主播,所述视频地址包括所述多个主播的多路视频地址,所述视频流数据包括根据所述多路视频地址拉取的所述多个主播的多路视频流数据,所述视频渲染窗口包括分别用于渲染所述多路视频流数据的多路视频渲染窗口;
所述方法还包括:
将渲染完成的所述多路视频流数据同时显示于同一界面中。
3.根据权利要求1所述的方法,其特征在于,还包括:
若满足预设条件,则根据所述第一帧分辨率申请获取内存资源;
将所述内存资源划分成多个与所述第一帧分辨率大小相应的第一内存块;
将所述多个与所述第一帧分辨率大小相应的第一内存块存入所述第一内存组;
将所述多个与所述第一帧分辨率大小相应的第一内存块的内存地址存入所述第一内存队列。
4.根据权利要求3所述的方法,其特征在于,所述预设条件为所述第一内存队列中的内存地址数量小于阈值。
5.根据权利要求1所述的方法,其特征在于,所述第一内存队列和所述第二内存队列均为FIFO队列。
6.根据权利要求1所述的方法,其特征在于,所述主播还包括第二主播,所述视频地址还包括所述第二主播的第二视频地址,所述视频流数据还包括根据所述第二视频地址拉取的所述第二主播的第二视频流数据,所述第二视频流数据具有第二帧分辨率;
所述根据所述视频流数据的帧分辨率,分配内存池中的内存块用于存储所述视频流数据的帧视频流数据还包括:
若所述第一帧分辨率不同于所述第二帧分辨率,则分配所述内存池中不同内存组中的内存块分别用于存储所述第一视频流数据和所述第二视频流数据的帧视频流数据。
7.根据权利要求1所述的方法,其特征在于,还包括:
创建带索引的所述内存池,各索引分别对应各内存组。
8.根据权利要求1所述的方法,其特征在于,还包括:创建线程池以用于执行获取视频地址任务、拉取视频流数据任务、存储视频流数据任务、解码视频流数据任务、渲染视频流数据任务中的任意一种或者多种。
9.根据权利要求2所述的方法,其特征在于,还包括:
响应于针对所述多个主播中的任一主播的选择操作,获取被选择的主播的音频地址;
根据所述音频地址拉取所述被选择的主播的一路音频流数据;
将所述音频流数据渲染至音频设备,播放所述被选择的主播的声音。
10.根据权利要求1所述的方法,其特征在于,所述主播列表信息还包括所述主播的主播信息;所述方法还包括:
响应于针对所述主播的上传操作,将所述主播信息发送至服务器以用于对所述主播进行标记。
11.一种用于直播视频流播放的装置,其特征在于,包括:
主播列表信息获取模块,配置为获取主播列表信息,所述主播列表信息包括主播的视频地址,所述主播包括第一主播,所述视频地址包括所述第一主播的第一视频地址;
视频流数据获取模块,配置为根据所述视频地址拉取所述主播的视频流数据,所述视频流数据包括根据所述第一视频地址拉取的所述第一主播的第一视频流数据,所述第一视频流数据具有第一帧分辨率;
视频流数据存储模块,配置为根据所述视频流数据的帧分辨率,分配内存池中的内存块用于存储所述视频流数据的帧视频流数据;其中,相同大小的内存块位于所述内存池中的相同内存组,所述内存组包括第一内存组,所述第一内存组中包括第一内存块;
视频流数据渲染模块,配置为将所述视频流数据渲染至视频渲染窗口;
内存队列设置模块,配置为设置第一内存队列和第二内存队列;
第一内存地址存储模块,配置为将所述第一内存组中当前未被占用的第一内存块的内存地址存储于所述第一内存队列中,所述第一内存队列中包括第一内存地址;
第二内存地址存储模块,配置为将所述第一内存组中当前被占用的第一内存块的内存地址存储于所述第二内存队列中;
其中,所述视频流数据存储模块包括:
内存组选择单元,配置为根据所述第一帧分辨率选择所述第一内存组;
内存地址获取单元,配置为从所述第一内存队列获取所述第一内存地址;
内存地址移动单元,配置为将所述第一内存地址移至所述第二内存队列;
视频流数据存储单元,配置为将所述第一视频流数据的帧视频流数据存储至所述第一内存地址对应的第一内存块;
内存地址移回单元,配置为若所述第一视频流数据的帧视频流数据使用完所述对应的第一内存块,将所述第一内存地址移至所述第一内存队列。
12.根据权利要求11所述的装置,其特征在于,所述主播包括多个主播,所述视频地址包括所述多个主播的多路视频地址,所述视频流数据包括根据所述多路视频地址拉取的所述多个主播的多路视频流数据,所述视频渲染窗口包括分别用于渲染所述多路视频流数据的多路视频渲染窗口;
所述装置还包括:
显示模块,配置为将渲染完成的所述多路视频流数据同时显示于同一界面中。
13.根据权利要求11所述的装置,其特征在于,还包括:
内存资源申请模块,配置为若满足预设条件,则根据所述第一帧分辨率申请获取内存资源;
内存资源划分模块,配置为将所述内存资源划分成多个与所述第一帧分辨率大小相应的第一内存块;
内存块存入模块,配置为将所述多个与所述第一帧分辨率大小相应的第一内存块存入所述第一内存组;
内存地址存入模块,配置为将所述多个与所述第一帧分辨率大小相应的第一内存块的内存地址存入所述第一内存队列。
14.根据权利要求13所述的装置,其特征在于,所述预设条件为所述第一内存队列中的内存地址数量小于阈值。
15.根据权利要求11所述的装置,其特征在于,所述第一内存队列和所述第二内存队列均为FIFO队列。
16.根据权利要求11所述的装置,其特征在于,所述主播还包括第二主播,所述视频地址还包括所述第二主播的第二视频地址,所述视频流数据还包括根据所述第二视频地址拉取的所述第二主播的第二视频流数据,所述第二视频流数据具有第二帧分辨率;
所述视频流数据存储模块还配置为:若所述第一帧分辨率不同于所述第二帧分辨率,则分配所述内存池中不同内存组中的内存块分别用于存储所述第一视频流数据和所述第二视频流数据的帧视频流数据。
17.根据权利要求11所述的装置,其特征在于,还包括:
内存池创建模块,配置为创建带索引的所述内存池,各索引分别对应各内存组。
18.根据权利要求11所述的装置,其特征在于,还包括:
线程池创建模块,配置为创建线程池以用于执行获取视频地址任务、拉取视频流数据任务、存储视频流数据任务、解码视频流数据任务、渲染视频流数据任务中的任意一种或者多种。
19.根据权利要求12所述的装置,其特征在于,还包括:
音频地址获取模块,配置为响应于针对所述多个主播中的任一主播的选择操作,获取被选择的主播的音频地址;
音频流数据拉取模块,配置为根据所述音频地址拉取所述被选择的主播的一路音频流数据;
声音播放模块,配置为将所述音频流数据渲染至音频设备,播放所述被选择的主播的声音。
20.根据权利要求11所述的装置,其特征在于,所述主播列表信息还包括所述主播的主播信息;所述装置还包括:
主播标记模块,配置为响应于针对所述主播的上传操作,将所述主播信息发送至服务器以用于对所述主播进行标记。
21.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1至10中任一项所述的用于直播视频流播放的方法。
22.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,配置为存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1至10中任一项所述的用于直播视频流播放的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810444511.0A CN110475122B (zh) | 2018-05-10 | 2018-05-10 | 用于直播视频流播放的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810444511.0A CN110475122B (zh) | 2018-05-10 | 2018-05-10 | 用于直播视频流播放的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110475122A CN110475122A (zh) | 2019-11-19 |
CN110475122B true CN110475122B (zh) | 2021-10-08 |
Family
ID=68503904
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810444511.0A Active CN110475122B (zh) | 2018-05-10 | 2018-05-10 | 用于直播视频流播放的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110475122B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111970552A (zh) * | 2020-08-04 | 2020-11-20 | 深圳市佳创视讯技术股份有限公司 | 一种基于机顶盒实时播放dvb全景视频流的方法及*** |
CN113824973A (zh) * | 2021-08-04 | 2021-12-21 | 杭州星犀科技有限公司 | 多平台直推推流的方法、***、电子装置和存储介质 |
CN115134661A (zh) * | 2022-06-28 | 2022-09-30 | 龙芯中科(合肥)技术有限公司 | 视频处理方法及视频处理应用 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102063385A (zh) * | 2010-12-23 | 2011-05-18 | 深圳市金宏威实业发展有限公司 | 一种内存管理方法和*** |
CN104182355A (zh) * | 2014-08-29 | 2014-12-03 | 广州华多网络科技有限公司 | 一种内存分配方法及装置 |
CN105306966A (zh) * | 2014-07-30 | 2016-02-03 | 深圳国微技术有限公司 | 一种直播视频数据处理方法、装置及*** |
CN106412621A (zh) * | 2016-09-28 | 2017-02-15 | 广州华多网络科技有限公司 | 网络直播间的视频显示方法及装置、控制方法与相关设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101799294B1 (ko) * | 2013-05-10 | 2017-11-20 | 삼성전자주식회사 | 디스플레이 장치 및 이의 제어 방법 |
-
2018
- 2018-05-10 CN CN201810444511.0A patent/CN110475122B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102063385A (zh) * | 2010-12-23 | 2011-05-18 | 深圳市金宏威实业发展有限公司 | 一种内存管理方法和*** |
CN105306966A (zh) * | 2014-07-30 | 2016-02-03 | 深圳国微技术有限公司 | 一种直播视频数据处理方法、装置及*** |
CN104182355A (zh) * | 2014-08-29 | 2014-12-03 | 广州华多网络科技有限公司 | 一种内存分配方法及装置 |
CN106412621A (zh) * | 2016-09-28 | 2017-02-15 | 广州华多网络科技有限公司 | 网络直播间的视频显示方法及装置、控制方法与相关设备 |
Also Published As
Publication number | Publication date |
---|---|
CN110475122A (zh) | 2019-11-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109413483B (zh) | 直播内容的预览方法、装置、设备和介质 | |
CN109640188B (zh) | 视频预览方法、装置、电子设备及计算机可读存储介质 | |
CN107596687B (zh) | 游戏画面显示***及方法、存储介质、电子设备 | |
US9961123B2 (en) | Media production system with score-based display feature | |
CN109525853B (zh) | 直播间封面展示方法、装置、终端、服务器及可读介质 | |
CN110475122B (zh) | 用于直播视频流播放的方法及装置 | |
US10271105B2 (en) | Method for playing video, client, and computer storage medium | |
CN106454407A (zh) | 视频直播方法及装置 | |
CN111246126A (zh) | 基于直播平台的导播切换方法、***、装置、设备及介质 | |
CN107465936A (zh) | 一种直播列表镜像展示方法、直播平台服务器及客户端 | |
CN103581754A (zh) | 一种数据显示方法及智能设备 | |
WO2023104102A1 (zh) | 一种直播评论展示方法、装置、设备、程序产品及介质 | |
CN107423128B (zh) | 信息处理方法及其*** | |
US10531153B2 (en) | Cognitive image obstruction | |
CN110636321A (zh) | 数据处理方法、装置、***、移动终端及存储介质 | |
CN105898395A (zh) | 一种网络视频播放方法、装置及*** | |
CN113965813B (zh) | 直播间内的视频播放方法、***、设备及介质 | |
CN107920281A (zh) | 一种网络直播视频加载方法和终端 | |
WO2016119504A1 (zh) | 一种媒体节目分享的方法及装置 | |
CN109151604A (zh) | 一种弹幕显示方法及装置 | |
CN111556357A (zh) | 直播视频的播放方法、装置、设备及存储介质 | |
CN110784731B (zh) | 一种数据流转码方法、装置、设备及介质 | |
US20200099987A1 (en) | Systems and methods for displaying a live video stream in a graphical user interface | |
CN111343503A (zh) | 视频的转码方法、装置、电子设备及存储介质 | |
WO2023131081A1 (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |