CN109088887A - 一种流媒体解码的方法及装置 - Google Patents

一种流媒体解码的方法及装置 Download PDF

Info

Publication number
CN109088887A
CN109088887A CN201811151778.7A CN201811151778A CN109088887A CN 109088887 A CN109088887 A CN 109088887A CN 201811151778 A CN201811151778 A CN 201811151778A CN 109088887 A CN109088887 A CN 109088887A
Authority
CN
China
Prior art keywords
data
video
audio
decoded
audio data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201811151778.7A
Other languages
English (en)
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.)
Beijing Kingsoft Cloud Network Technology Co Ltd
Beijing Kingsoft Cloud Technology Co Ltd
Original Assignee
Beijing Kingsoft Cloud Network Technology Co Ltd
Beijing Kingsoft Cloud Technology 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 Beijing Kingsoft Cloud Network Technology Co Ltd, Beijing Kingsoft Cloud Technology Co Ltd filed Critical Beijing Kingsoft Cloud Network Technology Co Ltd
Priority to CN201811151778.7A priority Critical patent/CN109088887A/zh
Publication of CN109088887A publication Critical patent/CN109088887A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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/70Media network packetisation
    • 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
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • 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 or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • H04N21/440218Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本发明实施例提供了一种流媒体解码的方法及装置,其中所述流媒体解码的方法,应用于浏览器,所述方法包括:解封装Flash视频FLV格式的音视频数据,得到待解码数据,所述待解码数据包括:分离出的音频数据和视频数据;判断所述浏览器是否满足预设条件,所述预设条件包括:所述浏览器不支持媒体源的扩展应用程序接口MSE API;在满足所述预设条件的情况下,分别对所述音频数据和所述视频数据进行软件解码。

Description

一种流媒体解码的方法及装置
技术领域
本发明涉及流媒体解码领域,特别是涉及一种流媒体解码的方法及装置。
背景技术
传统的桌面Web端浏览器播放超文本传输协议-Flash视频(Hyper Text TransferProtocol-Flash Video,简称HTTP-FLV)流媒体的技术是基于Flash的,并且,需要用户在Web端浏览器预先安装Flash插件。其中,Flash是一种网页动画的标准。
目前多数Web端浏览器可能将不再支持Flash。而,flv.js是通过超文本标记语言(HyperText Markup Language,简称HTML5)Flash视频播放模块,简称FLV播放模块。使用高级编程语言(JavaScript,简称JS)开发的,不使用Flash插件,因此,以flv.js为代表的,通过HTML5方式,在Web端浏览器播放流媒体,开始受到视频公司的青睐。
另外,动态图像专家组4(Moving Picture Experts Group4,简称MP4)也称为MPEG-4。MP4是一套用于音频、视频信息的压缩编码标准。碎片动态图像专家组4(FragmentMoving Picture Experts Group4,简称FMP4)属于MP4文件格式的流媒体变种。但目前基于flv.js播放流媒体的这种方式并不太适用于移动端浏览器,因而在移动端浏览器上对流媒体的音视频数据进行解码较难,因而实现移动端浏览器对流媒体的音视频数据进行解码成为行业内亟待解决的问题。
发明内容
本发明实施例的目的在于提供一种流媒体解码的方法及装置,用以解决相关技术中移动端浏览器很难对流媒体的音视频数据进行解码的问题。具体技术方案如下:
第一方面,本发明实施提供了一种流媒体解码的方法,应用于浏览器,所述方法包括:解封装Flash视频FLV格式的音视频数据,得到待解码数据,所述待解码数据包括:分离出的音频数据和视频数据;判断所述浏览器是否满足预设条件,所述预设条件包括:所述浏览器不支持媒体源的扩展应用程序接口MSE API;在满足所述预设条件的情况下,分别对所述音频数据和所述视频数据进行软件解码。
进一步的,所述方法还包括以下至少之一:在不满足所述预设条件且所述音频数据所使用的音频编码格式为所述浏览器支持的音频编码格式的情况下,对所述音频数据进行硬件解码;在不满足所述预设条件且所述视频数据所使用的视频编码格式为所述浏览器支持的视频编码格式的情况下,对所述视频数据进行硬件解码;在不满足所述预设条件且所述音频数据所使用的音频编码格式为所述浏览器不支持的音频编码格式的情况下,对所述音频数据进行软件解码;在不满足所述预设条件且所述视频数据所使用的视频编码格式为所述浏览器不支持的视频编码格式的情况下,对所述视频数据进行软件解码。
进一步的,对所述音频数据进行软件解码,包括以下至少之一:基于JavaScript使用支持所述音频数据所使用的音频编码格式的音频解码模块对所述音频数据进行软件解码;解析所述音频数据,得到预定参数和所述音频数据的原始数据;对所述预定参数和所述原始数据进行重构,得到重构后的音频数据;使用支持所述音频数据所使用的音频编码格式的音频解码模块对所述重构后的音频数据进行软件解码。
进一步的,对所述视频数据进行软件解码,包括:通过JavaScript调用,预先编译过的视频解码模块,其中,所述预先编译过的视频解码模块所支持的视频编码格式包括所述视频数据所使用的视频编码格式;通过所述预先编译过的视频解码模块,对所述视频数据进行软件解码。
进一步的,对所述音频数据进行硬件解码包括:将所述音频数据重新封装为所述浏览器的音频audio标签支持的封装格式的音频数据,得到重新封装后的音频数据;将所述重新封装后的音频数据,传输给所述浏览器的音频audio标签;利用所述audio标签,对所述重新封装后的音频数据进行解码。
进一步的,对所述视频数据进行硬件解码包括:将所述视频数据重新封装为所述浏览器的视频video标签支持的封装格式的视频数据,得到重新封装后的视频数据;将所述重新封装后的视频数据,传输给所述浏览器的video标签;利用所述video标签,对所述重新封装后的视频数据进行解码。
进一步的,在分别对所述音频数据和所述视频数据进行软件解码之后,所述方法还包括:获得解码后的视频数据及解码后的音频数据;将所述解码后的视频数据和所述解码后的音频数据,进行同步播放。
进一步的,所述将所述解码后的视频数据和所述解码后的音频数据,进行同步播放,包括:将解码后的视频数据的图像帧数据进行渲染;将渲染后的图像帧数据与解码后的音频数据,进行同步播放。
进一步的,所述将解码后的视频数据的图像帧数据进行渲染,包括:获取图像帧数据的显示时间戳PTS以及解码后的音频数据的显示时间戳PTS;判断所述图像帧数据的PTS是否小于或等于解码后的音频数据的PTS;若图像帧数据的PTS小于或等于解码后的音频数据的PTS,则将解码后的视频数据的图像帧数据进行直接渲染。
进一步的,所述待解码数据还包括:元数据,所述元数据包括:视频帧率、视频宽高、音频采样率及通道数;所述将渲染后的图像帧数据与解码后的音频数据,进行同步播放,包括:基于所述元数据,对将渲染后的图像帧数据与解码后的音频数据,进行同步播放。
进一步的,在判断所述图像帧数据的PTS是否小于或等于解码后的音频数据的PTS之后,所述方法还包括:若图像帧数据的PTS小于解码后的音频数据的PTS,并且所述解码后的音频数据的PTS与所述图像帧数据的PTS的差值大于预设阈值,则丢弃所述图像帧数据。
第二方面,本发明实施提供了一种流媒体解码的装置,应用于浏览器,所述装置包括:FLV解封装模块,用于解封装Flash视频FLV格式的音视频数据,得到待解码数据,所述待解码数据包括:分离出的音频数据和视频数据;判断模块,用于判断所述浏览器是否满足预设条件,所述预设条件包括:所述浏览器不支持媒体源的扩展应用程序接口MSE API;解码模块,用于在满足所述预设条件的情况下,分别对所述音频数据和所述视频数据进行软件解码。
进一步的,所述解码模块,用于以下至少之一:在不满足所述预设条件且所述音频数据所使用的音频编码格式为所述浏览器支持的音频编码格式的情况下,对所述音频数据进行硬件解码;在不满足所述预设条件且所述视频数据所使用的视频编码格式为所述浏览器支持的视频编码格式的情况下,对所述视频数据进行硬件解码;在不满足所述预设条件且所述音频数据所使用的音频编码格式为所述浏览器不支持的音频编码格式的情况下,对所述音频数据进行软件解码;在不满足所述预设条件且所述视频数据所使用的视频编码格式为所述浏览器不支持的视频编码格式的情况下,对所述视频数据进行软件解码。
进一步的,所述解码模块,用于以下至少之一:基于JavaScript使用支持所述音频数据所使用的音频编码格式的音频解码模块对所述音频数据进行软件解码;解析所述音频数据,得到预定参数和所述音频数据的原始数据;对所述预定参数和所述原始数据进行重构,得到重构后的音频数据;使用支持所述音频数据所使用的音频编码格式的音频解码模块对所述重构后的音频数据进行软件解码。
进一步的,所述解码模块,用于:通过JavaScript调用,预先编译过的视频解码模块,其中,所述预先编译过的视频解码模块所支持的视频编码格式包括所述视频数据所使用的视频编码格式;通过所述预先编译过的视频解码模块,对所述视频数据进行软件解码。
进一步的,所述解码模块,还用于:将所述音频数据重新封装为所述浏览器的音频audio标签支持的封装格式的音频数据,得到重新封装后的音频数据;将所述重新封装后的音频数据,传输给所述浏览器的音频audio标签;利用所述audio标签,对所述重新封装后的音频数据进行解码。
进一步的,所述解码模块,具体还用于:将所述视频数据重新封装为所述浏览器的视频video标签支持的封装格式的视频数据,得到重新封装后的视频数据;将所述重新封装后的视频数据,传输给所述浏览器的video标签;利用所述video标签,对所述重新封装后的视频数据进行解码。
进一步的,所述装置还包括:获得模块,用于获得解码后的视频数据及解码后的音频数据;播放模块,用于将所述解码后的视频数据和所述解码后的音频数据,进行同步播放。
进一步的,所述播放模块,用于:将解码后的视频数据的图像帧数据进行渲染;将渲染后的图像帧数据与解码后的音频数据,进行同步播放。
进一步的,所述播放模块,用于:获取图像帧数据的显示时间戳PTS以及解码后的音频数据的显示时间戳PTS;判断所述图像帧数据的PTS是否小于或等于解码后的音频数据的PTS;若图像帧数据的PTS小于或等于解码后的音频数据的PTS,则将解码后的视频数据的图像帧数据进行直接渲染。
进一步的,所述待解码数据还包括:元数据,所述元数据包括:视频帧率、视频宽高、音频采样率及通道数;
所述播放模块,还用于:基于所述元数据,对将渲染后的图像帧数据与解码后的音频数据,进行同步播放。
进一步的,所述播放模块,还用于:在判断所述图像帧数据的PTS是否小于或等于解码后的音频数据的PTS之后,若图像帧数据的PTS小于解码后的音频数据的PTS,并且所述解码后的音频数据的PTS与所述图像帧数据的PTS的差值大于预设阈值,则丢弃所述图像帧数据。
第三方面,本发明实施提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序时,实现第一方面所述的方法步骤。
第四方面,本发明实施提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面任一的方法。
第五方面,本申请实施例提供了一种计算机程序,当其在计算机上运行时,使得计算机执行上述第一方面任一方法。
第六方面,本发明实施还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面任一的方法。
本发明实施例提供的一种流媒体解码的方法及装置,应用于浏览器,通过解封装Flash视频FLV格式的音视频数据,得到待解码数据,待解码数据包括:分离出的音频数据和视频数据;判断浏览器是否满足预设条件,预设条件包括:浏览器不支持媒体源的扩展应用程序接口MSE API;在满足所述预设条件的情况下,分别对音频数据和视频数据进行软件解码。
由此可见,通过浏览器满足预设条件中的不支持MSE API情况下,分别对音频数据和视频数据进行软件解码,即使得在浏览器不支持MSE API的情况下,也可以实现音视频的解码,即其不仅可以实现移动端浏览器对音频数据和视频数据的解码,而且也可以实现在Web端浏览器对音频数据和视频数据的解码,进而直接实现在移动端浏览器进行点播和直播,方便用户点播和直播,即使在移动端浏览器没有MSE API,无法使用flv.js,也不支持Flash插件,也不需要借助APP(Application,应用软件)等进行音频数据和视频数据的解码,实现Web端浏览器与移动端浏览器的兼容。
当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例的流媒体解码的方法的第一流程示意图;
图2为本发明实施例的流媒体解码的方法的第二流程示意图;
图3为本发明实施例的流媒体解码的装置的第一结构示意图;
图4为本发明实施例的流媒体解码的装置的第二结构示意图;
图5为本发明实施例提供的电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
针对相关技术的移动端浏览器很难对流媒体的音视频数据进行解码的问题,本发明实施例提供一种流媒体解码的方法及装置,在浏览器满足预设条件中的不支持MSE API情况下,分别对音频数据和视频数据进行软件解码。这样不仅可以实现移动端浏览器对音频数据和视频数据的解码,而且也可以实现在Web端浏览器对音频数据和视频数据的解码,进而直接实现在移动端浏览器进行点播和直播,方便用户点播和直播,即使在移动端浏览器没有MSE API,无法使用flv.js,也不支持Flash插件,也不需要借助APP等进行音频数据和视频数据的解码。
下面首先对本发明实施例提供的流媒体解码的方法进行介绍。
本发明实施例所提供的一种流媒体解码的方法,可以应用于电子设备,进一步的,应用于浏览器,该浏览器可以包括移动端浏览器以及Web端浏览器中的一种或多种。具体可以应用的场景可以为移动端浏览器的点播和直播,或者为Web端浏览器的点播和直播。
参见图1,图1为本发明实施例提供的流媒体解码的方法的第一流程示意图。本发明实施例所提供的流媒体解码的方法,可以包括如下步骤:
步骤110,解封装Flash视频FLV格式的音视频数据,得到待解码数据,该待解码数据包括:分离出的音频数据和视频数据。
其中,待解码数据可以是后续需要解码的数据,在解码这些待解码数据后,可以实现音视频数据的播放。上述解封装也称为Demux。在需要播放流媒体时,需要把这些音视频数据以及字幕等基本流分离出来。这个过程就称为Demux,或者解封装,也称为解复用。在本步骤110解封装之后,后续可以对分离出来的基本流进行解码,得到图像及声音。本发明实施例中的解封装可以是指FLV Demuxer解封装FLV码流的容器封装层。这里的解封装也可以借鉴flv.js的Demuxer模块的相关代码实现。在此不做限定。
在解封装Flash视频FLV格式的音视频数据之前,Flash视频FLV格式的音视频数据也可以称为FLV码流,所述方法还可以采用如下步骤获取FLV码流:
首先,基于HTTP协议下载FLV码流。下载的方式至少包括以下一种方式:
在一种方式中,可以选择媒体流stream的获取资源接口Fetch API,下载FLV码流。采用已知并存在的接口,方便直接快速下载。
在另一种方式中,在检测到不支持上述Fetch API时,采用基于可扩展标记语言超文本传输协议请求应用程序接口(EXtensible Markup Language Hyper Text TransferProtocol Request Application Programming Interface,简称XML Http Request API)的方式,流式下载FLV码流。这里基于XMLHttpRequest API下载FLV码流,需要根据不同的浏览器,采取不同的策略。比如,在有的浏览器上,给浏览器返回的数据格式responseType设置为moz-chunked-arraybuffer(浏览器私有属性-分块-环形缓冲区);在有些移动终端的默认浏览器上,需要将返回数据的多用途互联网邮件扩展类型(Multipurpose InternetMail Extensions,简称MIME)伪装成文本数据,浏览器收到文本数据后再转码逐一读出原二进制数据的每个字节。在此不一一举例。
本步骤110中,该待解码数据还可以包括:分离出的视频编码格式或音频编码格式。在解封装过程中,可以采用数据编码解码标识(Codecidentification,简称CodecID),识别出视频编码格式或音频编码格式。一般来说,按照一般约定H.265编码对应的CodecID为12;按照一般约定H.264编码对应的CodecID为7。这样,后期可以知道所需解码的编码格式,以方便后期进行解码。
步骤120,判断浏览器是否满足预设条件,该预设条件包括:浏览器不支持MSEAPI;
步骤130,在浏览器满足预设条件的情况下,分别对音频数据和视频数据进行软件解码。其中,预设条件可以根据用户需要设置,只要包含浏览器不支持MSE API的预设条件,均属于本发明实施例的保护范围。
在上述步骤120中,浏览器满足预设条件中的不支持MSE API情况下,就可以执行步骤130实现分别对音频数据和视频数据进行软件解码。这样软件解码时可以不用考虑其他情况,比如,音频数据所使用的音频编码格式是否为浏览器支持的音频编码格式,或视频数据所使用的视频编码格式是否为浏览器支持的视频编码格式,均可以通过判断浏览器是否满足上述预设条件,来确定对音频数据和视频数据进行分别软件解码,兼容性好,也提高解码效率。
采用音频解码模块Audio Decoder,对音频数据进行软件解码;采用视频解码模块Video Decoder,对视频数据进行软件解码。视频解码模块Video Decoder和音频解码模块Audio Decoder可以放到不同的网络进程Web Worker中并行解码,待解码数据和已解码数据也可以分别用两个队列维护。这样可以提高解码待解码数据的效率。
软件解码指的是通过软件本身占用的中央处理器(Central Processing Unit,简称CPU)进行解码。这里的解码可以是用户预先设置的解码代码。软件解码进一步的,FLV码流等信号在通过编码模块的编码后,通过网络传输协议(Internet Protocol,简称IP)网络,可以将FLV码流传输,并对传输的FLV码流进行软件解码。这样后续可以将解码后的视频数据和解码后的音频数据进行同步播放。由于对音频数据的解码相对于对视频数据的解码计算量较小,可以通过JS对音频数据进行解码。
本发明实施例中,通过在浏览器满足预设条件中的不支持MSE API情况下,分别对音频数据和视频数据进行软件解码,不仅可以实现移动端浏览器对音频数据和视频数据进行解码,而且也可以实现在Web端浏览器对音频数据和视频数据进行解码,进而直接实现在移动端浏览器进行点播和直播,方便用户点播和直播,即使在移动端浏览器没有MSE API,无法使用flv.js,也不支持Flash插件,也不需要借助APP等进行音频数据和视频数据的解码。
在视频数据所使用的视频编码格式为浏览器支持的视频编码格式的情况下,为了实现对视频数据的解码;或者音频数据所使用的音频编码格式为浏览器支持的音频编码格式的情况下,为了实现对音频数据的解码,因此本发明提供一种实现方式,参见图2,在上述步骤120判断浏览器是否满足预设条件之后,执行步骤131及步骤133至少之一的步骤;
步骤131,如果浏览器不满足预设条件的情况下,判断音频数据所使用的音频编码格式是否为浏览器支持的音频编码格式;
步骤1321,如果音频数据所使用的音频编码格式是浏览器支持的音频编码格式,则对音频数据进行硬件解码,或者对音频数据进行软件解码;步骤1322,如果音频数据所使用的音频编码格式不是浏览器支持的音频编码格式,则对音频数据进行软件解码。
上述步骤1321中,对音频数据进行硬件解码,这种硬件解码效率低,功耗也低;而,对音频数据进行软件解码,这种软件解码效率高,功耗也高。在实际执行步骤1321时,可以根据用户需要或工业需求,选择所需解码方式。
步骤133,如果浏览器不满足预设条件的情况下,判断视频数据所使用的视频编码格式是否为浏览器支持的视频编码格式;
步骤1341,如果视频数据所使用的视频编码格式是浏览器支持的视频编码格式,则对视频数据进行硬件解码,或者对视频数据进行软件解码;步骤1342,如果视频数据所使用的视频编码格式不是浏览器支持的视频编码格式,则对视频数据进行软件解码。
上述步骤1341中,对视频数据进行硬件解码,这种硬件解码效率低,功耗也低;而,对视频数据进行软件解码,这种软件解码效率高,功耗也高。在实际执行步骤1341时,可以根据用户需要或工业需求,选择所需解码方式
以下分别对音频数据进行硬件解码,对音频数据进行软件解码,对视频数据进行硬件解码以及对视频数据进行软件解码进行详细介绍。
为了能够实现对音频数据进行软件解码,本发明实施例可以采用如下至少一种可能的实现方式,对音频数据进行软件解码:
一种可能的实现方式,基于JavaScript使用支持所述音频数据所使用的音频编码格式的音频解码模块对音频数据进行软件解码。
上述音频数据所使用的音频编码格式包括:音频解码模块所能解码的音频编码格式。这个音频解码模块可以根据用户需要预先编写好的代码,也可以是使用已有的音频解码模块。在此不一一举例。这里的音频数据所使用的音频编码格式包括以下至少之一,但并不限于此:低复杂性高级音频编码(Low-Complexity Advanced Audio Coding,简称LC-AAC),无损音频压缩编码(Free Lossless Audio Codec,简称FLAC),无损音频压缩编码方案(Apple Lossless Audio Codec,简称ALAC),以及数字音频压缩格式MP3。
上述音频解码模块是通过重写aurora.js音频解码框架,并集成aac.js解码器实现的,用于支持音频数据所使用的音频编码格式的音频数据(比如LC-AAC音频)的解码。需要说明的是,上述通过重写aurora.js音频解码框架并集成aac.js解码器,可以实现支持LC-AAC音频的解码,对于其他格式音频的解码播放也可以基于aurora.js框架自行集成或实现。其中,aurora.js音频解码框架是一个JavaScript音频解码框架,作用是让开发者可以更方便地用JavaScript编写音频解码器。它包含一些通用的工作,如操作二进制数据、从数据源到解复用器,再到音频解码器的解码流水线、抽象浏览器的页面音频接口web audioAPI。该web audio API用于渲染音频。aac.js解码模块是一个开源的AAC格式音频的解码器,在所有浏览器中基于aurora.js框架可以解码AAC格式的音频数据。这样通过上述音频编码模块可以完成对音频数据所使用的音频编码格式的音频数据进行软件解码。解码的PCM(Pulse-code-modulation,脉冲编码调制)音频数据流,可以通过网络音频应用程序接口Web Audio API独立流畅播放。
另一种可能的实现方式,第一步,解析音频数据,得到预定参数和音频数据的原始数据;第二步,对预定参数和原始数据进行重构,得到重构后的音频数据;第三步,使用支持音频数据所使用的音频编码格式的音频解码模块对重构后的音频数据进行软件解码。
其中,上述预定参数可以包括以下至少之一,但并不限于此:采样率、通道数、编码档次Profile等参数,该编码档次Profile,规定了码流中使用哪些编码工具和算法;指定音频编码格式可以包括:AAC(Advanced Audio Coding,高级音频编码)。这个AAC是一种专为声音数据设计的文件压缩格式。与MP3不同,它采用了全新的算法进行编码,更加高效。
为了能够对音频数据的原始数据进行软件解码,需要进行重构的音频数据,因此,采用如下步骤可以对预定参数和原始数据进行重构,得到重构后的音频数据:
首先,在上述第一步中,解封装阶段:解析音频数据,解析出预定参数和音频数据的原始数据。示例性的,音频数据是指包含有AAC序列头(ADTS Header)结构,也就是音频特定配置单元(AudioSpecificConfig,简称ASC)的音频数据;
其次,第二步具体包括:将预定参数和音频数据的原始数据进行重新构建,得到包含完整的流式传输帧的重构后的音频数据。这里的原始数据也可以为ACC音频原始数据(AAC ES)。对基本码流(Elementary Stream,简称ES)也称为AAC音频原始数据。完整的流式传输帧可以是指ADTS,ADTS是AAC格式的一种,适合流式传输。ADTS是由一连串的ADTS帧构成,每一ADTS帧由ADTS Header和AAC音频原始数据构成。
这样利用第二步,重新构建一个完整的音频数据,方便后期再利用第三步,对包含有完整的ADTS帧的重构后的音频数据进行软件解码。从而实现音频数据的软件解码,这样不仅可以在Web端浏览器的解码播放,而且可以在移动端浏览器的解码播放。
步骤134,在音频数据的音频解码格式为指定音频编码格式时,获取待解码数据中的待重新构建音频数据的音频解码格式参数。
为了实现对视频数据的软件解码,本发明实施例可以采用如下至少一种可能的实现方式,对视频数据进行软件解码:
通过JavaScript调用,预先编译过的视频解码模块,其中,预先编译过的视频解码模块所支持的视频编码格式包括视频数据所使用的视频编码格式;通过预先编译过的视频解码模块,对视频数据进行软件解码。
这里的视频数据所使用的视频编码格式,是预先编译过的视频解码模块所能解码的视频编码格式。这个预先编译过的视频解码模块可以根据用户需要预先编写好的代码,也可以是使用已有的视频解码模块。在此不一一举例。一般基于对H.265的视频解码模块可以采用开源的libde265视频解码模块或者已有视频解码模块;H.264视频的解码可以基于开源的Broadway.js或ffmpeg中x264对应的视频解码模块。这里的视频数据所使用的视频编码格式包括以下至少之一,但并不限于此:H.265视频编码格式和H.264视频编码格式。这样可以完成对视频数据所使用的视频编码格式的视频数据进行软件解码。其中,Broadway.js是一个JavaScript(简称JS,JS是一种高级编程语言)编写的H.264解码器,用于解码H.264格式的码流到YUV格式的图像,其中,Y明亮度(Luminance或Luma),也就是灰阶值;而“U”和“V”表示色度(Chrominance或Chroma);ffmpeg是一个功能丰富的跨平台开源流媒体工具,用于能录制、转码、转封装、串流音视频。
将高效率视频编码(High Efficiency Video Coding,简称HEVC),又称为H.265和运动图像专家组格式(Moving Picture Expert Group,简称MPEG-H)第2部分,是一种视频压缩标准,被视为是ITU-TH.264/MPEG-4AVC。其中,国际电信联盟(InternationalTelecommunication Union,简称ITU-T)H.264/MPEG-4高级视频编码(Advanced VideoCoding,简称AVC)标准的继任者。第一版的HEVC/H.265视频压缩标准在2013年4月13日被接受为ITU-T的正式标准。H.265被认为不仅提升视频质量,同时也能达到H.264/MPEG-4AVC两倍的压缩率。
这里的视频数据不支持视频数据所使用的视频编码格式,与视频解码模块的视频数据所使用的视频编码格式不同,并不能直接被视频解码模块进行解码。由于不同的视频数据的视频编码格式对视频解码模块的要求不同。比如,由于视频解码的计算复杂度较高,用JS实现的视频解码模块性能,无法满足高清视频的实时解码播放的需求。因此需要对视频编码模块进行重新编译,使得编译过的视频解码模块所能解码视频数据,则具体执行如下至少一种实现方式,对视频解码模块进行预先编译,并基于原生态JS调用,预先编译过的视频解码模块:
为了满足浏览器播放较低分辨率的FLV码流,在一种实现方式中,第1步骤,通过Emscripten,将C语言实现的视频解码模块直接编译为JS代码。第2步骤,利用JS调用,预先编译过的视频解码模块,通过预先编译过的视频解码模块,对视频数据进行解码,从而实现对H.265的视频数据的解码。这样可以满足移动终端播放较低分辨率的视频码流。
由于也有一些浏览器需要播放较高分辨率的FLV码流,因此在另一种实现方式中,第1步骤,基于WebAssembly技术,将C语言实现的视频解码模块,通过Emscripten等工具,编译为wasm格式的字节码形式。这里的WebAssembly是一种新的字节码格式。它的缩写是".wasm",.wasm为文件名后缀,是一种新的底层安全的二进制语法,它被设计为Web多编程语言目标文件格式。这意味着浏览器端的性能会得到极大提升。
Emscripten是基于LLVM的一系列编译工具的集合,包括LLVM,clang等。下载比较费时,且易出错。该工具集的一大作用是将C/C++编写的库编译成wasm格式的代码。具体使用方式是通过命令行进行命令操作。
其中,LLVM是构架编译模块的框架系统,以C++编写而成,用于优化以任意程序语言编写的程序的编译时间、链接时间、运行时间以及空闲时间,对开发者保持开放,并兼容已有脚本。Clang是一个C语言、C++等语言的轻量级编译模块。
第2步骤,利用JS调用,预先编译过的视频解码模块,通过预先编译过的视频解码模块,对视频数据进行解码,从而实现对H.265的视频数据的软件解码。这样可以利用WebAssembly技术,播放较高分辨率的视频码流。
为了能够实现对音频数据进行硬件解码,本发明实施例可以采用如下至少一种可能的实现方式,对音频数据进行硬件解码:
将音频数据重新封装为浏览器的音频audio标签支持的封装格式的音频数据,得到重新封装后的音频数据;将重新封装后的音频数据,传输给浏览器的音频audio标签;利用audio标签,对重新封装后的音频数据进行解码。
上述支持的封装格式是解码能够识别的格式,比如,MP4格式或者FMP4格式,因此需要将音频数据重新封装为FMP4格式的音频数据。可选的,FMP4属于MP4文件格式的流媒体变种,MP4文件被分成多个分片,原来的meta(元数据)变小,且每个分片都可以单独索引、传输和播放,解决了MP4不能流式传输播放的问题。HTML5代表浏览器提供的开放接口技术集,允许更多样化和强大的网站和应用程序。上述音频audio标签用于标识传输给浏览器的数据中的音频。
示例性的,以HTML5文件进行说明。
第一步,将音频数据重新封装为FMP4格式的音频数据,作为重新封装后的音频数据;
第二步,将重新封装后的音频数据,传输给浏览器的HTML5文件中的音频audio标签。
第三步,利用音频audio标签,浏览器的原生解码能力可以对重新封装后的音频数据进行解码。这个原生解码能力是浏览器通过操作系统的解码能力,而操作系统调用硬件的解码能力实现的解码。这样本发明实施例可以对音频数据进行硬件解码。
为了能够实现对视频数据进行硬件解码,本发明实施例可以采用如下至少一种可能的实现方式,对视频数据进行硬件解码:
将视频数据重新封装为浏览器的视频video标签支持的封装格式的视频数据,得到重新封装后的视频数据;将重新封装后的视频数据,传输给浏览器的video标签;利用video标签,对重新封装后的视频数据进行解码。
上述支持的封装格式是解码能够识别的格式,比如,MP4格式或者FMP4格式。这里MP4格式或者FMP4格式解释,与对音频数据进行硬件解码中的解释MP4格式或者FMP4格式的内容相同,在此不再赘述。
本发明实施例,对视频数据进行解码。并且,在视频数据的视频编码格式为H.265的视频编码格式的情况下,也就是说明视频数据所使用的视频编码格式为浏览器支持的视频编码格式,可以实现对视频数据的解码,从而实现Web端浏览器支持新一代视频编码标准,即,H.265,视频数据的解码。
为了实现将解码后的音频数据和视频数据进行播放,在上述步骤130之后,所述方法还可以包括:
第一步,获得解码后的视频数据及解码后的音频数据;
解码后的音频数据后续就可以播放出声音;解码后的视频数据后续就可以播放出图像。
第二步,将解码后的视频数据和解码后的音频数据,进行同步播放。
上述第二步中同步播放的具体实现的方式是:以音频时间轴为主轴,即音频数据解码后放入缓存,按照音频的显示时间戳(Presentation Time Stamp,简称PTS)有序播放,不做延迟处理。视频帧以音频的显示时间戳为参考同步播放。实现过程详见如下描述。
本步骤可以采用如下步骤,将解码后的视频数据和解码后的音频数据,进行同步播放:
首先,将解码后的视频数据的图像帧数据进行渲染。
解码后的视频数据的图像帧数据包括:经视频解码模块,解码出YUV图像帧数据。YUV中Y(Luminance或Luma,亮度),也就是灰阶值;YUV中“U”和“V”(Chrominance或Chroma,色度)灰度值到RGBA(Red Green Blue Alpha,红色绿色蓝色色彩空间)。
采用如下方式将解码后的视频数据的图像帧数据进行渲染:根据预先配置或浏览器对WebGL的支持情况,选择使用WebGL渲染或Canvas2D渲染,对解码后的视频数据的图像帧数据进行渲染。
需要说明的是,采用Canvas2D渲染还需要将YUV数据转换为RGBA格式数据,再通过putImageData接口进行渲染。目前浏览器大多默认支持Canvas 2D渲染的GPU硬件加速。YUV数据转换为RGB格式数据,可以在片段着色模块(Fragment Shader,简称FS)中进行。
其次,将渲染后的图像帧数据与解码后的音频数据,进行同步播放。
需要说明的是,上述同步播放可以是,可以采用视频数据同步到音频数据的方式。也就是,音频独立解码正常播放,图像帧数据进行渲染之前,只需要检测图像帧数据的显示时间戳PTS以及解码后的音频数据的显示时间戳PTS的关系进行渲染,从而实现同步播放。
采用如下步骤,将解码后的视频数据的图像帧数据进行渲染:
第一步,获取图像帧数据的显示时间戳PTS以及解码后的音频数据的PTS。
这个PTS时间戳用来告诉播放模块该在什么时候显示这一帧的数据,该播放模块比如FLV视频播放模块FLV Video Player。
第二步,判断图像帧数据的PTS是否小于或等于解码后的音频数据的PTS,若图像帧数据的PTS小于或等于解码后的音频数据的PTS,则执行第三步;若图像帧数据的PTS大于解码后的音频数据的PTS,则执行第五步;或者若图像帧数据的PTS小于解码后的音频数据的PTS,并且解码后的音频数据的PTS与图像帧数据的PTS的差值大于预设阈值,则执行第四步;其中,预设阈值可以根据工业需要进行设置。
第三步,将解码后的视频数据的图像帧数据进行直接渲染。这样可以快速追赶音频数据。
第四步,丢弃图像帧数据。这样丢弃图像帧数据,也是为了快速追赶音频数据,避免音频卡顿被用户感知。
第五步,不渲染所述解码后的视频数据的图像帧,继续后续同步播放循环。
上述的渲染,考虑到音频采用率固定,视频不固定,以及听觉停留时间比视觉停留时间短等特点,尽量避免音频卡顿被用户感知。
为了能够实现按照音视频数据的所需播放条件进行播放音视频数据,上述待解码数据还包括:元数据,该元数据包括:视频帧率、视频宽高、音频采样率及通道数;上述采用如下步骤,实现将渲染后的图像帧数据与解码后的音频数据,进行同步播放:基于上述元数据,对将渲染后的图像帧数据与解码后的音频数据,进行同步播放。元数据是表明所要同步播放,渲染后的图像帧数据与解码后的音频数据的一些播放参数。利用这些元数据可以实现按照音视频数据的所需播放条件进行播放音视频数据。进一步的,这里可以采用FLVVideo Player基于上述元数据,对渲染后的图像帧数据与解码后的音频数据,进行同步播放。FLV Video Player中会包括:MSE Controller(Media Source ExtensionsController媒体源的扩展控制模块)、图像渲染模块Image Render以及音频播放模块Audio Player的数据。
本发明实施例,可以采用不同进程,对解码后的视频数据和解码后的音频数据,进行同步播放,不影响观看视频的效果。
下面继续对本发明实施例提供的流媒体解码的装置进行介绍。
参见图3和图4所示,本发明实施例的一种流媒体解码的装置,应用于浏览器,包括:
FLV解封装模块21,用于解封装Flash视频FLV格式的音视频数据,得到待解码数据,所述待解码数据包括:分离出的音频数据和视频数据。
判断模块22,用于判断浏览器是否满足预设条件,该预设条件包括:浏览器不支持媒体源的扩展应用程序接口MSE API;
解码模块23,用于在满足所述预设条件的情况下,分别对所述音频数据和所述视频数据进行软件解码。
参见图3中,在FLV解封装模块21解封装Flash视频FLV格式的音视频数据之前,可以使用Downloader下载模块20基于HTTP协议下载FLV码流。
上述解码模块23,可以包括以下至少之一,但并不限于此:视频解码模块232和音频解码模块233。
本发明实施例中,通过在浏览器满足预设条件中的不支持MSE API情况下,分别对音频数据和视频数据进行软件解码,不仅可以实现移动端浏览器对音频数据和视频数据进行解码,而且也可以实现在Web端浏览器对音频数据和视频数据进行解码,进而直接实现在移动端浏览器进行点播和直播,方便用户点播和直播,即使在移动端浏览器没有MSE API,无法使用flv.js,也不支持Flash插件,也不需要借助APP等进行音频数据和视频数据的解码。
在一种可能的实现方式中,所述解码模块,可以包括以下至少之一,但并不限于此:视频解码模块232和音频解码模块233,其中,
音频解码模块233,用于以下至少之一:在不满足所述预设条件且所述音频数据所使用的音频编码格式为所述浏览器支持的音频编码格式的情况下,对所述音频数据进行硬件解码;在不满足所述预设条件且所述音频数据所使用的音频编码格式为所述浏览器支持的音频编码格式的情况下,对所述音频数据进行软件解码;在不满足所述预设条件且所述音频数据所使用的音频编码格式为所述浏览器不支持的音频编码格式的情况下,对所述音频数据进行软件解码;
视频解码模块232,用于以下至少之一:在不满足所述预设条件且所述视频数据所使用的视频编码格式为所述浏览器支持的视频编码格式的情况下,对所述视频数据进行硬件解码;在不满足所述预设条件且所述视频数据所使用的视频编码格式为所述浏览器支持的视频编码格式的情况下,对所述视频数据进行软件解码;在不满足所述预设条件且所述视频数据所使用的视频编码格式为所述浏览器不支持的视频编码格式的情况下,对所述视频数据进行软件解码。
在一种可能的实现方式中,所述解码模块,可以包括以下至少之一,但并不限于此:视频解码模块232和音频解码模块233,所述音频解码模块233,用于以下至少之一:
基于JavaScript使用支持所述音频数据所使用的音频编码格式的音频解码模块对所述音频数据进行软件解码;
解析所述音频数据,得到预定参数和所述音频数据的原始数据;对所述预定参数和所述原始数据进行重构,得到重构后的音频数据;使用支持所述音频数据所使用的音频编码格式的音频解码模块对所述重构后的音频数据进行软件解码。
在一种可能的实现方式中,所述解码模块,可以包括以下至少之一,但并不限于此:视频解码模块232和音频解码模块233,所述视频解码模块232,用于:
通过JavaScript调用,预先编译过的视频解码模块,其中,所述预先编译过的视频解码模块所支持的视频编码格式包括所述视频数据所使用的视频编码格式;通过所述预先编译过的视频解码模块,对所述视频数据进行软件解码。
在一种可能的实现方式中,所述解码模块,可以包括以下至少之一,但并不限于此:视频解码模块232和音频解码模块233,所述解码模块23还可以包括:
MP4封装格式转换模块231,用于将所述音频数据重新封装为所述浏览器的音频audio标签支持的封装格式的音频数据,得到重新封装后的音频数据;
MSE控制模块234,用于将所述重新封装后的音频数据,传输给所述浏览器的音频audio标签;
所述音频解码模块233,用于利用所述audio标签,对所述重新封装后的音频数据进行解码。
在一种可能的实现方式中,所述解码模块,可以包括以下至少之一,但并不限于此:视频解码模块232和音频解码模块233,所述装置还包括:
MP4封装格式转换模块231,用于将所述视频数据重新封装为所述浏览器的视频video标签支持的封装格式的视频数据,得到重新封装后的视频数据;
MSE控制模块234,用于将所述重新封装后的视频数据,传输给所述浏览器的video标签;
所述视频解码模块232,用于利用所述video标签,对所述重新封装后的视频数据进行解码。
在一种可能的实现方式中,所述装置还包括:
获得模块,用于获得解码后的视频数据及解码后的音频数据;
播放模块,用于将所述解码后的视频数据和所述解码后的音频数据,进行同步播放。
在一种可能的实现方式中,所述播放模块,可以包括以下至少之一,但并不限于此:图像渲染模块24和同步播放模块,其中,用于:
所述图像渲染模块24,用于将解码后的视频数据的图像帧数据进行渲染;
所述同步播放模块,用于将渲染后的图像帧数据与解码后的音频数据,进行同步播放。
需要说明的是,上述同步播放模块中的同步播放可以是,可以采用视频数据同步到音频数据的方式。也就是,将图像渲染模块24的视频数据同步到音频播放模块25上,音频依然使用音频播放模块25独立解码正常播放,图像帧数据进行渲染之前,只需要检测图像帧数据的显示时间戳PTS以及解码后的音频数据的显示时间戳PTS的关系进行渲染,从而实现同步播放。
上述图像渲染模块24,用于:
第一步,获取图像帧数据的显示时间戳PTS以及解码后的音频数据的显示时间戳PTS。
PTS(Presentation Time Stamp,显示时间戳),这个PTS时间戳用来告诉播放器该在什么时候显示这一帧的数据,该播放器比如FLV视频播放器FLV Video Player。
第二步,判断所述图像帧数据的PTS是否小于或等于解码后的音频数据的PTS,若所述图像帧数据的PTS小于或等于解码后的音频数据的PTS,则执行第三步;若所述图像帧数据的PTS大于解码后的音频数据的PTS,则执行第五步;或者,若图像帧数据的PTS小于解码后的音频数据的PTS,并且解码后的音频数据的PTS与图像帧数据的PTS的差值大于预设阈值,则执行第四步。这里预设阈值可以根据用户需要进行设置,在此不做限定。
第三步,将解码后的视频数据的图像帧数据进行直接渲染。这样可以快速追赶音频数据。
第四步,丢弃图像帧数据。这样丢弃图像帧数据,也是为了快速追赶音频数据,避免音频卡顿被用户感知。
第五步,不渲染所述解码后的视频数据的图像帧,继续后续同步播放循环。
上述的渲染,考虑到音频采用率固定,视频不固定,以及听觉停留时间比视觉停留时间短等特点,尽量避免音频卡顿被用户感知。
在一种可能的实现方式中,在一种可能的实现方式中,所述播放模块,用于:
获取图像帧数据的显示时间戳PTS以及解码后的音频数据的显示时间戳PTS;
判断所述图像帧数据的PTS是否小于或等于解码后的音频数据的PTS;
若图像帧数据的PTS小于或等于解码后的音频数据的PTS,则将解码后的视频数据的图像帧数据进行直接渲染。
在一种可能的实现方式中,所述待解码数据还包括:元数据,所述元数据包括:视频帧率、视频宽高、音频采样率及通道数;
所述播放模块,还用于:
基于所述元数据,对将渲染后的图像帧数据与解码后的音频数据,进行同步播放。这里的播放模块可以是FLV视频播放模块26,FLV视频播放模块26用于基于所述元数据,对将渲染后的图像帧数据与解码后的音频数据,进行同步播放。
在一种可能的实现方式中,所述播放模块,还用于:
在判断所述图像帧数据的PTS是否小于或等于解码后的音频数据的PTS之后,若图像帧数据的PTS小于解码后的音频数据的PTS,并且所述解码后的音频数据的PTS与所述图像帧数据的PTS的差值大于预设阈值,则丢弃所述图像帧数据。
下面继续对本发明实施例提供的电子设备进行介绍。
本发明实施例还提供了一种电子设备,如图5所示,包括处理器41、通信接口42、存储器43和通信总线44,其中,处理器41,通信接口42,存储器43通过通信总线44完成相互间的通信,
存储器43,用于存放计算机程序;
处理器41,用于执行存储器43上所存放的程序时,实现上述流媒体解码的方法中的步骤,比如可以实现如下步骤:
解封装Flash视频FLV格式的音视频数据,得到待解码数据,所述待解码数据包括:分离出的音频数据和视频数据;
判断浏览器是否满足预设条件,所述预设条件包括:浏览器不支持媒体源的扩展应用程序接口MSE API;
在满足所述预设条件的情况下,分别对所述音频数据和所述视频数据进行软件解码。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于为,图中仅用一条粗线为,但并不为仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(Non-Volatile Memory,简称NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本发明实施例提供的方法可以应用于电子设备。可选的,该电子设备可以为:台式计算机、便携式计算机、智能移动终端、服务器等。在此不作限定,任何可以实现本发明的电子设备,均属于本发明的保护范围。
本发明实施例提供了一种计算机可读存储介质,所述存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述的流媒体解码的方法的步骤。
本发明实施例提供了一种计算机程序,当其在计算机上运行时,使得计算机执行上述的流媒体解码的方法的步骤。
本发明实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述的流媒体解码的方法的步骤。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置/电子设备/存储介质/包含指令的计算机程序产品/计算机程序实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (24)

1.一种流媒体解码的方法,其特征在于,应用于浏览器,所述方法包括:
解封装Flash视频FLV格式的音视频数据,得到待解码数据,所述待解码数据包括:分离出的音频数据和视频数据;
判断所述浏览器是否满足预设条件,所述预设条件包括:所述浏览器不支持媒体源的扩展应用程序接口MSE API;
在满足所述预设条件的情况下,分别对所述音频数据和所述视频数据进行软件解码。
2.如权利要求1所述的方法,其特征在于,所述方法还包括以下至少之一:
在不满足所述预设条件且所述音频数据所使用的音频编码格式为所述浏览器支持的音频编码格式的情况下,对所述音频数据进行硬件解码;
在不满足所述预设条件且所述视频数据所使用的视频编码格式为所述浏览器支持的视频编码格式的情况下,对所述视频数据进行硬件解码;
在不满足所述预设条件且所述音频数据所使用的音频编码格式为所述浏览器不支持的音频编码格式的情况下,对所述音频数据进行软件解码;
在不满足所述预设条件且所述视频数据所使用的视频编码格式为所述浏览器不支持的视频编码格式的情况下,对所述视频数据进行软件解码。
3.如权利要求1或2所述的方法,其特征在于,
对所述音频数据进行软件解码,包括以下至少之一:
基于JavaScript使用支持所述音频数据所使用的音频编码格式的音频解码模块对所述音频数据进行软件解码;
解析所述音频数据,得到预定参数和所述音频数据的原始数据;对所述预定参数和所述原始数据进行重构,得到重构后的音频数据;使用支持所述音频数据所使用的音频编码格式的音频解码模块对所述重构后的音频数据进行软件解码。
4.如权利要求1或2所述的方法,其特征在于,
对所述视频数据进行软件解码,包括:
通过JavaScript调用,预先编译过的视频解码模块,其中,所述预先编译过的视频解码模块所支持的视频编码格式包括所述视频数据所使用的视频编码格式;通过所述预先编译过的视频解码模块,对所述视频数据进行软件解码。
5.如权利要求2所述的方法,其特征在于,
对所述音频数据进行硬件解码包括:将所述音频数据重新封装为所述浏览器的音频audio标签支持的封装格式的音频数据,得到重新封装后的音频数据;将所述重新封装后的音频数据,传输给所述浏览器的音频audio标签;利用所述audio标签,对所述重新封装后的音频数据进行解码。
6.如权利要求2所述的方法,其特征在于,对所述视频数据进行硬件解码包括:
将所述视频数据重新封装为所述浏览器的视频video标签支持的封装格式的视频数据,得到重新封装后的视频数据;将所述重新封装后的视频数据,传输给所述浏览器的video标签;利用所述video标签,对所述重新封装后的视频数据进行解码。
7.如权利要求1所述的方法,其特征在于,在分别对所述音频数据和所述视频数据进行软件解码之后,所述方法还包括:
获得解码后的视频数据及解码后的音频数据;
将所述解码后的视频数据和所述解码后的音频数据,进行同步播放。
8.如权利要求7所述的方法,其特征在于,所述将所述解码后的视频数据和所述解码后的音频数据,进行同步播放,包括:
将解码后的视频数据的图像帧数据进行渲染;
将渲染后的图像帧数据与解码后的音频数据,进行同步播放。
9.如权利要求8所述的方法,其特征在于,所述将解码后的视频数据的图像帧数据进行渲染,包括:
获取图像帧数据的显示时间戳PTS以及解码后的音频数据的显示时间戳PTS;
判断所述图像帧数据的PTS是否小于或等于解码后的音频数据的PTS;
若图像帧数据的PTS小于或等于解码后的音频数据的PTS,则将解码后的视频数据的图像帧数据进行直接渲染。
10.如权利要求8或9所述的方法,其特征在于,所述待解码数据还包括:元数据,所述元数据包括:视频帧率、视频宽高、音频采样率及通道数;
所述将渲染后的图像帧数据与解码后的音频数据,进行同步播放,包括:基于所述元数据,对将渲染后的图像帧数据与解码后的音频数据,进行同步播放。
11.如权利要求9所述的方法,其特征在于,在判断所述图像帧数据的PTS是否小于或等于解码后的音频数据的PTS之后,所述方法还包括:
若图像帧数据的PTS小于解码后的音频数据的PTS,并且所述解码后的音频数据的PTS与所述图像帧数据的PTS的差值大于预设阈值,则丢弃所述图像帧数据。
12.一种流媒体解码的装置,其特征在于,应用于浏览器,所述装置包括:
FLV解封装模块,用于解封装Flash视频FLV格式的音视频数据,得到待解码数据,所述待解码数据包括:分离出的音频数据和视频数据;
判断模块,用于判断所述浏览器是否满足预设条件,所述预设条件包括:所述浏览器不支持媒体源的扩展应用程序接口MSE API;
解码模块,用于在满足所述预设条件的情况下,分别对所述音频数据和所述视频数据进行软件解码。
13.如权利要求12所述的装置,其特征在于,所述解码模块,用于以下至少之一:
在不满足所述预设条件且所述音频数据所使用的音频编码格式为所述浏览器支持的音频编码格式的情况下,对所述音频数据进行硬件解码;
在不满足所述预设条件且所述视频数据所使用的视频编码格式为所述浏览器支持的视频编码格式的情况下,对所述视频数据进行硬件解码;
在不满足所述预设条件且所述音频数据所使用的音频编码格式为所述浏览器不支持的音频编码格式的情况下,对所述音频数据进行软件解码;
在不满足所述预设条件且所述视频数据所使用的视频编码格式为所述浏览器不支持的视频编码格式的情况下,对所述视频数据进行软件解码。
14.如权利要求12或13所述的装置,其特征在于,所述解码模块,用于以下至少之一:
基于JavaScript使用支持所述音频数据所使用的音频编码格式的音频解码模块对所述音频数据进行软件解码;
解析所述音频数据,得到预定参数和所述音频数据的原始数据;对所述预定参数和所述原始数据进行重构,得到重构后的音频数据;使用支持所述音频数据所使用的音频编码格式的音频解码模块对所述重构后的音频数据进行软件解码。
15.如权利要求12或13所述的装置,其特征在于,所述解码模块,用于:
通过JavaScript调用,预先编译过的视频解码模块,其中,所述预先编译过的视频解码模块所支持的视频编码格式包括所述视频数据所使用的视频编码格式;通过所述预先编译过的视频解码模块,对所述视频数据进行软件解码。
16.如权利要求13所述的装置,其特征在于,所述解码模块,还用于:
将所述音频数据重新封装为所述浏览器的音频audio标签支持的封装格式的音频数据,得到重新封装后的音频数据;将所述重新封装后的音频数据,传输给所述浏览器的音频audio标签;利用所述audio标签,对所述重新封装后的音频数据进行解码。
17.如权利要求13所述的装置,其特征在于,所述解码模块,还用于:将所述视频数据重新封装为所述浏览器的视频video标签支持的封装格式的视频数据,得到重新封装后的视频数据;将所述重新封装后的视频数据,传输给所述浏览器的video标签;利用所述video标签,对所述重新封装后的视频数据进行解码。
18.如权利要求12所述的装置,其特征在于,所述装置还包括:
获得模块,用于获得解码后的视频数据及解码后的音频数据;
播放模块,用于将所述解码后的视频数据和所述解码后的音频数据,进行同步播放。
19.如权利要求18所述的装置,其特征在于,所述播放模块,用于:
将解码后的视频数据的图像帧数据进行渲染;
将渲染后的图像帧数据与解码后的音频数据,进行同步播放。
20.如权利要求19所述的装置,其特征在于,所述播放模块,用于:
获取图像帧数据的显示时间戳PTS以及解码后的音频数据的显示时间戳PTS;
判断所述图像帧数据的PTS是否小于或等于解码后的音频数据的PTS;
若图像帧数据的PTS小于或等于解码后的音频数据的PTS,则将解码后的视频数据的图像帧数据进行直接渲染。
21.如权利要求19或20所述的装置,其特征在于,所述待解码数据还包括:元数据,所述元数据包括:视频帧率、视频宽高、音频采样率及通道数;
所述播放模块,还用于:
基于所述元数据,对将渲染后的图像帧数据与解码后的音频数据,进行同步播放。
22.如权利要求20所述的装置,其特征在于,所述播放模块还用于:
在判断所述图像帧数据的PTS是否小于或等于解码后的音频数据的PTS之后,若图像帧数据的PTS小于解码后的音频数据的PTS,并且所述解码后的音频数据的PTS与所述图像帧数据的PTS的差值大于预设阈值,则丢弃所述图像帧数据。
23.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,所述处理器,所述通信接口,所述存储器通过所述通信总线完成相互间的通信;
所述存储器,用于存放计算机程序;
所述处理器,用于执行所述存储器上所存放的程序时,实现权利要求1-11任一所述的方法步骤。
24.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-11任一所述的方法步骤。
CN201811151778.7A 2018-09-29 2018-09-29 一种流媒体解码的方法及装置 Pending CN109088887A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811151778.7A CN109088887A (zh) 2018-09-29 2018-09-29 一种流媒体解码的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811151778.7A CN109088887A (zh) 2018-09-29 2018-09-29 一种流媒体解码的方法及装置

Publications (1)

Publication Number Publication Date
CN109088887A true CN109088887A (zh) 2018-12-25

Family

ID=64843061

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811151778.7A Pending CN109088887A (zh) 2018-09-29 2018-09-29 一种流媒体解码的方法及装置

Country Status (1)

Country Link
CN (1) CN109088887A (zh)

Cited By (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109819315A (zh) * 2019-03-21 2019-05-28 广州华多网络科技有限公司 Hevc视频的播放方法、装置、终端及存储介质
CN110198479A (zh) * 2019-05-24 2019-09-03 浪潮软件集团有限公司 一种基于webassembly的浏览器音视频解码播放方法
CN110392276A (zh) * 2019-07-29 2019-10-29 湖南卡罗德音乐集团有限公司 一种基于rtmp协议同步传输midi的直播录播方法
CN110740363A (zh) * 2019-10-25 2020-01-31 华为终端有限公司 投屏方法和系统、电子设备
CN110996160A (zh) * 2019-11-15 2020-04-10 广州华多网络科技有限公司 视频处理方法、装置、电子设备及计算机可读取存储介质
CN111010593A (zh) * 2019-11-08 2020-04-14 深圳市麦谷科技有限公司 基于flv格式封装h.265视频数据的方法和装置
CN111083167A (zh) * 2019-12-31 2020-04-28 深圳市思博慧数据科技有限公司 一种跨浏览器的h.265视频播放方法
CN111083510A (zh) * 2019-12-18 2020-04-28 深圳市麦谷科技有限公司 推送hevc视频的方法和装置
CN111107391A (zh) * 2020-01-16 2020-05-05 深圳市信义科技有限公司 一种基于分布式的web无插件视频直播方法
CN111356023A (zh) * 2019-12-30 2020-06-30 杭州海康威视数字技术股份有限公司 播放方式确定方法及装置
CN111372138A (zh) * 2018-12-26 2020-07-03 杭州登虹科技有限公司 一种播放器端的直播低延迟技术方案
CN111641838A (zh) * 2020-05-13 2020-09-08 深圳市商汤科技有限公司 一种浏览器视频播放方法、装置以及计算机存储介质
CN111654736A (zh) * 2020-06-10 2020-09-11 北京百度网讯科技有限公司 音视频同步误差的确定方法、装置、电子设备和存储介质
CN112423117A (zh) * 2020-06-11 2021-02-26 上海哔哩哔哩科技有限公司 Web端视频播放方法、装置及计算机设备
CN112423100A (zh) * 2020-10-26 2021-02-26 深圳市瑞驰信息技术有限公司 基于html5的web音视频自定义渲染方法
CN112468883A (zh) * 2019-09-09 2021-03-09 浙江宇视科技有限公司 视频流播放方法及视频流播放设备
CN112804543A (zh) * 2020-12-31 2021-05-14 武汉兴图新科电子股份有限公司 基于云视频融合平台的浏览器点播视音频的终端及方法
CN112866199A (zh) * 2020-12-31 2021-05-28 北京优锘科技有限公司 一种支持gb/t28181协议的设备在主流浏览器中查看的方法
CN112954457A (zh) * 2019-12-11 2021-06-11 西安诺瓦星云科技股份有限公司 视频播放显示方法、装置和系统
CN112995760A (zh) * 2019-12-18 2021-06-18 腾讯科技(深圳)有限公司 视频处理方法、装置、设备及计算机存储介质
CN114095784A (zh) * 2021-11-19 2022-02-25 浩云科技股份有限公司 H.265格式视频流转码播放方法、系统、设备及介质
CN114125550A (zh) * 2021-11-24 2022-03-01 天翼数字生活科技有限公司 一种视频处理方法、装置、设备及可读存储介质
CN114286193A (zh) * 2021-12-31 2022-04-05 厦门四信通信科技有限公司 嵌入式web的视频播放方法、装置、设备及可读存储介质
CN114286149A (zh) * 2021-12-31 2022-04-05 广东博华超高清创新中心有限公司 一种跨设备和系统的音视频同步渲染的方法及系统
CN114902686A (zh) * 2020-01-02 2022-08-12 微软技术许可有限责任公司 Web浏览器多媒体重定向
CN115460183A (zh) * 2021-06-07 2022-12-09 中移物联网有限公司 基于浏览器的流媒体数据播放方法、装置及相关设备
US11528314B2 (en) 2020-03-26 2022-12-13 Honeywell International Inc. WebAssembly module with multiple decoders
WO2024001777A1 (zh) * 2022-06-30 2024-01-04 中兴通讯股份有限公司 视频解码方法、云化机顶盒、物理端机顶盒、介质

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101986708A (zh) * 2010-10-29 2011-03-16 北京中星微电子有限公司 一种视频解码方法及解码器
CN102074257A (zh) * 2011-01-17 2011-05-25 博视联(苏州)信息科技有限公司 软硬件结合解码的通用多媒体播放设备及其播放方法
CN102761736A (zh) * 2011-04-29 2012-10-31 腾讯科技(深圳)有限公司 视频解码方法和装置
CN103260021A (zh) * 2012-02-21 2013-08-21 腾讯科技(深圳)有限公司 一种视频解码方法和装置
CN103702124A (zh) * 2012-09-27 2014-04-02 深圳市快播科技有限公司 一种转码加速方法和转码器
CN104394456A (zh) * 2014-11-20 2015-03-04 福建星网视易信息系统有限公司 一种嵌入式环境下音视频解码的方法及装置
CN104780378A (zh) * 2015-04-16 2015-07-15 腾讯科技(北京)有限公司 一种用于解码视频的方法、装置和播放器
CN104980788A (zh) * 2015-02-11 2015-10-14 腾讯科技(深圳)有限公司 视频解码方法及装置
CN106131319A (zh) * 2016-06-29 2016-11-16 努比亚技术有限公司 一种信息处理方法及装置、终端
US20170127074A1 (en) * 2015-10-29 2017-05-04 Microsoft Technology Licensing, Llc Video bit stream decoding
CN106713937A (zh) * 2016-12-30 2017-05-24 广州虎牙信息科技有限公司 视频播放控制方法、装置及终端设备
CN108235096A (zh) * 2018-01-18 2018-06-29 湖南快乐阳光互动娱乐传媒有限公司 移动终端硬解码智能切换软解码播放视频的方法
CN108337528A (zh) * 2018-01-17 2018-07-27 浙江大华技术股份有限公司 一种预览视频的方法及设备
CN108600813A (zh) * 2018-05-17 2018-09-28 上海七牛信息技术有限公司 一种媒体文件播放方法、装置以及媒体播放系统

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101986708A (zh) * 2010-10-29 2011-03-16 北京中星微电子有限公司 一种视频解码方法及解码器
CN102074257A (zh) * 2011-01-17 2011-05-25 博视联(苏州)信息科技有限公司 软硬件结合解码的通用多媒体播放设备及其播放方法
CN102761736A (zh) * 2011-04-29 2012-10-31 腾讯科技(深圳)有限公司 视频解码方法和装置
CN103260021A (zh) * 2012-02-21 2013-08-21 腾讯科技(深圳)有限公司 一种视频解码方法和装置
CN103702124A (zh) * 2012-09-27 2014-04-02 深圳市快播科技有限公司 一种转码加速方法和转码器
CN104394456A (zh) * 2014-11-20 2015-03-04 福建星网视易信息系统有限公司 一种嵌入式环境下音视频解码的方法及装置
CN104980788A (zh) * 2015-02-11 2015-10-14 腾讯科技(深圳)有限公司 视频解码方法及装置
CN104780378A (zh) * 2015-04-16 2015-07-15 腾讯科技(北京)有限公司 一种用于解码视频的方法、装置和播放器
US20170127074A1 (en) * 2015-10-29 2017-05-04 Microsoft Technology Licensing, Llc Video bit stream decoding
CN106131319A (zh) * 2016-06-29 2016-11-16 努比亚技术有限公司 一种信息处理方法及装置、终端
CN106713937A (zh) * 2016-12-30 2017-05-24 广州虎牙信息科技有限公司 视频播放控制方法、装置及终端设备
CN108337528A (zh) * 2018-01-17 2018-07-27 浙江大华技术股份有限公司 一种预览视频的方法及设备
CN108235096A (zh) * 2018-01-18 2018-06-29 湖南快乐阳光互动娱乐传媒有限公司 移动终端硬解码智能切换软解码播放视频的方法
CN108600813A (zh) * 2018-05-17 2018-09-28 上海七牛信息技术有限公司 一种媒体文件播放方法、装置以及媒体播放系统

Cited By (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111372138A (zh) * 2018-12-26 2020-07-03 杭州登虹科技有限公司 一种播放器端的直播低延迟技术方案
CN109819315A (zh) * 2019-03-21 2019-05-28 广州华多网络科技有限公司 Hevc视频的播放方法、装置、终端及存储介质
CN110198479A (zh) * 2019-05-24 2019-09-03 浪潮软件集团有限公司 一种基于webassembly的浏览器音视频解码播放方法
CN110198479B (zh) * 2019-05-24 2021-10-22 浪潮软件股份有限公司 一种基于webassembly的浏览器音视频解码播放方法
CN110392276A (zh) * 2019-07-29 2019-10-29 湖南卡罗德音乐集团有限公司 一种基于rtmp协议同步传输midi的直播录播方法
CN110392276B (zh) * 2019-07-29 2021-06-22 湖南卡罗德音乐集团有限公司 一种基于rtmp协议同步传输midi的直播录播方法
CN112468883A (zh) * 2019-09-09 2021-03-09 浙江宇视科技有限公司 视频流播放方法及视频流播放设备
CN110740363A (zh) * 2019-10-25 2020-01-31 华为终端有限公司 投屏方法和系统、电子设备
CN111010593A (zh) * 2019-11-08 2020-04-14 深圳市麦谷科技有限公司 基于flv格式封装h.265视频数据的方法和装置
CN110996160B (zh) * 2019-11-15 2022-10-28 广州方硅信息技术有限公司 视频处理方法、装置、电子设备及计算机可读取存储介质
CN110996160A (zh) * 2019-11-15 2020-04-10 广州华多网络科技有限公司 视频处理方法、装置、电子设备及计算机可读取存储介质
CN112954457A (zh) * 2019-12-11 2021-06-11 西安诺瓦星云科技股份有限公司 视频播放显示方法、装置和系统
CN112995760B (zh) * 2019-12-18 2022-06-28 腾讯科技(深圳)有限公司 视频处理方法、装置、设备及计算机存储介质
CN111083510A (zh) * 2019-12-18 2020-04-28 深圳市麦谷科技有限公司 推送hevc视频的方法和装置
CN112995760A (zh) * 2019-12-18 2021-06-18 腾讯科技(深圳)有限公司 视频处理方法、装置、设备及计算机存储介质
CN111356023A (zh) * 2019-12-30 2020-06-30 杭州海康威视数字技术股份有限公司 播放方式确定方法及装置
WO2021136161A1 (zh) * 2019-12-30 2021-07-08 杭州海康威视数字技术股份有限公司 播放方式确定方法及装置
US11968246B2 (en) 2019-12-30 2024-04-23 Hangzhou Hikvision Digital Technology Co., Ltd. Playback mode determining method and apparatus
CN111356023B (zh) * 2019-12-30 2021-12-24 杭州海康威视数字技术股份有限公司 播放方式确定方法及装置
CN111083167A (zh) * 2019-12-31 2020-04-28 深圳市思博慧数据科技有限公司 一种跨浏览器的h.265视频播放方法
CN114902686A (zh) * 2020-01-02 2022-08-12 微软技术许可有限责任公司 Web浏览器多媒体重定向
CN111107391A (zh) * 2020-01-16 2020-05-05 深圳市信义科技有限公司 一种基于分布式的web无插件视频直播方法
US11528314B2 (en) 2020-03-26 2022-12-13 Honeywell International Inc. WebAssembly module with multiple decoders
CN111641838A (zh) * 2020-05-13 2020-09-08 深圳市商汤科技有限公司 一种浏览器视频播放方法、装置以及计算机存储介质
CN111654736A (zh) * 2020-06-10 2020-09-11 北京百度网讯科技有限公司 音视频同步误差的确定方法、装置、电子设备和存储介质
CN112423117A (zh) * 2020-06-11 2021-02-26 上海哔哩哔哩科技有限公司 Web端视频播放方法、装置及计算机设备
WO2021248888A1 (zh) * 2020-06-11 2021-12-16 上海哔哩哔哩科技有限公司 Web端视频播放方法、装置及计算机设备
CN112423100A (zh) * 2020-10-26 2021-02-26 深圳市瑞驰信息技术有限公司 基于html5的web音视频自定义渲染方法
CN112804543A (zh) * 2020-12-31 2021-05-14 武汉兴图新科电子股份有限公司 基于云视频融合平台的浏览器点播视音频的终端及方法
CN112866199A (zh) * 2020-12-31 2021-05-28 北京优锘科技有限公司 一种支持gb/t28181协议的设备在主流浏览器中查看的方法
CN112804543B (zh) * 2020-12-31 2023-05-23 武汉兴图新科电子股份有限公司 基于云视频融合平台的浏览器点播视音频的终端及方法
CN115460183A (zh) * 2021-06-07 2022-12-09 中移物联网有限公司 基于浏览器的流媒体数据播放方法、装置及相关设备
CN114095784B (zh) * 2021-11-19 2024-02-09 浩云科技股份有限公司 H.265格式视频流转码播放方法、系统、设备及介质
CN114095784A (zh) * 2021-11-19 2022-02-25 浩云科技股份有限公司 H.265格式视频流转码播放方法、系统、设备及介质
CN114125550A (zh) * 2021-11-24 2022-03-01 天翼数字生活科技有限公司 一种视频处理方法、装置、设备及可读存储介质
CN114286149A (zh) * 2021-12-31 2022-04-05 广东博华超高清创新中心有限公司 一种跨设备和系统的音视频同步渲染的方法及系统
CN114286193A (zh) * 2021-12-31 2022-04-05 厦门四信通信科技有限公司 嵌入式web的视频播放方法、装置、设备及可读存储介质
CN114286149B (zh) * 2021-12-31 2023-07-07 广东博华超高清创新中心有限公司 一种跨设备和系统的音视频同步渲染的方法及系统
WO2024001777A1 (zh) * 2022-06-30 2024-01-04 中兴通讯股份有限公司 视频解码方法、云化机顶盒、物理端机顶盒、介质

Similar Documents

Publication Publication Date Title
CN109088887A (zh) 一种流媒体解码的方法及装置
CN105744382B (zh) 用于发射经编码视频数据的方法和装置
CN106134146B (zh) 处理连续的多周期内容
CN105049920B (zh) 一种多媒体文件的录制方法和装置
CN104333808A (zh) 用于Android及Linux智能电视机上的通用播放器
US10051026B2 (en) Real-time transcode transfer method and system based on HTTP under DLNA
CN103002353A (zh) 对多媒体文件进行封装的方法及装置
CN103081488B (zh) 发信号通知用于特技模式视频表示的视频样本
CN106878804A (zh) 经译码视频数据的网络流式传输
CN103891303A (zh) 基于脚本的视频呈现
US11039200B2 (en) System and method for operating a transmission network
CN111683293A (zh) 一种基于http-flv协议的跨浏览器播放h.265视频的方法
CN108141614A (zh) 信号传送传输流中的高动态范围和宽色域内容
CN105898496A (zh) 基于Android设备的HLS流硬解码方法及装置
CN103024603A (zh) 一种用于解决播放网络视频时短时停顿的装置及方法
CN103517135A (zh) 一种连续播放mp4格式视频文件的方法、系统及电视
CN114339382A (zh) 视频播放方法、装置、设备及计算机存储介质
CN106464933A (zh) 用于远程控制对多媒体内容的渲染的设备和方法
CN109640162A (zh) 码流转换方法及系统
CN108122558B (zh) 一种latm aac音频流的实时转容实现方法及装置
CN106888385A (zh) 客户端在虚拟化环境下的视频播放方法及系统
KR20170139515A (ko) 방송 신호 송신 장치, 방송 신호 수신 장치, 방송 신호 송신 방법, 및 방송 신호 수신 방법
CN101409797B (zh) 一种多媒体广播特效播放方法及特效播放终端
CN109845280A (zh) 基于流媒体的音视频播放方法及装置
CN110460889A (zh) 一种视频投屏方法、装置、系统及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20181225

RJ01 Rejection of invention patent application after publication