CN108076364B - 自适应媒体流传输设备和媒体服务设备 - Google Patents

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

Info

Publication number
CN108076364B
CN108076364B CN201710975751.9A CN201710975751A CN108076364B CN 108076364 B CN108076364 B CN 108076364B CN 201710975751 A CN201710975751 A CN 201710975751A CN 108076364 B CN108076364 B CN 108076364B
Authority
CN
China
Prior art keywords
video
audio
data
web browser
media
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
CN201710975751.9A
Other languages
English (en)
Other versions
CN108076364A (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 CN108076364A publication Critical patent/CN108076364A/zh
Application granted granted Critical
Publication of CN108076364B publication Critical patent/CN108076364B/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/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
    • 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/75Media network packet handling
    • H04L65/764Media network packet handling at the destination 
    • 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
    • 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
    • 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/65Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
    • 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
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/23439Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements for generating different versions
    • 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/4104Peripherals receiving signals from specially adapted client devices
    • H04N21/4122Peripherals receiving signals from specially adapted client devices additional display device, e.g. video projector
    • 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
    • H04N21/4347Demultiplexing of several video streams
    • 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
    • H04N21/4348Demultiplexing of additional data and video streams
    • 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/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/4508Management of client data or end-user data
    • H04N21/4516Management of client data or end-user data involving client characteristics, e.g. Set-Top-Box type, software version or amount of memory available
    • 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/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
    • 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/8193Monomedia components thereof involving executable data, e.g. software dedicated tools, e.g. video decoder software or IPMP tool
    • 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/8543Content authoring using a description language, e.g. Multimedia and Hypermedia information coding Expert Group [MHEG], eXtensible Markup Language [XML]

Abstract

一种适应媒体流传输设备和媒体服务设备。提供一种用于在网络浏览器中未安装插件的情况下流传输媒体的方法和设备。当在未安装插件的情况下使用JavaScript解码器流传输媒体时,由于JavaScript的限制而难以支持高帧速率和高分辨率视频的解码。当在未安装插件的情况下使用HTML5的视频元件流传输媒体时,使用RTSP/RTP的传统的视频捕获设备的兼容性问题和由于MPEG‑DASH的容器导致的初始延迟问题是固有的。本公开通过解决这些缺点提出了一种能够在没有初始延迟和兼容性问题的情况下执行高帧速率和高分辨率视频的流传输的自适应媒体流传输方法和设备。

Description

自适应媒体流传输设备和媒体服务设备
本申请要求于2016年11月7日提交到韩国知识产权局的第10-2016-0147633号韩国专利申请的优先权,所述韩国专利申请的公开通过引用完整包含于此。
技术领域
与示例实施例一致的设备和方法涉及流传输由媒体服务设备在用户的网络浏览器中无插件的情况下捕获的媒体,更具体地讲,涉及一种用于根据解码性能应用不同解码器的自适应媒体流传输方法和设备。
背景技术
为了使媒体流传输设备流传输通过媒体服务设备捕获的媒体,可使用插件。插件是通常由第三方创建的软件,并被用于在网页上显示不能由网络浏览器显示的各种类型的文件或者将不能由网络浏览器执行的各种功能添加到网络浏览器。用于流传输媒体的最流行的插件是Adobe的Flash播放器插件。
插件能够扩展网络浏览器的性能,但它具有易受安全攻击的缺点。因为必须同意安装插件以执行网络浏览器中的特定功能,因此插件经常被用作注入恶意代码的途径。
作为在没有插件的情况下在网络浏览器中流传输媒体的方法,可使用HTML5视频元件和MPEG-DASH。HTML5是超文本标记语言(HTML)的最新版,其在不安装插件的情况下使用嵌入网络浏览器中的视频元件允许具有相对好的性能的媒体播放。MPEG-DASH是也被称为通过超文本传输协议(HTTP)的动态自适应流传输的标准,其已被活动图像专家组(MPEG)标准化,并且是用于使媒体的基于传统HTTP的高质量流传输成为可能的自适应比特率流传输技术。
然而,使用HTML5视频元件和MPEG-DASH的方法具有以下缺点。
当前,HTML5视频元件支持三种视频容器格式:MP4、WebM和Ogg。因此,当之前安装的媒体服务设备使用不被视频元件支持的编解码器或格式时可能发生兼容问题。
MPEG-DASH通过将媒体内容划分成一系列容器来工作。每个容器包含具有短播放时间的媒体。因此,由于用于将媒体数据存储在容器中的初始延迟在通过MPEG-DASH的媒体流传输中是固有的,所以在在媒体流传输设备中流传输媒体时不能保证实时性。
作为在没有插件的情况下在网络浏览器上播放媒体的另一方法,存在一种以由网络浏览器支持的JavaScript形式实现插件代码的方法。在这种情况下,存在能够支持各种容器格式的优点。然而,由于JavaScript作为动态语言的特性,难以支持高帧速率(例如,帧频(FPS))和高分辨率视频的解码。
因此,需要一种这样的方法和设备:即使在如上所述的没有网络浏览器插件的情况下,当流传输通过网络发送的视频和音频时,使自适应媒体流传输成为可能。
发明内容
一个或多个示例实施例提供一种用于在没有插件的情况下在网络浏览器中流传输媒体的方法和设备。
本公开的方面还提供一种能够在不依赖由HTML5的视频元件支持的编解码器的情况下执行解码的媒体流传输方法和设备。
本公开的方面还提供一种能够通过根据解码性能自动选择解码器来执行高帧速率和高分辨率视频的解码的自适应媒体流传输方法和设备。
本公开的方面还提供一种即使之前安装的媒体服务设备不使用MPEG-DASH容器格式也能够使用HTML5的视频元件流传输媒体的媒体流传输方法和设备。
然而,本公开的方面不局限于这里阐述的方面。通过参照下面给出的具体实施方式,本公开的上述和其他方面对本公开所属领域的普通技术人员来说将变得更加清楚。
根据示例实施例的一方面,提供一种自适应媒体流传输设备,可包括:接收器,被配置为使用支持网络服务的通信协议接收由媒体服务设备产生的媒体数据;视频网络工作器,被配置为确定包括在媒体数据中的视频数据的视频编解码器是否被嵌入在自适应媒体流传输设备的网络浏览器中的第一视频解码器支持;第一视频播放器,被配置为:响应于视频数据的视频编解码器不被嵌入在网络浏览器中的第一视频解码器支持,使用以被网络浏览器支持的脚本编写的第二视频解码器对从视频网络工作器发送的视频数据解码;第二视频播放器,被配置为:响应于视频数据的视频编解码器被嵌入网络浏览器中的第一视频解码器支持,使用嵌入网络浏览器中的第一视频解码器对从视频网络工作器发送的视频数据解码。
根据示例实施例的一方面,提供一种自适应媒体流传输设备,可包括:接收器,被配置为使用支持网络服务的通信协议接收由媒体服务设备产生的媒体数据;视频网络工作器,被配置为确定包括在媒体数据中的视频数据的视频编解码器是否被嵌入在自适应媒体流传输设备的网络浏览器中的第一视频解码器支持;第一视频播放器,被配置为:使用以被网络浏览器支持的脚本编写的第二视频解码器对从视频网络工作器发送的视频数据解码;第二视频播放器,被配置为:响应于视频数据的视频编解码器被在嵌入网络浏览器中的第一视频解码器支持并且响应于确定在第一视频播放器中发生大于延迟阈值的解码延迟,使用嵌入在网络浏览器中的第一视频解码器对视频数据解码。
根据示例实施例的一方面,提供一种用于将实时直播媒体或存储的媒体发送到媒体流传输设备的媒体服务设备。所述媒体服务设备可包括:模块存储器,被配置为存储由媒体流传输设备的网络浏览器支持的以及用于在网络浏览器上播放实时直播视频或存储的视频所需的脚本模块;模块发送器,被配置为响应于与媒体流传输设备建立连接而将脚本模块发送到媒体流传输设备;封包器,被配置为对实时直播视频或存储的视频进行封包化以产生传输包;网络服务器,被配置为建立与媒体流传输设备的通信会话,并响应于从媒体流传输设备接收到流传输请求而将传输包发送到媒体流传输设备。脚本模块可包括确定在媒体流传输设备中正被执行的多个视频解码器中的哪个视频解码器对传输包进行解码的处理。
由于不需要插件,因此根据示例实施例的一方面的媒体流传输方法和设备可提供提高的安全性。
由于解码器被配置有能被网络浏览器解析的脚本,因此可在不依赖由HTML5的视频元件支持的编解码器格式的情况下流传输媒体。
通过将MPEG-DASH容器的创建逻辑移动到媒体流传输设备,可在不修改使用RTSP/RTP协议的传统的媒体服务设备的情况下使用HTML5的视频元件来流传输媒体。
通过执行自适应媒体流传输以便考虑解码器的解码性能根据解码速度自动切换解码器,可执行高帧频(FPS)和高分辨率视频的解码。
由于用于根据解码速度确定解码性能的阈值可通过学习被优化,因此可考虑计算机的性能而执行自适应媒体流传输。
本公开的效果和益处不限于上述效果的益处,通过下面的描述,这里未描述的其他效果和益处对本领域技术人员来说将变得清楚。
附图说明
通过参照附图对本公开的具体的示例实施例进行描述,本公开的上述和/或其他方面和特征将变得更加清楚,其中:
图1示出用于网络浏览器中的媒体播放的总体系统;
图2是示出使用通过WebSocket发送的RTSP/RTP协议的通信包的结构的示图;
图3示出通过WebSocket连接发送和接收数据的处理的示例;
图4示出媒体服务设备的配置的示例实施例;
图5示出媒体服务设备的配置的另一示例实施例;
图6示出模块存储器的脚本模块的示例实施例;
图7示出自适应媒体流传输设备的配置的示例实施例;
图8是更详细地示出自适应媒体流传输设备的示例示图;
图9是示出操作视频网络工作器的方法的流程图;
图10是示出视频网络工作器根据视频数据的容器格式将视频数据发送到第一视频播放器140的解码器的示例性示图;
图11是示出音频网络工作器根据音频数据的容器格式将音频数据发送到解码器的示例性示图;
图12是示意性示出根据示例实施例的自适应媒体流传输方法的流程图;
图13是示出用于实现自适应媒体流传输设备的计算装置的示例性示图。
具体实施方式
以下,将参照附图详细描述本公开的示例实施例。通过参照下面的示例实施例的具体实施方式和附图,可更容易地理解本公开的优点和特征以及实现其的方法。然而,本公开可以以很多不同的形式实现,而不应被解释为限于这里阐述的实施例。相反,提供这些示例实施例以使本公开将是彻底的和完整的,并将本公开的构思完整地传达给本领域技术人员,并且本公开将仅由权利要求限定。相同的标号始终表示相同的元件。
如这里使用的术语“流传输”表示播放源于远程装置的媒体(例如,音频、视频等)的方法,其中,在该方法中,可仅在部分下载(例如,缓冲)媒体之后开始播放,而不必首先将全部内容下载并存储在本地存储装置中。如这里使用的术语“直播流传输”(也被称为“直播媒体”)表示本地装置在网络浏览器或应用上大体上实时播放在远程装置(例如,服务器)捕获的媒体的方法。例如,诸如体育赛事、音乐会、演出和新闻广播的直播事件可以在图像和/或声音正被捕获的同时被直播流传输。直播流传输并不一定指示当事件发生时被流传输,而可包括时间延迟(例如,几秒)。如这里使用的术语“记录流传输”表示本地装置播放预先记录和存储在远程装置中的流传输媒体(例如,图像、音频和视频等)的方法。例如,视频点播(VOD)服务可允许本地装置在网络浏览器上播放存储在远程服务器中的电影。记录流传输(也被称为非直播流传输或记录媒体流传输)与直播流传输的不同之处在于,在播放开始之前,正播放的媒体已经被记录和存储。术语“编解码器”表示用于对数据(诸如,数字数据流或信号)进行编码和/或解码的装置或计算机程序。术语“容器”(也被称为“容器格式”或“格式”)是用于分组或组织数据的包装器、包或文件格式。在本公开中,除非另外说明,否则术语“编解码器”、“容器”和“格式”有时可互换使用。例如,“编解码器/格式”或“编解码器和/或格式”可表示编解码器和容器格式中的任何一个,或可选地,编解码器和容器格式二者。术语“被……支持”意味着装置或软件能够执行功能,相反,术语“不被……支持”意味着装置或软件由于不兼容性和/或结构或设计限制而不能执行功能。例如,“被网络浏览器支持”表示网络浏览器能够执行特定功能或使用特定的编解码器、格式、脚本、语言等来操作,而“不被网络浏览器支持”表示网络浏览器不能执行功能或使用特定的编解码器、格式、脚本、语言等来操作。
除非另有定义,否则这里使用的所有术语(包括技术术语和科学术语)具有和本发明所属领域的普通技术人员普遍理解的含义相同的含义。还将理解,除非在这里明确地定义,否则术语(诸如在通用字典中定义的术语)应该被解释为具有与它们在相关领域的语境中的含义一致的含义,而不将被解释为理想化或过于形式化的意义。这里使用的术语仅是出于描述特定实施例的目的,而不意图限制。如这里所使用,除非上下文清楚地另有指示,否则单数形式也意图包括复数形式,反之亦然。
还将理解,当在本说明书中使用术语“包括”时,说明存在叙述的特征、整体、步骤、操作、元件和/或组件,但不排除存在或添加一个或多个其他特征、整体、步骤、操作、元件、组件和/或它们的组。这里公开的各种单元和模块可使用软件、硬件或二者的组合被实现。
以下,将参照附图更详细地描述本公开。
图1示出用于网络浏览器105中的媒体播放的总体系统。媒体服务设备50(例如,服务器)可包括适于将计算服务提供给一个或多个媒体播放装置的计算或处理装置。例如,媒体服务设备50可包括能够产生或存储媒体流并将媒体流发送到用户装置的装置,诸如,网络相机、网络视频录像机(NVR)和数字视频录像机(DVR)。自适应媒体流传输设备100(例如,客户端或用户装置)可包括适于通过网络430与媒体服务设备50或其他计算用户装置交互的计算或处理装置。例如,自适应媒体流传输设备100可以是台式计算机、移动电话或智能电话、个人数字助理(PDA)、膝上型计算机或平板计算机。
图2和图3是用于说明通过WebSocket的实时流传输协议/实时传输协议(RTSP/RTP)传输的示例示图,其中,WebSocket是媒体服务设备50与自适应媒体流传输设备100之间的通信方案。
图2是示出使用通过WebSocket发送的RTSP/RTP协议的通信包的结构的示图。WebSocket是用于使通过单个传输控制协议(TCP)连接的全双工通信信道成为可能的通信协议。当RTP头14被添加到与数据15对应的RTP净负荷(payload)时,他们变成RTP包。RTP包与WebSocket净负荷等同,WebSocket头13被添加到RTP包以成为WebSocket包。WebSocket包与TCP净负荷等同,TCP头12被添加到WebSocket包以变成TCP包。最终,TCP包与互联网协议(IP)净负荷等同,IP头11被添加到TCP包,从而产生通信包(即,IP包)。产生IP包的处理和去除每个头的处理在媒体服务设备50和自适应媒体流传输设备100二者中被执行。
图3示出通过WebSocket连接发送和接收数据的处理的示例。该WebSocket连接可根据作为HTML5标准的部分的WebSocket协议被建立。具体地讲,由于WebSocket连接支持持续的双向通信,所以在没有被断开的情况下,数据可在网络相机的网络服务器与用户端的网络浏览器之间被持续发送和接收。如这里参照WebSocket所使用,“持续”发送和接收数据可指示:每次发送数据包时,不需要建立和/或终止连接或通信信道。因此,一旦WebSocket连接或通信信道建立,自适应媒体流传输设备100和媒体服务设备50就可连续地或间歇地交换WebSocket数据,直到WebSocket连接终止为止。换言之,数据的持续发送可不一定表明没有暂停或中断的数据发送。
参照图3,自适应媒体流传输设备100将TCP/IP连接请求消息发送到媒体服务设备50,媒体服务设备50接受该请求消息并将TCP响应消息(SYN-ACK)发送到自适应媒体流传输设备100,从而建立TCP/IP连接。TCP传输连接可由本地TCP套接字(socket)和远程TCP套接字对形成。每个TCP套接字至少由标识符(诸如,端口号和IP地址)限定。当然,在他们之间建立基于用户数据报协议/IP(UDP/IP)的连接而非基于TCP/IP的连接也是可能的。
然后,当通过自适应媒体流传输设备100与媒体服务设备50之间的握手处理建立WebSocket连接时,他们之间的持续的数据发送/接收可随后被执行。也就是说,自适应媒体流传输设备100以发送WebSocket包(socket.send)的形式将媒体流传输请求发送到媒体服务设备50,媒体服务设备50以响应WebSocket包(socket.onMessage)的形式将媒体流发送到自适应媒体流传输设备100。这个处理可在他们之间被持续执行,直到媒体流传输被完成或被终止为止。
由于自适应媒体流传输设备100与媒体服务设备50之间的通信通过基于HTML5的WebSocket协议来执行,所以模块(诸如,解码器和渲染器)可被实现为以HTML5解析的脚本。可解析的脚本的示例可以以JavaScript来实现。因此,可在不需要单独安装插件(诸如,如传统情况下的ActiveX或网景插件应用程序编程接口(NPAPI))的情况下,在网络浏览器中实现使用RTSP/RTP协议的媒体流传输。
在使用RTSP/RTP协议的流传输方法中,并不是传输全部媒体数据,而是仅传输自适应媒体流传输设备100的用户想要观看的部分的一些帧。也就是说,如果用户找到并点击(例如,回放、快进或跳过)将观看的场景,则从对应部分的帧开始播放,并自动删除过去的帧,这从安全角度来说是期望的行为。
图4示出媒体服务设备50的配置的示例实施例。媒体服务设备50可包括实时摄像机111、编码器112、封包器113、网络服务器114、模块存储器115、模块发送器116和控制器117。图4和其他附图描述的每个元件和模块可使用具有用于执行相关功能的电路的硬件、软件(诸如,存储在计算机可读存储介质中的指令)或二者的组合来实现。
实时摄像机111可以是用于实时捕获媒体的装置,摄像机的捕获包括执行视频捕获和音频记录二者的情况和仅执行视频捕获的情况。
编码器112可被配置为对由实时摄像机111捕获的媒体进行压缩和编码。编码器112的编码不必使用嵌入网络浏览器中的解码器所支持的特定编解码器来执行,而是可以以任何编解码器或容器格式来执行。
封包器113可对编码的媒体数据进行封包以产生传输包。封包意味着将媒体数据划分成合适的长度以促进通过网络430的传输或者如果媒体数据短则将控制信息(诸如,接收地址)共同地分配给合适的长度的每个数据。在这种情况下,控制信息位于包的头文件中。
封包器113可被配置为根据由自适应媒体流传输设备100请求的流传输模式(也被称为播放模式)对媒体数据进行封包。如果自适应媒体流传输设备100请求直播流传输作为流传输模式时,封包器113可针对媒体的每一帧产生传输包。如果自适应媒体流传输设备100请求记录流传输作为流传输模式时,封包器113可产生容器格式的传输包,其中,每个容器包括多个视频帧。因此,如果播放模式为直播流传输,则在逐帧的基础上执行解码,以在没有初始延迟的情况下使播放成为可能。如果播放模式为记录流传输,则为了使用嵌入在高性能网络浏览器中的解码器来执行解码,可配置由嵌入的解码器支持的容器格式。
网络服务器114可建立与自适应媒体流传输设备100的通信会话。也就是说,可通过媒体服务设备50的网络服务器114与自适应媒体流传输设备100之间的握手处理在他们之间建立WebSocket连接。此后,根据自适应媒体流传输设备100的请求,可通过网络服务器114传输由封包器113产生的传输包。
模块存储器115可以是用于存储在自适应媒体流传输设备100中播放媒体所需的一个或多个脚本模块的模块。脚本模块可在不需安装插件或单独的应用程序的情况下,使用可由网络浏览器解析的脚本编写的代码来允许HTML5环境下的自适应媒体流传输设备100在网络浏览器中播放媒体。稍后将参照图6描述脚本模块。
模块发送器116可以是用于将存储在模块存储器115中的脚本模块传输到自适应媒体流传输设备100的模块。模块发送器116响应于自适应媒体流传输设备100通过网络浏览器105连接到媒体服务设备50的情况而发送脚本模块。
控制器117控制媒体服务设备50的整体操作。
图5示出媒体服务设备50’的配置的另一示例实施例。图5的媒体服务设备50’表示用于发送存储在媒体存储器118中的视频(即,记录流传输)的示例实施例,而图4的媒体服务设备50表示用于使用实时摄像机111发送实时直播视频(即,直播流传输)的示例实施例。
媒体存储器118可包括网络视频录像机(NVR)或个人视频录像机(PVR)。然而,将结合网络视频录像机描述图5的示例实施例。媒体存储器118从相机或服务器接收媒体数据,并将接收的媒体数据进行压缩(例如,编码、加密等)和存储。当存在来自自适应媒体流传输设备100的针对存储的媒体数据的传输的请求时,媒体服务设备50’在封包器113中对存储在媒体存储器118中的媒体数据进行封包,并通过网络服务器114传输封包化的数据。在图5的示例实施例中,已经在图4的示例实施例中描述了媒体服务设备50’的配置的封包器113、网络服务器114、模块存储器115、模块发送器116和控制器117。
图6示出模块存储器115的脚本模块的示例实施例。在图6的示例实施例中,脚本模块可包括RTSP客户端120、视频网络工作器130、解码器模块141、解码时间测量器145、渲染器模块147以及多路复用器(MUX)151。根据示例实施例的一方面,脚本模块可以以JavaScript来实现,其中,JavaScript是能被网络浏览器解析的脚本。
RTSP客户端120可被配置为支持与媒体服务设备50的RTSP/RTP通信。目前,在没有插件的情况下,无法在网络浏览器上根据RTSP/RTP协议处理媒体。然而,根据示例实施例的一方面,当使用RTSP客户端120时,即使自适应媒体流传输设备100的网络浏览器使用HTTP方案,自适应媒体流传输设备100也能够可靠地接收通过RTSP/RTP协议发送的媒体数据。
视频网络工作器130可被配置为:确定从RTSP客户端120发送的视频数据的编解码器或容器格式,从解码时间测量器145接收解码时间,基于接收的解码时间确定解码延迟,并将视频数据发送到解码器模块141或MUX151。
通过视频网络工作器130的视频数据的传输可根据视频数据的编解码器和/或格式的确定结果而被不同地确定。在这种情况下,如果视频数据的编解码器和/或格式不是由视频标签支持的编解码器和/或格式,则视频数据被发送到解码器模块141;如果视频数据的编解码器和/或格式是由视频标签支持的编解码器和/或格式,则视频数据被发送到MUX151。
通过视频网络工作器130的视频数据的传输可根据解码延迟的确定结果和视频数据的编解码器和/或格式的确定结果而被不同地确定。在这种情况下,视频数据首先被发送到解码器模块141。然后,如果确定视频数据(其编解码器和/或格式被确定为由视频标签支持)的解码在解码器模块141中被延迟,则视频数据被发送到MUX 151。
在视频网络工作器130中,用于确定是否已发生解码延迟(例如,解码延迟是否落入预定的可接受裕度内)的阈值可针对解码时间来设置。初始阈值可被硬编码(例如,由生产商)。之后,随着解码进行,可考虑计算环境(例如,网络条件)来(例如,在没有用户介入情况下自动地)调节阈值,以通过机器学习找到最优阈值。如这里使用的,术语“最优”意味着优于之前确定的或者基本或实际最佳的,但不一定表示保证绝对理论上的最佳性能。
解码器模块141可以是用于对编码的媒体数据进行解压缩(例如,解码、解密等)的模块。与脚本模块的其他模块类似,解码器模块141可以以JavaScript实现。由于以JavaScript实现解码器模块141,所以不同于嵌入在网络浏览器中的解码器,能够以更多样的种类的编解码器和容器格式而不是以支持的编解码器和格式的限制集合来对数据进行解码。
根据示例实施例的一方面,当以JavaScript实现解码器模块141时,例如,可通过下面的示例代码表示它。
Figure BDA0001438428420000101
Figure BDA0001438428420000111
Figure BDA0001438428420000121
Figure BDA0001438428420000131
解码时间测量器145可使用FPS仪测量解码器模块141的解码时间并将解码时间发送到视频网络工作器130。如上所述,由解码时间测量器145测量的解码时间可被用在视频网络工作器130中,以确定解码性能。
渲染器模块147可被配置为渲染视频数据并在输出装置(诸如,显示器等)上显示视频。渲染器模块147可使用网页图形库(WebGL)将YUV格式的视频数据转换为RGB格式的视频数据。WebGL是通过JavaScript可用并允许三维(3D)图形接口的创建的基于网页的图形库。
MUX 151可以是用于当使用视频标签作为嵌入在网络浏览器中的解码器的一个示例实施例时防止由于容器格式导致的兼容性问题的模块。当使用视频标签时,媒体播放性能可高于以JavaScript实现的解码器的媒体播放性能,其中,视频标签是嵌入在网络浏览器中的解码器。然而,在传统的MPEG-DASH的情况下,由于容器在媒体服务设备50中被创建并且媒体在以该容器载入时被发送,因此容器创建逻辑必须在媒体服务设备50中被实现。
如果之前安装的媒体服务设备50不提供创建支持MPEG-DASH的容器的功能(例如,不支持合适的容器创建功能的停产设备),则它必须通过具有容器创建功能的服务器被单独发送。因此,通过将容器创建逻辑移动到自适应媒体流传输设备100,能够在不修改现有设备的情况下解决兼容性问题。
MUX 151可被配置为:当从视频网络工作器130接收的视频数据未按照容器被封包时,通过收集帧来创建容器。因此,即使当自适应媒体流传输设备100意图使用视频标签执行解码而媒体数据不是由媒体服务设备50以容器格式产生的时,也不会由于媒体服务设备50与自适应媒体流传输设备100之间的不兼容的容器格式而引起兼容性问题。
图7示出自适应媒体流传输设备100的配置的示例实施例。参照图7,自适应媒体流传输设备100可包括:WebSocket客户端110和RTSP客户端120,作为用于从媒体服务设备50的服务器接收媒体数据的接收器;视频网络工作器130,用于将视频数据发送到符合编解码器和/或容器格式的解码器,并通过将解码时间与阈值进行比较来切换视频播放器;第一视频播放器140,用于使用以能被网络浏览器解析的脚本编写的解码器播放视频数据;第二视频播放器150,用于使用嵌入在网络浏览器中的解码器播放视频数据;音频网络工作器160,用于将音频数据发送到符合编解码器和/或容器格式的解码器;第一音频播放器170,用于使用以能被网络浏览器解析的脚本编写的解码器播放音频数据;第二音频播放器180,用于使用嵌入在网络浏览器中的解码器播放音频数据。
图7的实施例表示用于播放视频数据和音频数据二者的系统的配置,但系统可被配置为仅播放视频数据。也就是说,为了仅播放视频数据,整个系统可被配置为包括WebSocket客户端110、RTSP客户端120、视频网络工作器130、第一视频播放器140和第二视频播放器150。同样,可选地,系统可被配置为仅播放音频数据。
在图7的自适应媒体流传输设备100中,视频网络工作器130和音频网络工作器160可被配置为分开的线程,以便视频数据和音频数据可被并行处理。因此,诸如编解码器/格式确定的数据处理可被更平滑地执行。
在图7的示例实施例中,以能被第一视频播放器140和第一音频播放器170的网络浏览器解析(例如,支持)的脚本编写的解码器可以以JavaScript实现。嵌入在第二视频播放器150和第二音频播放器180的网络浏览器中的解码器可被分别实现为视频标签和HTML5音频标签。
在图7中,从第一视频播放器140至视频网络工作器130绘制了虚线箭头,它表示由第一视频播放器140测量的解码时间可被发送到视频网络工作器130。
图8是更详细地示出自适应媒体流传输设备100的示例示图。在图8中,沿源于RTSP客户端120的箭头示出的视频网络工作器130、解码器模块141、解码时间测量器145、渲染器模块147和MUX 150是使用从媒体服务设备50接收的脚本模块配置的模块。
WebSocket客户端110和RTSP客户端120等同于接收器。WebSocket客户端110可从服务器接收通过WebSocket连接发送的RTSP/RTP媒体数据,并将媒体数据传送到以JavaScript实现的RTSP客户端120。RTSP客户端120可将媒体数据分成视频数据和音频数据,并将视频数据发送到视频网络工作器130,将音频数据发送到音频网络工作器160。
视频网络工作器130可从RTSP客户端120接收视频数据以及从第一视频播放器140的解码时间测量器145接收解码时间,并基于解码时间和视频数据的编解码器将视频数据传送到合适的解码器。将参照图9给出更详细的描述。
图9是示出视频网络工作器130的操作方法的流程图。视频网络工作器130可从RTSP客户端120和解码时间测量器145分别接收视频数据和解码时间(S310)。视频网络工作器130可设置用于与解码时间比较的阈值,可由第一视频播放器140使用预定(例如,硬编码的)值选择初始阈值。这是用于通过在逐帧基础上执行解码的解码器模块141在没有初始延迟的情况下播放视频。之后,随着解码进行,可通过机器学习找到最优阈值。
视频网络工作器130可确定从解码时间测量器145接收的解码时间是否超过阈值(S320)。如果解码时间不超过阈值,则确定解码器模块141的解码正在被平滑执行(例如,产生可接受性能)并且视频数据被发送到第一视频播放器140。在这种情况下,视频数据可根据编解码器和/或格式被传送到第一视频播放器140的解码器(S350)。以下将参照图10对此进行详细描述。
然而,如果解码时间超过阈值,则确定视频数据的编解码器和/或格式是否被视频标签支持(S330)。如果编解码器/格式被视频标签支持,这意味着可以使用嵌入在网络浏览器中的解码器来解码,则视频数据可被传送到第二视频播放器150(S340)。在编解码器/格式不被视频标签支持的情况下,这意味着必须使用以JavaScript编写的解码器模块141,视频数据可被传送到第一视频播放器140(S350)。
图10是示出视频网络工作器130将视频数据传送到符合视频数据的编解码器/格式的第一视频播放器140的解码器的示例示图。
视频网络工作器130可将在H.264编解码器中编码的视频数据发送到以JavaScript实现的H.264解码器模块142。当视频数据在H.265编解码器中编码时,视频数据被传送到H.265解码器模块143。在这种情况下,由于可根据视频数据编解码器/格式添加解码器模块,因此视频数据的编解码器/格式不限于H.264和H.265。
返回参照图8,第一视频播放器140可包括解码器模块141、解码时间测量器145、渲染器模块147和画布标签(canvas tag)149。
第一视频播放器140可从视频网络工作器130接收视频数据,解码器模块141可将视频数据解码。视频数据可通过渲染器模块147和画布标签149被渲染,并在网页上被播放。
解码时间测量器145可使用FPS仪测量解码器模块141的解码时间并将解码时间发送到视频网络工作器130。FPS仪可以是被设计为测量并计算每单位时间的正被解码的帧的硬件电路和/或软件逻辑。由解码时间测量器145测量的解码时间可被发送到视频网络工作器130并被用于确定解码器模块141的解码性能。
解码器模块141可不必使用JavaScript单独执行解码,而是可使用诸如Emscripten的编译器(例如,代码转换器)实现以C和/或C++语言编写的现有代码。由于解码器模块141以JavaScript实现,使得解码甚至可以以不被视频元件支持的编解码器/格式进行,对编解码器/格式的依赖可被降低。
根据编解码器/格式解码的视频数据通过渲染器模块147和画布标签149被显示在网络浏览器上。画布标签149是允许二维(2D)形状和位图图像被动态渲染的HTML5的元件。也就是说,它可被视为网络浏览器上的绘图程序。由于它是被大多数最新版的网络浏览器所支持的功能,因此媒体可被以JavaScript实现的解码器在逐帧基础上处理并通过使用画布标签149被显示在网络浏览器上。
第二视频播放器可包括作为容器创建模块的MUX 151、作为嵌入在网络浏览器中的代码的媒体源扩展(MSE)153和视频标签155。
如果从视频网络工作器130接收的视频数据不是容器格式的,则MUX151可通过收集帧创建容器。通过MUX 151的视频数据可在没有因不可兼容的容器格式而导致的兼容性问题的情况下被传送到MSE 153和视频标签155。
MSE 153可以是针对HTML5的JavaScript应用编程接口(API),它被创建用于使用HTTP下载的视频流传输播放。这个通过万维网联盟(W3C)标准化的技术使游戏机(诸如,Xbox和PlayStation 4(PS4))或数字媒体播放器(诸如,Chromecast)上的流传输播放成为可能。
在视频标签155中,执行解码和渲染以将视频显示在屏幕上。当使用视频标签155的视频解码器时,可以以比由于作为动态语言的JavaScript的性能而具有限制的解码器模块141更好的性能执行解码。也就是说,可对高帧频(FPS)和高分辨率视频执行解码。
类似于视频数据的处理,音频数据的处理也根据编解码器/格式来执行。音频网络工作器160根据编解码器/格式将从RTSP客户端120接收的音频数据传送到合适的解码器。
图11是示出音频网络工作器160将音频数据发送到符合音频数据的编解码器格式的解码器的示例示图。如果使用G.711和G.726编解码器对音频数据编码,则由于它们不是嵌入在网络浏览器中的解码器所支持的编解码器,因此音频网络工作器160可将音频数据分别传送到第一音频播放器170的G.711解码器模块172和G.726解码器模块173。在这种情况下,由于可类似于解码器模块141根据音频编解码器添加音频解码器,因此音频数据的编解码器不限于G.711和G.726。如果音频数据是AAC编码的音频数据,则由于音频数据可由嵌入在网络浏览器中的代码进行解码,因此音频数据被传送到第二音频播放器180。
返回参照图8,第一音频播放器170可包括网络音频API 175和以JavaScript实现的音频解码器模块171。类似于解码器模块141,可通过使用编译器(诸如,Emscripten)将用C或C++语言编写的传统的本地代码转换成JavaScript来实现音频解码器模块171。
由音频解码器模块171解码的音频数据可通过网络音频API 175在网络浏览器中播放。网络音频API 175是用于在网络应用中处理并合成音频的JavaScript API。
第二音频播放器180可包括嵌入在网络浏览器中的音频标签183和媒体源扩展(MSE)181。MSE 181支持从音频网络工作器160接收的音频数据被无缝播放。音频标签183将从MSE 181发送的音频数据解码并在网络浏览器105中播放音频数据。
图12是示意性示出根据示例实施例的自适应媒体流传输方法的流程图。自适应媒体流传输设备100可通过网络浏览器105连接到媒体服务设备50(S610),并从媒体服务设备50接收存储在模块存储器115中的脚本模块(S620)。然后,自适应媒体流传输设备100可从媒体服务设备50接收媒体数据(S630),并将接收的媒体数据分成视频数据和/或音频数据(S640)。视频数据可考虑编解码器和/或格式以及解码性能被传送到视频播放器(S650)。音频数据可考虑编解码器和/或格式被传送到合适的音频播放器(S660)。视频数据可通过选择的视频播放器在网页上播放(S670),音频数据可通过选择的音频播放器在网页上播放(S680)。
在上面的描述中,网络浏览器可以是安装在台式计算机、膝上型计算机或移动装置上的公知的浏览器,诸如,谷歌Chrome、微软Explorer、谋智Firefox和苹果Safari,或可选地,是使用网络浏览器的API或资源创建的软件应用。
例如,图1中示出的自适应媒体流传输设备100可被实现为图13中示出的计算装置400。计算装置400可以是但不限于移动手持装置(例如,智能电话、台式计算机等)、膝上型或笔记本计算机、分布式计算机系统、计算网络或服务器。计算装置400可包括通过总线440彼此通信或与其他元件通信的处理器401、存储器403和存储装置408。总线440可连接到显示器432、至少一个输入装置433和至少一个输出装置434。图13和其他附图中描述的每个元件可使用具有用于执行相关功能的电路的硬件、软件(诸如,存储在计算机可读存储介质中的指令)或二者的组合来实现。
所有这些元件可直接地或通过一个或多个接口或适配器连接到总线440。总线440连接到多种多样的子系统。总线440可包括存储器总线、存储器控制器、外围总线、局部总线和它们的组合。
处理器(例如,中央处理器(CPU))401可选地包括高速缓存存储器402,高速缓存存储器402是用于暂时存储指令、数据或计算机地址的本地存储装置。处理器401执行写入计算机可读存储介质(诸如,存储器403或存储装置408)的指令(或软件模块)。计算机可读存储介质可存储实现特定实施例的软件模块,处理器401可执行存储的软件模块。
存储器403可包括随机存取存储器(RAM)404,只读存储器(ROM)405或它们的组合。此外,具有用于启动计算装置400所需的基本例程的基本输入/输出系统(BIOS)或固件可包括在存储器403中。
存储装置408用于存储操作系统(OS)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)和头戴式显示器(HMD)。显示器432通过视频接口422连接到总线440,并且显示器432与总线440之间的数据传送可由图形控制器421(也被称为图形卡、图形适配器或图形处理器)控制。
除显示器432之外,计算装置400还可包括至少一个输出装置434,诸如,音频扬声器和打印机。输出装置434通过输出接口424连接到总线440。例如,输出接口424可以是串行端口、并行端口、游戏端口、USB、视频图形阵列(VGA)端口、高清多媒体接口(HDMI)端口、数字视频接口(VDI)端口、显示器端口等。
在具体实施方式的最后,本领域技术人员将理解,在实质上不脱离本公开的原理的情况下,可对示例实施例做出许多变化和修改。因此,本公开所公开的示例实施例仅在通用和描述性意义上使用,而不用于限制的目的。

Claims (10)

1.一种自适应媒体流传输设备,包括:
接收器,被配置为使用支持网络服务的通信协议接收由媒体服务设备产生的媒体数据;
视频网络工作器,被配置为确定包括在媒体数据中的视频数据的视频编解码器是否被嵌入在自适应媒体流传输设备的网络浏览器中的第一视频解码器支持;
第一视频播放器,被配置为响应于视频数据的视频编解码器不被嵌入在网络浏览器中的第一视频解码器支持,使用以被网络浏览器支持的脚本编写的第二视频解码器对从视频网络工作器发送的视频数据解码;
第二视频播放器,被配置为响应于视频数据的视频编解码器被嵌入在网络浏览器中的第一视频解码器支持,使用嵌入在网络浏览器中的第一视频解码器对从视频网络工作器发送的视频数据解码,
其中,第二视频播放器包括容器创建逻辑,其中,容器创建逻辑被配置为:当从视频网络工作器接收的视频数据未按照容器被封包时,通过收集帧来创建容器。
2.如权利要求1所述的自适应媒体流传输设备,还包括:
音频网络工作器,被配置为确定包括在媒体数据中的音频数据的音频编解码器是否被嵌入在网络浏览器中的第一音频解码器支持;
第一音频播放器,被配置为响应于音频数据的音频编解码器不被嵌入在网络浏览器中的第一音频解码器支持,使用以所述脚本编写的第二音频解码器对从音频网络工作器发送的音频数据解码;
第二音频播放器,被配置为响应于音频数据的音频编解码器被嵌入在网络浏览器中的第一音频解码器支持,使用嵌入在网络浏览器中的第一音频解码器对从音频网络工作器发送的音频数据解码。
3.如权利要求2所述的自适应媒体流传输设备,其中,视频网络工作器被配置为根据视频数据的视频编解码器将视频数据发送到第一视频播放器或第二视频播放器,
其中,音频网络工作器被配置为根据音频数据的音频编解码器将音频数据发送到第一音频播放器或第二音频播放器。
4.如权利要求1所述的自适应媒体流传输设备,还包括:解码时间测量器,被配置为使用帧频仪测量第一视频播放器的解码时间。
5.如权利要求4所述的自适应媒体流传输设备,其中,视频网络工作器被配置为:通过机器学习调节阈值,所述阈值用于确定从解码时间测量器接收的解码时间是否可接受。
6.如权利要求5所述的自适应媒体流传输设备,其中,视频网络工作器还被配置为:将从解码时间测量器接收的解码时间与所述阈值进行比较,并响应于解码时间超过所述阈值且视频数据的视频编解码器被网络浏览器支持,将视频数据发送到第二视频播放器。
7.一种自适应媒体流传输设备,包括:
接收器,被配置为使用支持网络服务的通信协议接收由媒体服务设备产生的媒体数据;
视频网络工作器,被配置为确定包括在媒体数据中的视频数据的视频编解码器是否被嵌入在自适应媒体流传输设备的网络浏览器中的第一视频解码器支持;
第一视频播放器,被配置为使用以被网络浏览器支持的脚本编写的第二视频解码器对从视频网络工作器发送的视频数据解码;
第二视频播放器,被配置为响应于视频数据的视频编解码器被嵌入在网络浏览器中的第一视频解码器支持并且响应于确定在第一视频播放器中发生大于延迟阈值的解码延迟,使用嵌入在网络浏览器中的第一视频解码器对视频数据解码,
其中,第二视频播放器包括容器创建逻辑,其中,容器创建逻辑被配置为:当从视频网络工作器接收的视频数据未按照容器被封包时,通过收集帧来创建容器。
8.如权利要求7所述的自适应媒体流传输设备,还包括:解码时间测量器,被配置为使用帧频仪测量正被第一视频播放器解码的视频数据的帧速率以确定第一视频播放器的解码延迟是否大于所述延迟阈值。
9.如权利要求7所述的自适应媒体流传输设备,还包括:
音频网络工作器,被配置为确定包括在媒体数据中的音频数据的音频编解码器是否被嵌入在网络浏览器中的第一音频解码器支持;
第一音频播放器,被配置为响应于音频数据的音频编解码器不被嵌入在网络浏览器中的第一音频解码器支持,使用以所述脚本编写的第二音频解码器对从音频网络工作器发送的音频数据解码;
第二音频播放器,被配置为响应于音频数据的音频编解码器被嵌入在网络浏览器中的第一音频解码器支持,使用嵌入在网络浏览器中的第一音频解码器对从音频网络工作器发送的音频数据解码。
10.如权利要求9所述的自适应媒体流传输设备,其中,视频网络工作器还被配置为根据视频数据的视频编解码器以及是否发生大于所述延迟阈值的解码延迟,将视频数据发送到第一视频播放器或第二视频播放器,
其中,音频网络工作器还被配置为:根据音频数据的音频编解码器将音频数据发送到第一音频播放器或第二音频播放器。
CN201710975751.9A 2016-11-07 2017-10-19 自适应媒体流传输设备和媒体服务设备 Active CN108076364B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020160147633A KR102130429B1 (ko) 2016-11-07 2016-11-07 멀티미디어 수신 장치에서 디코딩을 수행하는 방법 및 멀티미디어 장치
KR10-2016-0147633 2016-11-07

Publications (2)

Publication Number Publication Date
CN108076364A CN108076364A (zh) 2018-05-25
CN108076364B true CN108076364B (zh) 2021-03-30

Family

ID=60269685

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710975751.9A Active CN108076364B (zh) 2016-11-07 2017-10-19 自适应媒体流传输设备和媒体服务设备

Country Status (4)

Country Link
US (2) US20180131741A1 (zh)
EP (1) EP3319320B1 (zh)
KR (1) KR102130429B1 (zh)
CN (1) CN108076364B (zh)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10326814B1 (en) 2017-03-29 2019-06-18 Twitch Interactive, Inc. Provider-requested streaming content replacement
US10397291B1 (en) * 2017-03-29 2019-08-27 Twitch Interactive, Inc. Session-specific streaming content replacement
US10313412B1 (en) 2017-03-29 2019-06-04 Twitch Interactive, Inc. Latency reduction for streaming content replacement
CN110620959B (zh) * 2018-06-20 2020-12-25 杭州海康威视数字技术股份有限公司 一种数据处理方法、装置、电子设备、系统及存储介质
WO2020007922A1 (en) * 2018-07-05 2020-01-09 Dolby International Ab Processing media data structures
CN109151570B (zh) * 2018-10-10 2022-04-01 深圳市网心科技有限公司 一种基于html5的流媒体处理方法、系统及相关组件
CN109257646B (zh) * 2018-10-15 2020-09-22 Oppo广东移动通信有限公司 视频处理方法、装置、电子设备及计算机可读介质
CN110087110B (zh) * 2019-06-12 2021-03-30 深圳市大数据研究院 应用深度搜索动态调控视频播放的方法及装置
CN110225404A (zh) * 2019-06-17 2019-09-10 深圳市正易龙科技有限公司 视频播放方法、终端及计算机可读存储介质
DE102019132173A1 (de) * 2019-11-27 2021-05-27 Endress+Hauser Conducta Gmbh+Co. Kg Verfahren zur Konfiguration zur Übertragung von Daten von einem Feldgerät
CN111107428A (zh) * 2019-12-03 2020-05-05 青岛海信传媒网络技术有限公司 一种双路媒体流数据的播放方法及显示设备
CN111356023B (zh) * 2019-12-30 2021-12-24 杭州海康威视数字技术股份有限公司 播放方式确定方法及装置
CN112423117B (zh) * 2020-06-11 2022-12-16 上海哔哩哔哩科技有限公司 Web端视频播放方法、装置及计算机设备
CN112073809B (zh) * 2020-08-09 2022-08-09 富盛科技股份有限公司 一种支持浏览器播放任意编码格式视频的方法
CN112672225A (zh) * 2020-11-24 2021-04-16 北京懿医云科技有限公司 一种流媒体的实时通信方法及装置
CN115460183A (zh) * 2021-06-07 2022-12-09 中移物联网有限公司 基于浏览器的流媒体数据播放方法、装置及相关设备
CN113613044B (zh) * 2021-07-20 2023-08-01 深圳Tcl新技术有限公司 视频播放方法、装置、存储介质及电子设备
CN115150375A (zh) * 2022-06-23 2022-10-04 浙江惠瀜网络科技有限公司 视频流数据采集方法以及装置、电子设备、存储介质
CN114866522B (zh) * 2022-07-07 2022-12-02 天津七一二移动通信有限公司 一种多模全网录音录像系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102761736A (zh) * 2011-04-29 2012-10-31 腾讯科技(深圳)有限公司 视频解码方法和装置
CN103995738A (zh) * 2013-02-15 2014-08-20 三星电子株式会社 终端装置、服务器、终端装置浏览器操作系统和方法
CN105611379A (zh) * 2016-03-31 2016-05-25 北京金山安全软件有限公司 利用网页浏览器播放视频的方法、装置及电子设备
JP2016136676A (ja) * 2015-01-23 2016-07-28 日本放送協会 受信装置、バッファ管理方法、及びプログラム
CN105898295A (zh) * 2015-12-01 2016-08-24 乐视致新电子科技(天津)有限公司 一种播放器解码方法和装置

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2408819C (en) * 2000-05-11 2006-11-07 University Of Southern California Machine translation techniques
US7349422B2 (en) * 2003-06-03 2008-03-25 Microsoft Corporation Providing contention free quality of service to time constrained data
KR20060105890A (ko) * 2005-03-31 2006-10-12 삼성전자주식회사 디지털 방송 수신 장치 및 그 장치에서의 동기화 처리 방법
DE112006003587B4 (de) * 2006-03-06 2017-03-09 Mitsubishi Electric Corp. Abspielvorrichtung für komprimierte codierte Daten und Decodierungs-/Abspielverfahren komprimierter codierter Daten in dieser Vorrichtung
CN101359996B (zh) * 2007-08-02 2012-04-04 华为技术有限公司 媒体业务呈现方法及通讯系统以及相关设备
US9712560B2 (en) * 2007-11-05 2017-07-18 Cabara Software Ltd. Web page and web browser protection against malicious injections
US8448090B2 (en) * 2009-01-23 2013-05-21 Hewlett-Packard Development Company, L.P. Selective plug-in activation for resource-limited platforms
US9565318B2 (en) * 2010-10-14 2017-02-07 T-Mobile Usa, Inc. Quality of service adjustments to improve network utilization
US9380104B2 (en) 2010-12-20 2016-06-28 Thomson Licensing Media player web service
AU2012297524B2 (en) * 2011-08-16 2017-07-20 Destiny Software Productions Inc. Script-based video rendering
US9848032B2 (en) 2011-12-28 2017-12-19 Intel Corporation Method and apparatus for streaming metadata between devices using JavaScript and HTML5
KR101955460B1 (ko) * 2012-08-24 2019-03-11 에스케이플래닛 주식회사 웹 브라우저를 이용한 멀티미디어 플레이어 제공 시스템 및 방법
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
EP2819417B1 (en) * 2013-06-24 2020-03-04 Canon Kabushiki Kaisha Method and device for streaming video from a server based on expected usages
WO2015008774A1 (ja) * 2013-07-19 2015-01-22 ソニー株式会社 情報処理装置および方法
EP2835982B1 (en) * 2013-08-06 2017-12-20 THEO Technologies A method for playing a media stream in a browser application
US9930308B2 (en) * 2014-07-26 2018-03-27 Clipchamp Ip Pty Ltd Platform-agnostic video player for mobile computing devices and desktop computers
US9838760B2 (en) * 2014-12-16 2017-12-05 Arizona Board Of Regents On Behalf Of Arizona State University Systems and methods for name-based segmented media acquisition and distribution framework on a network
US10313765B2 (en) * 2015-09-04 2019-06-04 At&T Intellectual Property I, L.P. Selective communication of a vector graphics format version of a video content item
CN105955800B (zh) * 2016-05-13 2019-06-07 山东大学苏州研究院 一种自适应视频传输系统的容器快速部署方法
US11197010B2 (en) * 2016-10-07 2021-12-07 Microsoft Technology Licensing, Llc Browser-based video decoder using multiple CPU threads

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102761736A (zh) * 2011-04-29 2012-10-31 腾讯科技(深圳)有限公司 视频解码方法和装置
CN103995738A (zh) * 2013-02-15 2014-08-20 三星电子株式会社 终端装置、服务器、终端装置浏览器操作系统和方法
JP2016136676A (ja) * 2015-01-23 2016-07-28 日本放送協会 受信装置、バッファ管理方法、及びプログラム
CN105898295A (zh) * 2015-12-01 2016-08-24 乐视致新电子科技(天津)有限公司 一种播放器解码方法和装置
CN105611379A (zh) * 2016-03-31 2016-05-25 北京金山安全软件有限公司 利用网页浏览器播放视频的方法、装置及电子设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
HTML5 Live Video Streaming via WebSockets;Dominic Szablewski等;《网址:https://phoboslab.org/log/2013/09/html5-live-video-streaming-via-websockets》;20130911;第2页第5-9行 *

Also Published As

Publication number Publication date
EP3319320B1 (en) 2023-12-06
US20220263885A1 (en) 2022-08-18
US20180131741A1 (en) 2018-05-10
CN108076364A (zh) 2018-05-25
EP3319320A2 (en) 2018-05-09
KR20180050961A (ko) 2018-05-16
EP3319320A3 (en) 2018-08-15
KR102130429B1 (ko) 2020-07-07

Similar Documents

Publication Publication Date Title
CN108076364B (zh) 自适应媒体流传输设备和媒体服务设备
US10567809B2 (en) Selective media playing method and apparatus according to live streaming and recorded streaming
US10979785B2 (en) Media playback apparatus and method for synchronously reproducing video and audio on a web browser
JP7284906B2 (ja) メディアコンテンツの配信および再生
CN107277612B (zh) 用于在web浏览器上播放媒体流的方法和设备
KR102246002B1 (ko) 가상 현실 미디어 콘텐트의 스트리밍을 개선하는 방법, 디바이스, 및 컴퓨터 프로그램
US11089349B2 (en) Apparatus and method for playing back and seeking media in web browser
US11909799B2 (en) Media playback apparatus and method including delay prevention system
KR101942270B1 (ko) 재생 지연 방지 시스템을 포함하는 미디어 재생 장치 및 방법
EP3646611A1 (en) Systems and methods of orchestrated networked application services
EP3267331A1 (en) Method and apparatus for cloud streaming service
KR101668283B1 (ko) 레이턴시를 고려한 영상 출력 방법, 이를 수행하는 장치 및 클라우드 스트리밍 서비스 시스템
US20150172733A1 (en) Content transmission device, content playback device, content delivery system, control method for content transmission device, control method for content playback device, data structure, control program, and recording medium
US11089381B2 (en) Apparatus and method for simultaneous playback and backup of media in a web browser
JP5383316B2 (ja) 送信機と電子装置間の信号ストリームの簡略化された伝送方法
KR101933031B1 (ko) 콘텐츠 재생 제어 장치

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: 20190228

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