CN108337560A - 用于在web浏览器上播放媒体的媒体重放设备和媒体服务设备 - Google Patents

用于在web浏览器上播放媒体的媒体重放设备和媒体服务设备 Download PDF

Info

Publication number
CN108337560A
CN108337560A CN201810049063.4A CN201810049063A CN108337560A CN 108337560 A CN108337560 A CN 108337560A CN 201810049063 A CN201810049063 A CN 201810049063A CN 108337560 A CN108337560 A CN 108337560A
Authority
CN
China
Prior art keywords
media
frame
module
video
playback
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.)
Granted
Application number
CN201810049063.4A
Other languages
English (en)
Other versions
CN108337560B (zh
Inventor
宋炳璘
郑丞原
金道贤
朴美柱
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hanhua Vision Co ltd
Original Assignee
Hanwha Techwin Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Priority claimed from KR1020170087651A external-priority patent/KR101942269B1/ko
Application filed by Hanwha Techwin Co Ltd filed Critical Hanwha Techwin Co Ltd
Publication of CN108337560A publication Critical patent/CN108337560A/zh
Application granted granted Critical
Publication of CN108337560B publication Critical patent/CN108337560B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network 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/63Control 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/643Communication protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/27Server based end-user applications
    • H04N21/274Storing end-user multimedia data in response to end-user request, e.g. network recorder
    • H04N21/2743Video hosting of uploaded data from client
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/40Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/40Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
    • G06F16/44Browsing; Visualisation therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/239Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests
    • H04N21/2393Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests involving handling client requests
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing 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/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing 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/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/472End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
    • H04N21/47202End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for requesting content on demand, e.g. video on demand
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/472End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
    • H04N21/47217End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for controlling playback functions for recorded or on-demand content, e.g. using progress bars, mode or play-point indicators or bookmarks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network 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/65Transmission of management data between client and server
    • H04N21/658Transmission by the client directed to the server
    • H04N21/6587Control parameters, e.g. trick play commands, viewpoint selection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/8543Content authoring using a description language, e.g. Multimedia and Hypermedia information coding Expert Group [MHEG], eXtensible Markup Language [XML]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/221Parsing markup language streams

Abstract

可提供用于在web浏览器上播放媒体的媒体重放设备和媒体服务设备。所述媒体重放设备可包括:接收单元,接收在媒体服务设备中生成的媒体数据;第一媒体恢复单元,通过嵌入在web浏览器中的第一解码器对接收的媒体数据进行解码;第二媒体恢复单元,以脚本编写的第二解码器对接收的媒体数据进行解码,其中,所述脚本由web浏览器解析;用户接口,被配置为接收用户命令;解码控制器,被配置为响应于用户命令与重放命令对应而控制第一媒体恢复单元对接收的媒体数据进行解码,并响应于用户命令与寻找命令对应而控制第二媒体恢复单元对接收的媒体数据进行解码。

Description

用于在web浏览器上播放媒体的媒体重放设备和媒体服务 设备
本申请要求于2017年2月10日提交的第62/457,203号美国临时申请的优先权,要求于2017年1月20日提交到韩国知识产权局的第10-2017-0009963号韩国专利申请的优先权以及于2017年7月11日提交到韩国知识产权局的第10-2017-0087651号韩国专利申请的优先权,所述专利申请的公开通过引用全部合并于此。
技术领域
与示例性实施例一致的设备和方法涉及寻找多媒体数据,更具体地讲,涉及在支持超文本标记语言5(HTML5)的web浏览器中没有插件的情况下通过使用以JavaScript实现的解码器基于逐帧寻找多媒体数据。
背景技术
为了使用户通过互联网在web浏览器上重放媒体数据,提供了使用以本地代码(native code)编写编解码器、解码器、渲染器等的插件的方法。作为web浏览器插件的代表性示例,ActiveX和Netscape插件应用编程接口(NPAPI)被广泛使用。
ActiveX是由微软使用两种技术(组件对象模型(COM)和对象链接与嵌入(OLE))的组合而开发。然而,狭义上讲,它表示在作为web浏览器的Internet Explorer中以扩展(add-on)的形式使用的ActiveX控件。ActiveX用于在Internet Explorer web浏览器中播放媒体。
NPAPI是针对Netscape浏览器开发的应用编程接口(API),并且NPAPI在功能上与Internet Explorer的ActiveX类似。NPAPI是为了增强web浏览器的功能而被提供使用插件形式的外部应用程序的API,并在它的萌芽阶段中被首先用于web环境。换句话说,它被开发为在早期的网络页面上播放音乐和视频。例如,存在Java Applet、Adobe Flash、RealPlayer等。
然而,由于插件有时被黑客滥用于散布恶意代码,因此很多主流web浏览器不再支持插件。至于NPAPI,制作并发行Chrome的Google在发布Chrome版本45之后不再支持NPAPI。此外,Microsoft Edge浏览器(Windows 10的默认浏览器)不再支持ActiveX。
为了在没有插件支持的情况下在web浏览器中播放媒体,可使用超文本传输协议的运动图像专家组动态自适应流传输(MPEG-DASH)来传输媒体数据,其中,超文本传输协议是被超文本标记语言版本5(HTML5)媒体源扩展(MSE)支持的协议,并使用HTML5视频元件执行解码。视频元件提供可在web浏览器中没有插件的情况下播放媒体的环境。
由于视频标签在web浏览器中被提供为本地视频标签,因此它可与web浏览器的其他技术(诸如,JavaScript或CSS)协调使用。视频标签提供可以以JavaScript访问的各种属性,并且用户可使用HTML5视频标签和JavaScript实现媒体重放的各种功能(例如,媒体加载、重放、暂停和重放速度转换)。
此外,可实现寻找媒体数据的功能。为此,可主要使用视频标签的currentTime属性。currentTime属性是允许获得正被重放的媒体的当前位置的属性。可通过设置currentTime来寻找媒体。例如,如果currentTime值被设置为currentTime+10,则它可被移动到当前重放时间10秒之后的图像。
同时,可通过另外地使用timeUpdate事件实现在媒体寻找中的特定时间点停止媒体重放的功能。当媒体的重放位置改变时,发生timeUpdate事件。也就是说,当时间在currentTime属性中被更新时,发生timeUpdate事件,并且该事件的频率根据系统负载在大约4Hz与66Hz之间变化。因此,用户可通过timeUpdate事件以250ms为最小单位获取期望的静止图像。
如上所述,HTML5视频标签提供用于在没有插件的情况下在web浏览器上以高重放性能重放和寻找媒体的各种功能。然而,这个方法可能不适合基于逐帧的详细寻找。视频标签基本通过基于经由对多个帧进行打包获得的容器接收媒体来执行解码。因此,当用户请求基于逐帧的寻找时,发生250ms的时间间隔或更长的时间间隔。
因此,设计用于在web浏览器上没有插件的情况下重放媒体流并当存在来自用户的寻找请求时能够基于逐帧详细地寻找的系统可能是必要的。
发明内容
示例性实施例至少解决上面的问题和/或缺点以及上面未描述的其他缺点。此外,示例性实施例不需要克服上述缺点,并且可不克服上述问题中的任何问题。
一个或多个示例性实施例提供一种用于在不使用视频标签的API和插件的情况下基于逐帧寻找媒体数据的方法。
此外,一个或多个示例性实施例提供一种用于解决由于仅缓冲在当前重放点之后的媒体的单向缓冲器而引起的当寻找媒体的方向被切换成当前重放点之前的方向时需要再次执行缓冲的问题的技术。
根据示例性实施例的方面,提供一种用于在web浏览器上播放媒体的媒体重放设备,包括:接收单元,被配置为使用支持web服务的通信协议接收在媒体服务设备中生成的媒体数据;第一媒体恢复单元,被配置为通过嵌入在web浏览器中的第一解码器对接收的媒体数据进行解码;第二媒体恢复单元,被配置为通过以脚本编写的第二解码器对接收的媒体数据进行解码,其中,所述脚本被配置为由web浏览器解析;用户接口,被配置为接收控制命令,其中,控制命令控制接收的媒体数据;解码控制器,被配置为响应于控制命令与重放命令对应而控制第一媒体恢复单元对接收的媒体数据进行解码,并响应于控制命令与寻找命令对应而控制第二媒体恢复单元对接收的媒体数据进行解码。
根据另一示例性实施例的方面,提供一种用于向媒体重放设备实时发送实时实况视频或存储的视频的媒体服务设备,所述媒体服务设备包括:模块存储单元,被配置为存储用于在媒体重放设备的web浏览器上重放实时实况视频或存储的视频的脚本模块,其中,脚本模块是以被配置为由web浏览器解析的脚本编写的;模块传输单元,被配置为响应于媒体服务设备与媒体重放设备之间的连接建立,而将脚本模块传输到媒体重放设备;打包单元,被配置为对实时实况视频或存储的视频进行打包以生成传输包;web服务器,被配置为建立所述连接并响应于从媒体重放设备接收到控制命令而将传输包传输到媒体重放设备,其中,脚本模块被配置为根据对从媒体重放设备接收的控制命令是重放命令还是寻找命令的确定,通过在媒体重放设备中执行的多个视频解码器之中的不同的解码器对传输包进行解码。
根据示例性实施例,可以在不使用插件的情况下基于逐帧执行媒体寻找。因此,它适合于安全并符合从web浏览器排除插件的趋势。
根据示例性实施例,用户可基于帧寻找图像,其中,帧为视频序列的最小单元。也就是说,由于可以以最高精度寻找媒体,因此本公开可在诸如需要详细的图像分析的视频监视系统的领域中非常有用。
根据示例性实施例,即使在基于逐帧执行寻找时改变寻找方向,也不需要另外的缓冲。因此,可通过适合于无插件环境的方式以最小的存储器使用来容易并稳定地执行媒体寻找。
附图说明
通过参照附图描述一些示例性实施例,上面和/或其他方面将变得更清楚,其中:
图1示出用于重放和寻找多媒体文件的系统;
图2是示出针对装置之间的通信而分层定义的传输控制协议/互联网协议(TCP/IP)4层模型的示图;
图3示出在媒体服务设备与媒体重放设备之间执行WebSocket连接的处理;
图4示出通过WebSocket连接发送和接收数据的处理的示例;
图5是示出通过网络接口发送的通信包的结构的示图;
图6示出根据示例性实施例的媒体服务设备的配置;
图7示出根据另一示例性实施例的媒体服务设备的配置;
图8示出根据示例性实施例的模块存储单元的脚本模块;
图9示出根据另一示例性实施例的模块存储单元的脚本模块;
图10示出根据示例性实施例的媒体重放设备;
图11示出根据另一示例性实施例的媒体重放设备;
图12示出根据示例性实施例的帧缓冲器和缓冲器列表;
图13示出根据示例性实施例的包括在用户接口中的图形用户界面(GUI);
图14示出根据用户的输入的媒体重放设备的操作处理;
图15示出根据示例性实施例的生成以JavaScript实现的脚本模块的处理;
图16示出根据示例性实施例的用于实现媒体重放设备的计算装置。
具体实施方式
下面参照附图更加详细地描述示例性实施例。
在下面的描述中,即使在不同的附图中,相同的附图参考标号用于相同的元件。提供在描述中定义的事物(诸如,详细的构造和元件)以帮助全面理解示例性实施例。然而,应清楚:可在没有那些具体定义的事物的情况下实践示例性实施例。此外,由于公知的功能或构造会以不必要的细节使描述变得模糊,因此不详细描述它们。
在此使用的术语仅为了描述特定实施例的目的,并不意图限制本公开。如在此使用的,除非上下文清楚地另有指示,否则单数形式也意图包括复数形式。还将理解,当在本说明书中使用术语“包括”时指定存在阐述的特征、整体、步骤、操作、元件和/或组件,但不排除存在或添加一个或多个其他特征、整体、步骤、操作、元件、组件和/或它们的组。
当诸如“…中的至少一个”的表述在一列元素之后时,修饰整列元素而不修饰列表的单个元素。
图1示出用于重放和寻找多媒体文件的系统。图1中示出的系统包括媒体服务设备110、媒体重放设备120以及连接两个设备110和120的网络430。
媒体服务设备110包括适于向一个或多个视频重放设备提供计算服务的计算或处理装置。例如,媒体服务设备110包括能够生成或存储视频流并将视频流发送到用户装置的装置(诸如,网络相机、网络视频录像机(NVR)和数字视频录像机(DVR))。媒体服务设备110也可被称为媒体服务系统,其中,媒体服务系统包括服务器和网络相机。
媒体重放设备120包括适于经由网络430与媒体服务设备110或其他计算用户装置进行交互的计算或处理装置。例如,媒体重放设备120可包括台式计算机、移动电话或智能电话、个人数字助理(PDA)、膝上型计算机和平板计算机。
在媒体重放设备120的请求下通过网络430传输由媒体服务设备110实时捕捉或存储的媒体数据(例如,视频)。用户可重放或寻找通过在媒体重放设备120的web浏览器210上实现的用户界面传输的媒体数据。具体地讲,web浏览器210可包括安装在台式计算机或移动电话上的公知的浏览器(诸如,Google Chrome、Microsoft Explorer、Mozilla Firefox和Apple Safari),并且还可包括使用web浏览器的应用编程接口(API)或资源单独创建的软件应用。
在下文中,将参照图2至图5来描述通过WebSocket协议传输的实时流传输协议(RTSP)和/或实时传输协议(RTP)流。WebSocket可用作媒体服务设备110与媒体重放设备120之间的网络通信方案。
图2是示出针对装置之间的通信而分层定义的传输控制协议/互联网协议(TCP/IP)4层模型的示图。四个层包括:网络接口层21、互联网层22、传输层23和应用层24。由于WebSocket能够在传输层23之上传输消息,因此为了使用WebSocket连接,可必须首先在媒体服务设备110与媒体重放设备120之间建立TCP传输连接。一旦例如经由三路握手处理在媒体服务设备110与媒体重放设备120之间建立WebSocket连接,则通过传输WebSocket包来执行WebSocket通信。下面将参照图3至图5详细描述WebSocket连接和WebSocket包。
图3示出在媒体服务设备110与媒体重放设备120之间执行WebSocket连接的处理。媒体重放设备120请求媒体服务设备110使用WebSocket统一资源标识符(URI)发起WebSocket连接。可使用GetServiceCapabilities命令获得WebSocket URI。例如,WebSocket URI被表示为“ws://192.168.0.5/webSocketServer”(操作S1000)。
媒体重放设备120可向媒体服务设备110发送WebSocket升级请求。媒体服务设备110可利用代码101进行响应(操作S1100),其中,代码101为用于批准协议改变请求的状态码。
在媒体服务设备110与媒体重放设备120之间建立WebSocket连接之后,通过经由WebSocket发送的RTSP/RTP协议替代超文本传输协议(HTTP)/1.1协议来交换数据。图3中的DESCRIBE、SETUP、PLAY、PAUSE和TEARDOWN为RTSP命令。DESCRIBE请求包括统一资源定位符(URL)。对DESCRIBE的响应消息还包括请求的描述。SETUP请求指定是否应该发送单个媒体流。PLAY请求是用于播放一个或全部媒体流的请求,并且多个请求是可以的。PAUSE请求是用于暂停一个或全部媒体流的重放的命令。可响应于PLAY请求而重新开始重放。TEARDOWN请求是用于终止会话的命令。可通过TEARDOWN请求停止所有媒体流的重放,并且还释放与数据相关的所有会话(操作S1200)。
如下面表1提供图3中示出的在WebSocket连接处理中从媒体重放设备120发送的请求消息和媒体服务设备110的响应消息的示例。
【表1】
该WebSocket连接是根据遵循HTML5标准的WebSocket协议进行的。具体地讲,由于WebSocket连接持续地支持双向通信,因此可在WebSocket连接不断开的情况下,在媒体服务设备110与媒体重放设备120之间持续地发送和接收数据。
图4示出通过WebSocket连接发送和接收数据的处理的示例。参照图4,首先,媒体重放设备120将TCP/IP连接请求消息发送到媒体服务设备110,媒体服务设备110接收该消息,并将TCP响应消息(SYN-ACK)发送到媒体重放设备120,从而建立TCP/IP连接。TCP传输连接可由一对本地TCP套接字和远程TCP套接字形成。每个TCP套接字至少由标识符(诸如,端口号和IP地址)定义。可在媒体重放设备120与媒体服务设备110之间建立基于用户数据报协议(UDP)/IP的连接,替代基于TCP/IP的连接。
然后,当通过媒体重放设备120与媒体服务设备110之间的握手处理建立WebSocket连接时,之后可执行它们之间的持续的数据发送/接收。也就是说,媒体重放设备120以传输WebSocket包(socket.send)的形式将媒体流传输请求发送到媒体服务设备110,媒体服务设备110以响应WebSocket包(socket.onMessage)的形式将媒体流发送到媒体重放设备120。可在媒体重放设备120与媒体服务设备110之间持续执行这个处理,直到媒体流传输停止或者完成为止。
图5是示出通过网络接口21发送的通信包的结构的示图。当RTP头44添加到与数据45对应的RTP有效载荷时,RTP有效载荷变为RTP包。RTP包相当于WebSocket有效载荷,并且WebSocket头43可添加到RTP包以变为WebSocket包。WebSocket包可相当于TCP有效载荷,并且TCP头42可添加到WebSocket包以变为TCP包。最后,TCP包可相当于IP有效载荷,并且IP头41添加到TCP包,从而完成通信包,即,IP包。在媒体服务设备110和媒体重放设备120二者中执行完成IP包的处理和移除每个头的处理。
由于通过基于HTML5的WebSocket协议来执行媒体服务设备110与媒体重放设备120之间的通信,因此可由能够以HTML5解析的脚本代码来实现解码器和执行RTSP/RTP发送/接收控制的模块。因此,可在没有如常规情况那样单独安装插件的情况下,在HTML5环境的web浏览器中实现使用RTSP/RTP协议的媒体重放。
至此已经描述了媒体服务设备110与媒体重放设备120之间的网络通信方案。在下文中,将参照图6至图16描述媒体服务设备110与媒体重放设备120的配置和操作方法。
在描述之前,用于重放和寻找媒体的术语被定义。重放命令包括作为由用户输入的命令的播放、停止、暂停、倒退和快进,其中,播放、停止、暂停、倒退和快进为在web浏览器上显示的媒体的操作方法。与重放命令类似,寻找命令包括作为由用户输入的命令的用于寻找在web浏览器上显示的帧的跳过寻找、向前寻找和向后寻找。跳过寻找表示移动到任意帧来寻找,向前寻找表示沿当前显示的帧的向前方向寻找,向后寻找表示沿当前显示的帧的向后方向寻找。
图6示出根据示例性实施例的媒体服务设备110的配置。在一个示例性实施例中,媒体服务设备110包括实时视频相机111、编码器112、打包单元113、web服务器114、模块存储单元115、模块传输单元116和控制单元117。编码器112、打包单元113和控制单元117可被包括在一个或多个处理器中。
实时视频相机111是可实时捕捉图像的装置,并且捕捉包括执行视频捕捉和音频记录二者的情况以及仅执行视频捕捉的情况。
编码器112被配置为对由实时视频相机111捕捉的媒体进行压缩和编码。编码器112的编码不一定使用由嵌入在web浏览器中的解码器支持的特定编解码器来执行,而是可以以任意编解码器格式执行。
打包单元113对编码的媒体数据进行打包以生成传输包。可通过将媒体数据划分成具有适当长度的块以促进经由网络430的传输或者如果媒体数据短,则通过将控制信息(诸如,接收地址)共同分配给适当长度的每个数据,来执行打包。在这种情况下,控制信息位于包的头中。传输包为上述WebSocket包的形式。
打包单元113可根据由媒体重放设备120请求的方法来执行媒体数据的打包。当媒体重放设备120根据输入的寻找命令请求媒体时,打包单元113基于媒体数据的逐帧(诸如,按媒体数据的逐帧的单位)生成传输包。当媒体重放设备120根据输入的重放命令请求媒体时,打包单元113以容器格式生成传输包,其中,容器为包括多个帧的组块数据。这允许媒体重放设备120根据寻找命令基于逐帧执行解码来基于逐帧执行媒体寻找。此外,这使得可在重放命令的情况下配置由嵌入在媒体重放设备120的web浏览器中的解码器支持的容器格式。例如,这是以由视频标签支持的MPEG-DASH容器格式配置媒体数据以便将视频标签用作嵌入在web浏览器中的解码器的情况。
web服务器114建立与媒体重放设备120的通信会话。例如,可通过媒体服务设备110的web服务器114与媒体重放设备120之间的握手处理来在它们之间建立WebSocket连接。之后,根据媒体重放设备120的请求,通过web服务器114传输由打包单元113生成的传输包。
模块存储单元115可存储在媒体重放设备120中重放和寻找媒体所需的脚本模块。脚本模块作为以可由web浏览器解析的脚本编写的代码的模块,其允许媒体重放设备120在没有安装插件或单独的应用程序的情况下在HTML5环境的web浏览器中重放和寻找媒体。在一个实施例中,脚本模块可以是以JavaScript编写的代码。稍后将参照图8和图9来描述脚本模块。
模块传输单元116可将存储在模块存储单元115中的脚本模块传输到媒体重放设备120。模块传输单元116响应于经由网络430在媒体重放设备120与媒体服务设备110之间建立连接而传输脚本模块。
控制单元117可控制媒体服务设备110中的其他配置模块。例如,当媒体重放设备120通过网络430连接到web服务器114时,通过模块传输单元116将存储在模块存储单元115中的脚本模块传输到媒体重放设备120。在这种情况下,控制单元117将信号发送到各个模块或从各个模块接收信号,以控制操作被平稳地执行。
图7示出根据另一示例性实施例的媒体服务设备110的配置。图6的媒体服务设备110表示使用实时视频相机111发送实时实况媒体的实施例,图7的媒体服务设备110表示发送存储在媒体存储单元118中的媒体的实施例。
媒体存储单元118包括网络视频录像机(NVR)或个人视频录像机(PVR)。然而,将结合网络视频录像机来描述图7。媒体存储单元118从相机或服务器接收媒体数据,并压缩和存储接收的媒体数据。当存在来自媒体重放设备120的用于传输存储的媒体数据的请求时,媒体服务设备110在打包单元113中对存储在媒体存储单元118中的媒体数据进行打包,并通过web服务器114传输打包的数据。已经参照图6描述了媒体服务设备110的配置模块之中的打包单元113、web服务器114、模块存储单元115、模块传输单元116和控制单元117,因此,将省略对它们多余的描述。
图8示出根据示例性实施例的模块存储单元115的脚本模块。图8是用于寻找媒体的脚本模块的示例,其中,脚本模块包括RTSP/RTP客户端模块121、解包模块122、帧缓冲器123、解码器模块124以及渲染器模块125。在图8的实施例中,以JavaScript实现脚本模块,其中,JavaScript为可由web浏览器解析的脚本。
RTSP/RTP客户端模块121被配置为支持与媒体服务设备110的RTSP/RTP通信。在现有技术中,可能无法在没有插件的情况下在web浏览器上根据RTSP/RTP协议来处理媒体数据。根据本示例性实施例,即使web浏览器使用HTTP方案,RTSP/RTP客户端模块121也可允许可靠地接收通过RTSP/RTP协议发送的数据。
解包模块122可对从RTSP/RTP客户端模块121发送的包进行解包。解包是打包的相反操作。如果通过将媒体数据划分成具有适当长度的块来形成包而执行打包,则可通过经由将所述块(即,包)再次放在一起而将媒体数据恢复到打包之前的状态来执行解包。
帧缓冲器123可临时存储解包的帧。帧缓冲器123可临时存储在相对于当前显示的帧的向前位置和向后位置处的邻近的帧,并且稍后将参照图12给出它们的详细描述。
解码器模块124可对编码的媒体数据进行解压缩(即,执行解码)。与脚本模块的其他模块类似地以JavaScript实现解码器模块124。由于以JavaScript实现解码器模块124,因此与嵌入在web浏览器中的解码器不同,可以在不限制编解码器格式的情况下以任意编解码器格式执行解码。还可以基于逐帧执行解码。
如果根据图8的实施例以JavaScript实现解码器模块124,则可由例如下面的表2中示出的代码来表示解码器模块124。
【表2】
渲染器模块125用于渲染解码的媒体数据并将它显示在输出装置(诸如,监视器等)上。渲染器模块125使用WebGL将YUV格式的视频数据转换成RGB格式的视频数据。WebGL是通过JavaScript可用的并允许创建三维(3D)图形界面的基于web的图形库。
图9示出模块存储单元115的脚本模块的另一个实施例。图9是用于重放媒体的脚本模块的示例。脚本模块包括RTSP/RTP客户端模块121、解包模块122、帧缓冲器123和容器创建模块127。此外,在图9的实施例中,以JavaScript实现脚本模块。RTSP/RTP客户端模块121、解包模块122和帧缓冲器123是参照图8描述的模块。
更详细地参照图9,可以看出,与图8的情况不同,图9的脚本模块包括以JavaScript实现的容器创建模块127。容器创建模块127被配置为:当媒体数据未基于容器(诸如,未按容器的单位)打包时,通过收集帧来形成组块数据(chunk data)。
组块数据表示由视频标签支持的容器(诸如,MPEG-DASH容器)。由于容器创建模块127以与视频标签兼容的容器格式形成媒体数据,因此即使媒体捕捉装置不以容器格式发送媒体数据,也可以使用视频标签而没有兼容性问题。也就是说,它提供了可在不修改之前安装的图像捕捉装置的情况下使用视频标签的环境。
参照图8和图9描述的脚本模块在媒体重放设备120连接到媒体服务设备110时从媒体服务设备110发送到媒体重放设备120,并提供可在没有插件的情况下在媒体重放设备120的web浏览器210中执行重放和寻找媒体的操作的环境。也就是说,脚本模块被安装在媒体重放设备120中以配置用于重放和寻找媒体的系统。将参照图10和图11描述具有脚本模块的媒体重放设备120的实施例。
图10示出媒体重放设备120的实施例。图10的实施例表示用于当以逐帧格式接收媒体数据时重放和寻找媒体的媒体重放设备120。
媒体重放设备120包括构成接收单元的WebSocket客户端131和RTSP/RTP客户端模块121、解包模块122、帧缓冲器123、第一媒体恢复单元141、第二媒体恢复单元142、缓冲器控制器模块126、解码控制器模块128和用户接口132。在这种情况下,RTSP/RTP客户端模块121、解包模块122、帧缓冲器123、第一媒体恢复单元141的容器创建模块127、第二媒体恢复单元142的解码器模块124、渲染器模块125、缓冲器控制器模块126和解码控制器模块128是通过响应于媒体重放设备120经由网络430连接到媒体服务设备110的情况接收脚本模块而被配置的模块。在图10的实施例中,媒体重放设备120包括两个视频解码器,即,分别包括在第一媒体恢复单元141和第二媒体恢复单元142中的第一视频解码器和第二视频解码器。
WebSocket客户端131和RTSP/RTP客户端模块121构成接收单元。WebSocket客户端131是用于与媒体服务设备110的web服务器114建立WebSocket连接的模块。媒体重放设备120和媒体服务设备110通过WebSocket客户端131与web服务器114之间的握手而分别发送和接收传输包。
RTSP/RTP客户端模块121执行如图8的实施例中描述的在用户的web浏览器210中支持RTSP/RTP通信的功能。因此,用户可在不安装单独的插件的情况下使用RTSP/RTP协议通过HTML5环境的web浏览器210来重放媒体。
已经经过WebSocket客户端131和RTSP/RTP客户端模块121的传输包在解包模块122中被解包,然后被传送到帧缓冲器123。
将参照图12描述帧缓冲器123和缓冲器控制器模块126。图12示出帧缓冲器123和缓冲器列表151的实施例。帧缓冲器123是用于临时存储解包的帧的模块,缓冲器列表151是包括临时存储在帧缓冲器123中的帧的标识符的模块。在一个实施例中,标识符是存储帧的帧缓冲器123的存储器地址。
参照图12,帧n-1、帧n和帧n+1顺序地构成多个帧,并且各个帧的存储器地址是0x031F、0x03AD和0x0514。帧n是与停止重放的点或通过寻找命令而移动的点对应的帧,帧n+1是沿向前方向的最近的帧,帧n-1是沿向后方向的最近的帧。
帧缓冲器123缓冲帧n以及沿相对于帧n的向前方向和向后方向的邻近的帧。在这种情况下,沿向前方向的将被缓冲的邻近的帧的数量可等于沿向后方向的将被缓冲的邻近的帧的数量。
缓冲器列表151以列表的形式临时存储在帧缓冲器123中临时存储的所有的帧的标识符。图12示出将帧n-1、帧n和帧n+1的标识符0x031F、0x03AD和0x0514以列表形式存储在缓冲器列表151中。
缓冲器控制器模块126包括缓冲器列表151作为用于根据重放命令或寻找命令来控制帧缓冲器123的操作的模块。当用户发送沿相对于当前显示的帧n向前的方向的寻找152的命令时,缓冲器控制器模块126参照缓冲器列表151中的帧n的标识符的下一个标识符0x0514通过指针寻找到帧n+1,其中,帧n+1为沿帧n的向前方向的最近的帧。类似地,当沿相对于帧n的向后方向的寻找153的命令被输入时,缓冲器控制器模块126参照在缓冲器列表151中的帧n的标识符的之前标识符0x031F通过指针寻找到帧n-1。
当媒体数据的寻找一直执行到包括在缓冲器列表151中的最终标识符或者跳过寻找执行到针对未包括在帧缓冲器123中的任意帧时,可重新开始缓冲帧缓冲器123中的相对于与最终标识符对应的帧或任意帧的邻近的帧的处理,以执行平滑寻找。
如果帧缓冲器123被设置为选择性地对I帧(帧内帧)进行缓冲,则用户可在多个帧之中针对I帧执行向前寻找和向后寻找。
为了临时存储在当前重放时间之后沿向前方向的一定数量的邻近的帧,用于媒体重放的传统缓冲器使用如果寻找方向改变为向后方向则再次执行缓冲的方法。然而,由于本公开的帧缓冲器123临时存储在当前重放时间的沿向前方向和向后方向的邻近的帧,因此当用户沿与重放方向相反的方向执行寻找时,不需要另外的缓冲。
当根据重放命令播放媒体时,帧缓冲器123可用作抖动缓冲器(jitter buffer)。因此,通过消除由于音频业务的传输延迟而引起的抖动可以使音频重放流畅。
再次参照图10,将将被重放或寻找的媒体从帧缓冲器123发送到第一媒体恢复单元141或第二媒体恢复单元142。
作为用于重放媒体的模块,第一媒体恢复单元141包括容器创建模块127、均方误差(MSE)模块134和视频标签模块135。作为第一视频解码器的视频标签模块135对数据进行解码。视频标签模块135还可被称为视频标签播放器。
如参照图9所述,当媒体数据不是以容器格式传输时,容器创建模块127收集帧以生成容器格式的组块数据。已经经过容器创建模块127的媒体数据在不存在因容器格式引起的兼容性问题的情况下传送到MSE模块134和视频标签模块135。
MSE模块134为为了视频流传输重放而使用HTTP下载创建的用于HTML5的JavaScript API。这种由万维网联盟(W3C)标准化的技术能够在游戏机(诸如,Xbox和PlayStation 4(PS4))或Chromecast浏览器上进行流传输重放。
视频标签模块135执行解码和渲染,使得媒体被显示在web浏览器上。使用视频标签模块135的解码器能够以比由于JavaScript的动态语言特性而具有限制的解码器模块124更好的性能进行解码。换句话说,可实现高分辨率图像和高每秒帧数(FPS)的解码。
作为用于寻找媒体的模块,第二媒体恢复单元142包括解码器模块124、渲染器模块125和画布(canvas)标签133,并且媒体数据通过以JavaScript实现的解码器模块124被解码,其中,解码器模块124为第二视频解码器。
基于逐帧执行解码器模块124中的解码。由于解码器模块124的逐帧处理方法,所以用户可基于逐帧寻找媒体。
经由渲染器模块125和画布标签133将解码的媒体数据显示在web浏览器上。画布标签133是允许2D形状和位图图像被动态渲染的HTML5的元素。也就是说,它可被视为web浏览器上的绘图程序。由于它是大多数最新版本的web浏览器支持的功能,因此可通过以JavaScript实现的解码器基于逐帧处理媒体数据,并通过使用画布标签133将媒体数据显示在web浏览器上。
解码控制器模块128可根据用户的输入来控制媒体数据将通过第一媒体恢复单元或第二媒体恢复单元解码。如果用户的输入为重放命令,则帧缓冲器123通过缓冲器控制器模块126将媒体数据发送到第一媒体恢复单元141,并且媒体数据在第一媒体恢复单元141中被解码并被显示在web浏览器210上。如果用户的输入为寻找命令,则帧缓冲器123通过缓冲器控制器模块126将媒体数据发送到第二媒体恢复单元142,并且媒体数据在第二媒体恢复单元142中基于逐帧解码并显示在web浏览器210上。
解码控制器模块128可被配置为硬件(诸如,CPU)的执行指令,但是也可被实现为软件(诸如,C语言、C++或JavaScript)中的子例程。
当在执行重放命令的同时输入寻找命令时,解码控制器模块128停止第一媒体恢复单元141的解码,并将媒体数据发送到第二媒体恢复单元142,使得通过以JavaScript实现的解码器模块124对媒体数据进行解码。当在执行寻找命令的同时输入重放命令时,解码控制器模块128停止第二媒体恢复单元142的解码,并将媒体数据发送到第一媒体恢复单元141,使得通过视频标签模块135执行解码。
参照图13来描述作为在图10的实施例中的媒体重放设备120的最终配置模块的用户接口132。
图13示出根据示例性实施例的包括在用户接口132中的GUI 211。用户接口132包括GUI 211和输入装置。图13中示出在web浏览器210上实现的GUI 211。
如果用户接口132的输入装置为触摸屏,则用户可通过触摸显示有GUI211的屏幕来操作系统。如果输入装置为鼠标,则用户可通过点击或拖动GUI211的每个按钮来操作系统。
GUI 211包括重放命令输入单元212和寻找命令输入单元213。用户可通过重放命令输入单元212输入重放命令(诸如,重放、暂停和停止)。用户可通过使用寻找命令输入单元213输入寻找命令(诸如,寻找模式的开/关、向前寻找和向后寻找)。
当用户将切换按钮214设置为开时,开始寻找模式。在指示当前重放位置的指示器217的两侧的阴影条指示临时存储在帧缓冲器123中的当前显示的视频帧以及沿向前方向和向后方向的邻近的帧。当用户点击向前寻找按钮215时,执行向前寻找以寻找沿当前显示的帧的向前方向的邻近的帧。当用户点击向后寻找按钮216时,执行向后寻找以寻找沿当前显示的帧的向后方向的邻近的帧。此外,用户可通过将指示器217拖动到特定的帧来跳过一个或多个帧。在图13的以上描述中,已经解释了当用户将寻找模式设置为开时,模式被切换到寻找模式。然而,本示例性实施例不限于此,并且可被配置为使得在发生特定事件(诸如,指定对象的出现、超过一定水平的音频的生成、场景改变等)时,模式被自动切换到寻找模式。
将参照图14描述根据用户的输入的媒体重放设备120的操作处理。
当通过用户界面132输入重放命令之中的播放时,解码控制器模块128指示WebSocket客户端131请求媒体数据。
解码控制器模块128不一定必须指示WebSocket客户端131请求媒体数据。相反,解码控制器模块128可直接形成单独的通信信道来请求媒体数据。也就是说,可根据系统配置不同地设置它。在图14的实施例中,解码控制器模块128直接请求媒体服务设备110将媒体数据发送到媒体重放设备120。
从媒体服务设备110接收的媒体数据被临时存储在帧缓冲器123中,然后被传送到第一媒体恢复单元141。媒体数据在第一媒体恢复单元141的视频标签模块135中被解码,并被显示在web浏览器210的用户接口132上(操作S2000)。
当诸如暂停或停止的命令被输入到用户接口132时,解码控制器模块128将停止媒体重放的命令发送到第一媒体恢复单元141,并且第一媒体恢复单元141停止正被重放的媒体(操作S2100)。
当寻找命令被输入到用户接口132时,WebSocket客户端131通过解码控制器模块128的命令向媒体服务设备110请求媒体数据。在这种情况下,请求的媒体数据可作为以逐帧格式生成的传输包被发送。接收的媒体数据被临时存储在帧缓冲器123中,并且寻找的目标帧被发送到第二媒体恢复单元142。由在第二媒体恢复单元142中的以JavaScript实现的解码器模块124基于逐帧对媒体数据进行解码,并将媒体数据显示在用户接口132上(操作S2200)。
接下来,将参照图11描述媒体重放设备120的另一个实施例。如果图10的实施例涉及用于重放和寻找以逐帧格式接收的媒体数据的媒体重放设备120,则图11的实施例表示用于重放和寻找以包括多个帧的组块数据的形式接收的媒体数据的媒体重放设备120。
与图10的实施例不同,图11的实施例不包括容器创建模块127。取而代之,容器缓冲器129用于在以容器格式(即,基于组块数据(诸如,按组块数据的单位))接收到媒体数据时缓冲当前被解码并输出的组块数据。当已经在媒体服务设备110中以容器格式对接收到的媒体数据进行打包并发送该媒体数据时,组块数据被直接输入到MSE模块134,而不通过如图10所示的容器创建模块127。
缓冲在容器缓冲器129中的组块数据可被输入到第一媒体恢复单元141以用于重放,并可在被划分成帧之后被缓冲在帧缓冲器123中以用于寻找。与图10的实施例类似,缓冲在帧缓冲器123中的帧在第二媒体恢复单元142中被解码并被渲染。此外,存储在帧缓冲器123中的帧可在被输入到第二媒体恢复单元142的步骤中被双向地缓冲,使得用户容易地执行双向(向后/向前)寻找。
在下文中,将描述重放和寻找由图11的媒体重放设备120以容器格式接收的组块数据的方法。
通过构成接收单元的WebSocket客户端131和RTSP/RTP客户端模块121接收到的媒体数据在解包模块122中被解包并被发送到容器缓冲器129。
当用户输入媒体的重放命令时,容器缓冲器129将媒体数据传送到第一媒体恢复单元141,使得通过MSE模块134和视频标签模块135恢复媒体数据并输出该媒体数据。
当用户输入媒体的寻找命令时,容器缓冲器129将组块数据发送到帧缓冲器123。从容器缓冲器129连接到帧缓冲器123的箭头指示发送的组块数据。
帧缓冲器123将组块数据格式的媒体数据转换成逐帧格式的媒体数据,并将寻找的目标帧提供给第二媒体恢复单元142。
第二媒体恢复单元142通过解码器模块124和渲染器模块125解码并渲染作为用户的寻找命令的目标的帧,并输出该帧。
由解码控制器模块128和缓冲器控制器模块126以与图10的实施例中的方式相同的方式来执行根据用户的重放和寻找命令的对缓冲和媒体恢复的控制。响应于重放命令,解码控制器模块128控制第一媒体恢复单元141恢复并输出媒体数据,并且缓冲器控制器模块126控制容器缓冲器129缓冲组块数据。响应于寻找命令,解码控制器模块128控制第二媒体恢复单元142恢复并输出媒体数据,并且缓冲器控制器模块126控制组块数据从容器缓冲器129传送到帧缓冲器123。
如上所述的图10的媒体重放设备120和图11的媒体重放设备120分别是重放和寻找逐帧格式和组块数据格式的媒体数据的实施例。将清楚,可通过两个实施例的组合来配置能够重放和寻找逐帧格式的媒体数据和组块数据格式的媒体数据二者的媒体重放设备120。
图15示出根据示例性实施例的生成以JavaScript实现的脚本模块的处理。参照图15,可通过使用转换器(诸如,Emscripten)转换以传统的C和C++本地代码编写的源以获得可在浏览器中使用的JavaScript代码来实现以JavaScript实现的脚本模块。
当使用诸如Emscripten的转换器时,可以从传统的本地代码获得以JavaScript实现的解码器或容器。因此,具有可降低编解码器依赖性的优点。
由于使用JavaScript代码代替插件,因此不必担心浏览器的支持中断。此外,不需要担心是否根据浏览器使用ActiveX接口或使用NPAPI接口。也就是说,具有可降低对浏览器的依赖性的优点。
例如,图1中示出的媒体重放设备120可被实现为图16中示出的计算装置400。计算装置400可以是但不限于移动手持装置(例如,智能电话、平板计算机等)、膝上型或笔记本计算机、分布式计算机系统、计算网格或服务器。计算装置400可包括经由总线440彼此或与其他元件通信的处理器401、内存403和存储器408。总线440可连接到显示器432、至少一个输入装置433和至少一个输出装置434。
所有这些元件可直接或经由一个或多个接口或适配器连接到总线440。总线440连接到各种各样的子系统。总线440可包括存储器总线、存储器控制器、外围总线、本地总线以及它们的组合。
处理器(例如,中央处理器(CPU))401可选地包括作为用于临时存储指令、数据或计算机地址的本地存储器的高速缓存存储器402。处理器401执行存储在计算机可读存储介质(诸如,内存403或存储器408)中的指令(或软件模块)。计算机可读存储介质可存储实现特定实施例的软件模块,并且处理器401可执行存储的软件模块。
内存403可包括:随机存取存储器(RAM)404、只读存储器(ROM)405以及它们的组合。此外,具有启动计算装置400所需的基本例程的基本输入/输出系统(BIOS)(例如,固件)可被包括在内存403中。
存储器408用于存储操作系统409、可执行文件(EXEC)410、数据411、API 412等。存储器408可以是硬盘驱动器、光盘驱动器、固态驱动器(SSD)等。
计算装置400可包括输入装置433。用户可经由输入装置433将命令和/或信息输入到计算装置400。输入装置433的示例可包括:键盘、鼠标、触摸板、游戏杆、游戏控制器、麦克风、光学扫描仪和相机。输入装置433可经由包括串行端口、并行端口、游戏端口、通用串行总线(USB)等的输入接口423连接到总线440。
在一些实施例中,计算装置400连接到网络430。计算装置400经由网络430连接到其他装置。在这种情况下,网络接口420从网络430接收一个或多个包的形式的通信数据,并且计算装置400存储接收到的通信数据以用于处理器401的处理。类似地,计算装置400将发送的一个或多个包的形式的通信数据存储在内存403中,并且网络接口420将通信数据发送到网络430。
网络接口420可包括:网络接口卡、调制解调器等。网络430的示例可包括因特网、广域网(WAN)、局域网(LAN)、电话网络、直接连接通信等,并且有线和/或无线通信方案可被采用。
可通过显示器432显示处理器401对软件模块的执行结果。显示器432的示例可包括液晶显示器(LCD)、有机发光显示器(OLED)、阴极射线管(CRT)和等离子显示面板(PDP)。显示器432经由视频接口422连接到总线440,并且显示器432与总线440之间的数据传输可由图形控制器421控制。
除了显示器432之外,计算装置400可包括至少一个输出装置434(诸如,音频扬声器和打印机)。输出装置434经由输出接口424连接到总线440。输出接口424可以是:例如,串行端口、并行端口、游戏端口、USB等。
虽然不限于此,但是示例性实施例可被实施为计算机可读记录介质上的计算机可读代码。计算机可读记录介质是可存储之后可由计算机系统读取的数据的任何数据存储装置。计算机可读记录介质的示例包括:只读存储器(ROM)、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光学数据存储装置。计算机可读记录介质还可被分布在联网的计算机系统,使得以分布式的方式存储并执行计算机可读代码。此外,示例性实施例可被编写为通过计算机可读传输介质(诸如,载波)传输的计算机程序,并且在执行程序的通用或专用数字计算机中被接收并实现。此外,应理解,在示例性实施例中,上述设备和装置的一个或多个单元可包括电路、处理器、微处理器等,并可执行存储在计算机可读介质中的计算机程序。
前述示例性实施例仅仅是示例性的,不将被解释为限制性的。本教导可被容易地应用于其他类型的设备。此外,示例性实施例的描述意图是说明性的,而不限制权利要求的范围,并且很多替代物、修改和改变对于本领域技术人员来说将是清楚的。

Claims (15)

1.一种用于在web浏览器上播放媒体的媒体重放设备,包括:接收单元,被配置为使用支持web服务的通信协议接收在媒体服务设备中生成的媒体数据;
第一媒体恢复单元,被配置为通过嵌入在web浏览器中的第一解码器对接收的媒体数据进行解码;
第二媒体恢复单元,被配置为通过以脚本编写的第二解码器对接收的媒体数据进行解码,其中,所述脚本被配置为由web浏览器解析;
用户接口,被配置为接收控制命令,其中,所述控制命令控制接收的媒体数据;
解码控制器,被配置为响应于控制命令与重放命令对应而控制第一媒体恢复单元对接收的媒体数据进行解码,并响应于控制命令与寻找命令对应而控制第二媒体恢复单元对接收的媒体数据进行解码。
2.根据权利要求1所述的媒体重放设备,其中,响应于在第一媒体恢复单元根据重放命令对接收的媒体数据进行解码的同时输入寻找命令,解码控制器停止第一媒体恢复单元对接收的媒体数据进行解码,
响应于在第二媒体恢复单元根据寻找命令对接收的媒体数据进行解码的同时输入重放命令,解码控制器停止第二媒体恢复单元对接收的媒体数据进行解码。
3.根据权利要求1所述的媒体重放设备,其中,第二解码器是以JavaScript编写的,并且嵌入在web浏览器中的第一解码器为以超文本标记语言5支持的视频标签模块。
4.根据权利要求1所述的媒体重放设备,其中,寻找命令包括跳过寻找、向前寻找和向后寻找中的至少一个,
其中,重放命令包括播放、停止、暂停、倒退和快进中的至少一个。
5.根据权利要求1所述的媒体重放设备,还包括:
帧缓冲器,被配置为对帧进行缓冲以在第二媒体恢复单元中执行寻找命令;
缓冲器控制模块,被配置为存储包括临时存储在帧缓冲器中的帧的标识符的缓冲器列表。
6.根据权利要求5所述的媒体重放设备,还包括:
容器缓冲器,被配置为当接收的媒体数据包含包括多个帧的组块数据时,基于组块数据执行缓冲,
其中,帧缓冲器还被配置为对包括在组块数据中的所述多个帧进行缓冲以执行寻找命令。
7.根据权利要求5所述的媒体重放设备,其中,缓冲器列表包括在相对于与由第一媒体恢复单元执行的重放被寻找命令停止的点或者通过寻找命令移动的点对应的第一帧的向前方向和向后方向的邻近的帧的标识符。
8.根据权利要求7所述的媒体重放设备,其中,所述第一帧和所述邻近的帧为帧内帧。
9.根据权利要求1所述的媒体重放设备,其中,第一媒体恢复单元还被配置为:基于容器对接收的媒体数据进行解码,其中,每个容器包括多个帧。
10.根据权利要求1所述的媒体重放设备,其中,第二媒体恢复单元还被配置为:基于逐帧对接收的媒体数据进行解码。
11.一种用于向媒体重放设备实时发送实时实况视频或存储的视频的媒体服务设备,所述媒体服务设备包括:
模块存储单元,被配置为存储用于在媒体重放设备的web浏览器上重放实时实况视频或存储的视频的脚本模块,其中,脚本模块是以被配置为由web浏览器解析的脚本编写的;
模块传输单元,被配置为响应于媒体服务设备与媒体重放设备之间的连接被建立,将脚本模块传输到媒体重放设备;
打包单元,被配置为对实时实况视频或存储的视频进行打包以生成传输包;
web服务器,被配置为建立所述连接并响应于从媒体重放设备接收到控制命令而将传输包传输到媒体重放设备,
其中,脚本模块被配置为:根据对从媒体重放设备接收的控制命令是重放命令还是寻找命令的确定,通过在媒体重放设备中执行的多个视频解码器之中的不同的解码器对传输包进行解码。
12.根据权利要求11所述的媒体服务设备,其中,所述多个视频解码器包括嵌入在web浏览器中的第一视频解码器和以脚本编写的第二视频解码器,其中,所述脚本被配置为由web浏览器解析。
13.根据权利要求12所述的媒体服务设备,其中,脚本模块还被配置为:响应于控制命令与重放命令对应而控制第一视频解码器对传输包进行解码,并响应于控制命令与寻找命令对应而控制第二视频解码器对传输包进行解码。
14.根据权利要求11所述的媒体服务设备,其中,打包单元还被配置为:响应于控制命令与重放命令对应而以容器格式生成传输包,并响应于控制命令与寻找命令对应而以逐帧格式生成传输包。
15.根据权利要求11所述的媒体服务设备,其中,脚本模块包括以下模块中的至少一个模块:
实时流传输协议/实时传输协议RTSP/RTP客户端模块,被配置为支持与媒体服务设备的RTSP/RTP通信;
解包模块,被配置为对传输包进行解包;
帧缓冲器,被配置为临时存储通过解包获得的视频帧;
解码器模块,被配置为对通过解包获得的视频帧进行解码来恢复视频;
容器创建模块,被配置为响应于视频帧未基于容器打包,而基于容器对视频帧进行打包;
渲染器模块,被配置为渲染解码的传输包;
解码控制器模块,被配置为控制包括在媒体重放设备中的所述多个解码器之中的哪个解码器用于对传输包进行解码。
CN201810049063.4A 2017-01-20 2018-01-18 用于在web浏览器上播放媒体的媒体重放设备和媒体服务设备 Active CN108337560B (zh)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
KR20170009963 2017-01-20
KR10-2017-0009963 2017-01-20
US201762457203P 2017-02-10 2017-02-10
US62/457,203 2017-02-10
KR1020170087651A KR101942269B1 (ko) 2017-01-20 2017-07-11 웹 브라우저에서 미디어를 재생하고 탐색하는 장치 및 방법
KR10-2017-0087651 2017-07-11

Publications (2)

Publication Number Publication Date
CN108337560A true CN108337560A (zh) 2018-07-27
CN108337560B CN108337560B (zh) 2021-09-21

Family

ID=62906897

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810049063.4A Active CN108337560B (zh) 2017-01-20 2018-01-18 用于在web浏览器上播放媒体的媒体重放设备和媒体服务设备

Country Status (2)

Country Link
US (1) US11089349B2 (zh)
CN (1) CN108337560B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110602442A (zh) * 2019-07-04 2019-12-20 安徽富煌科技股份有限公司 一种视频监控系统中实时码流播放控制的实现方法
CN112261377A (zh) * 2020-10-23 2021-01-22 青岛以萨数据技术有限公司 web版监控视频播放方法、电子设备及存储介质
CN112489683A (zh) * 2020-11-24 2021-03-12 广州市久邦数码科技有限公司 基于关键词语定位实现音频快进快退的方法和装置
CN113497967A (zh) * 2021-05-26 2021-10-12 浙江大华技术股份有限公司 基于浏览器的视频帧切换方法、装置和存储介质
CN113672293A (zh) * 2020-04-30 2021-11-19 华为技术有限公司 一种基于云手机的媒体数据处理方法以及终端设备

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109977381B (zh) * 2019-03-04 2023-06-09 沐坤科技有限公司 一种基于Office Addin的h5互动资源存取编辑和播放工具
EP3761654A1 (en) * 2019-07-04 2021-01-06 THEO Technologies Media streaming
US11012498B1 (en) * 2020-01-02 2021-05-18 Microsoft Technology Licensing, Llc Web browser multi-media redirection
US11012485B1 (en) * 2020-01-02 2021-05-18 Microsoft Technology Licensing, Llc Multi-media redirection for media applications
US11849186B1 (en) * 2022-06-14 2023-12-19 Western Digital Technologies, Inc. Data storage device and method for enabling metadata-based seek points for media access

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040096186A1 (en) * 2002-11-19 2004-05-20 Kabushiki Kaisha Toshiba Information playback apparatus and information playback method
CN1883206A (zh) * 2003-11-18 2006-12-20 皇家飞利浦电子股份有限公司 特技播放信号的再现
US20130074131A1 (en) * 2011-09-15 2013-03-21 Milestone Project, Inc. System and method for integrating and controlling web-based html players in a native context
CN103460707A (zh) * 2012-02-09 2013-12-18 松下电器产业株式会社 多媒体内容数据编辑服务器、多媒体内容数据编辑方法、程序及集成电路
CN103795364A (zh) * 2010-02-11 2014-05-14 杜比实验室特许公司 用于对编码输入信号进行解码的方法和设备
CN103891303A (zh) * 2011-08-16 2014-06-25 黛斯悌尼软件产品有限公司 基于脚本的视频呈现
CN105453573A (zh) * 2013-06-27 2016-03-30 英国电讯有限公司 提供视频数据
US20160248833A1 (en) * 2015-02-25 2016-08-25 StreamRail Ltd. System and method for playing a video on mobile web environments

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6894692B2 (en) * 2002-06-11 2005-05-17 Hewlett-Packard Development Company, L.P. System and method for sychronizing video data streams
EP2026535A1 (en) 2003-10-31 2009-02-18 Sony Corporation System, method, and computer program product for remotely determining the configuration of a multi-media content user
US7853980B2 (en) 2003-10-31 2010-12-14 Sony Corporation Bi-directional indices for trick mode video-on-demand
KR100651169B1 (ko) 2004-04-07 2006-11-29 최경우 2원화된 데이터 전송 방식의 멀티미디어방 운영 시스템 및그 운영 방법
KR100703682B1 (ko) * 2004-08-27 2007-04-05 삼성전자주식회사 디지털 방송 수신기에서 채널 절환 지연 시간을감소시키는 방법 및 그 방법을 사용하는 디지털 방송 수신기
US9380104B2 (en) 2010-12-20 2016-06-28 Thomson Licensing Media player web service
US8751800B1 (en) * 2011-12-12 2014-06-10 Google Inc. DRM provider interoperability
US9936267B2 (en) * 2012-08-31 2018-04-03 Divx Cf Holdings Llc System and method for decreasing an initial buffering period of an adaptive streaming system
US9402107B2 (en) * 2013-03-15 2016-07-26 Time Warner Cable Enterprises Llc Apparatus and methods for delivery of multicast and unicast content in a content delivery network
US9247317B2 (en) 2013-05-30 2016-01-26 Sonic Ip, Inc. Content streaming with client device trick play index
US10582265B2 (en) * 2015-04-30 2020-03-03 JBF Interlude 2009 LTD Systems and methods for nonlinear video playback using linear real-time video players
US10652594B2 (en) * 2016-07-07 2020-05-12 Time Warner Cable Enterprises Llc Apparatus and methods for presentation of key frames in encrypted content

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040096186A1 (en) * 2002-11-19 2004-05-20 Kabushiki Kaisha Toshiba Information playback apparatus and information playback method
CN1883206A (zh) * 2003-11-18 2006-12-20 皇家飞利浦电子股份有限公司 特技播放信号的再现
CN103795364A (zh) * 2010-02-11 2014-05-14 杜比实验室特许公司 用于对编码输入信号进行解码的方法和设备
CN103891303A (zh) * 2011-08-16 2014-06-25 黛斯悌尼软件产品有限公司 基于脚本的视频呈现
US20130074131A1 (en) * 2011-09-15 2013-03-21 Milestone Project, Inc. System and method for integrating and controlling web-based html players in a native context
CN103460707A (zh) * 2012-02-09 2013-12-18 松下电器产业株式会社 多媒体内容数据编辑服务器、多媒体内容数据编辑方法、程序及集成电路
CN105453573A (zh) * 2013-06-27 2016-03-30 英国电讯有限公司 提供视频数据
US20160248833A1 (en) * 2015-02-25 2016-08-25 StreamRail Ltd. System and method for playing a video on mobile web environments

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
DOMINIC SZABLEWSKI: "HTML5 Live Video Streaming via WebSockets PhobosLab", 《HTTP://PHOBOSLAB.ORG/LOG/2013/09/HTML5-LIVE-VIDEO-STREAMING-VIA-WEBSOCKETS》 *
GUOLEI ZHU,FANG ZHANG,WEI ZHU,YAYU ZHENG: "HTML5 based media player for real-time video surveillance", 《IEEEXPLORE》 *
张志雄: "H.264嵌入式流媒体视频播放系统研究与设计", 《中国优秀硕士学位论文全文数据库》 *
黄雄: "基于HTML5的视频音频传输技术的研究与设计", 《中国优秀硕士学位论文全文数据库》 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110602442A (zh) * 2019-07-04 2019-12-20 安徽富煌科技股份有限公司 一种视频监控系统中实时码流播放控制的实现方法
CN113672293A (zh) * 2020-04-30 2021-11-19 华为技术有限公司 一种基于云手机的媒体数据处理方法以及终端设备
CN113672293B (zh) * 2020-04-30 2024-04-09 华为云计算技术有限公司 一种基于云手机的媒体数据处理方法以及终端设备
CN112261377A (zh) * 2020-10-23 2021-01-22 青岛以萨数据技术有限公司 web版监控视频播放方法、电子设备及存储介质
CN112261377B (zh) * 2020-10-23 2023-07-04 青岛以萨数据技术有限公司 web版监控视频播放方法、电子设备及存储介质
CN112489683A (zh) * 2020-11-24 2021-03-12 广州市久邦数码科技有限公司 基于关键词语定位实现音频快进快退的方法和装置
CN113497967A (zh) * 2021-05-26 2021-10-12 浙江大华技术股份有限公司 基于浏览器的视频帧切换方法、装置和存储介质
CN113497967B (zh) * 2021-05-26 2023-03-14 浙江大华技术股份有限公司 基于浏览器的视频帧切换方法、装置和存储介质

Also Published As

Publication number Publication date
US20180213274A1 (en) 2018-07-26
CN108337560B (zh) 2021-09-21
US11089349B2 (en) 2021-08-10

Similar Documents

Publication Publication Date Title
CN108337560A (zh) 用于在web浏览器上播放媒体的媒体重放设备和媒体服务设备
US10567809B2 (en) Selective media playing method and apparatus according to live streaming and recorded streaming
CN108337545A (zh) 用于同步再现视频和音频的媒体重放设备和媒体服务设备
US20220263885A1 (en) Adaptive media streaming method and apparatus according to decoding performance
US9930308B2 (en) Platform-agnostic video player for mobile computing devices and desktop computers
KR101942269B1 (ko) 웹 브라우저에서 미디어를 재생하고 탐색하는 장치 및 방법
US11909799B2 (en) Media playback apparatus and method including delay prevention system
WO2017107911A1 (zh) 一种视频云平台播放视频的方法及装置
CA2843766A1 (en) Script-based video rendering
US20110310965A1 (en) Communication device, communication method, and communication program product
CN110446114B (zh) 多媒体数据的处理装置、方法、电子设备及存储介质
CN109325145A (zh) 视频缩略图的获取方法、终端及计算机可读存储介质
CN107592551A (zh) 用于云流服务的方法和设备
US9948691B2 (en) Reducing input processing latency for remotely executed applications
Quax et al. Remote rendering solutions using web technologies
KR20140133096A (ko) 가상화 웹 iptv 및 이를 이용한 동영상 스트리밍 방법
Vats et al. Semantic-aware view prediction for 360-degree videos at the 5g edge
Tamm et al. Plugin free remote visualization in the browser
US20240098333A1 (en) Video Playback based on an HTML iframe and a Headless Browser
JP2015088002A (ja) 動画をクライアント端末に表示させるサーバ及び方法
JP2015088156A (ja) 動画をクライアント端末に表示させるサーバ及び方法
CN115801878A (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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: Gyeongnam Changwon City, South Korea

Applicant after: HANWHA AEROSPACE Co.,Ltd.

Address before: Gyeongnam Changwon City, South Korea

Applicant before: HANWHA TECHWIN Co.,Ltd.

TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20190227

Address after: Gyeonggi Do city of South Korea

Applicant after: HANWHA TECHWIN Co.,Ltd.

Address before: Gyeongnam Changwon City, South Korea

Applicant before: HANWHA AEROSPACE Co.,Ltd.

GR01 Patent grant
GR01 Patent grant
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: Gyeonggi Do city of South Korea

Patentee after: Hanhua Vision Co.,Ltd.

Address before: Gyeonggi Do city of South Korea

Patentee before: HANWHA TECHWIN Co.,Ltd.