CN107645491B - 媒体流传输设备和媒体服务设备 - Google Patents

媒体流传输设备和媒体服务设备 Download PDF

Info

Publication number
CN107645491B
CN107645491B CN201710599398.9A CN201710599398A CN107645491B CN 107645491 B CN107645491 B CN 107645491B CN 201710599398 A CN201710599398 A CN 201710599398A CN 107645491 B CN107645491 B CN 107645491B
Authority
CN
China
Prior art keywords
media
streaming
module
media data
web browser
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201710599398.9A
Other languages
English (en)
Other versions
CN107645491A (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
Application filed by Hanwha Techwin Co Ltd filed Critical Hanwha Techwin Co Ltd
Publication of CN107645491A publication Critical patent/CN107645491A/zh
Application granted granted Critical
Publication of CN107645491B publication Critical patent/CN107645491B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • 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/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/2187Live feed
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45529Embedded in an application, e.g. JavaScript in a Web browser
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/611Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for multicast or broadcast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • 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/231Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
    • 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/231Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
    • H04N21/23103Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion using load balancing strategies, e.g. by placing or distributing content on different disks, different memories or different servers
    • 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/231Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
    • H04N21/23116Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion involving data replication, e.g. over plural servers
    • 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/231Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
    • H04N21/2312Data placement on disk arrays
    • 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/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • 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
    • H04N21/2396Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests involving handling client requests characterized by admission policies
    • 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/41Structure of client; Structure of client peripherals
    • H04N21/426Internal components of the client ; Characteristics thereof
    • H04N21/42676Internal components of the client ; Characteristics thereof for modulating an analogue carrier signal to encode digital information or demodulating it to decode digital information, e.g. ADSL or cable modem
    • 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/435Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
    • H04N21/4353Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream involving decryption of additional data
    • 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/435Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
    • H04N21/4355Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream involving reformatting operations of additional data, e.g. HTML pages on a television screen
    • 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/478Supplemental services, e.g. displaying phone caller identification, shopping application
    • H04N21/4782Web browsing, e.g. WebTV
    • 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/61Network physical structure; Signal processing
    • H04N21/6106Network physical structure; Signal processing specially adapted to the downstream path of the transmission network
    • H04N21/6125Network physical structure; Signal processing specially adapted to the downstream path of the transmission network involving transmission via Internet
    • 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
    • H04N21/6437Real-time Transport Protocol [RTP]
    • 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/81Monomedia components thereof
    • H04N21/8166Monomedia components thereof involving executable data, e.g. software
    • H04N21/8173End-user applications, e.g. Web browser, game
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/18Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast
    • 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/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • 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/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
    • 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/85406Content authoring involving a specific file format, e.g. MP4 format

Abstract

提供一种媒体流传输设备和媒体服务设备。直播流传输表示在用户的网络浏览器上播放由媒体服务设备正在实时捕获的媒体的情况,记录流传输表示在用户的网络浏览器中播放预先记录和存储在服务器中的媒体的情况。在直播流传输的情况下,由于实时是重要因素,所以提供一种通过使用以可由网络浏览器解析的脚本编写的解码器的没有初始延迟的媒体播放方法。在记录流的情况下,提供一种即使当媒体服务设备不具有容器创建功能时也能没有与容器相关的兼容性问题地使用嵌入在网络浏览器中的解码器的媒体播放方法。

Description

媒体流传输设备和媒体服务设备
本申请要求于2016年7月21日提交到韩国知识产权局的第10-2016-0092373号韩国专利申请的优先权,所述韩国专利申请的公开通过引用完整包含于此。
技术领域
本公开涉及一种用于在网络浏览器中播放媒体的方法和设备,更具体地讲,涉及一种用于通过针对对于实时捕获的媒体的直播流传输(live streaming)和存储在服务器中的媒体的回放选择性使用逻辑来在网络浏览器中播放媒体的方法,以及用于执行该方法的设备。
背景技术
为了使用户通过互联网在网络浏览器上播放媒体数据,存在使用以本地代码(native code)编写解码器、渲染器等的插件的方法。插件的代表性示例是将在下面均被描述的ActiveX和Netscape插件应用程序编程接口(NPAPI)。
ActiveX由微软使用两种技术(组件对象模型(COM)和对象链接与嵌入(OLE))的组合而开发。然而,在狭义上,它表示以作为网络浏览器的IE浏览器中以扩展(add-on)的形式使用的ActiveX控件。ActiveX被用于在IE网络浏览器中播放媒体。
NPAPI是针对Netscape浏览器开发的应用编程接口(API),并在功能上与IE浏览器的ActiveX类似。NPAPI是被提供用于使用插件形式的外部应用程序的API以增强网络浏览器的功能,并在它的萌芽阶段被首先用于网络环境。换言之,它被开发来在早期网络页面上播放音乐和视频。例如,存在Java Applet、Adobe Flash和Real Player等。
然而,由于插件有时会被黑客滥用为散布恶意代码,所以很多主要流传输网络浏览器不再支持插件。在NPAPI的情况下,生产和分布Chrome的谷歌在发布Chrome版本45之后不再支持NPAPI。此外,ActiveX不再被作为Windows 10的默认浏览器的Microsoft Edgebrowser所支持。
为了在没有插件支持的情况下播放媒体,媒体可使用作为超文本标记语言版本5(HTML5)支持的协议的运动图像专家组动态自适应流传输超文本传输协议(MPEG-DASH)和使用HTML5视频元件执行解码来被传输。通过使用这个方法,可在不使用插件,而仅使用嵌入在网络浏览器中的代码来以相对优异性能播放媒体是可能的。
然而,使用HTML5视频元件并不是没有它的限制。由于MPEG-DASH容器(container)被用于媒体传输,所以初始延迟可在将视频载入到容器时发生。此外,针对用于根据MPEG-DASH的容器传输媒体的传输单元的要求可引起兼容性问题和支持的视频格式的限制数量。
与此同时,在网络浏览器中播放媒体有至少两种不同的模式:对实时捕获的媒体进行流传输的直播流传输以及对存储在服务器中的媒体进行流传输的回放。仅使用HTML5视频元件的直播流传输和回放存在以下的限制。首先,由于基于容器的MPEG-DASH流,所以HTML5视频元件可不适用于不能接受初始延迟的直播流传输(诸如,视频监控系统)。其次,在对预记录媒体进行流传输的情况下,因为HTML5视频元件相对不受实时约束的影响,所以它可被使用。然而,当使用先前安装的设备中使用实时流传输协议/实时传输协议(RTSP/RTP)方案来执行流传输时以及因对视频标签的支持的编解码器的限制,可发生兼容性问题。
因此,存在针对能够在没有上述问题的情况下根据流传输模式在网络浏览器上无缝播放媒体的设备和方法的需要。
发明内容
一个或多个示例性实施例提供一种用于在没有使用插件的情况下在网络浏览器中播放媒体的方法和设备。
本公开的方面还选择性地提供一种适用于网络浏览器中的直播流传输和记录流传输的媒体播放方法和设备。
本公开的方面还提供一种能够在直播流传输的情况下保证实时属性的媒体播放方法和设备。
本公开的方面还提供一种在记录媒体流传输的情况下能够不修改使用RTSP/RTP协议的媒体服务设备而可使用嵌入在网络浏览器中的代码播放媒体的媒体播放方法和设备。
然而,本公开的方面不被限制到这里阐述的那些内容。通过参照下面给出的本公开的具体实施方式,对本公开所属技术领域的普通技术人员来说,本公开的上述和其他方面将变得更加清楚。
根据示例性实施例的一方面,提供一种用于在网络浏览器上播放媒体的媒体流传输设备。所述媒体流传输设备可包括:接收单元,被配置为通过使用支持网络服务的通信协议接收媒体数据,媒体数据由媒体服务设备所产生;第一媒体恢复单元,被配置为通过以可由网络浏览器解析的脚本编写的第一解码器来对媒体数据进行解码;第二媒体恢复单元,被配置为通过嵌入在在网络浏览器中的第二解码器来对媒体数据进行解码;输出单元,被配置为输出通过第一媒体恢复单元和第二媒体恢复单元中的至少一个解码的媒体数据。
根据示例性实施例的一方面,提供一种用于将实时直播媒体数据和存储的媒体数据中的一个传输到媒体流传输设备的媒体服务设备。所述媒体服务设备可包括:播放模块存储单元,被配置为存储用于在媒体流传输设备的网络浏览器上播放实时直播媒体数据和存储的媒体数据中的所述一个的脚本模块,脚本模块是以可由网络浏览器解析的脚本编写的;播放模块传输单元,被配置为响应于连接到媒体流传输设备而将脚本模块传输到媒体流传输设备;封包单元,被配置为对实时直播媒体数据和存储的媒体数据中的所述一个进行封包以产生传输包;网络服务器,被配置为建立与媒体流传输设备建的通信会话,并响应于来自媒体流传输设备的流传输请求而将传输包传输到媒体流传输设备。
根据示例性实施例的一方面,提供一种存储用于执行将实时直播媒体数据和存储的媒体数据中的一个传输到媒体流传输设备的方法的计算机程序的非暂时性计算机可读存储介质。所述方法可包括:存储用于在媒体流传输设备的网络浏览器上播放实时直播媒体数据和存储的媒体数据中的所述一个的脚本模块,脚本模块是以可由网络浏览器解析的脚本编写的;响应于连接到媒体流传输设备而将脚本模块传输到媒体流传输设备;对实时直播媒体数据和存储的媒体数据中的所述一个进行封包以产生传输包;建立与媒体流传输设备的通信会话;响应于来自媒体流传输设备的流传输请求而将传输包传输到媒体流传输设备。
通过选择性地提供一种用于直播流传输和记录媒体流传输的媒体播放方法,可以实现适用于每种流传输模式的媒体播放。更具体地,在直播流传输的情况下,可以在没有初始延迟的情况下播放视频;在记录媒体流传输的情况下,可以使用嵌入在网络浏览器中的解码器执行高性能媒体回放以及执行没有初始延迟的媒体回放。
此外,通过实现媒体流传输设备中的容器创建逻辑,可以在没有与媒体服务设备的关于容器格式的兼容性问题的情况下使用媒体服务设备播放媒体。因此,可在修改使用RTSP/RTP协议的媒体服务设备的情况下使用嵌入在网络浏览器中的解码器来播放媒体。在通过RTSP/RTP协议而非MPEG-DASH传输媒体数据的情况下,由于施加在服务器上的负荷小,所以即使具有缺少的资源的媒体服务设备也可直接将媒体传输到媒体流传输设备。
此外,通过使用嵌入在网络浏览器中的或被实现为可用HTML5解析的脚本代码的解码器和渲染器,可以在不使用插件模块(诸如,ActiveX或NPAPI)的情况下播放媒体。
示例性实施例的效果不被限制到上述效果,通过下面的描述,对本领域技术人员来说,这里描述的其他效果将变得清楚。
附图说明
通过参照附图对具体的示例性实施例进行描述,它们的上述和/或其他方面和特征将变得更加清楚,其中:
图1A至图1C是用于说明服务器侧上的传统媒体数据传输协议的示例性示图;
图2是示出针对装置之间的通信而分层次地定义的传输控制协议/因特网互联协议(TCP/IP)的示图;
图3示出通过WebSocket连接来发送和接收数据的处理的示例;
图4是示出通过网络接口与服务器进行通信的通信包(communication packet)的结构的示图;
图5示出用于网络浏览器中的媒体回放的整个系统;
图6示出媒体服务设备的配置的实施例;
图7示出媒体服务设备的配置的另一示例性实施例;
图8示出播放模块存储单元的脚本(script)模块的示例性实施例;
图9示出播放模块存储单元的脚本模块的另一示例性实施例;
图10是示出用于使用JavaScript的直播流传输或记录流传输(recordedstreaming)的媒体流传输设备的示例性示图,其中,JavaScript是可在网络浏览器中解析的脚本代码的实施例;
图11是示出用于使用视频标签的记录流传输的媒体流传输设备的示例性示图,其中,视频标签是嵌入在网络浏览器中的解码器的实施例;
图12是示出根据示例性实施例的在媒体流传输设备中使用JavaScript实现播放音频的方法的处理的示例性示图;
图13是说明根据示例性实施例的产生以JavaScript实现的脚本模块的处理的示例性处理;
图14A和14B是根据示例性实施例的分别使用JavaScript的直播流传输方法和回放方法的流传输程图;
图15是示出用于实现媒体流传输设备的计算装置的示例性示图。
具体实施方式
现在将参照附图对示例性实施例做出详细参考描述。通过参照下面的示例性实施例的具体实施方式和附图,可更容易地理解本公开的优点和特征以及实现其的方法。然而,本公开可以以很多不同的形式实现,并不应被解释为限于这里阐述的实施例。相反,提供这些实施例,使得本公开将是彻底的和完整的并将本公开的构思完整地传达到本领域技术人员,并且本公开将仅由所附权利要求书限定。相同的数字标号始终表示相同的元件。
如这里使用的术语“流传输”表示播放源于远程装置的媒体(例如,音频、视频等)的方法,其中,在该方法中,可在没有必须首先将全部内容下载和存储在本地存储装置中的情况下,仅在部分下载(例如,缓冲)媒体之后开始回放。如这里使用的术语“直播流传输”(还被称为“对媒体进行直播”)表示本地装置在网络浏览器或应用上播放在远程装置实时捕获的媒体的方法。例如,诸如体育赛事、音乐会、演出和新闻广播的直播事件可以是在图像和/或声音正被捕获的同时被直播流传输。直播流传输并不一定指示当事件发生时被流传输,而可包括时间延迟(例如,一些秒)。如这里使用的术语“记录流传输”表示本地装置播放预先记录和存储在远程装置中的流传输媒体(例如,图像、音频和视频等)的方法。例如,视频点播(VOD)服务可允许本地装置在网络浏览器上播放存储在远程服务器中的电影。记录流传输(还被称为非直播流传输或记录媒体流传输)与直播流传输的不同之处在于,在播放开始之前,正播放的媒体已经被记录和存储。
除非另有定义,否则这里使用的所有术语(包括技术术语和科学术语)具有和本发明所属领域的普通技术人员普遍理解的含义相同的含义。还将理解,除非在这里明确地定义,否则术语(诸如在通用字典中定义的术语)应该被解释为具有与它们在相关领域的语境中的含义一致的含义,而不将被解释为理想化或过于形式化的意义。这里使用的术语仅是出于描述特定实施例的目的,而不意图限制。如这里所使用,除非上下文清楚地另有指示,否则单数形式也意图包括复数形式,反之亦然。
还将理解,当在本说明书中使用术语“包括”时,说明存在叙述的特征、整体、步骤、操作、元件和/或组件,但不排除存在或添加一个或多个其他特征、整体、步骤、操作、元件、组件和/或它们的组。这里公开的各种单元和模块可使用软件、硬件或二者的组合被实现。
以下,将参照附图更加详细地描述本公开。
图1A至图1C是用于说明服务器侧上的传统媒体数据传输协议的示例性示图。
图1A是用于说明渐进式下载方法的示例性示图。在渐进式下载方法中,使用超文本传输协议(HTTP)将媒体数据101从服务器100传输到客户机109。在这种情况下,即使在媒体数据101的传输完成之前,客户机109的用户也可基于位于媒体数据101的头中的元数据来播放媒体数据101。
渐进式下载方法的优点在于:这种方法可容易实现,并且仅通过将媒体数据101上传到服务器100然后向客户机109通知上传媒体数据101的地址(诸如,统一资源定位符(URT))可以进行回放。
然而,作为下载全部文件的方法的渐进式下载方法的缺点在于:这种方法在安全方面不足。此外,这种方法具有一个缺点在于:因为当数据被客户机109下载时这种方法会在网络中产生相同量的流传输量,网络可被保持繁忙。此外,还有一个缺点在于:一旦下载开始,不能改变媒体数据101的品质。也就是说,由于虽然需要但根据客户机109的资源或网络环境难以改变媒体数据101的品质,因此在难以播放高品质媒体数据的网络环境中的客户机109中,可发生缓冲,这不适用于直播流传输。
图1B是用于说明RTSP/RTP流传输方法的示例性示图。RTSP/RTP流传输方法将以不同品质(码率)编码的多个(例如,三个或四个)视频文件存储在服务器100中,并提供允许客户机109在流传输的过程期间改变品质的功能。
在图1B的示例中,低品质的媒体数据103、中品质的媒体数据105和高品质的媒体数据107被存储在服务器100中。
在RTSP/RTP流传输方法中,并不是传输全部媒体数据,而是仅传输客户机109想要观看的部分的一些帧。也就是说,如果观看者发现并点击将观看的场景,则从对应部分的帧开始播放媒体,并自动删除过去的帧,这从安全的角度看是期望的。
图1C是示出自适应HTTP流传输方法的示例性示图。参照图1C,可看出,与RTSP流传输方法相似,自适应HTTP流传输方法将三条媒体数据103、105和107存储在服务器100中。然而,也可存储少于三条或多于三条的媒体数据。
在自适应HTTP流传输方法中,存储在服务器中的媒体数据103、105和107在被传输之前被划分为更小的片段。客户机109将片段连成连续流。也就是说,服务器100按秒的单元对媒体数据103、105和107分片。客户机109接收分片的媒体数据103、105和107,并将他们组合成连续流以用于回方。
与自适应HTTP流传输方法相关的标准包括MPEG-DASH(国际标准化组织和国际电工委员会(ISO/IEC)23009-1:2012:HTTP上的动态自适应流传输)。在MPEG-DASH方案的情况下,使用HTTP通信传输媒体数据。虽然HTTP具有不必实现单独的流传输逻辑的优点,但是由于HTTP通信的无状态特性,所以它不适用于实时媒体传输。单独实现用于控制媒体的回放(诸如,播放、前进、倒回、快进和快退等)所需的协议也是必须的。
由于MPEG-DASH方案在服务器100中使用通过处理与一些秒对应的帧而获得的容器,在容器中载入媒体会花费时间。因此,MPEG-DASH方案具有产生不可避免的一些秒的延迟的缺点。尤其,在实时监控中,该延迟可能是缺点。
此外,MPEG-DASH方案可仅使用客户机109的网络浏览器支持的编解码器来播放媒体。也就是说,由于MPEG-DASH方案使用视频标签,仅视频标签支持的编解码器被使用,这产生高度依赖编解码器的缺点。
另一方面,参照图1B描述的RTSP/RTP方案根据哪个数据在WebSocket上传输而使用RTSP/RTP协议,并使用基于HTML5的WebSocket协议而与HTML5兼容。
图2至图4是示出在用于服务器与客户机之间的通信的WebSocket上传输RTSP/RTP协议的示图。
图2是示出针对装置之间的通信而分层次地定义的TCP/IP 4-层模型的示图。四个层包括网络接口层21、互联网(Internet)层22、传输层23和应用层24。由于在WebSocket上传输的RTSP/RTP协议中的WebSocket连接位于服务器100与客户机109之间的传输层23的连接的顶端,所以为了使用WebSocket连接,在服务器100与客户机109之间必须首先建立TCP传输连接。一旦例如通过3路握手(handshake)处理在服务器100与客户机109之间建立了WebSocket连接,WebSocket通信通过传输WebSocket包而被执行。以下,将参照图3描述WebSocket连接,将参照图4描述WebSocket包。
图3示出通过WebSocket连接来发送和接收数据的处理的示例。该WebSocket连接可根据作为HTML5标准的一部分的WebSocket协议被建立。具体地讲,由于WebSocket连接支持持续的双向通信,所以在没有被断开的情况下,数据可在客户机109与服务器100之间被持续发送和接收。如这里参照WebSocket所使用,“持续”发送和接收数据可指示:每次传输数据包时,不需要建立和/或终止连接或通信通道。相反,一旦WebSocket连接或通信通道建立,客户机109和服务器100就可连续或间歇地交换WebSocket数据,直到WebSocket连接终止为止。换言之,数据的持续传输可不一定表明没有数据传输的暂停或中断。
参照图3,客户机109将TCP/IP连接请求消息发送到服务器100,服务器100接受该请求并将TCP响应消息(SYN-ACK)发送到客户机109,从而建立TCP/IP通信。TCP传输连接可由一对本地TCP套接字(socket)和远程TCP套接字形成。每个TCP套接字至少由标识符(诸如,端口号和网络协议(IP)地址)限定。当然,在他们之间建立基于用户数据报协议/IP(UDP/IP)的连接而非基于TCP/IP连接也是可能的。
然后,当通过客户机109与服务器100之间的握手处理建立了WebSocket连接时,他们之间的持续数据发送/接收可随后被执行。也就是说,客户机109以发送WebSocket包(socket.send)的形式将媒体流传输请求发送到服务器100,服务器100以响应WebSocket包(socket.onMessage)形式将媒体流发送到客户机109。在他们之间可持续执行该处理,直到媒体流传输被完成或终止为止。
图4是示出通过网络接口21与服务器通信的通信包的结构的示图。当RTP头44被添加到与数据45对应的RTP净负荷(payload)时,他们变成RTP包。RTP包与WebSocket净负荷等同,WebSocket头43被添加到RTP包而成为WebSocket包。WebSocket包与TCP净负荷等同,TCP头42被添加到WebSocket包而变成TCP包。最终,TCP包与IP净负荷等同,IP头41被添加到TCP包,从而产生通信包(也就是说,IP包)。在服务器100和客户机109二者中执行产生IP包的处理和去除每个头文件的处理。
由于客户机109与服务器100之间的通信通过基于HTML5的WebSocket协议被执行,所以负责RTSP/RTP发送/接收控制的模块、负责解码和渲染的模块等可通过以HTML5解析的脚本语言实现。根据示例性实施例的一方面,RTSP/RTP发送/接收控制以及解码和渲染可通过JavaScript代码实现。因此,在不需要如传统方式所进行的单独安装插件(诸如ActiveX或NPAPI)情况下,可在网络浏览器中实现使用RTSP/RTP协议的媒体流传输。
目前为止已经描述了在WebSocke上传输的RTSP/RTP协议。以下,将参照图5至图14描述用于在根据网络浏览器中的播放方法改变逻辑的同时使用上述协议播放在远程地方捕获的媒体的设备和方法。
图5示出用于网络浏览器210中的媒体回放的整个系统。在该系统中,由媒体服务设备110捕获的媒体通过网络430被传输到媒体流传输设备120(还被称为媒体回放设备或用户装置)。
媒体服务设备110包括适用于将计算服务提供给一个或多个媒体播放设备的计算或处理装置。例如,媒体服务设备110包括能产生或存储媒体流并将媒体流传输到用户装置的装置(诸如,网络相机、网络硬盘录像机(NVR)和数字硬盘录像机(DVR))。
媒体流传输设备120包括适用于通过网络430与媒体服务设备110或其他计算用户装置交互的计算或处理装置。例如,媒体流传输设备120可以是台式计算机、移动电话或智能电话、个人数字助理(PDA)、膝上型计算机、机顶盒、数字媒体播放器、媒体加密锁或平板计算机。
媒体服务设备110和媒体流传输设备120使用如上所述的在WebSocket上传输的RTSP/RTP协议彼此通信。当在媒体服务设备110与媒体流传输设备120之间建立了WebSocket连接时,他们之间的持续数据发送/接收可随后被执行。
图6示出媒体服务设备110的配置的实施例。在一个实施例中,媒体服务设备110包括实时摄像机111、编码器112、封包单元113、网络服务器114、播放模块存储单元115、播放模块传输单元116和控制单元117。
实时摄像机111是用于实时捕获媒体的工具,并且这种捕获包括执行视频捕获和音频记录二者的情况和仅执行视频捕获的情况。
编码器112被配置为对由实时摄像机111捕获的媒体进行压缩和编码。不一定使用嵌入在网络浏览器中的解码器所支持的特定编解码器来执行编码器112的编码,而是可使用任何编解码器来执行编码器112的编码。
封包单元113对编码的媒体数据进行封包以产生传输包。封包意味着将媒体数据划分成合适的长度以促进通过网络430的传输或者如果媒体数据是短的则将控制信息(诸如,接收地址)共同地分配给合适的长度的每个数据。在这种情况下,控制信息位移包的头文件中。
封包单元113可根据由媒体流传输设备120请求的流传输模式、由媒体流传输设备120播放的媒体的配置文件(profile)元件和应用于媒体的编解码器,来执行媒体数据的封包。配置文件元件(例如,属性)包括分辨率、帧率等。
当媒体流传输设备120请求直播流传输作为流传输模式时,封包单元113可针对媒体的每一帧产生传输包。在直播流传输的情况下,媒体流传输设备120通过被实现为可由网络浏览器解析的脚本的解码器来在逐帧的基础上执行解码,从而能够在没有初始延迟的情况下播放。在这种情况下,可由网络浏览器解析的脚本可以是JavaScript。
当媒体流传输设备120请求记录流传输作为流传输模式时,封包单元113可产生基于逐帧的传输包或容器格式的传输包,其中,每个容器包括多个视频帧。传输包的格式可根据媒体流传输设备120的媒体的配置文件元件和应用于媒体的编解码器而被确定。
更具体地,响应于回放请求,如果媒体的配置文件元件大于阈值,封包单元113可产生容器格式的传输包;如果媒体的配置文件元件小于阈值,封包单元113可产生基于逐帧的传输包。在这种情况下,阈值可以是用于确定媒体流传输设备120的回放性能的特定参考值。例如,如果媒体配置文件元件是分辨率,则阈值可被设置为用于确定媒体流传输设备120的解码器是否平滑执行解码的特定分辨率值。阈值可根据计算装置在媒体流传输设备120中的媒体回放期间的性能而被调节。
此外,响应于回放请求,如果应用于媒体的编解码器格式被嵌入在媒体流传输设备120的网络浏览器中的解码器支持,则封包单元113可产生容器格式的传输包;如果不支持,则封包单元113可产生基于逐帧的传输包。因此,在媒体通过嵌入在网络浏览器中的解码器不支持的编解码器被编码的情况下,使用以可由媒体流传输设备120的网络浏览器解析的脚本编写的解码器来基于逐帧执行解码。
网络服务器114建立与媒体流传输设备120之间的通信会话。也就是说,通过媒体服务设备110的网络服务器114与媒体流传输设备120之间的握手处理来在他们之间建立WebSocket连接。此后,根据媒体流传输设备120的请求,通过网络服务器114传输由封包单元113产生的传输包。
播放模块存储单元115是用于存储在媒体流传输设备120中播放媒体所需的脚本模块的模块。在没有安装插件或单独的应用程序的情况下,脚本模块使用可由网络浏览器解析的脚本编写的代码,来允许媒体流传输设备120在处于HTML5环境的网络浏览器中播放媒体。根据示例性实施例的一方面,脚本模块可以是以JavaScript编写的代码。稍后将参照图8和图9描述脚本模块。
播放模块传输单元116是用于将存储在播放存储模块单元115中的脚本模块传输到媒体流传输设备120的模块。响应于媒体流传输设备120通过网络浏览器连接到媒体服务设备110的情况,播放模块传输单元116传输脚本模块。
控制单元117是用于控制媒体服务设备110中的其他配置模块的模块。例如,当媒体流传输设备120通过网络430连接到网络服务器114时,存储在播放模块存储单元115中的脚本模块通过播放模块传输单元116被传输到媒体流传输设备120。在这种情况下,控制单元117向各个模块发送信号或从各个模块接收信号以控制操作被平滑执行。
图7示出媒体服务设备110的配置的另一示例性实施例。图6的媒体服务设备110表示用于使用实时摄像机111传输实时直播视频的示例性实施例,图7的媒体服务设备110表示用于传输存储在媒体存储单元118中的示例性实施例。
媒体存储单元118包括网络视频录像机(NVR)和个人视频录像机(PVR)。然而,将结合网络视频录像机描述图7的示例性实施例。媒体存储单元118从相机或服务器接收媒体数据,并压缩(例如,编码、加密)和存储接收的媒体数据。当存在来自媒体流传输设备120的针对存储的媒体数据的传输的请求时,媒体服务设备110在封包单元113中对存储在媒体存储单元118中的媒体数据进行封包,并通过网络服务器114传输封包数据。在图7的示例性实施例中,已经参照图6的示例性实施例描述了媒体服务设备110的配置模块中的封包单元113、网络服务器114、播放模块存储单元115、播放模块传输单元116和控制单元117。
图8示出播放模块存储单元115的脚本模块的示例性实施例。在图8的示例性实施例中,脚本模块包括RTSP/RTP客户机模块121、解包模块122、解码器模块124和渲染器模块124。在图8的示例性实施例中,以JavaScript实现脚本模块。
RTSP/RTP客户机模块121被配置为支持与媒体服务设备110的RTSP/RTP通信。通常,在没有插件的情况下,在网络浏览器上根据RTSP/RTP协议处理媒体是不可能的。当使用RTSP/RTP客户机模块121时,即使网络浏览器使用HTTP方案,也可以可靠地接收通过RTSP/RTP协议发送的媒体数据也是不可能的。
解包模块122对从媒体服务设备110传输的包进行解包。解包是封包的逆处理。换言之,封包表示将媒体数据划分为具有合适长度以形成包的较小片段的处理,而解包表示通过将片段(即,包)再次组合将媒体数据恢复到封包之前的状态的处理。
解码器模块123对编码的媒体数据进行解压缩(例如,解码、解密)。与脚本模块的其他模块类似,可以以JavaScript实现解码器模块123。由于以JavaScript实现解码器模块123,所以不同于嵌入在网络浏览器中的解码器,以更多种类的编解码器而不是通过支持的编解码的受限集合来执行解码是可能的。执行基于逐帧的解码也是可能的。
当以JavaScript实现解码器模块123时,例如,可用下面的示例性代码表示它。
Figure BDA0001356762280000131
Figure BDA0001356762280000141
Figure BDA0001356762280000151
渲染器模块124被配置为对视频进行渲染并在输出装置(诸如,显示器等)上显示视频。渲染器模块12使用网页图形库(WebGL)将YUV格式的视频转换为RGB格式的视频。WebGL是通过JavaScript可用并允许3D图形接口的创建的基于网页的图像库。
由于图8的脚本模块使用JavaScript解码器,所以在不受视频的编解码器格式的限制情况下,执行基于逐帧的解码是可能的。然而,解码性能可由于JavaScript的动态特性而在高分辨率视频中快速劣化。因此,图8的脚本模块适用于在直播流传输以及没有初始延迟的回放的情况下使用嵌入在网络浏览器中的解码器不支持的编解码器的编码的视频以及具有不超出阈值的配置文件元件的视频的回放。
图9示出播放模块存储单元115的脚本模块的另一示例性实施例。在图9的示例实施例中,脚本模块包括RTSP/RTP客户机模块121、解包模块122和容器创建模块127。此外,在图9的示例实施例中,以JavaScript实现脚本模块。已经参照图8描述了RTSP/RTP客户机模块121和解包模块122。
更加详细地参照图9,与图8中示出的示例不同在于,图9的脚本模块包括以JavaScript实现的容器创建模块127。容器创建模块127被配置为当在解包的媒体数据在解包模块122中没有基于容器被封包时通过收集帧来产生容器。
当视频标签被用作嵌入在网络浏览器中的解码器的示例时,媒体回放性能高于以JavaScript实现的解码器的性能。然而,在传统MPEG-DASH的情况下,由于传输单元创建容器并在媒体被载入容器中的同时传输媒体,所以容器创建逻辑必须被实现在传输单元中。
如果先前安装的传输单元不提供创建支持MPEG-DASH的容器的功能,则媒体必须通过具有容器创建功能的服务器被单独传输。因此,通过将容器创建模块127移至媒体流传输设备120,可以在不修改现有装备的情况下解决兼容性问题。
当使用图9的脚本模块时,即使在WebSocket上传输的RTSP/RTP协议被使用,视频标签也可在没有兼容性问题的情况下被用作嵌入在媒体流传输设备120中的网络浏览器中的解码器的示例。通常,图8的方法还可被用于记录媒体流传输。然而,以JavaScript实现的解码器可由于动态语言(诸如,JavaScript)的限制而性能差。此外,当回放被执行时,实时属性由于它的特性而不被要求。也就是说,执行基于逐帧的解码不太重要。当使用视频标签时,初始延迟可由于容器格式而发生,但使用高帧频(FPS)和高分辨率视频高性能地执行解码是可能的。因此,图9的脚本模块适用于当媒体的配置文件元件超出阈值和当以视频标签支持的格式编码媒体时的回放。
图10是示出用于使用JavaScript的直播流传输或记录流传输的媒体流传输设备120的示例性示图,其中,JavaScript是可在网络浏览器中解析的脚本代码的示例。在图10的示例性实施例中,将描述用于播放使用H.264和H.265的编解码器编码的视频的配置。
图10中的RTSP/RTP客户机模块121、H.264解包模块122a、H.265解包模块122b、H.264解码器模块123a、H.265解码器模块123b和渲染器模块124是被配置为从媒体服务设备110的播放模块传输单元116接收图8的示例性实施例的客户机模块的模块。
WebSocket客户机230和RTSP/RTP客户机模块121构成接收单元。WebSocket客户机230是用于建立与媒体服务设备110的网络服务器114的WebSocket连接的模块。媒体流传输设备120和媒体服务设备110通过WebSocket客户机230与网络服务器114之间的握手而分别发送和接收传输包。
如参照图8的示例性实施例所述,RTSP/RTP客户机模块121被配置为支持用户的网络浏览器210的RTSP/RTP通信。因此,在没有安装单独的插件的情况下,用户可使用RTSP/RTP协议通过HTML5环境中的网络浏览器210播放媒体。
已经通过WebSocket客户机230和RTSP/RTP客户机模块121的传输包由第一媒体恢复单元130解码。在图9的示例性实施例中,由于以H.264或H.265编码的视频被作为目标,所以解包模块122包括H.264解包模块122a和H.265解包模块122b,解码器模块123包括H.264解码器模块123a和H.265解码器模块123b。以H.264编码的视频通过H.264解包模块122a和H.264解码器模块123a被解包和解码。以H.265编码的视频通过H.265解包模块122b和H.265解码器模块123b被解包和解码。
在图10的示例性实施例中,仅示出H.264编解码器和H.265编解码器。然而,通过另外实现针对每个另外的编解码器以JavaScript实现的解包模块和解码器模块,各种其他编解码器也可被支持。
由于在第一媒体恢复单元130中以JavaScript实现解码器模块,所以可以通过由视频标签不支持的H.265编码器所编码的视频进行解码,其中,视频标签是嵌入在当前网络浏览器中的解码器的示例。
此外,基于逐帧对视频执行H.264JavaScript解码器和H.265JavaScript解码器中的解码。通过逐帧处理方法,用户可在没有初始延迟的情况下以直播流传输模式播放视频。
与编解码器一致的解包和解码的视频通过渲染器模块124和canvas标签240被输出到网络浏览器。与输出单元对应的canvas标签240是HTML5的允许2D形状和位图图像被动态渲染的元件。也就是说,canvas标签240可被视为网络浏览器上的绘画程序(例如,渲染器)。由于它是大多数最新版本的网络浏览器支持的功能,所以媒体可由JavaScript实现的解码器基于逐帧被处理,并通过使用canvas标签240被显示在网络浏览器上。
通过图10的示例性实施例,在不依赖插件的情况下可以对由媒体服务设备110捕获的媒体进行实时流传输并播放媒体。因此,可以与网络浏览器开发商停止支持插件中的趋势一致地,提供在不担心与插件的使用相关联的安全问题的情况下实时播放媒体的环境。
此外,网络服务器114以在通过WebSocket客户机230和RTSP/RTP客户机模块121未分离的WebSocket上传输的RTSP/RTP协议来传输媒体数据。媒体流传输设备120基于逐帧处理使用JavaScript传输的媒体数据。因此,延迟时间可被减少为几十毫秒。
此外,由于以JavaScript实现解码器,所以它不要求单独的容器,并可支持另外的编解码器(诸如,H.265)。因此,在MPEG-DASH方案上提高了编解码器支持的可扩展性。
图11是示出用于使用视频标签260的记录流传输的媒体流传输设备120的示例性示图,其中,视频标签260是嵌入在网络浏览器中的解码器的实施例。在图11的实施例中,描述了在记录流传输模式下播放使用H.264编解码编码的视频的方法。此外,视频标签260被用作嵌入在网络浏览器中的解码器的示例。
在图11中,RTSP/RTP客户机模块121、解包模块122和容器创建模块127是被配置为从媒体服务设备110的播放模块传输单元116接收如图9所示的脚本模块的模块。
WebSocket客户机230和RTSP/RTP客户机模块121构成接收单元。WebSocket客户机230是与在图10的示例性实施例描述的模块相同的模块。RTSP/RTP客户机模块121被配置为支持用户的网络浏览器210的RTSP/RTP通信。因此,在没有安装单独的插件的情况下,用户可使用RTSP/RTP协议通过HTML5环境中的网络浏览器来在记录流传输模式下播放媒体。
已经通过接收单元的视频由第二媒体恢复单元140解码。视频由解包模块122解包,如果解包的视频不是以容器模式被传递,则容器创建模块127被配置为通过收集帧来创建容器。在没有由于容器格式的兼容性问题的情况下,已经通过容器创建模块127的视频被传递到媒体源扩展(MSE)250和视频标签260。
MSE 250是针对HTML5的JavaScript API,它是被创建用于使用HTTP下载的视频流传输回放。由万联网联盟(W3C)标准化的该技术使游戏机(诸如,Xbox和游戏机4(PS4))或谷歌电视棒媒体播放器上的流传输回放成为可能。
第二媒体恢复单元140的视频标签260执行解码和渲染,使得在屏幕上显示视频。由于在当前视频标签中支持H.264编解码器,所以使用H.264编解码编码的视频以及作为示例被描述。然而,针对其他视频标签所支持的编解码器和如果在将来扩展视频标签所支持的编解码器格式而扩展的编解码器,通过图11的示例性实施例解码和渲染视频也是可能的。
在图11的媒体流传输设备中,为了如在MPEG-DASH方案中一样地提供各种功能的媒体回放环境,通过在媒体流传输设备120的网络浏览器210中安装将由媒体服务设备110处理的容器功能,以与传统MPEG-DASH方案类似的方式通过HTML5的视频标签播放视频是可能的。
目前为止,已经参照图10和图11描述了媒体流传输设备的两个示例性实施例。图10的媒体流传输设备适用于当使用视频标签不支持的编解码器来编码媒体时和当媒体配置文件元件由于JavaScript的动态特性而未超出阈值以及没有初始延迟的直播流传输时的播放方法。图11的媒体流传输设备适用于考虑到视频标签的优异性能的当使用视频标签支持的编解码来编码媒体时和当媒体配置文件元件超出阈值时的播放方法。因此,当图10或图11的媒体流传输设备被选择性使用时,播放适用于直播流传输或记录流传输模式的媒体是可能的。
目前为止,已经参照图10和图11描述了以适用于直播流传输或记录流传输的方式在媒体流传输设备120中播放视频的方法。然而,使用JavaScript的播放方法可以以相同的方式被应用到音频。
图12是示出根据示例性实施例的在媒体流传输设备120中使用JavaScript实现播放音频的方法的处理的示例性示图。
图12的左侧是用于说明用于音频的如在图9的示例中一样的直播流传输的功能,图12的右侧是用于说明用于在图11的示例中一样的回放的功能。
同样在图12中,与图10类似,根据音频编解码器,可使用G.711编解码器或G.726编解码器来实时对音频进行解码。当然,除了图12中示出的编解码器之外,可以以JavaScript实现用于解码另一编解码器的解码器。实时解码的音频通过用作输出单元的网络音频API331被输出。
同样在图12中,与图11类似,存储的音频可在使用用于缓冲管理的MSE 350和使用作为嵌入在网络浏览器中的解码器音频标签360根据编解码器被解码之后被输出。
直到现在,已经参照图10至图12描述了根据直播流传输和记录流传输的播放方法。通过经由用户接口的用户输入来确定媒体数据的播放方法。用户接口可被实现为图形用户接口(GUI),并可通过远程连接操作。
图13是说明根据示例性实施例的产生以JavaScript实现的脚本模块的处理的示例性处理。
参照图13,以JavaScript实现的脚本模块可通过使用转换器(诸如,Emscripten)转换以传统C和C++本机代码(native code)编写的源来获得可用在浏览器中的JavaScript代码而被实现。
当使用转换器(诸如,Emscripten)时,从传统本机代码获得以JavaScript实现的解码器或容器是可能的。因此,可获得减少编解码器依赖性的优点。
由于代替插件而使用JavaScript代码,所以没必要担心当转变到新技术时的浏览器的传统支持。此外,没有必要担心根据浏览器是使用ActiveX接口还是NPAPI接口。也就是说,浏览器依赖性可被减少。
图14A和14B是根据示例性实施例的分别使用JavaScript的直播流传输方法和记录流传输的播放方法的流传输程图。JavaScript解码器被用在图14A中,视频标签解码器被用在图14B中。
参照图14A,媒体流传输设备120通过网络浏览器210连接到媒体服务设备110(S1100)。媒体流传输设备120从媒体服务设备110接收存储在播放模块存储单元115中的脚本模块(S1200)。正在实时捕获的媒体数据被媒体流传输设备120使用WebSocket来接收(S1300),并使用以JavaScript实现的解码器被解码(S1400)。可在用户的网络浏览器210中通过HTML5的渲染器和canvas标签240实时播放解码的媒体(S1500)。
参照图14B,媒体流传输设备120通过网络浏览器210连接到媒体服务设备110(S1100)。媒体流传输设备120从媒体服务设备110接收存储在播放模块存储单元115中的脚本模块(S1200)。预先记录和存储在媒体服务设备110中的媒体数据被媒体流传输设备120使用WebSocket来接收(S1300)。如果视频不是容器格式,则使用JavaScript创建容器(S1600)。媒体数据可通过HTML5的视频标签260被解码(S1700),并在媒体流传输设备120的网络浏览器210中被播放(S1800)。
在上面的描述中,网络浏览器不仅包括安装在台式计算机或移动装置上的众所周知的浏览器(诸如,Google Chrome、Microsoft Explorer、Microsoft Edge、MozillaFirefox和Apple Safari),还包括通过使用API或网络浏览器的资源创建的软件应用。
图5中示出的媒体流传输设备120可被实现为例如图15中示出的计算装置400。计算装置400可以是(但不限于)移动手持设备(例如,智能电话,平板计算机等)、膝上型或笔记本计算机、分布式计算机系统、计算网格或服务器等。计算装置400可包括通过总线440彼此通信或与其他元件通信的处理器401、存储器403和存储装置408。总线440可连接到显示器432、至少一个输入装置433和至少一个输出装置434。
所有这些元件可直接或者通过一个或多个接口或适配器连接到总线440。总线440连接到各种子系统。总线440可包括存储器总线、存储器控制器、外围总线、本地总线和他们的组合。
处理器(例如,中央处理器(CPU))401可选地包括高速缓存存储器402,高速缓存存储器402是用于暂时存储指令、数据或计算机地址的本地存储装置。处理器401执行存储在计算机可读存储介质(诸如,存储器403或存储装置408)中的指令(或软件模块)。计算机可读存储介质可存储实现特定实施例的软件模块,并且处理器401可执行存储的软件模块。
存储器403可包括随机存取存储器(RAM)404,只读存储器(ROM)405或他们的组合。此外,具有用于启动计算装置400所需的基本例程的基本输入/输出系统(BIOS)(例如,固件)可包括在存储器403中。
存储装置408可被用于存储操作系统409、可执行文件(EXEC)410、数据411、API412等。存储装置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通过输出接口424连接到总线440。例如,输出接口424可以是串行端口、并行端口、游戏端口、USB等。
根据示例性实施例,由如图6至图13所示的块表示的组件、元件、模块或单元中的至少一个可被实现为各种数量的执行上述各自功能的硬件、软件和/或固件结构。例如,这些组件、元件、模块或单元中的至少一个可使用直接电路结构(诸如,可通过一个或多个微处理器或其他控制设备的控制而执行各自功能的存储器、处理器、逻辑电路、查找表等)。此外,这些组件、元件、模块或单元中的至少一个可由包括用于执行特定逻辑功能的一个或多个可执行指令的模块、程序或部分代码具体实现,并由一个或多个微处理器或其他控制设备执行。这些组件、元件、模块或单元中的至少一个还可包括处理器(诸如,执行各自功能的CPU)、处理器等,或由处理器(诸如,执行各自功能的CPU)、微处理器等实现。这些组件、元件、模块或单元中的两个或更多个可被组合成单个组件、元件、模块或单元,其中,单个组件、元件、模块或单元执行组合的两个或更多个组件、元件、模块或单元的全部操作或功能。这些组件、元件、模块或单元中的至少一个的至少一部分功能可由这些组件、元件、模块或单元中的另一个执行。此外,虽然未在上面的块示图中示出总线,但是可通过总线执行组件、元件、模块或单元之间的通信。可以以在一个或多个处理器上执行的算法实现上面示例性实施例的功能方面。此外,由块或处理步骤表示的组件、元件、模块或单元可采用任意数量的用于电子配置、信号处理和/或控制、数据处理等的相关领域技术。
上述方法或算法的操作或步骤可被实现为计算机可读记录介质上或将通过传输介质传输的计算机可读代码,计算机可读记录介质是可存储之后由计算机系统读取的数据的任何数据存储装置。计算机可读记录介质的示例包括(但不限于)ROM、RAM、光盘ROM(CD-ROM)、数字通用光盘(DVD)、磁性软盘、磁带和光学数据存储装置。传输介质可包括通过互联网或各种类型的通信通道传输的载波。计算机可读记录介质还可分布在联网计算机系统上,使得计算机可读代码以分布式方式被存储和执行。
本领域技术人员将理解,在本质上不脱离本公开的原理的情况下,可对示例性实施例做出很多改变和修改。因此,公开的示例性实施例仅被用于描述性含义,而不是出于限制的目的。

Claims (12)

1.一种用于在网络浏览器上播放媒体的媒体流传输设备,包括至少一个处理器来实现:
接收单元,被配置为通过使用支持网络服务的通信协议接收媒体数据,其中,媒体数据由媒体服务设备产生;
第一媒体恢复单元,被配置为通过以能够被网络浏览器解析的脚本编写的第一解码器,来对媒体数据进行解码;
第二媒体恢复单元,被配置为通过嵌入在网络浏览器中的第二解码器,来对媒体数据进行解码;
输出单元,被配置为输出通过第一媒体恢复单元和第二媒体恢复单元中的至少一个解码的媒体数据,
其中,以脚本编写的第一解码器基于逐帧对媒体数据进行解码,嵌入在网络浏览器中的第二解码器以比第一解码器大的初始延迟以多个容器执行媒体数据的高性能媒体回放,所述多个容器中的每个容器包括多个帧,
其中,媒体数据基于流传输模式通过第一媒体恢复单元和第二媒体恢复单元中的至少一个被解码,
其中,当流传输模式是直播流传输模式时,媒体数据通过第一媒体恢复单元被解码;当流传输模式是记录流传输模式时,媒体数据通过第一媒体恢复单元和第二媒体恢复单元中的至少一个被解码。
2.如权利要求1所述的媒体流传输设备,还包括:
用户接口,被配置为从用户接收针对媒体数据的流传输模式的指示。
3.如权利要求1所述的媒体流传输设备,其中,当流传输模式是记录流传输模式时,
响应于包括分辨率和帧率中的至少一个的配置文件元件大于预定阈值,媒体数据通过第二媒体恢复单元被解码;响应于配置文件元件小于预定阈值,媒体数据通过第一媒体恢复单元被解码。
4.如权利要求1所述的媒体流传输设备,其中,当流传输模式是记录流传输模式时,媒体数据根据应用于媒体数据的编解码器的类型从第一媒体恢复单元和第二媒体恢复单元选择的一个被解码。
5.如权利要求1所述的媒体流传输设备,其中,通信协议是在WebSocket上传输的实时流传输协议/实时传输协议RTSP/RTP。
6.如权利要求1所述的媒体流传输设备,其中,第一解码器是以JavaScript编写的。
7.如权利要求1所述的媒体流传输设备,其中,第二解码器是超文本标记语言版本5(HTML5)支持的视频标签。
8.如权利要求1所述的媒体流传输设备,其中,媒体数据在通过第二媒体恢复单元的解码之前以所述多个容器被封包。
9.一种用于将实时直播媒体数据和存储的媒体数据中的一个传输到媒体流传输设备的媒体服务设备,所述媒体服务设备包括至少一个处理器来实现:
播放模块存储单元,被配置为存储用于在媒体流传输设备的网络浏览器上播放实时直播媒体数据和存储的媒体数据中的所述一个的脚本模块,脚本模块是以能够由网络浏览器解析的脚本编写的;
播放模块传输单元,被配置为响应于连接到媒体流传输设备而将脚本模块传输到媒体流传输设备;
封包单元,被配置为对实时直播媒体数据和存储的媒体数据中的所述一个进行封包以产生传输包;
网络服务器,被配置为建立与媒体流传输设备的通信会话,并响应于来自媒体流传输设备的流传输请求而将传输包传输到媒体流传输设备,
其中,封包单元还被配置为:
产生第一传输包,使得第一传输包响应于允许脚本模块基于逐帧对媒体数据进行解码的流传输请求而能够被脚本模块解码,
产生第二传输包,使得第二传输包响应于允许嵌入在网络浏览器中的解码器以比第一解码器大的初始延迟以多个容器执行媒体数据的高性能媒体回放的流传输请求而能够被嵌入在网络浏览器中的解码器解码,所述多个容器中的每个容器包括多个帧。
10.如权利要求9所述的媒体服务设备,其中,脚本模块是以JavaScript编写的代码。
11.如权利要求9所述的媒体服务设备,其中,脚本模块包括以下项中的至少一个:
RTSP/RTP客户机模块,被配置为支持与所述媒体服务设备的RTSP/RTP通信;
解包模块,被配置为对传输包进行解包;
解码器模块,被配置为通过对传输包进行解包而获得的视频帧进行解码;
渲染器模块,被配置为对解码的传输包进行渲染。
12.如权利要求9所述的媒体服务设备,其中,脚本模块包括以下项中的至少一个:
RTSP/RTP客户机模块,被配置为支持与所述媒体服务设备的RTSP/RTP通信;
解包模块,被配置为对传输包进行解包;
容器创建模块,被配置为以容器对通过对传输包进行解包而获得的视频帧进行封包。
CN201710599398.9A 2016-07-21 2017-07-21 媒体流传输设备和媒体服务设备 Active CN107645491B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2016-0092373 2016-07-21
KR1020160092373A KR102321859B1 (ko) 2016-07-21 2016-07-21 자바 스크립트를 이용한 실시간 미디어 스트리밍 방법 및 그 장치

Publications (2)

Publication Number Publication Date
CN107645491A CN107645491A (zh) 2018-01-30
CN107645491B true CN107645491B (zh) 2021-08-10

Family

ID=59366230

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710599398.9A Active CN107645491B (zh) 2016-07-21 2017-07-21 媒体流传输设备和媒体服务设备

Country Status (4)

Country Link
US (2) US10219010B2 (zh)
EP (1) EP3273696B1 (zh)
KR (1) KR102321859B1 (zh)
CN (1) CN107645491B (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA3086546A1 (en) * 2018-01-18 2019-07-25 Bevara Technologies, Llc Browser navigation for facilitating data access
US10459706B1 (en) * 2018-03-12 2019-10-29 State Farm Mutual Automobile Insurance Company System and methods for simplifying three-dimensional models
WO2019189988A1 (ko) * 2018-03-30 2019-10-03 (주)디디오넷 Html5 실시간 재생기 및 그것을 이용한 실시간 재생 방법
CN110545471B (zh) * 2018-05-29 2021-12-14 北京字节跳动网络技术有限公司 基于离线转换的播放控制方法、装置及存储介质
CN110620959B (zh) * 2018-06-20 2020-12-25 杭州海康威视数字技术股份有限公司 一种数据处理方法、装置、电子设备、系统及存储介质
CN110661752A (zh) * 2018-06-29 2020-01-07 广州弘度信息科技有限公司 一种无插件实时视频播放系统及方法
WO2020007922A1 (en) * 2018-07-05 2020-01-09 Dolby International Ab Processing media data structures
CN108966006A (zh) * 2018-07-24 2018-12-07 上海小蚁科技有限公司 视频的播放方法、浏览器设备及可读存储介质
CN110071919A (zh) * 2019-04-22 2019-07-30 南京邮电大学 一种基于嵌入式流媒体技术的多媒体传输方法
CN110557670B (zh) * 2019-09-17 2021-12-21 广州方硅信息技术有限公司 在网页页面中播放视频的方法、装置、终端和存储介质
CN111355976B (zh) * 2020-03-31 2022-10-11 北京东方国信科技股份有限公司 一种基于hevc标准的视频直播方法及系统
CN111683272A (zh) * 2020-05-22 2020-09-18 海信视像科技股份有限公司 一种流媒体播放方法及显示设备
CN111800667A (zh) * 2020-07-28 2020-10-20 深圳Tcl数字技术有限公司 浏览器视频播放方法、视频播放装置及存储介质
CN112379863A (zh) * 2020-10-12 2021-02-19 杭州易现先进科技有限公司 跨浏览器和小程序的webGL开发方法、装置和计算机设备
CN112422508A (zh) * 2020-10-19 2021-02-26 武汉烽火众智数字技术有限责任公司 一种在浏览器网页中播放视频的方法及系统
CN114727132B (zh) * 2021-01-05 2024-01-12 上海新天策数字科技有限公司 清晰度地址的获取方法、装置、设备及存储介质

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ATE464740T1 (de) 2000-12-15 2010-04-15 British Telecomm Übertagung von ton- und/oder bildmaterial
JP2007065928A (ja) * 2005-08-30 2007-03-15 Toshiba Corp 情報記憶媒体、情報処理方法、情報転送方法、情報再生方法、情報再生装置、情報記録方法、情報記録装置、及びプログラム
KR100967337B1 (ko) 2008-08-20 2010-07-05 주식회사 컴퍼니원헌드레드 프록시 서버를 이용한 이동통신 단말기의 웹 브라우저 시스템
CN101895582B (zh) * 2010-07-15 2012-09-26 北京邮电大学 一种支持web业务和多浏览器的sip软终端的工作方法
US9380104B2 (en) 2010-12-20 2016-06-28 Thomson Licensing Media player web service
CN104169898B (zh) 2011-12-28 2018-04-27 英特尔公司 用于使用JavaScript和HTML5在设备之间流式传输元数据的方法和设备
US9442904B2 (en) * 2012-12-21 2016-09-13 Vmware, Inc. Systems and methods for applying a residual error image
US9066153B2 (en) * 2013-03-15 2015-06-23 Time Warner Cable Enterprises Llc Apparatus and methods for multicast delivery of content in a content delivery network
EP2835982B1 (en) 2013-08-06 2017-12-20 THEO Technologies A method for playing a media stream in a browser application
US9338203B2 (en) * 2014-02-11 2016-05-10 Wowza Media Systems, LLC Server configuration interface including stream preview
US9930308B2 (en) * 2014-07-26 2018-03-27 Clipchamp Ip Pty Ltd Platform-agnostic video player for mobile computing devices and desktop computers
CN104270646A (zh) * 2014-09-22 2015-01-07 何震宇 一种基于移动流媒体的自适应传输方法和系统
US20160119399A1 (en) * 2014-10-24 2016-04-28 Kevin J. Glass Extending browser support of real time media to any available codec
KR20160048430A (ko) 2014-10-24 2016-05-04 엘지전자 주식회사 디지털 디바이스 및 디지털 디바이스에서 데이터 처리 방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"HTML5 Live Video Streaming via WebSockets PhobosLab";Dominic Szablewski;《http://phoboslab.org/log/2013/09/html5-live-video-streaming-via-websockets》;20131111;第1-3页 *

Also Published As

Publication number Publication date
KR102321859B1 (ko) 2021-11-03
CN107645491A (zh) 2018-01-30
EP3273696B1 (en) 2021-09-22
US20180027264A1 (en) 2018-01-25
KR20180010392A (ko) 2018-01-31
US20190149850A1 (en) 2019-05-16
EP3273696A1 (en) 2018-01-24
US10567809B2 (en) 2020-02-18
US10219010B2 (en) 2019-02-26

Similar Documents

Publication Publication Date Title
CN107645491B (zh) 媒体流传输设备和媒体服务设备
US20220263885A1 (en) Adaptive media streaming method and apparatus according to decoding performance
CN108337545B (zh) 用于同步再现视频和音频的媒体重放设备和媒体服务设备
CN107277612B (zh) 用于在web浏览器上播放媒体流的方法和设备
CN108337560B (zh) 用于在web浏览器上播放媒体的媒体重放设备和媒体服务设备
KR102246002B1 (ko) 가상 현실 미디어 콘텐트의 스트리밍을 개선하는 방법, 디바이스, 및 컴퓨터 프로그램
CN108337246B (zh) 防止重放延迟的媒体重放设备和媒体服务设备
US10791160B2 (en) Method and apparatus for cloud streaming service
KR101942269B1 (ko) 웹 브라우저에서 미디어를 재생하고 탐색하는 장치 및 방법
EP3646611A1 (en) Systems and methods of orchestrated networked application services
CN108337248B (zh) 媒体重放设备和媒体服务设备
KR20190003729A (ko) 컨텐트 분산 네트워크들에서 엠펙 미디어 전송 통합을 위한 방법 및 장치
US10547878B2 (en) Hybrid transmission protocol
EP4256791A1 (en) Systems and methods of alternative networked application services
CN114466225A (zh) 视频数据播放方法及装置、电子设备和可读存储介质
WO2022125401A1 (en) Systems and methods of alternative networked application services

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

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.

CB02 Change of applicant information
TA01 Transfer of patent application right

Effective date of registration: 20190305

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.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant
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.

CP01 Change in the name or title of a patent holder