CN114071241A - 视频播放方法、系统、电子设备及存储介质 - Google Patents
视频播放方法、系统、电子设备及存储介质 Download PDFInfo
- Publication number
- CN114071241A CN114071241A CN202010783581.6A CN202010783581A CN114071241A CN 114071241 A CN114071241 A CN 114071241A CN 202010783581 A CN202010783581 A CN 202010783581A CN 114071241 A CN114071241 A CN 114071241A
- Authority
- CN
- China
- Prior art keywords
- video data
- streaming media
- video
- browser
- media server
- 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
- 238000000034 method Methods 0.000 title claims abstract description 91
- 238000005538 encapsulation Methods 0.000 claims abstract description 58
- 230000005540 biological transmission Effects 0.000 claims abstract description 16
- 230000015654 memory Effects 0.000 claims description 33
- 238000004590 computer program Methods 0.000 claims description 8
- 230000003139 buffering effect Effects 0.000 claims description 4
- 238000012545 processing Methods 0.000 abstract description 14
- 230000000694 effects Effects 0.000 abstract description 13
- 230000007547 defect Effects 0.000 abstract description 3
- 238000004891 communication Methods 0.000 description 15
- 238000010586 diagram Methods 0.000 description 9
- 230000003993 interaction Effects 0.000 description 8
- 230000008569 process Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 239000012634 fragment Substances 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 239000004973 liquid crystal related substance Substances 0.000 description 3
- 238000010295 mobile communication Methods 0.000 description 3
- 238000009877 rendering Methods 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 2
- 239000003795 chemical substances by application Substances 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000009432 framing Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000000007 visual effect Effects 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/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/4782—Web browsing, e.g. WebTV
-
- 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/231—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
- H04N21/23106—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion involving caching operations
-
- 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/232—Content retrieval operation locally within server, e.g. reading video streams from disk arrays
-
- 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/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/643—Communication protocols
-
- 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/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/643—Communication protocols
- H04N21/6437—Real-time Transport Protocol [RTP]
-
- 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/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/85—Assembly of content; Generation of multimedia applications
- H04N21/858—Linking data to content, e.g. by linking an URL to a video object, by creating a hotspot
- H04N21/8586—Linking data to content, e.g. by linking an URL to a video object, by creating a hotspot by using a URL
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Information Transfer Between Computers (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本申请提供一种视频播放方法、系统、流媒体服务器、浏览器、电子设备及存储介质,包括:建立与浏览器之间的传输控制协议TCP连接,生成TCP通道,依次对获取到视频数据进行流媒体格式封装和websocket协议封装,基于TCP通道将封装后的视频数据发送至浏览器,通过流媒体服务器对获取到的视频数据进行流媒体格式封装和websocket协议封装,并将封装后的视频数据通过TCP通道发送至浏览器,使得浏览器获取到的视频数据为浏览器可以直接识别的格式的视频数据,避免了相关技术中浏览器需要对由视频源发送的视频数据进行繁琐的处理的弊端,实现了节约处理资源,降低CPU占用率,且提高了视频播放效率的技术效果。
Description
技术领域
本申请涉及互联网和视频处理技术领域,尤其涉及一种视频播放方法、系统、流媒体服务器、浏览器、电子设备及存储介质。
背景技术
随着互联网和视频技术的发展,万维网(world wide,web)浏览器可以实现单路或者多路视频播放。
在现有技术中,web浏览器与视频源之间采用实时流传输协议(Real TimeStreaming Protocol,RTSP)进行交互,如视频源基于RTSP协议将视频数据发送至web浏览器,而当web浏览器接收到视频数据时,依次对视频数据进行解码(如调用ffmpeg对视频数据进行解码)、转换(如转换成RGB数据)及渲染处理,并基于处理后的视频数据进行视频播放。
本申请的发明人在实现本发明的过程中,发现至少存在以下技术问题:需要由web浏览器对视频数据进行系列处理,如解码、转换及渲染等,导致web浏览器的内存和CPU占用高的问题。
发明内容
本申请实施例提供一种视频播放方法、系统、流媒体服务器、浏览器、电子设备及存储介质,用以解决浏览器的内存和CPU占用高的问题。
第一方面,本申请实施例提供一种视频播放方法应用于流媒体服务器,所述方法包括:
建立与浏览器之间的传输控制协议TCP连接,生成TCP通道;
依次对获取到视频数据进行流媒体格式封装和websocket协议封装;
基于所述TCP通道将封装后的视频数据发送至所述浏览器。
在本申请实施例中,流媒体服务器对视频数据进行流媒体格式封装和websocket协议封装,使得封装后的视频数据可以直接被浏览器识别,避免了相关技术中浏览器对视频源发送的视频数据进行解码、转换及渲染等系列繁琐的过程,实现了节约转换等资源成本,降低浏览器的内存和CPU的空间的技术效果。
在一些实施例中,在所述建立与浏览器之间的传输控制协议TCP连接之后,所述方法还包括:
接收所述浏览器发送的视频播放请求,所述视频播放请求中携带统一资源定位符,所述视频播放请求用于请求播放与所述统一资源定位符对应的视频;
根据所述统一资源定位符获取所述视频数据。
在本申请实施例中,流媒体服务器通过统一资源定位符获取视频数据,可以实现多路视频的视频之间互不干扰,实现了浏览器对多路视频的准确播放的技术效果。
在一些实施例中,所述根据所述统一资源定位符获取所述视频数据包括:
根据所述统一资源定位符确定预先创建的用于缓存所述视频的缓存队列;
从所述缓存队列中获取所述视频数据。
在一些实施例中,在所述根据所述统一资源定位符获取所述视频数据之前,所述方法还包括:
创建所述流媒体服务器与视频源之间的媒体通道,所述媒体通道用于接收所述视频源发送的所述视频数据;
创建并将所述视频数据存储至所述缓存队列。
在一些实施例中,所述从所述缓存队列中获取所述视频数据包括:
若所述缓存队列中没有所述视频数据,则在预先设置的时间间隔时,再次从所述缓存队列中获取所述视频数据。
在一些实施例中,所述缓存队列为环形队列,所述环形队列存储每一帧视频数据的存储时间均为预先设置的存储时间。
在本申请实施例中,通过设置环形队列,可以确保环形队列中存储的视频数据的有效性,且节约内存的技术效果。
在一些实施例中,在建立与浏览器之间的传输控制协议TCP连接之后,所述方法还包括:
接收所述浏览器发送的所述浏览器支持的websocket协议。
第二方面,本申请实施例提供一种视频播放方法,所述方法包括:
建立与流媒体服务器之间的传输控制协议TCP连接,生成TCP通道;
接收所述流媒体服务器基于所述TCP通道传输的封装后的视频数据,其中,所述封装后的视频数据是所述流媒体依次对获取到视频数据进行流媒体格式封装和websocket协议封装生成的;
基于所述封装后的视频数据进行视频播放。
在一些实施例中,在所述建立与浏览器之间的传输控制协议TCP通道之后,所述方法还包括:
向所述流媒体服务器发送视频播放请求,所述视频播放请求中携带统一资源定位符,所述视频播放请求用于请求播放与所述统一资源定位符对应的视频;
其中,封装前的视频数据是所述流媒体服务器根据所述统一资源定位符获取的。
在一些实施例中,在所述建立与流媒体服务器之间的传输控制协议TCP连接之后,所述方法还包括:
向流媒体服务器发送所述浏览器支持的websocket协议的信息。
第三方面,本申请实施例提供一种流媒体服务器,所述流媒体服务器包括:
第一建立模块,用于建立与浏览器之间的传输控制协议TCP连接,生成TCP通道;
封装模块,用于依次对获取到视频数据进行流媒体格式封装和websocket协议封装;
第一发送模块,用于基于所述TCP通道将封装后的视频数据发送至所述浏览器。
在一些实施例中,所述流媒体服务器还包括:
第一接收模块,用于接收所述浏览器发送的视频播放请求,所述视频播放请求中携带统一资源定位符,所述视频播放请求用于请求播放与所述统一资源定位符对应的视频;
获取模块,用于根据所述统一资源定位符获取所述视频数据。
在一些实施例中,所述获取模块用于,根据所述统一资源定位符确定预先创建的用于缓存所述视频的缓存队列,从所述缓存队列中获取所述视频数据。
在一些实施例中,所述流媒体服务器还包括:
创建模块,用于创建所述流媒体服务器与视频源之间的媒体通道,所述媒体通道用于接收所述视频源发送的所述视频数据;
存储模块,用于创建并将所述视频数据存储至所述缓存队列。
在一些实施例中,所述获取模块用于,若所述缓存队列中没有所述视频数据,则在预先设置的时间间隔时,再次从所述缓存队列中获取所述视频数据。
在一些实施例中,所述缓存队列为环形队列,所述环形队列存储每一帧视频数据的存储时间均为预先设置的存储时间。
在一些实施例中,所述第一接收模块用于,接收所述浏览器发送的所述浏览器支持的websocket协议。
第四方面,本申请实施例提供一种浏览器,所述浏览器包括:
第二建立模块,用于建立与流媒体服务器之间的传输控制协议TCP连接,生成TCP通道;
第二接收模块,用于接收所述流媒体服务器基于所述TCP通道传输的封装后的视频数据,其中,所述封装后的视频数据是所述流媒体依次对获取到视频数据进行流媒体格式封装和websocket协议封装生成的;
播放模块,用于基于所述封装后的视频数据进行视频播放。
在一些实施例中,所述浏览器还包括:
第二发送模块,用于向所述流媒体服务器发送视频播放请求,所述视频播放请求中携带统一资源定位符,所述视频播放请求用于请求播放与所述统一资源定位符对应的视频;
其中,封装前的视频数据是所述流媒体服务器根据所述统一资源定位符获取的。
在一些实施例中,所述第二发送模块用于,向流媒体服务器发送所述浏览器支持的websocket协议的信息。
第五方面,本申请实施例提供一种视频播放系统,所述系统包括:
如上任一实施例所述的流媒体服务器;
如上任一实施例所述的浏览器。
第六方面,本申请实施例提供一种电子设备,包括:存储器,处理器;
所述存储器用于存储所述处理器可执行指令的存储器;
其中,当执行所述存储器中的指令时,所述处理器被配置为实现上述任一实施例所述的方法。
第七方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任一实施例所述的方法。
本申请实施例提供一种视频播放方法、系统、流媒体服务器、浏览器、电子设备及存储介质,包括:建立与浏览器之间的传输控制协议TCP连接,生成TCP通道,依次对获取到视频数据进行流媒体格式封装和websocket协议封装,基于TCP通道将封装后的视频数据发送至浏览器,通过流媒体服务器对获取到的视频数据进行流媒体格式封装和websocket协议封装,并将封装后的视频数据通过TCP通道发送至浏览器,使得浏览器获取到的视频数据为浏览器可以直接识别的格式的视频数据,避免了相关技术中浏览器需要对由视频源发送的视频数据进行繁琐的处理的弊端,实现了节约处理资源,降低CPU占用率,且提高了视频播放效率的技术效果。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例的视频播放方法的应用场景的示意图;
图2为本申请一个实施例的视频播放方法的流程示意图;
图3为本申请实施例的流媒体格式的内容的示意图;
图4为本申请实施例的tag的内容的示意图;
图5为本申请实施例的websocket协议的内容的示意图;
图6为本申请另一实施例的视频播放方法的流程示意图;
图7为本申请实施例的视频播放方法的交互示意图;
图8为本申请另一实施例的视频播放方法的流程示意图;
图9为本申请实施例的流媒体服务器的示意图;
图10为本申请实施例的浏览器的示意图;
图11为本申请实施例的电子设备的框图。
通过上述附图,已示出本公开明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本公开的概念。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
请参阅图1,图1为本申请实施例的视频播放方法的应用场景的示意图。
如图1所示,该应用场景中可以包括:终端设备100(图1以手机为例进行了示范性地展示)、流媒体服务器200及浏览器300。
其中,终端设备100可以用于表征视频源设备,并可以将生成的视频数据发送至流媒体服务器200,如可以通过基站(图中未示出)将视频数据发送至流媒体服务器200。也就是说,终端设备100可以理解为设置有视频采集组件的视频源设备。
具体地,终端设备可以是移动终端,如移动电话(或称为“蜂窝”电话)和具有移动终端的计算机,例如,可以是便携式、袖珍式、手持式、计算机内置的或者车载的移动装置,它们与无线接入网交换语言和/或数据;终端设备还可以是个人通信业务(PersonalCommunication Service,PCS)电话、无绳电话、会话发起协议(Session InitiationProtocol,SIP)话机、无线本地环路(Wireless Local Loop,WLL)站、个人数字助理(Personal Digital Assistant,PDA),平板型电脑、无线调制解调器(modem)、手持设备(handset)、膝上型电脑(laptop computer)、机器类型通信(Machine TypeCommunication,MTC)终端等设备;终端设备也可以称为系统、订户单元(SubscriberUnit)、订户站(Subscriber Station),移动站(Mobile Station)、移动台(Mobile)、远程站(Remote Station)、远程终端(Remote Terminal)、接入终端(Access Terminal)、用户终端(User Terminal)、用户代理(User Agent)、用户设备(User Device or User Equipment),等等,本申请实施例不作限定。
其中,基站可以是GSM或CDMA中的基站(Base Transceiver Station,BTS)和/或基站控制器,也可以是WCDMA中的基站(NodeB,NB)和/或无线网络控制器(Radio NetworkController,RNC),还可以是LTE中的演进型基站(Evolutional Node B,eNB或eNodeB),或者中继站或接入点,或者5G网络中的基站(gNB),卫星,设备对设备(Device-to-Device,D2D)通信、车联网(Vehicle-to-X,V2X)通信、机器(Machine-to-Machine,M2M)通信以及未来可能的各种通信中承担基站功能的网络设备等,本申请实施例并不限定。
其中,流媒体服务器200可以用于表征接收终端设备100发送的视频数据的设备,并可以对接收到的视频进行缓存等处理,并可以将视频数据发送至浏览器300,且流媒体服务器200具体可以为web流媒体服务器。
其中,浏览器300可以用于表征对视频进行显示的设备,如液晶显示器(LiquidCrystal Display,LCD)、发光二极管(Light Emitting Diode,LED)显示器及有机发光(Organic Light Emitting Display,OLED)显示器,等等,本申请实施例不做限定,且浏览器300具体可以为web浏览器。
应该理解的是,浏览器300可以支持单路或者多路视频播放,且当浏览器支持多路视频播放时,浏览器所播放的视频的视频数据可以来自于同一视频源(即同一终端设备),也可以来自不同视频源(即多个终端设备)。
值得说明地是,上述示例只是用于示范性地说明本申请实施例的基于无线信号的视频控制方法可以适用的应用场景,而不能理解为对本申请实施例的基于无线信号的视频控制方法的应用场景的限定。
例如,本申请实施例的视频播放方法的应用场景可以适用于不同的网络制式,例如,窄带物联网系统(Narrow Band-Internet of Things,NB-IoT)、全球移动通信系统(Global System for Mobile Communications,GSM)、增强型数据速率GSM演进系统(Enhanced Data rate for GSM Evolution,EDGE)、宽带码分多址系统(Wideband CodeDivision Multiple Access,WCDMA)、码分多址系统(Code Division Multiple Access,CDMA2000)、时分同步码分多址系统(Time Division-Synchronization Code DivisionMultiple Access,TD-SCDMA),长期演进系统(Long Term Evolution,LTE),蓝牙系统,WiFi系统,以及5G移动通信系统的三大应用场景eMBB,URLLC和eMTC,等等。
又如,可以在如图1所示的应用场景中适应性地增加或减少元素,如可以适应性增加终端设备,即增加视频源,等等。
在相关技术中,web浏览器在接收到视频源发送的视频数据后,可以依次对视频数据进行解码、转换及渲染处理,并基于处理后的视频数据进行视频播放。
然而,通过相关技术中解码、转换及渲染处理的方法,会造成web浏览器的内存和CPU占用较高的问题。
本申请的发明人在经过创造性地劳动之后,得到了本申请的发明构思:通过流媒体服务器将视频源发送的视频数据整合成web浏览器可以直接识别的视频数据。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
根据本申请实施例的一个方面,本申请实施例提供了一种视频播放方法,应用于流媒体服务器。
请参阅图2,图2为本申请一个实施例的视频播放方法的流程示意图。
如图2所示,该方法包括:
S101:流媒体服务器建立与浏览器之间的传输控制协议(Transmission ControlProtocol,TCP)连接,生成TCP通道。
其中,本申请实施例的执行主体可以为流媒体服务器,且关于流媒体服务器的描述可以参见上述示例,此处不再赘述。
S102:流媒体服务器依次对获取到视频数据进行流媒体格式封装和websocket协议封装。
其中,流媒体格式(Flash Video,FLV)在视频数据中空间占有率低,形成的视频文件或视频网络包小、加载速度极快,从而可以实现节约内存,提高视频的播放效率的技术效果。
流媒体格式可以包括文件头(FLV header)和文件内容(FLV body)。其中,FLVbody又由很多标签tag组成,tag可以分成三类:音频流audio,视频流video,脚本流(关键字或者文件信息之类)script。
其中,FLV Header包括流媒体格式的全局信息,其中,全局信息可以包括流媒体格式的文件类型、版本、流信息及header长度,等等。关于流媒体格式的内容可以参见图3。
如图3所示,文件类型可以通过3bytes表示,且文件类型为流媒体格式;版本可以通过1byte表示,且一般为0x01,表示流媒体格式版本1;流信息可以用1byte表示,且倒数第一位是1表示有视频,倒数第三位是1表示有音频;header长度可以用4bytes表示,且表示整个文件头的长度,一般为9。
其中,tag可以包括tag头和tag数据区,且tag头可以占用在前的11个字节,剩下的为tag数据区。关于tag的内容可以参见图4。
如图4所示,前一个tag的长度可以用4bytes表示,如果当前的tag为第一个tag,即不存在前一个tag,则前一个tag的长度为0;tag类型可以用1byte表示,且8可以用于表征音频tag,9可以用于表征视频tag,18可以用于表征脚本tag;数据区长度可以用3bytes表示;时间戳可以用3bytes表示,且单位可以为毫秒,如果是脚本tag则是0;扩展时间戳可以用1byte表示,且作为时间戳的高位;信息流ID可以用3bytes表示;数据区由tag类型决定,若为8时为音频数据,为9时为视频数据为18时为脚本数据数据。
其中,websocket协议是HTML5中的一种协议,它实现了浏览器与服务器全双工通信,即websocket协议可以实现本申请实施例中的流媒体服务器与浏览器之间的全双工通信,websocket协议的建立依靠HTTP协议,基于websocket协议中,流媒体服务器和浏览器通过HTTP协议进行一个握手的动作,然后单独建立一条TCP的通信通道(即TCP通道)进行视频数据的发送。
关于websocket协议的内容可以参见图5,如图5所示:
FIN为1bit,可以用于表征是否为信息的最后一帧。
RSV 1-RSV 3,均为1bit,备用,默认为0。
Opcode为4bit,可以用于表征帧类型,当为0x00时,可以用于表征帧类型为连续消息分片;当为0x01时,可以用于表征帧类型为文本消息分片;当为0x02时,可以用于表征帧类型为二进制消息分片;当为0x03~0x07时,可以用于表征帧类型为将来的非控制消息片段保留测操作码;当为0x08时,可以用于表征帧类型为连接关闭;当为0x09时,可以用于表征帧类型为心跳检查ping;当为0x0a时,可以用于表征帧类型为心跳检查pong;当为0x0b~0x0f时,可以用于表征帧类型为将来的控制消息片段保留的操作码。
MASK可以用于表征传输的数据是否有加掩码,如果设置为1,掩码键必须放在masking-key区域,客户端发送给服务端的所有消息,此位的值都是1。
payload length为7bit,可以用于表征传输数据长度,以字节为单位。当这个长度为7bit数字为126时,紧随其后的2个字节也是表示数据长度;当这个长度为7bit数字为127时,紧随其后的8个字节也是表示数据长度。
Masking-key为0或者4bit,当MASK设置为1时有效。
Playload data可以用于表征负载数据,可以为扩展数据Extension data和应用数据Application data之和。
Extension data可以用于表征扩展数据,如果客户端和服务端没有特殊的约定,那么扩展数据长度始终为0。
Application data可以用于表征应用数据,在本申请实施例中,应用数据即为流媒体服务器从视频源获取到的视频数据。
S103:流媒体服务器基于TCP通道将封装后的视频数据发送至浏览器。
也就是说,在本申请实施例中,可以先建立流媒体服务器与浏览器之间的TCP连接,当TCP连接建立完成,可以生成用于实现流媒体服务器与浏览器之间的数据交互的TCP通道,在流媒体服务器对获取到的视频数据进行流媒体格式封装和websocket协议封装之后,将封装后的视频数据发送至浏览器。
值得说明的是,在相关技术中,视频源一般支持的为RTSP协议,所以,当浏览器与视频源之间进行交互时,通过采用的方法是基于RTSP协议进行交互,即视频源基于RTSP协议将视频数据发送至web浏览器,而在本申请实施例中,先建立流媒体服务器与浏览器之间建立TCP连接,由流媒体服务器从视频源处获取到的视频数据进行流媒体格式封装和websocket协议封装,并将封装后的视频数据通过TCP通道发送至浏览器,使得浏览器接收到的视频数据为其可以直接识别的格式,从而避免了相关技术中繁琐的处理流程,从而实现了节约浏览器的内存和CPU占用空间,提高了视频播放的效率。
基于上述分析可知,本申请实施例提供了一种视频播放方法,应用于流媒体服务器,该方法包括:建立与浏览器之间的传输控制协议TCP连接,生成TCP通道,依次对获取到视频数据进行流媒体格式封装和websocket协议封装,基于TCP通道将封装后的视频数据发送至浏览器,通过流媒体服务器对获取到的视频数据进行流媒体格式封装和websocket协议封装,并将封装后的视频数据通过TCP通道发送至浏览器,使得浏览器获取到的视频数据为浏览器可以直接识别的格式的视频数据,避免了相关技术中浏览器需要对由视频源发送的视频数据进行繁琐的处理的弊端,实现了节约处理资源,降低CPU占用率,且提高了视频播放效率的技术效果。
且,结合上述示例可知,浏览器可以支持多路视频的播放,尤其在多路视频播放的应用场景中,通过采用流媒体服务器对视频数据进行流媒体格式封装和websocket协议封装,可以避免相关技术中由浏览器对每一路视频的视频数据进行压缩和缓存的弊端,从而实现释放浏览器的缓存空间,减小内存开销的技术效果,且无需需进行解码、转换等功能合并到同一线程,避免了相关技术中视频数据堆积在网络,而且接收的到视频数据不完整的弊端,从而实现了提高视频播放的质量,减小了网络压力的技术效果。
请参阅图6,图6为本申请另一实施例的视频播放方法的流程示意图。
如图6所示,该方法包括:
S201:流媒体服务器建立与浏览器之间的传输控制协议TCP连接,生成TCP通道。
其中,关于S201的描述可以参见S101,此处不再赘述。
S202:流媒体服务器创建流媒体服务器与视频源之间的媒体通道,媒体通道用于接收视频源发送的视频数据。
例如,流媒体服务器可以基于实时传送协议(Real-time Transport Protocol,RTP)建立流媒体服务器与视频源之间的媒体通道(即RTP通道),并接收视频源通过媒体通道发送的视频数据。
S203:流媒体服务器创建并将视频数据存储至缓存队列。
其中,缓存队列用于表征流媒体服务器用于将接收到的视频数据进行缓存的队列。
在一些实施例中,流媒体服务器获取到视频数据之后,可以对视频数据进行解析并进行组帧处理,并将处理后的视频数据缓存至缓存队列。
在一些实施例中,缓存队列为环形队列,环形队列存储每一帧视频数据的存储时间均为预先设置的存储时间。
其中,存储时间可以由流媒体服务器基于需求、历史记录和试验等进行设置,本申请实施例不做限定。
也就是说,在本申请实施例中,每一帧视频数据的存放于环形队列的时间均为存储时间,而针对每一帧视频数据,当其存储时间达到存储时间时,则该帧视频数据被删除,环形队列中可以存储新的一帧视频数据。
在本申请实施例中,通过设置环形队列对视频数据进行存储,可以节约存储资源,且提高视频数据的实时性和有效性。
S204:流媒体服务器接收浏览器发送的浏览器支持的websocket协议的信息。
值得说明的是,websocket协议的版本可能为多个,而浏览器所支持的websocket协议的版本可能为多个版本中的部分,因此,为了确保由流媒体服务器封装后的视频数据能够被浏览器直接识别,浏览器可以向流媒体服务器发送浏览器器支持的websocket协议的信息,如浏览器支持的websocket协议的版本号等。
在本申请实施例中,流媒体服务器通过接收浏览器发送的浏览器支持的websocket协议的信息,可以便于后续流媒体服务器基于浏览器支持的websocket协议对获取到的视频数据进行封装,从而提高浏览器基于封装后的视频数据的播放的可靠性和准确性。
S205:流媒体服务器接收浏览器发送的视频播放请求,视频播放请求中携带统一资源定位符(Uniform Resoure Locator,URL),视频播放请求用于请求播放与统一资源定位符对应的视频。
值得说明的是,浏览器可以支持多路视频播放,且多路视频可以为同一视频源,也可以为不同的视频源。
在本申请实施例中,通过基于URL对不同的视频进行区分,可以提高多路视频播放的准确性和可靠性的技术效果。
S206:流媒体服务器根据统一资源定位符获取视频数据。
在一些实施例中,S206可以包括:
S2061:流媒体服务器根据统一资源定位符确定预先创建的用于缓存视频的缓存队列。
S2062:流媒体服务器从缓存队列中获取视频数据。
流媒体服务器可以预先设置URL与缓存队列之间的映射关系,当接收到浏览器发送的视频播放请求时,可以基于映射关系确定与视频播放请求中携带的URL对应的缓存队列,并从该缓存队列中获取视频数据。
当然,流媒体服务器可以预先设置视频与缓存队列之间的映射关系,当接收到浏览器发送的视频播放请求时,可以确定与URL对应的视频,并基于映射关系确定与视频对应的缓存队列,并从该缓存队列中获取视频数据。
在一些实施例中,流媒体服务器可以通过查询的方法确定缓存队列中是否存在视频数据,如果是(即缓存队列中存在视频数据),则从缓存队列中获取视频数据;如果不存在(即缓存队列中不存在视频数据),则在预先设置的时间间隔时,再次从缓存队列中获取视频数据。
同理,时间间隔可以由流媒体服务器基于需求、历史记录和试验等进行设置。
在一些实施例中,若缓存队列中不存在视频数据(可以为首次查询时,流媒体服务器没有查询到视频数据,也可以为再次查询时,流媒体服务器没有查询到视频数据,本申请实施例不做限定),则流媒体服务器可以向浏览器发送提示消息,用于提示不存在视频数据。
S207:依次对获取到视频数据进行流媒体格式封装和websocket协议封装。
其中,关于S207可以参见S102,此处不再赘述。
S208:基于TCP通道将封装后的视频数据发送至浏览器。
其中,关于S208可以参见S103,此处不再赘述。
请参阅图7,图7为本申请实施例的视频播放方法的交互示意图。
如图7所示,该方法包括:
S1:流媒体服务器和浏览器建立TCP连接,并创建TCP通道。
S2:浏览器通过HTTP协议向流媒体服务器发送浏览器支持的websocket协议的信息,如websocket的版本号等。
相应的,流媒体服务器接收浏览器发送的浏览器支持的websocket协议的信息,如websocket的版本号等。
S3:流媒体服务器和视频源建立RTP连接,并创建媒体通道。
S4:视频源通过媒体通道向流媒体服务器发送至少一路视频的视频数据。
相应的,流媒体服务器接收视频源发送的至少一路视频的视频数据。
S5:流媒体服务器创建各路视频各自对应的缓存队列。
在本申请实施例中,当为多路视频时,流媒体服务器创建每一路视频各自对应的缓存队列,以对各路视频的视频数据分别进行存储,避免多路视频的视频数据相互干扰的问题,提高视频播放的准确性和可靠性的技术效果。
S6:流媒体服务器将各路视频的视频数据分别缓存至各自对应的缓存队列中。
S7:浏览器向流媒体服务器发送视频播放请求,视频播放请求中携带URL,视频播放请求用于请求播放与URL对应的视频。
相应的,流媒体服务器接收浏览器发送的视频播放请求。
S8:流媒体服务器确定用于存储URL对应的视频的缓存队列。
基于上述描述可知,针对各路视频的视频数据,流媒体服务器设置有与各路视频的视频数据各自对应的缓存队列,因此,当流媒体服务器接收到浏览器发送的视频播放请求时,流媒体服务器可以先确定出用于缓存该视频的视频数据的缓存队列。
S9:流媒体服务器查询缓存队列中是否存在视频数据,若是,则执行S10;若否,则在预先设置的时间间隔时,再次执行S9。
S10:流媒体服务器获取视频数据。
S11:流媒体服务器对视频数据进行流媒体格式封装。
S12:流媒体服务器对经S11封装后的视频数据进行websocket协议封装。
S13:流媒体服务器通过TCP通道向浏览器发送经S12得到的封装后的视频数据。
相应的,浏览器接收流媒体服务器发送的封装后的视频数据。
S14:浏览器基于封装后的视频数据进行视频播放。
值得说明的是,在一些实施例中,可以由浏览器停止视频播放,并主动断开视频数据,流媒体服务器则停止视频数据的发送,并断开和浏览器之间建立的连接,当然,此时流媒体服务器可以继续获取来自视频源的视频数据,并缓存在环形队列里,而通过将视频数据缓存至环形队列,可以降低内存占用率,当然,流媒体服务器可以断开与视频源之间的连接。
在另一些实施例中,当流媒体服务器无法从视频源获取到视频数据时,流媒体服务器也可以主动断开流媒体服务器与浏览器之间的连接。
根据本申请实施例的另一个方面,本申请实施例还提供了一种视频播放方法,应用于浏览器。
请参阅图8,图8为本申请另一实施例的视频播放方法的流程示意图。
如图8所示,该方法包括:
S301:浏览器建立与流媒体服务器之间的传输控制协议TCP连接,生成TCP通道。
其中,本申请实施例的执行主体可以为浏览器,关于浏览器的描述可以参见上述示例,此处不再赘述。
S302:浏览器接收流媒体服务器基于TCP通道传输的封装后的视频数据,其中,封装后的视频数据是流媒体依次对获取到视频数据进行流媒体格式封装和websocket协议封装生成的。
S303:浏览器基于封装后的视频数据进行视频播放。
在本申请实施例中,浏览器与流媒体服务器建立TCP连接,并接收流媒体服务器进行流媒体格式封装和websocket协议封装生成的视频数据,浏览器可以直接对接收到的视频数据进行识别,而无需经过解码和转换等复杂的处理过程,可以降低CPU消耗的技术效果。
在一些实施例中,在所述建立与浏览器之间的传输控制协议TCP通道之后,所述方法还包括:
向所述流媒体服务器发送视频播放请求,所述视频播放请求中携带统一资源定位符,所述视频播放请求用于请求播放与所述统一资源定位符对应的视频;
其中,封装前的视频数据是所述流媒体服务器根据所述统一资源定位符获取的。
在本申请实施例中,浏览器可以支持单路视频播放,也可以支持多路视频播放。
尤其当浏览器支持多路视频播放时,浏览器可以在向流媒体服务器发送的视频播放请求中携带统一资源定位符,以便流媒体服务器基于统一资源定位符确定浏览器请求播放的视频,从而实现视频播放的准确性和可靠性的技术效果。
在一些实施中,在所述建立与流媒体服务器之间的传输控制协议TCP连接之后,所述方法还包括:
向流媒体服务器发送所述浏览器支持的websocket协议的信息。
根据本申请实施例的另一个方面,本申请实施例还提供了一种流媒体服务器,用于执行如2和/或6所示的视频播放方法。
请参阅图9,图9为本申请实施例的流媒体服务器的示意图。
如图9所示,流媒体服务器包括:
第一建立模块11,用于建立与浏览器之间的传输控制协议TCP连接,生成TCP通道;
封装模块12,用于依次对获取到视频数据进行流媒体格式封装和websocket协议封装;
第一发送模块13,用于基于所述TCP通道将封装后的视频数据发送至所述浏览器。
结合图9可知,在一些实施例中,所述流媒体服务器还包括:
第一接收模块14,用于接收所述浏览器发送的视频播放请求,所述视频播放请求中携带统一资源定位符,所述视频播放请求用于请求播放与所述统一资源定位符对应的视频;
获取模块15,用于根据所述统一资源定位符获取所述视频数据。
在一些实施例中,所述获取模块15用于,根据所述统一资源定位符确定预先创建的用于缓存所述视频的缓存队列,从所述缓存队列中获取所述视频数据。
结合图9可知,在一些实施例中,所述流媒体服务器还包括:
创建模块16,用于创建所述流媒体服务器与视频源之间的媒体通道,所述媒体通道用于接收所述视频源发送的所述视频数据;
存储模块17,用于创建并将所述视频数据存储至所述缓存队列。
在一些实施例中,所述获取模块14用于,若所述缓存队列中没有所述视频数据,则在预先设置的时间间隔时,再次从所述缓存队列中获取所述视频数据。
在一些实施例中,所述缓存队列为环形队列,所述环形队列存储每一帧视频数据的存储时间均为预先设置的存储时间。
在一些实施例中,所述第一接收模块14用于,接收所述浏览器发送的所述浏览器支持的websocket协议。
根据本申请实施例的另一个方面,本申请实施例还提供了一种浏览器,用于执行如图8所示的视频播放方法。
请参阅图10,图10为本申请实施例的浏览器的示意图。
如图10所示,所述浏览器包括:
第二建立模块21,用于建立与流媒体服务器之间的传输控制协议TCP连接,生成TCP通道;
第二接收模块22,用于接收所述流媒体服务器基于所述TCP通道传输的封装后的视频数据,其中,所述封装后的视频数据是所述流媒体依次对获取到视频数据进行流媒体格式封装和websocket协议封装生成的;
播放模块23,用于基于所述封装后的视频数据进行视频播放。
结合图10可知,在一些实施例中,所述浏览器还包括:
第二发送模块24,用于向所述流媒体服务器发送视频播放请求,所述视频播放请求中携带统一资源定位符,所述视频播放请求用于请求播放与所述统一资源定位符对应的视频;
其中,封装前的视频数据是所述流媒体服务器根据所述统一资源定位符获取的。
在一些实施例中,第二发送模块24用于,向流媒体服务器发送所述浏览器支持的websocket协议的信息。
根据本申请实施例的另一个方面,本申请实施例还提供了一种视频播放系统,所述系统包括:
如上任一实施例所述的流媒体服务器,如图9所示的流媒体服务器;
如上任一实施例所述的浏览器,如图10所示的浏览器。
在一些实施例中,所述系统还可以包括视频源。
根据本申请实施例的另一个方面,本申请实施例还提供了一种电子设备,包括:存储器,处理器;
存储器用于存储处理器可执行指令的存储器;
其中,当执行存储器中的指令时,处理器被配置为实现如上任一实施例所述的方法,如实现如图2、图6、图7、图8中任一实施例所示的视频播放方法。
请参阅图11,图11为本申请实施例的电子设备的框图。
如图11所示,电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请实施例的实现。
如图11所示,该电子设备包括:一个或多个处理器101、存储器102,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图11中以一个处理器101为例。
存储器102即为本申请实施例所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请实施例所提供的视频播放方法。本申请实施例的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请实施例所提供的视频播放方法。
存储器102作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的程序指令/模块。处理器101通过运行存储在存储器102中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的视频播放方法。
存储器102可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据电子设备的使用所创建的数据等。此外,存储器102可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器102可选包括相对于处理器101远程设置的存储器,这些远程存储器可以通过网络连接至电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、区块链服务网络(Block-chain-based Service Network,BSN)、移动通信网及其组合。
电子设备还可以包括:输入装置103和输出装置104。处理器101、存储器102、输入装置103和输出装置104可以通过总线或者其他方式连接,图11中以通过总线连接为例。
输入装置103可接收输入的数字或字符信息,以及产生与电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置104可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
这些计算机程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算机程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、区块链服务网络(Block-chain-based Service Network,BSN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
其中,计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于用户设备中。当然,处理器和存储介质也可以作为分立组件存在于通信设备中。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或对其中部分或全部技术特征进行等同替换;而这些修改或替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (23)
1.一种视频播放方法,其特征在于,应用于流媒体服务器,所述方法包括:
建立与浏览器之间的传输控制协议TCP连接,生成TCP通道;
依次对获取到视频数据进行流媒体格式封装和websocket协议封装;
基于所述TCP通道将封装后的视频数据发送至所述浏览器。
2.根据权利要求1所述的方法,其特征在于,在所述建立与浏览器之间的传输控制协议TCP连接之后,所述方法还包括:
接收所述浏览器发送的视频播放请求,所述视频播放请求中携带统一资源定位符,所述视频播放请求用于请求播放与所述统一资源定位符对应的视频;
根据所述统一资源定位符获取所述视频数据。
3.根据权利要求2所述的方法,其特征在于,所述根据所述统一资源定位符获取所述视频数据包括:
根据所述统一资源定位符确定预先创建的用于缓存所述视频的缓存队列;
从所述缓存队列中获取所述视频数据。
4.根据权利要求3所述的方法,其特征在于,在所述根据所述统一资源定位符获取所述视频数据之前,所述方法还包括:
创建所述流媒体服务器与视频源之间的媒体通道,所述媒体通道用于接收所述视频源发送的所述视频数据;
创建并将所述视频数据存储至所述缓存队列。
5.根据权利要求3所述的方法,其特征在于,所述从所述缓存队列中获取所述视频数据包括:
若所述缓存队列中没有所述视频数据,则在预先设置的时间间隔时,再次从所述缓存队列中获取所述视频数据。
6.根据权利要求3至5中任一项所述的方法,其特征在于,所述缓存队列为环形队列,所述环形队列存储每一帧视频数据的存储时间均为预先设置的存储时间。
7.根据权利要求1-6中任一项所述的方法,其特征在于,在建立与浏览器之间的传输控制协议TCP连接之后,所述方法还包括:
接收所述浏览器发送的所述浏览器支持的websocket协议。
8.一种视频播放方法,其特征在于,应用于浏览器,所述方法包括:
建立与流媒体服务器之间的传输控制协议TCP连接,生成TCP通道;
接收所述流媒体服务器基于所述TCP通道传输的封装后的视频数据,其中,所述封装后的视频数据是所述流媒体依次对获取到视频数据进行流媒体格式封装和websocket协议封装生成的;
基于所述封装后的视频数据进行视频播放。
9.根据权利要求8所述的方法,其特征在于,在所述建立与浏览器之间的传输控制协议TCP通道之后,所述方法还包括:
向所述流媒体服务器发送视频播放请求,所述视频播放请求中携带统一资源定位符,所述视频播放请求用于请求播放与所述统一资源定位符对应的视频;
其中,封装前的视频数据是所述流媒体服务器根据所述统一资源定位符获取的。
10.根据权利要求8或9所述的方法,其特征在于,在所述建立与流媒体服务器之间的传输控制协议TCP连接之后,所述方法还包括:
向流媒体服务器发送所述浏览器支持的websocket协议的信息。
11.一种流媒体服务器,其特征在于,所述流媒体服务器包括:
第一建立模块,用于建立与浏览器之间的传输控制协议TCP连接,生成TCP通道;
封装模块,用于依次对获取到视频数据进行流媒体格式封装和websocket协议封装;
第一发送模块,用于基于所述TCP通道将封装后的视频数据发送至所述浏览器。
12.根据权利要求11所述的流媒体服务器,其特征在于,所述流媒体服务器还包括:
第一接收模块,用于接收所述浏览器发送的视频播放请求,所述视频播放请求中携带统一资源定位符,所述视频播放请求用于请求播放与所述统一资源定位符对应的视频;
获取模块,用于根据所述统一资源定位符获取所述视频数据。
13.根据权利要求12所述的流媒体服务器,其特征在于,所述获取模块用于,根据所述统一资源定位符确定预先创建的用于缓存所述视频的缓存队列,从所述缓存队列中获取所述视频数据。
14.根据权利要求13所述的流媒体服务器,其特征在于,所述流媒体服务器还包括:
创建模块,用于创建所述流媒体服务器与视频源之间的媒体通道,所述媒体通道用于接收所述视频源发送的所述视频数据;
存储模块,用于创建并将所述视频数据存储至所述缓存队列。
15.根据权利要求13所述的流媒体服务器,其特征在于,所述获取模块用于,若所述缓存队列中没有所述视频数据,则在预先设置的时间间隔时,再次从所述缓存队列中获取所述视频数据。
16.根据权利要求13至15中任一项所述的流媒体服务器,其特征在于,所述缓存队列为环形队列,所述环形队列存储每一帧视频数据的存储时间均为预先设置的存储时间。
17.根据权利要求12-16中任一项所述的流媒体服务器,其特征在于,所述第一接收模块用于,接收所述浏览器发送的所述浏览器支持的websocket协议。
18.一种浏览器,其特征在于,所述浏览器包括:
第二建立模块,用于建立与流媒体服务器之间的传输控制协议TCP连接,生成TCP通道;
第二接收模块,用于接收所述流媒体服务器基于所述TCP通道传输的封装后的视频数据,其中,所述封装后的视频数据是所述流媒体依次对获取到视频数据进行流媒体格式封装和websocket协议封装生成的;
播放模块,用于基于所述封装后的视频数据进行视频播放。
19.根据权利要求18所述的浏览器,其特征在于,所述浏览器还包括:
第二发送模块,用于向所述流媒体服务器发送视频播放请求,所述视频播放请求中携带统一资源定位符,所述视频播放请求用于请求播放与所述统一资源定位符对应的视频;
其中,封装前的视频数据是所述流媒体服务器根据所述统一资源定位符获取的。
20.根据权利要求19所述的浏览器,其特征在于,所述第二发送模块用于,向流媒体服务器发送所述浏览器支持的websocket协议的信息。
21.一种视频播放系统,其特征在于,所述系统包括:
如权利要求11至17中任一项所述的流媒体服务器;
如权利要求18至20中任一项所述的浏览器。
22.一种电子设备,其特征在于,包括:存储器,处理器;
所述存储器用于存储所述处理器可执行指令的存储器;
其中,当执行所述存储器中的指令时,所述处理器被配置为实现如权利要求1至7中任一项所述的方法;或者,
当执行所述存储器中的指令时,所述处理器被配置为实现如权利要求8至10中任一项所述的方法。
23.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-7中任一项所述的方法;或者,
该程序被处理器执行时实现权利要求8-10中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010783581.6A CN114071241A (zh) | 2020-08-06 | 2020-08-06 | 视频播放方法、系统、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010783581.6A CN114071241A (zh) | 2020-08-06 | 2020-08-06 | 视频播放方法、系统、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114071241A true CN114071241A (zh) | 2022-02-18 |
Family
ID=80232417
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010783581.6A Pending CN114071241A (zh) | 2020-08-06 | 2020-08-06 | 视频播放方法、系统、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114071241A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115589399A (zh) * | 2022-10-11 | 2023-01-10 | 北京太格时代自动化系统设备有限公司 | 变电所辅助监控视频远程播放方法和装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102118428A (zh) * | 2010-12-29 | 2011-07-06 | 天脉聚源(北京)传媒科技有限公司 | 一种播放流媒体的方法和系统 |
CN103532984A (zh) * | 2013-11-01 | 2014-01-22 | 中国联合网络通信集团有限公司 | websocket协议的数据传输方法、设备和系统 |
CN104581229A (zh) * | 2015-01-16 | 2015-04-29 | 京东方科技集团股份有限公司 | 一种流媒体数据传输装置、方法和系统 |
US20160006817A1 (en) * | 2014-07-03 | 2016-01-07 | Telefonaktiebolaget L M Ericsson (Publ) | System and method for pushing live media content in an adaptive streaming environment |
CN109922053A (zh) * | 2019-02-22 | 2019-06-21 | 北京三快在线科技有限公司 | 数据传输方法、装置、电子设备及可读存储介质 |
-
2020
- 2020-08-06 CN CN202010783581.6A patent/CN114071241A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102118428A (zh) * | 2010-12-29 | 2011-07-06 | 天脉聚源(北京)传媒科技有限公司 | 一种播放流媒体的方法和系统 |
CN103532984A (zh) * | 2013-11-01 | 2014-01-22 | 中国联合网络通信集团有限公司 | websocket协议的数据传输方法、设备和系统 |
US20160006817A1 (en) * | 2014-07-03 | 2016-01-07 | Telefonaktiebolaget L M Ericsson (Publ) | System and method for pushing live media content in an adaptive streaming environment |
CN104581229A (zh) * | 2015-01-16 | 2015-04-29 | 京东方科技集团股份有限公司 | 一种流媒体数据传输装置、方法和系统 |
CN109922053A (zh) * | 2019-02-22 | 2019-06-21 | 北京三快在线科技有限公司 | 数据传输方法、装置、电子设备及可读存储介质 |
Non-Patent Citations (1)
Title |
---|
夏靖波、陈雅蓉: "《嵌入式系统原理与开发(第三版)", 西安电子科技大学出版社, pages: 244 - 245 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115589399A (zh) * | 2022-10-11 | 2023-01-10 | 北京太格时代自动化系统设备有限公司 | 变电所辅助监控视频远程播放方法和装置 |
CN115589399B (zh) * | 2022-10-11 | 2023-06-27 | 北京太格时代电气股份有限公司 | 变电所辅助监控视频远程播放方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109117361B (zh) | 一种小程序的远程调试方法、相关设备及系统 | |
US10320552B2 (en) | Multicast broadcast multimedia service-assisted content distribution | |
CA2824559C (en) | User input back channel for wireless displays | |
RU2567378C2 (ru) | Обратный канал пользовательского ввода для беспроводных дисплеев | |
US7219163B2 (en) | Method and system that tailors format of transmission to suit client capabilities and link characteristics | |
EP2666069A1 (en) | User input back channel for wireless displays | |
WO2012100189A1 (en) | User input back channel for wireless displays | |
EP2666274A1 (en) | User input back channel for wireless displays | |
WO2012100214A1 (en) | User input back channel for wireless displays | |
KR102316873B1 (ko) | 비디오 전송 방법, 장치, 및 시스템과 컴퓨터 판독가능 저장 매체 | |
US10356483B2 (en) | System and method to transmit data packets via a cellular network | |
KR102149445B1 (ko) | 멀티미디어 브로드캐스트 멀티캐스트 서비스 기반의 플렉서블 브로드캐스트 서비스를 위한 방법 및 장치 | |
IL227162A (en) | Rear channel input uses for wireless displays | |
CN114071241A (zh) | 视频播放方法、系统、电子设备及存储介质 | |
CN113141520B (zh) | 视频流传输方法、装置、电子设备及存储介质 | |
US20160149855A1 (en) | Service processing method, system, and relevant device | |
CN110636374A (zh) | 用于查找信息的方法和装置 | |
CN114189562B (zh) | 数据处理方法、装置、终端和存储介质 | |
CN115942000A (zh) | 基于h.264格式的视频流转码方法及装置、设备及介质 | |
CN117544701A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20220218 |
|
RJ01 | Rejection of invention patent application after publication |