CN107888932A - 一种基于浏览器的跨平台视频直播的***及方法 - Google Patents
一种基于浏览器的跨平台视频直播的***及方法 Download PDFInfo
- Publication number
- CN107888932A CN107888932A CN201710980780.4A CN201710980780A CN107888932A CN 107888932 A CN107888932 A CN 107888932A CN 201710980780 A CN201710980780 A CN 201710980780A CN 107888932 A CN107888932 A CN 107888932A
- Authority
- CN
- China
- Prior art keywords
- video
- control module
- module
- objects
- data
- 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
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/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
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/65—Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- 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/61—Network physical structure; Signal processing
- H04N21/6106—Network physical structure; Signal processing specially adapted to the downstream path of the transmission network
- H04N21/6125—Network physical structure; Signal processing specially adapted to the downstream path of the transmission network involving transmission via Internet
-
- 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/64322—IP
-
- 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/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
- H04N21/8456—Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Databases & Information Systems (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种基于浏览器的跨平台视频直播的***及方法,包括视频原始码流解复用模块、视频段混合模块、转换控制模块、播放控制模块、媒体源扩展控制模块、IO模块,其中播放控制模块是用户操作的接口,负责协调转换控制模块和媒体源扩展控制模块之间的数据流和控制流;本发明通过提供了通过分析视频数据包中的视频描述信息和码流数据,并将分析出来的视频描述信息和码流数据组装成标准的视频文件格式,再调用基于浏览器的原生接口实现视频直播,不仅实现了跨平台的视频直播,而且支持所有主流流媒体协议接入,也可以支持用户私有流媒体协议接入,并且具有低延迟、可靠性高、通用性好、灵活性高等优点。
Description
技术领域
本发明涉及一种较大范围,具体是一种基于浏览器的跨平台视频直播的***及方法。
背景技术
随着光纤、3G和4G网络的建设,网络的速度越来越快、带宽也越来越大,通过有线和移动电信网络传输视频流媒体信息已经非常普遍,人们早已经习惯通过互联网看在线电影、学习在线视频教程等。最近几年,视频直播正悄然兴起,视频直播因为其实时性、低延迟、交互性强等独特的优势,越来越受人们的欢迎,例如通过视频直播来社交相对于文字、图片等方式来说,具有不可比拟的优势;老师可以通过视频直播完成在线教学;视频直播功能也是安防领域的基础功能之一;另外,现在非常流行的家庭安防,核心功能就是通过手机的视频直播,人们可以实时查看家里正在发生的情况、家长可以实时看到孩子在校情况等等。由此可以预见,未来视频直播应用的领域将越来越广泛。
视频直播是指利用既有的互联网实现对音视频信号的实时采集、实时传输,并且能够在远端实现流畅的实时播放。视频直播由于其处理数据量大、实时采集、实时传输、实时播放、低延迟等特点,具有较高的技术门槛,一直以来都是限制行业应用开展的难点之一,尤其在视频播放端,由于不同用户使用的视频播放设备各式各样,有PC,平板电脑、手机等,而且不同型号的播放设备,硬件配置、操作***也各不相同,要实现一致的播放效果,需要开发者为不同设备、不同配置、不同操作***、不同开发语言的平台开发出相应的播放器;因此为了支持市面上常见的视频播放设备,至少要实现对Windows、Mac OS、IOS,Android、Linux等多个平台的支持,而这些平台的开发语言又涉及:Object C++,java,VC++等,工作量可想而知;为了满足跨平台视频直播的需要,公司需要为不同平台成立相应的开发小组来开发和维护,对公司来说,同时维护多个平台不仅意味着需要巨大的开支,而且还会严重影响产品开发的进度。因此一个成熟的跨平台的视频直播方案将会显著提高开发商的经济效益。一个跨平台视频直播方案应当能够同时在Windows、Mac OS、IOS,Android、Linux等多个平台上稳定运行。
由于所有设备平台上都安装了浏览器,大部分浏览器都遵循W3C标准规范,并且W3C标准尤其是最新的html5规范对于视频流媒体的支持越来越丰富;浏览器还具有开发语言一致、跨平台、通讯协议简单、B/S架构、无需安装客户端等优点;正因为浏览器有以上诸多优点,因此许多公司尝试通过使用浏览器的方式实现视频直播,从而解决需要维护多个平台的难题。但是由于视频直播的技术特殊性,浏览器并没有现成的方案实现视频直播,需要开发者根据各自的协议、格式和业务要求形成各自的方案。市面上浏览器视频直播,主流方案有:基于flash的跨平台视频直播方案,基于插件的跨平台视频直播方案,基于HTTPLive Streaming(HLS)的跨平台视频直播方案等。由于基于flash的视频直播方案和基于插件的跨平台视频直播方案,由于安全性低、稳定性差、资源消耗高等诸多问题,越来越多的主流浏览器厂商将不再支持这两种视频直播方案,面临淘汰;前基于HTTP Live Streaming(HLS)的方案成为跨平台视频直播的最佳方案;HTTP Live Streaming实现是基于http的流媒体传输协议,通过将连续的直播视频数据流分解为一个个连续的、时间很短的小媒体文件(MPEG-TS格式),并存储在服务器端,然后客户端不断从服务器下载和播放这些小文件来实现直播。HTTP Live Streaming的缺点是1)播放延迟高,根据情况一般在5s-30s不等;2)会在服务器端形成大量的碎片文件,频繁硬盘IO操作会降低***的性能和吞吐量;3)实现直播前必须先下载索引文件,缺乏灵活性,4)数据流的分解、格式转换、文件打包、硬盘操作以及索引文件生成使得服务器端的处理较复杂,通用性差。5)只能通过http协议传输文件,现有流媒体服务器必须进行二次开发。
发明内容
本发明的目的在于提供一种基于浏览器的跨平台视频直播的***及方法,以解决上述背景技术中提出的问题。
为实现上述目的,本发明提供如下技术方案:
一种基于浏览器的跨平台视频直播的***,包括视频原始码流解复用模块、视频段混合模块、转换控制模块、播放控制模块、媒体源扩展控制模块、IO模块,其中播放控制模块是用户操作的接口,为用户提供H264视频码流和Acc音频码流的直播、暂停、继续、停止、抓图等功能,并且负责协调转换控制模块和媒体源扩展控制模块之间的数据流和控制流;媒体源扩展控制模块负责和浏览器的API打交道,通过创建MeidaSource、sourceBuffer等对象、以及建立和videoElement的关联从而实现视频的渲染控制,同时,可以接收来自播放控制模块的控制命令和流媒体数据,并且当浏览器对象状态改变时,通知上层的播放控制模块来控制流媒体数据源的启停;转换控制模块负责接收来自下层的流媒体数据,根据流媒体数据类型,将流媒体数据包装成不同的事件,上报到上层播放控制模块,并根据接收到的播放控制模块命令,控制IO模块的启动和关闭,实现流媒体数据源的打开、暂停、继续和关闭;IO模块:负责和流媒体服务器建立连接,并从流媒体服务器接收和发送流媒体数据协议包;IO模块的启停是受转换控制模块控制的;视频原始码流解复用模块:负责从视频原始码流的数据包中分离出一个个单独的视频网络抽象层单元,并根据视频网络抽象层单元解析出视频元信息对象和视频帧数据对象;视频段混合模块:负责将视频元信息对象根据ISO-BMFF协议格式包装成符合fmp4格式的视频元信息初始化段对象,再将视频帧数据对象根据ISO-BMFF协议格式包装成符合fmp4格式的视频帧数据媒体段对象。
一种基于浏览器的跨平台视频直播的方法,包括如下步骤:
1)播放控制模块根据启动参数启动视频直播,启动参数包括流媒体服务器地址、前端视频采集设备ID,前端视频采集设备的通道号(根据情况可选),前端视频采集设备的视频清晰度(分为高、中、低三个等级);
2)播放控制模块接收到视频直播命令后,首先触发媒体源扩展控制模块初始化,媒体源扩展控制模块初始化过程包括:创建浏览器MediaSource对象,并将浏览器的videoElement对象src属性指向刚创建的MediaSource对象,然后为MediaSource对象绑定事件响应函数;
3)媒体源扩展控制模块完成初始化后,MediaSource对象的‘sourceopen’事件被触发,在对应的事件响应函数中,向播放控制模块发送‘SOURCEOPEN’事件,通知播放控制模块媒体源扩展模块处于已经打开状态,可以接收流媒体数据;
4)播放控制模块收到媒体源扩展模块的‘SOURCEOPEN’事件后,创建转换控制模块对象,并为转换控制模块绑定事件响应函数,为从转换控制模块接收流媒体数据做准备,转换控制模块对象创建完成后,执行转换控制模块的启动接口;
5)转换控制模块的启动接口被执行时,首先分别创建视频原始码流解复用模块对象、视频段混合模块对象和IO模块对象;并为四个对象建立数据传输管道,即IO模块对象处理完成的数据发送到视频原始码流解复用模块对象处理,由视频原始码流解复用模块对象处理完成后再发送到视频段混合模块对象中处理,视频段混合模块对象处理完成后,再将处理后的数据发送到转换控制模块中处理,这样就形成了数据处理的管道,具体参考图1;上述工作完成之后,触发IO模块对象的打开视频直播接口;
6)IO模块的打开视频直播接口被执行时,首先创建websocket对象,作为播放器和流媒体服务器之间的的通讯通道,websocket通道连接建立后,IO模块对象通过websocket通道将视频直播的请求发送到流媒体服务器,并等待流媒体服务器的反馈数据;当IO模块接收到流媒体服务器发送的包含视频数据的传输协议包后,通过视频原始码流解复用模块提供的接口,将协议包发送给视频原始码流解复用模块进行协议包分析和处理;
7)视频原始码流解复用模块将原始视频码流从传输协议包中分离出来;服务器发送过来的原始视频码流的格式是,每秒发送一条包含IDR NALU的关键视频帧,后面紧跟着若干条包含NDR NALU的非关键视频帧,每一帧数据都由一个独立的传输协议包发送;因此视频数据包中的要么是一条完整的IDR帧,要么是一条完整的NDR帧;
8)视频原始码流解复用模块根据原始视频码流中的属性判断接收到的视频帧是否是关键帧,如果是关键帧,则将关键帧分解成单独的视频参数集网络抽象层单元(SPSnalu),图像参数集网络抽象层单元(PPS nalu),补充增强信息单元(SEI nalu),以及IDR(即时解码刷新)NALU,再判断是否已经完成了视频流元信息的初始化;如果未初始化视频流元信息,则根据SPS,PPS,SEI解析出视频流元信息;并将视频流元信息发送到视频段混合模块;如果已经完成了视频流元信息的初始化,则从IDR NALU中解析出视频采样帧对象,并将视频采样帧对象发送到视频段混合模块中处理;
9)如果视频帧不是关键帧,则从非关键帧中分解出NDR(非即时解码刷新)NALU,并且从NDR NALU中解析出视频采样帧对象,并将视频采样帧对象发送到视频段混合模块中处理;
10)视频段混合模块如果接收到的是视频流元信息,则根据视频流元信息里面的参数生成ISO BIMM格式的ftyp(file type)box+moov(movie metadata)box字节流;并将生成字节流包装成initSegment对象发送到转换控制模块处理;
11)视频段混合模块如果接收到的是视频采样帧对象,则根据视频采样帧对象里面的数据生成ISO BIMM格式的moof(movie fregment)box+mdat(media data)box;并将生成的字节流包装成mediaSegment对象发送到转换控制模块处理;
12)转换控制模块接收到initSegment对象后,触发已经注册到播放控制模块对象上的的’INIT_SEGMENT’事件,并通过该事件将initSegment对象发送到播放控制模块;
13)转换控制模块接收到mediaSegment对象后,触发已经注册到播放控制模块对象上的的’MEDIA_SEGMENT’事件,并通过该事件将mediaSegment对象发送到播放控制模块;
14)当播放控制模块收到’INIT_SEGMENT’事件后,在绑定的事件处理函数中,调用媒体源扩展控制模块的添加initSegment方法,该方法调用mediaSource对象的addSourceBuffer方法;
15)当mediaSource完成addSourceBuffer方法后,触发updateend事件,这时,mediaSource可以接收mediaSegment对象,实现视频播放;
16)当播放控制模块收到媒体初始化事件后,调用媒体源扩展控制模块的添加mediaSegment方法,该方法调用mediaSource对象的appendBuffer方法。
作为本发明进一步的方案:所述媒体扩展控制模块执行步骤如下:
1)首先创建浏览器MediaSource对象;由于MediaSource对象加载是异步的,所以为MediaSource对象绑定事件响应函数;
2)再将MediaSource对象绑定到videoElement控件上;
3)等待MediaSource对象加载完成,MediaSource对象加载完成后,触发‘SOURCE_OPEN’事件,媒体扩展控制模块收到该事件后,也触发一个‘SOURCE_OPEN’事件给播放控制模块,通知上层模块准备好接收流媒体数据;媒体扩展控制模块提供2个接口接收上层发送来的流媒体数据,分别是appendInitSegment和appendMediaSegment,其中appendInitSegment接口负责接收initSegment对象,appendMediaSegment接口负责接收mediaSegment对象;appendInitSegment接口执行时,首先判断mediaSource对象的状态,如果不是‘open’状态,就暂时添加到流媒体数据pending队列中,然后返回;否则,从initSegment对象中分析出媒体类型,媒体类型由容器类型+编码算法组成,本例容器类型为fmp4,编码算法为h264;接着,根据媒体类型创建SourceBuffer对象,并为SourceBuffer对象绑定事件响应函数;再将initSegment对象添加到流媒体数据pending队列中;appendMediaSegment接口执行时,首先根据mediaSegment对象的type属性,获取媒体类型;再根据媒体类型找到对应的SourceBuffer对象,该SourceBuffer对象是在appendInitSegment接口执行时创建的;判断SourceBuffer对象的状态,如果处于’updating’状态,则添加到流媒体数据pending队列中,稍后执行;否则,循环遍历流媒体数据pending队列,将每一个mediaSegment对象的data属性中的媒体字节流通过SourceBuffer对象的appendBuffer方法添加进去;
4)完成了流媒体播放的初始化过程。
作为本发明再进一步的方案:所述转换控制模块执行步骤如下
1)初始化私有成员变量,包括摄像机ID,码流类型和流媒体地址;
2)创建视频原始码流解复用模块对象、视频段混合模块对象和IO模块对象;
3)依次将IO模块对象、视频原始码流解复用模块对象、视频段混合模块对象和转换控制模块对象对接,形成一个管道;
4)转换控制模块提供启动接口供上层调用,执行获取流媒体数据流的功能,当该接口被调用时,为新创建的IO模块对象绑定事件响应函数;
5)调用IO模块的打开视频通道接口。
作为本发明再进一步的方案:所述IO模块获取流媒体数据流的执行步骤如下:
1)根据流媒体服务器地址,创建websocket对象;
2)模块就收到流媒体服务器的响应后,触发onmessage事件;
3)在onmessage事件响应函数中判断。
作为本发明再进一步的方案:所述视频原始码流解复用模块执行步骤如下:
1)解析原始码流成一系列独立的视频网络抽象层单元
2)生成视频元信息对象。
作为本发明再进一步的方案:所述视频原始码流解复用模块执行步骤如下:
1)判断从视频原始码流解复用模块接收到的对象类型;
2)根据对象中的参数信息按照ISO BIMM规范格式生成meta box字节流。
与现有技术相比,本发明的有益效果是:
本发明通过提供了通过分析视频数据包中的视频描述信息和码流数据,并将分析出来的视频描述信息和码流数据组装成标准的视频文件格式,再调用基于浏览器的原生接口实现视频直播,不仅实现了跨平台的视频直播,而且支持所有主流流媒体协议接入,也可以支持用户私有流媒体协议接入,并且具有低延迟、可靠性高、通用性好、灵活性高等优点。
附图说明
图1为一种基于浏览器的跨平台视频直播的***及方法的总体框架结构示意图。
图2为一种基于浏览器的跨平台视频直播的***及方法中数据类型转换示意图。
图3为一种基于浏览器的跨平台视频直播的***及方法中播放控制模块执行视频直播流程图。
图4为一种基于浏览器的跨平台视频直播的***及方法中媒体扩展控制模块执行视频直播流程示意图。
图5为一种基于浏览器的跨平台视频直播的***及方法中中转换控制模块执行视频直播流程示意图。
图6为一种基于浏览器的跨平台视频直播的***及方法中IO模块执行视频直播流程图。
图7为一种基于浏览器的跨平台视频直播的***及方法中视频原始码流解复用模块执行视频直播视频原始码流解复用模块执行视频直播示意图。
图8为一种基于浏览器的跨平台视频直播的***及方法中视频段混合模块执行视频直播流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1~8,本发明实施例中,一种基于浏览器的跨平台视频直播的***,包括视频原始码流解复用模块、视频段混合模块、转换控制模块、播放控制模块、媒体源扩展控制模块、IO模块,其中播放控制模块是用户操作的接口,为用户提供H264视频码流和Acc音频码流的直播、暂停、继续、停止、抓图等功能,并且负责协调转换控制模块和媒体源扩展控制模块之间的数据流和控制流;媒体源扩展控制模块负责和浏览器的API打交道,通过创建MeidaSource、sourceBuffer等对象、以及建立和videoElement的关联从而实现视频的渲染控制,同时,可以接收来自播放控制模块的控制命令和流媒体数据,并且当浏览器对象状态改变时,通知上层的播放控制模块来控制流媒体数据源的启停;转换控制模块负责接收来自下层的流媒体数据,根据流媒体数据类型,将流媒体数据包装成不同的事件,上报到上层播放控制模块,并根据接收到的播放控制模块命令,控制IO模块的启动和关闭,实现流媒体数据源的打开、暂停、继续和关闭;IO模块:负责和流媒体服务器建立连接,并从流媒体服务器接收和发送流媒体数据协议包;IO模块的启停是受转换控制模块控制的;视频原始码流解复用模块:负责从视频原始码流的数据包中分离出一个个单独的视频网络抽象层单元,并根据视频网络抽象层单元解析出视频元信息对象和视频帧数据对象;视频段混合模块:负责将视频元信息对象根据ISO-BMFF协议格式包装成符合fmp4格式的视频元信息初始化段对象,再将视频帧数据对象根据ISO-BMFF协议格式包装成符合fmp4格式的视频帧数据媒体段对象。
一种基于浏览器的跨平台视频直播的方法,包括如下步骤:
1)播放控制模块根据启动参数启动视频直播,启动参数包括流媒体服务器地址、前端视频采集设备ID,前端视频采集设备的通道号(根据情况可选),前端视频采集设备的视频清晰度(分为高、中、低三个等级);
2)播放控制模块接收到视频直播命令后,首先触发媒体源扩展控制模块初始化,媒体源扩展控制模块初始化过程包括:创建浏览器MediaSource对象,并将浏览器的videoElement对象src属性指向刚创建的MediaSource对象,然后为MediaSource对象绑定事件响应函数;
3)媒体源扩展控制模块完成初始化后,MediaSource对象的‘sourceopen’事件被触发,在对应的事件响应函数中,向播放控制模块发送‘SOURCEOPEN’事件,通知播放控制模块媒体源扩展模块处于已经打开状态,可以接收流媒体数据;
4)播放控制模块收到媒体源扩展模块的‘SOURCEOPEN’事件后,创建转换控制模块对象,并为转换控制模块绑定事件响应函数,为从转换控制模块接收流媒体数据做准备,转换控制模块对象创建完成后,执行转换控制模块的启动接口;
5)转换控制模块的启动接口被执行时,首先分别创建视频原始码流解复用模块对象、视频段混合模块对象和IO模块对象;并为四个对象建立数据传输管道,即IO模块对象处理完成的数据发送到视频原始码流解复用模块对象处理,由视频原始码流解复用模块对象处理完成后再发送到视频段混合模块对象中处理,视频段混合模块对象处理完成后,再将处理后的数据发送到转换控制模块中处理,这样就形成了数据处理的管道,具体参考图1;上述工作完成之后,触发IO模块对象的打开视频直播接口;
6)IO模块的打开视频直播接口被执行时,首先创建websocket对象,作为播放器和流媒体服务器之间的的通讯通道,websocket通道连接建立后,IO模块对象通过websocket通道将视频直播的请求发送到流媒体服务器,并等待流媒体服务器的反馈数据;当IO模块接收到流媒体服务器发送的包含视频数据的传输协议包后,通过视频原始码流解复用模块提供的接口,将协议包发送给视频原始码流解复用模块进行协议包分析和处理;
7)视频原始码流解复用模块将原始视频码流从传输协议包中分离出来;服务器发送过来的原始视频码流的格式是,每秒发送一条包含IDR NALU的关键视频帧,后面紧跟着若干条包含NDR NALU的非关键视频帧,每一帧数据都由一个独立的传输协议包发送;因此视频数据包中的要么是一条完整的IDR帧,要么是一条完整的NDR帧;
8)视频原始码流解复用模块根据原始视频码流中的属性判断接收到的视频帧是否是关键帧,如果是关键帧,则将关键帧分解成单独的视频参数集网络抽象层单元(SPSnalu),图像参数集网络抽象层单元(PPS nalu),补充增强信息单元(SEI nalu),以及IDR(即时解码刷新)NALU,再判断是否已经完成了视频流元信息的初始化;如果未初始化视频流元信息,则根据SPS,PPS,SEI解析出视频流元信息;并将视频流元信息发送到视频段混合模块;如果已经完成了视频流元信息的初始化,则从IDR NALU中解析出视频采样帧对象,并将视频采样帧对象发送到视频段混合模块中处理;
9)如果视频帧不是关键帧,则从非关键帧中分解出NDR(非即时解码刷新)NALU,并且从NDR NALU中解析出视频采样帧对象,并将视频采样帧对象发送到视频段混合模块中处理;
10)视频段混合模块如果接收到的是视频流元信息,则根据视频流元信息里面的参数生成ISO BIMM格式的ftyp(file type)box+moov(movie metadata)box字节流;并将生成字节流包装成initSegment对象发送到转换控制模块处理;
11)视频段混合模块如果接收到的是视频采样帧对象,则根据视频采样帧对象里面的数据生成ISO BIMM格式的moof(movie fregment)box+mdat(media data)box;并将生成的字节流包装成mediaSegment对象发送到转换控制模块处理;
12)转换控制模块接收到initSegment对象后,触发已经注册到播放控制模块对象上的的’INIT_SEGMENT’事件,并通过该事件将initSegment对象发送到播放控制模块;
13)转换控制模块接收到mediaSegment对象后,触发已经注册到播放控制模块对象上的的’MEDIA_SEGMENT’事件,并通过该事件将mediaSegment对象发送到播放控制模块;
14)当播放控制模块收到’INIT_SEGMENT’事件后,在绑定的事件处理函数中,调用媒体源扩展控制模块的添加initSegment方法,该方法调用mediaSource对象的addSourceBuffer方法;
15)当mediaSource完成addSourceBuffer方法后,触发updateend事件,这时,mediaSource可以接收mediaSegment对象,实现视频播放;
16)当播放控制模块收到媒体初始化事件后,调用媒体源扩展控制模块的添加mediaSegment方法,该方法调用mediaSource对象的appendBuffer方法。
所述媒体扩展控制模块执行步骤如下:
1)首先创建浏览器MediaSource对象;由于MediaSource对象加载是异步的,所以为MediaSource对象绑定事件响应函数;
2)再将MediaSource对象绑定到videoElement控件上;
3)等待MediaSource对象加载完成,MediaSource对象加载完成后,触发‘SOURCE_OPEN’事件,媒体扩展控制模块收到该事件后,也触发一个‘SOURCE_OPEN’事件给播放控制模块,通知上层模块准备好接收流媒体数据;媒体扩展控制模块提供2个接口接收上层发送来的流媒体数据,分别是appendInitSegment和appendMediaSegment,其中appendInitSegment接口负责接收initSegment对象,appendMediaSegment接口负责接收mediaSegment对象;appendInitSegment接口执行时,首先判断mediaSource对象的状态,如果不是‘open’状态,就暂时添加到流媒体数据pending队列中,然后返回;否则,从initSegment对象中分析出媒体类型,媒体类型由容器类型+编码算法组成,本例容器类型为fmp4,编码算法为h264;接着,根据媒体类型创建SourceBuffer对象,并为SourceBuffer对象绑定事件响应函数;再将initSegment对象添加到流媒体数据pending队列中;appendMediaSegment接口执行时,首先根据mediaSegment对象的type属性,获取媒体类型;再根据媒体类型找到对应的SourceBuffer对象,该SourceBuffer对象是在appendInitSegment接口执行时创建的;判断SourceBuffer对象的状态,如果处于’updating’状态,则添加到流媒体数据pending队列中,稍后执行;否则,循环遍历流媒体数据pending队列,将每一个mediaSegment对象的data属性中的媒体字节流通过SourceBuffer对象的appendBuffer方法添加进去;
4)完成了流媒体播放的初始化过程。
所述转换控制模块执行步骤如下
1)初始化私有成员变量,包括摄像机ID,码流类型和流媒体地址;
2)创建视频原始码流解复用模块对象、视频段混合模块对象和IO模块对象;
3)依次将IO模块对象、视频原始码流解复用模块对象、视频段混合模块对象和转换控制模块对象对接,形成一个管道;
4)转换控制模块提供启动接口供上层调用,执行获取流媒体数据流的功能,当该接口被调用时,为新创建的IO模块对象绑定事件响应函数;
5)调用IO模块的打开视频通道接口。
所述IO模块获取流媒体数据流的执行步骤如下:
1)根据流媒体服务器地址,创建websocket对象;
2)模块就收到流媒体服务器的响应后,触发onmessage事件;
3)在onmessage事件响应函数中判断。
所述视频原始码流解复用模块执行步骤如下:
1)解析原始码流成一系列独立的视频网络抽象层单元
2)生成视频元信息对象。
所述视频原始码流解复用模块执行步骤如下:
1)判断从视频原始码流解复用模块接收到的对象类型;
2)根据对象中的参数信息按照ISO BIMM规范格式生成meta box字节流。
本发明的工作原理:本发明通过提供了通过分析视频数据包中的视频描述信息和码流数据,并将分析出来的视频描述信息和码流数据组装成标准的视频文件格式,再调用基于浏览器的原生接口实现视频直播,不仅实现了跨平台的视频直播,而且支持所有主流流媒体协议接入,也可以支持用户私有流媒体协议接入,并且具有低延迟、可靠性高、通用性好、灵活性高等优点。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
Claims (7)
1.一种基于浏览器的跨平台视频直播的***,其特征在于,包括视频原始码流解复用模块、视频段混合模块、转换控制模块、播放控制模块、媒体源扩展控制模块、IO模块,其中播放控制模块是用户操作的接口,为用户提供H264视频码流和Acc音频码流的直播、暂停、继续、停止、抓图等功能,并且负责协调转换控制模块和媒体源扩展控制模块之间的数据流和控制流;媒体源扩展控制模块负责和浏览器的API打交道,通过创建MeidaSource、sourceBuffer等对象、以及建立和videoElement的关联从而实现视频的渲染控制,同时,可以接收来自播放控制模块的控制命令和流媒体数据,并且当浏览器对象状态改变时,通知上层的播放控制模块来控制流媒体数据源的启停;转换控制模块负责接收来自下层的流媒体数据,根据流媒体数据类型,将流媒体数据包装成不同的事件,上报到上层播放控制模块,并根据接收到的播放控制模块命令,控制IO模块的启动和关闭,实现流媒体数据源的打开、暂停、继续和关闭;IO模块:负责和流媒体服务器建立连接,并从流媒体服务器接收和发送流媒体数据协议包;IO模块的启停是受转换控制模块控制的;视频原始码流解复用模块:负责从视频原始码流的数据包中分离出一个个单独的视频网络抽象层单元,并根据视频网络抽象层单元解析出视频元信息对象和视频帧数据对象;视频段混合模块:负责将视频元信息对象根据ISO-BMFF协议格式包装成符合fmp4格式的视频元信息初始化段对象,再将视频帧数据对象根据ISO-BMFF协议格式包装成符合fmp4格式的视频帧数据媒体段对象。
2.一种基于浏览器的跨平台视频直播的方法,其特征在于,包括如下步骤:
1)播放控制模块根据启动参数启动视频直播,启动参数包括流媒体服务器地址、前端视频采集设备ID,前端视频采集设备的通道号(根据情况可选),前端视频采集设备的视频清晰度(分为高、中、低三个等级);
2)播放控制模块接收到视频直播命令后,首先触发媒体源扩展控制模块初始化,媒体源扩展控制模块初始化过程包括:创建浏览器MediaSource对象,并将浏览器的videoElement对象src属性指向刚创建的MediaSource对象,然后为MediaSource对象绑定事件响应函数;
3)媒体源扩展控制模块完成初始化后,MediaSource对象的‘sourceopen’事件被触发,在对应的事件响应函数中,向播放控制模块发送‘SOURCEOPEN’事件,通知播放控制模块媒体源扩展模块处于已经打开状态,可以接收流媒体数据;
4)播放控制模块收到媒体源扩展模块的‘SOURCEOPEN’事件后,创建转换控制模块对象,并为转换控制模块绑定事件响应函数,为从转换控制模块接收流媒体数据做准备,转换控制模块对象创建完成后,执行转换控制模块的启动接口;
5)转换控制模块的启动接口被执行时,首先分别创建视频原始码流解复用模块对象、视频段混合模块对象和IO模块对象;并为四个对象建立数据传输管道,即IO模块对象处理完成的数据发送到视频原始码流解复用模块对象处理,由视频原始码流解复用模块对象处理完成后再发送到视频段混合模块对象中处理,视频段混合模块对象处理完成后,再将处理后的数据发送到转换控制模块中处理,这样就形成了数据处理的管道,具体参考图1;上述工作完成之后,触发IO模块对象的打开视频直播接口;
6)IO模块的打开视频直播接口被执行时,首先创建websocket对象,作为播放器和流媒体服务器之间的的通讯通道,websocket通道连接建立后,IO模块对象通过websocket通道将视频直播的请求发送到流媒体服务器,并等待流媒体服务器的反馈数据;当IO模块接收到流媒体服务器发送的包含视频数据的传输协议包后,通过视频原始码流解复用模块提供的接口,将协议包发送给视频原始码流解复用模块进行协议包分析和处理;
7)视频原始码流解复用模块将原始视频码流从传输协议包中分离出来;服务器发送过来的原始视频码流的格式是,每秒发送一条包含IDR NALU的关键视频帧,后面紧跟着若干条包含NDR NALU的非关键视频帧,每一帧数据都由一个独立的传输协议包发送;因此视频数据包中的要么是一条完整的IDR帧,要么是一条完整的NDR帧;
8)视频原始码流解复用模块根据原始视频码流中的属性判断接收到的视频帧是否是关键帧,如果是关键帧,则将关键帧分解成单独的视频参数集网络抽象层单元(SPS nalu),图像参数集网络抽象层单元(PPS nalu),补充增强信息单元(SEI nalu),以及IDR(即时解码刷新)NALU,再判断是否已经完成了视频流元信息的初始化;如果未初始化视频流元信息,则根据SPS,PPS,SEI解析出视频流元信息;并将视频流元信息发送到视频段混合模块;如果已经完成了视频流元信息的初始化,则从IDR NALU中解析出视频采样帧对象,并将视频采样帧对象发送到视频段混合模块中处理;
9)如果视频帧不是关键帧,则从非关键帧中分解出NDR(非即时解码刷新)NALU,并且从NDR NALU中解析出视频采样帧对象,并将视频采样帧对象发送到视频段混合模块中处理;
10)视频段混合模块如果接收到的是视频流元信息,则根据视频流元信息里面的参数生成ISO BIMM格式的ftyp(file type)box+moov(movie metadata)box字节流;并将生成字节流包装成initSegment对象发送到转换控制模块处理;
11)视频段混合模块如果接收到的是视频采样帧对象,则根据视频采样帧对象里面的数据生成ISO BIMM格式的moof(movie fregment)box+mdat(media data)box;并将生成的字节流包装成mediaSegment对象发送到转换控制模块处理;
12)转换控制模块接收到initSegment对象后,触发已经注册到播放控制模块对象上的的’INIT_SEGMENT’事件,并通过该事件将initSegment对象发送到播放控制模块;
13)转换控制模块接收到mediaSegment对象后,触发已经注册到播放控制模块对象上的的’MEDIA_SEGMENT’事件,并通过该事件将mediaSegment对象发送到播放控制模块;
14)当播放控制模块收到’INIT_SEGMENT’事件后,在绑定的事件处理函数中,调用媒体源扩展控制模块的添加initSegment方法,该方法调用mediaSource对象的addSourceBuffer方法;
15)当mediaSource完成addSourceBuffer方法后,触发updateend事件,这时,mediaSource可以接收mediaSegment对象,实现视频播放;
16)当播放控制模块收到媒体初始化事件后,调用媒体源扩展控制模块的添加mediaSegment方法,该方法调用mediaSource对象的appendBuffer方法。
3.根据权利要求1或2所述的一种基于浏览器的跨平台视频直播的***及方法,其特征在于,所述媒体扩展控制模块执行步骤如下:
1)首先创建浏览器MediaSource对象;由于MediaSource对象加载是异步的,所以为MediaSource对象绑定事件响应函数;
2)再将MediaSource对象绑定到videoElement控件上;
3)等待MediaSource对象加载完成,MediaSource对象加载完成后,触发‘SOURCE_OPEN’事件,媒体扩展控制模块收到该事件后,也触发一个‘SOURCE_OPEN’事件给播放控制模块,通知上层模块准备好接收流媒体数据;媒体扩展控制模块提供2个接口接收上层发送来的流媒体数据,分别是appendInitSegment和appendMediaSegment,其中appendInitSegment接口负责接收initSegment对象,appendMediaSegment接口负责接收mediaSegment对象;appendInitSegment接口执行时,首先判断mediaSource对象的状态,如果不是‘open’状态,就暂时添加到流媒体数据pending队列中,然后返回;否则,从initSegment对象中分析出媒体类型,媒体类型由容器类型+编码算法组成,本例容器类型为fmp4,编码算法为h264;接着,根据媒体类型创建SourceBuffer对象,并为SourceBuffer对象绑定事件响应函数;再将initSegment对象添加到流媒体数据pending队列中;appendMediaSegment接口执行时,首先根据mediaSegment对象的type属性,获取媒体类型;再根据媒体类型找到对应的SourceBuffer对象,该SourceBuffer对象是在appendInitSegment接口执行时创建的;判断SourceBuffer对象的状态,如果处于’updating’状态,则添加到流媒体数据pending队列中,稍后执行;否则,循环遍历流媒体数据pending队列,将每一个mediaSegment对象的data属性中的媒体字节流通过SourceBuffer对象的appendBuffer方法添加进去;
4)完成了流媒体播放的初始化过程。
4.根据权利要求1或2所述的一种基于浏览器的跨平台视频直播的***及方法,其特征在于,所述转换控制模块执行步骤如下
1)初始化私有成员变量,包括摄像机ID,码流类型和流媒体地址;
2)创建视频原始码流解复用模块对象、视频段混合模块对象和IO模块对象;
3)依次将IO模块对象、视频原始码流解复用模块对象、视频段混合模块对象和转换控制模块对象对接,形成一个管道;
4)转换控制模块提供启动接口供上层调用,执行获取流媒体数据流的功能,当该接口被调用时,为新创建的IO模块对象绑定事件响应函数;
5)调用IO模块的打开视频通道接口。
5.根据权利要求1或2所述的一种基于浏览器的跨平台视频直播的***及方法,其特征在于,所述IO模块获取流媒体数据流的执行步骤如下:
1)根据流媒体服务器地址,创建websocket对象;
2)模块就收到流媒体服务器的响应后,触发onmessage事件;
3)在onmessage事件响应函数中判断。
6.根据权利要求1或2所述的一种基于浏览器的跨平台视频直播的***及方法,其特征在于,所述视频原始码流解复用模块执行步骤如下:
1)解析原始码流成一系列独立的视频网络抽象层单元
2)生成视频元信息对象。
7.根据权利要求1或2所述的一种基于浏览器的跨平台视频直播的***及方法,其特征在于,所述视频原始码流解复用模块执行步骤如下:
1)判断从视频原始码流解复用模块接收到的对象类型;
2)根据对象中的参数信息按照ISO BIMM规范格式生成meta box字节流。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710980780.4A CN107888932A (zh) | 2017-10-20 | 2017-10-20 | 一种基于浏览器的跨平台视频直播的***及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710980780.4A CN107888932A (zh) | 2017-10-20 | 2017-10-20 | 一种基于浏览器的跨平台视频直播的***及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107888932A true CN107888932A (zh) | 2018-04-06 |
Family
ID=61781689
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710980780.4A Pending CN107888932A (zh) | 2017-10-20 | 2017-10-20 | 一种基于浏览器的跨平台视频直播的***及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107888932A (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108449650A (zh) * | 2018-04-09 | 2018-08-24 | 四川百视通科技有限公司 | 一种rtmp直播流到http flv直播流实时转换***及其工作方法 |
WO2019227740A1 (zh) * | 2018-05-29 | 2019-12-05 | 北京字节跳动网络技术有限公司 | 媒体文件的同步播放方法、装置及存储介质 |
CN110545254A (zh) * | 2018-05-29 | 2019-12-06 | 北京字节跳动网络技术有限公司 | 一种元数据容器的解析方法、装置及存储介质 |
CN111225266A (zh) * | 2020-02-25 | 2020-06-02 | 上海哔哩哔哩科技有限公司 | 用户界面交互方法和*** |
CN111246253A (zh) * | 2020-01-21 | 2020-06-05 | 北京三体云联科技有限公司 | 视频流传输方法和装置 |
CN111787399A (zh) * | 2020-07-23 | 2020-10-16 | 成都云盯科技有限公司 | 一种视频播放方法、装置和*** |
CN112653700A (zh) * | 2020-12-23 | 2021-04-13 | 武汉烽火众智数字技术有限责任公司 | 一种基于webrtc网页视频通信的方法 |
CN112714360A (zh) * | 2019-10-25 | 2021-04-27 | 上海哔哩哔哩科技有限公司 | 媒体内容播放方法和*** |
CN112804536A (zh) * | 2020-12-31 | 2021-05-14 | 武汉兴图新科电子股份有限公司 | 基于云视频融合平台的浏览器点播音视频的***及方法 |
WO2021135537A1 (zh) * | 2019-12-31 | 2021-07-08 | 百果园技术(新加坡)有限公司 | 一种直播内容引入方法、装置、存储介质及设备 |
CN116261021A (zh) * | 2023-05-16 | 2023-06-13 | 北京蓝色星际科技股份有限公司 | 一种视频流播放方法、装置、电子设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140282766A1 (en) * | 2013-03-15 | 2014-09-18 | Wowza Media Systems, LLC | On the Fly Transcoding of Video on Demand Content for Adaptive Streaming |
US20150296274A1 (en) * | 2014-04-10 | 2015-10-15 | Wowza Media Systems, LLC | Manifest generation and segment packetization |
US20160261665A1 (en) * | 2015-03-04 | 2016-09-08 | Qualcomm Incorporated | File format based streaming with dash formats based on lct |
US20160337424A1 (en) * | 2015-05-13 | 2016-11-17 | Qualcomm Incorporated | Transferring media data using a websocket subprotocol |
US20170093939A1 (en) * | 2015-09-24 | 2017-03-30 | Flir Commercial Systems, Inc. | Real-time video streaming to client video element |
CN107197386A (zh) * | 2017-05-31 | 2017-09-22 | 西安理工大学 | 一种无客户端的跨平台视频播放实现方法 |
-
2017
- 2017-10-20 CN CN201710980780.4A patent/CN107888932A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140282766A1 (en) * | 2013-03-15 | 2014-09-18 | Wowza Media Systems, LLC | On the Fly Transcoding of Video on Demand Content for Adaptive Streaming |
US20150296274A1 (en) * | 2014-04-10 | 2015-10-15 | Wowza Media Systems, LLC | Manifest generation and segment packetization |
US20160261665A1 (en) * | 2015-03-04 | 2016-09-08 | Qualcomm Incorporated | File format based streaming with dash formats based on lct |
US20160337424A1 (en) * | 2015-05-13 | 2016-11-17 | Qualcomm Incorporated | Transferring media data using a websocket subprotocol |
US20170093939A1 (en) * | 2015-09-24 | 2017-03-30 | Flir Commercial Systems, Inc. | Real-time video streaming to client video element |
CN107197386A (zh) * | 2017-05-31 | 2017-09-22 | 西安理工大学 | 一种无客户端的跨平台视频播放实现方法 |
Non-Patent Citations (4)
Title |
---|
叶锋;傅燕云;陈林芳;钟晓君;邓衍晨;: "基于多协议融合的实时移动视频监控***", 计算机***应用 * |
周训宙;: "自适应流媒体传输技术分析与研究", 互联网天地 * |
朱秀昌;陈杰;: "基于HTTP的视频流网络传输", 南京邮电大学学报(自然科学版) * |
祝谷乔;宋皓;: "MPEG-DASH与HLS流传输技术的比较分析", 电信科学 * |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108449650A (zh) * | 2018-04-09 | 2018-08-24 | 四川百视通科技有限公司 | 一种rtmp直播流到http flv直播流实时转换***及其工作方法 |
WO2019227740A1 (zh) * | 2018-05-29 | 2019-12-05 | 北京字节跳动网络技术有限公司 | 媒体文件的同步播放方法、装置及存储介质 |
CN110545254A (zh) * | 2018-05-29 | 2019-12-06 | 北京字节跳动网络技术有限公司 | 一种元数据容器的解析方法、装置及存储介质 |
CN110545456A (zh) * | 2018-05-29 | 2019-12-06 | 北京字节跳动网络技术有限公司 | 媒体文件的同步播放方法、装置及存储介质 |
US10978109B2 (en) | 2018-05-29 | 2021-04-13 | Beijing Bytedance Network Technology Co., Ltd. | Synchronously playing method and device of media file, and storage medium |
CN110545254B (zh) * | 2018-05-29 | 2021-05-04 | 北京字节跳动网络技术有限公司 | 一种元数据容器的解析方法、装置及存储介质 |
CN112714360A (zh) * | 2019-10-25 | 2021-04-27 | 上海哔哩哔哩科技有限公司 | 媒体内容播放方法和*** |
WO2021135537A1 (zh) * | 2019-12-31 | 2021-07-08 | 百果园技术(新加坡)有限公司 | 一种直播内容引入方法、装置、存储介质及设备 |
CN111246253A (zh) * | 2020-01-21 | 2020-06-05 | 北京三体云联科技有限公司 | 视频流传输方法和装置 |
CN111225266A (zh) * | 2020-02-25 | 2020-06-02 | 上海哔哩哔哩科技有限公司 | 用户界面交互方法和*** |
CN111225266B (zh) * | 2020-02-25 | 2022-03-15 | 上海哔哩哔哩科技有限公司 | 用户界面交互方法和*** |
US11442606B2 (en) | 2020-02-25 | 2022-09-13 | Shanghai Bilibili Technology Co., Ltd. | User interface interaction method and system |
CN111787399A (zh) * | 2020-07-23 | 2020-10-16 | 成都云盯科技有限公司 | 一种视频播放方法、装置和*** |
CN112653700A (zh) * | 2020-12-23 | 2021-04-13 | 武汉烽火众智数字技术有限责任公司 | 一种基于webrtc网页视频通信的方法 |
CN112804536A (zh) * | 2020-12-31 | 2021-05-14 | 武汉兴图新科电子股份有限公司 | 基于云视频融合平台的浏览器点播音视频的***及方法 |
CN116261021A (zh) * | 2023-05-16 | 2023-06-13 | 北京蓝色星际科技股份有限公司 | 一种视频流播放方法、装置、电子设备及存储介质 |
CN116261021B (zh) * | 2023-05-16 | 2023-07-28 | 北京蓝色星际科技股份有限公司 | 一种视频流播放方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107888932A (zh) | 一种基于浏览器的跨平台视频直播的***及方法 | |
TWI293533B (en) | System and method for communication media signals | |
US10869106B2 (en) | Data transmission method and apparatus, and electronic device | |
CN1764974B (zh) | 存储多媒体数据的存储介质和再现多媒体数据的方法和设备 | |
TW201841512A (zh) | 在使用mime類型參數之網路視頻串流中發信重要視頻資訊 | |
CN105049920B (zh) | 一种多媒体文件的录制方法和装置 | |
TW201123795A (en) | System, method and apparatus for dynamic media file streaming | |
TW201210325A (en) | Method and apparatus for indicating switching points in a streaming session | |
US10791160B2 (en) | Method and apparatus for cloud streaming service | |
CN110446114A (zh) | 多媒体数据的处理装置、方法、电子设备及存储介质 | |
US8719437B1 (en) | Enabling streaming to a media player without native streaming support | |
CN101155089A (zh) | 无线多媒体实时学习***与方法 | |
TW201909007A (zh) | 使用用於檔案格式邏輯框之一通用描述符處理媒體資料 | |
CN105049904B (zh) | 一种多媒体文件的播放方法和装置 | |
CN101389020A (zh) | 一种扩展流媒体播放设备解码能力的方法 | |
TW201933878A (zh) | 處理國際標準化組織基礎媒體檔案格式網頁資源追蹤之動態網頁內容 | |
JP2006246468A (ja) | 疑似ストリーミング技術を利用した移動通信端末機の動画像伝送方法 | |
CN104683823A (zh) | 一种多屏联动音视频同步*** | |
CN113316013B (zh) | 一种视频投屏方法及*** | |
WO2023231478A1 (zh) | 音视频共享方法、设备及计算机可读存储介质 | |
CN106973300A (zh) | 一种移动互联网视频直播平台 | |
TW201251429A (en) | System and method for sending streaming of desktop sharing | |
WO2016107174A1 (zh) | 多媒体文件数据的处理方法及***、播放器和客户端 | |
CN115134664A (zh) | 实时视频流的播放方法及***、非易失性存储介质 | |
CN114793225A (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 |