CN110198479A - 一种基于webassembly的浏览器音视频解码播放方法 - Google Patents
一种基于webassembly的浏览器音视频解码播放方法 Download PDFInfo
- Publication number
- CN110198479A CN110198479A CN201910438363.6A CN201910438363A CN110198479A CN 110198479 A CN110198479 A CN 110198479A CN 201910438363 A CN201910438363 A CN 201910438363A CN 110198479 A CN110198479 A CN 110198479A
- Authority
- CN
- China
- Prior art keywords
- audio
- video
- webassembly
- browser
- function
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 39
- 230000006870 function Effects 0.000 claims description 56
- 238000009877 rendering Methods 0.000 claims description 18
- 230000008569 process Effects 0.000 claims description 13
- 101001029799 Homo sapiens Protein Flattop Proteins 0.000 claims description 8
- 102100039031 Protein Flattop Human genes 0.000 claims description 8
- 230000006835 compression Effects 0.000 claims description 6
- 238000007906 compression Methods 0.000 claims description 6
- 238000005457 optimization Methods 0.000 claims description 6
- 230000008901 benefit Effects 0.000 claims description 4
- 238000005070 sampling Methods 0.000 claims description 4
- 230000006978 adaptation Effects 0.000 claims description 3
- 230000007246 mechanism Effects 0.000 claims description 3
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/41—Structure of client; Structure of client peripherals
- H04N21/426—Internal components of the client ; Characteristics thereof
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/443—OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Information Transfer Between Computers (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本发明特别涉及一种基于webassembly的浏览器音视频解码播放方法。该基于webassembly的浏览器音视频解码播放方法,用户根据音视频的编码类型自定义c版解码库,然后通过Emscripten将自定义的c版解码库编译成webassembly代码供浏览器调用,在浏览器端通过webassembly启用多线程的方式进行解码,音视频无延迟播放。该基于webassembly的浏览器音视频解码播放方法,采用多线程解码,解码效率高,不仅能够实现无延迟、无插件播放,还支持播放多种编码格式的音视频流。
Description
技术领域
本发明涉及音视频流解码播放技术领域,特别涉及一种基于webassembly的浏览器音视频解码播放方法。
背景技术
目前,在浏览器端播放音视频目前的方案包括以下几种:
(1)使用flash插件,其缺点一为不支持H265,二是主流的浏览器都不再更新并逐渐取消对其支持。
(2)使用ActiveX插件或者NPAPI插件,基于安全性的考虑,主流的浏览器都不在进行支持
(3)使用html5的video标签,其缺点是解码类型有限,例如不支持H265。
(4)原生js在浏览器端直接解码,其缺点为受限于js解释性语言运行速度的限制,对于cpu密集型解码运算表现不佳。
(5)服务器端解码,其缺点为解码后的数据量过大,占用很多的带宽资源。
基于上述情况,为了在浏览器端无插件无延迟的播放多种编码格式的音视频流,并可根据编码类型适配解码器,本发明提出了一种基于webassembly的浏览器音视频解码播放方法。
发明内容
本发明为了弥补现有技术的缺陷,提供了一种简单高效的基于webassembly的浏览器音视频解码播放方法。
本发明是通过如下技术方案实现的:
一种基于webassembly的浏览器音视频解码播放方法,其特征在于,用户根据音视频的编码类型自定义c版解码库,然后通过Emscripten将自定义的c版解码库编译成webassembly代码供浏览器调用,在浏览器端通过webassembly启用多线程的方式进行解码,音视频无延迟播放。
本发明基于webassembly的浏览器音视频解码播放方法,包括以下步骤:
(1)生成webassembly解码模块
用c代码封装ffmpeg为多线程解码库,将多线程解码库编译为llvmbytecode,并用Emscripten编译为js语言变体webassembly模块,js语言以worker方式启动webassembly解码模块;
(2)浏览器端调用webassembly解码模块
加载webassembly解码模块,配置子线程调用webassembly解码模块的函数,获取音频和视频数据的配置信息:启动视频渲染子线程,进行音视频播放。
所述步骤(1)中,首先用c代码将解码库编译出来,根据解码类型选择相应的ffmpeg 解码器;同时为了减少编译后的体积,便于浏览器快速加载,只打开需要的解码器,对于不需要的部分则全部关闭,以减少库的体积。
用户根据音视频的编码类型自行编译对应的编码器,所述c代码封装后的多线程解码库函数包括以下几种:
1)放入音视频数据流接口:PutAVDataToDecoder函数,音视频数据流的编码类型由库本身自行检测;
2)获取视频元数据信息接口:GetVideoWidth函数用于获取视频宽,GetVideoHeight 函数用于获取视频高,GetVideoFpsNum函数用于获取视频帧率分子,GetVideoFpsDen函数用于获取视频帧率分母;
3)获取音频元数据信息接口:GetAudioChannels函数用于获取音频通道数,GetAudioSampleRate函数用于获取音频采样率,GetAudioNBSample函数用于获取音频单帧采样次数,由于浏览器端只支持fltp,在c代码中将音频位数直接转换成fltp格式;
4)获取解码后的视频RGBA数据接口:GetVideoRGBA函数直接通过c代码将数据转为浏览器需要的RGBA格式,避免再次转换从而减少浏览器的渲染负担;
5)获取解码后的音频PCM数据接口:GetAudioPCM函数。
所述步骤(1)中,采用Emscripten 1.38.21版本将c代码编译成js语言的变体webassembly,浏览器在检测到变体js之后采用不同的运行机制从而加快执行,用到的优化参数包括以下几种:
1)-O3用于优化编译后体积,以便加快浏览器加载js代码的速度;
2)-USE_PTHREADS用于启用多线程,该功能需要浏览器支持,浏览器通过启用worker的方式开启一个js线程来模拟c代码下的pthread;
3)-TOTAL_MEMORY用于设定内存占用总大小,启用多线程之后,受限于js语言解释型语言本身的限制,内存的设定将不再支持自动增长,因此需手动设定一个固定值;
4)-EXPORTED_FUNCTIONS用于设置导出函数目录,将用到的库函数导出;
5)-USE_ZLIB用于启用zlib压缩,目的是为了压缩编译后的库,加快浏览器的加载速度。
js语言的执行逻辑是单线程,为了在处理异步解码音视频时能充分利用c代码编译后的webassembly带来的性能优势,所述步骤(1)中启用了多线程,由于c版本的代码启用了pthread,对应编译出来的库中会携带work.js和mem.js,浏览器就不需要自行封装worker,因而大大的降低了前端处理解码流程的心智负担,并且性能也得到了体验和保证。
所述步骤(2)中,加载webassembly解码模块时,通过回调函数的形式通知js业务模块播放环境已具备,播放环境已具备的表现形式采用自动播放或播放按钮变更为可用状态。
所述步骤(2)中,具体包括以下步骤:
(a)加载webassembly解码模块,加载需要有几百毫秒时间,所以要
(b)开始播放,调用webassembly解码模块的PutAVDataToDecoder函数,将ts格式的音视频流数据作为参数传入,ts格式的音视频数据来源是本地文件或通过websocket 接受的服务器端的数据音视频解码模块解码过程;
(c)解码过程中复用ffmpeg的组件,首先适配解码器,分配上下文avio_alloc_context 之后打开输入流avformat_open_input,寻找解码器avformat_find_stream_info;然后寻找解码上下文open_codec_context,然后进入解包decode_packet过程,回调解码后的音视频给上层;
(d)配置子线程调用解码模块的函数,获取音频和视频数据的配置信息;
(e)配置子线程获取到配置信息后,如果有视频数据则启动视频渲染子线程,如果有音频数据则启动音频渲染子线程,然后结束。
所述步骤(e)中,视频渲染子线程调用webassembly解码模块GetVideoRGBA函数从共享内存中获取解码后的视频RGBA数据,将其作为数据源,使用canvas或者webgl 进行视频的播放;所述视频渲染子线程设有定时器,控制子线程获取视频数据进行渲染的频率,该频率由配置子线程提供。
所述步骤(e)中,音频渲染子线程调用webassembly解码模块GetAudioPCM函数,从共享内存中获取解码后的PCM数据,使用AudioContext连接电脑本地的声卡,创建视频源,进行声音的播放;音频渲染子线程设有一个定时器,控制子线程获取音频数据进行渲染的频率,该频率由配置子线程提供。
本发明的有益效果是:该基于webassembly的浏览器音视频解码播放方法,采用多线程解码,解码效率高,不仅能够实现无延迟、无插件播放,还支持播放多种编码格式的音视频流。
具体来说,该基于webassembly的浏览器音视频解码播放方法,具有以下特点:
1、多线程解码,提高了解码的效率,不仅是复用了现有c代码库,而且使得上层的调用省去了封装worker的过程,简化了上层调用流程,更加易用,从而减轻了js原生代码开发的负担;
2、浏览器执行效率高,能够实现直播流无延迟播放
Emscripten将c代码编译成llvmbytecode后,形成webassembly格式的js变体代码,相比较于原生js解释型代码,这种变体js代码是一种二进制的代码,一旦浏览器引擎发现运行的是js变体代码,就知道是优化过的代码,可以直接跳过语法分析这一步,直接转成汇编代码,其执行速度更快。通过websocket接受服务器端推送的ts流,浏览器播放,延迟均在300ms之内;
3、解码多样性,支持播放多种编码格式的音视频流
例如:H265、H264等常用视频编码格式、AAC、G711等常用音频编码格式,可根据音视频编码格式进行适配;具有良好的扩展性和适配性,可以允许用户自定义解码器的类型,用户可以根据音视频的编码类型,自定义c版本的解码库,然后通过Emscripten 编译成webassembly代码供浏览器调用;
4、在浏览器端实现了无插件播放音视频
无需安装任何插件或者客户端应用,只要支持html5的浏览器即可。在使用webassembly方式解码的同时,避免了插件带来的兼容性问题和解码类型的局限性,并且提高了安全性,用户可自定义安全策略。
附图说明
附图1为本发明基于webassembly的浏览器音视频解码播放方法示意图。
具体实施方式
为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚明白,以下结合实施例,对本发明进行详细的说明。应当说明的是,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
该基于webassembly的浏览器音视频解码播放方法,用户根据音视频的编码类型自定义c版解码库,然后通过Emscripten将自定义的c版解码库编译成webassembly代码供浏览器调用,在浏览器端通过webassembly启用多线程的方式进行解码,音视频无延迟播放。
该基于webassembly的浏览器音视频解码播放方法,包括以下步骤:
(1)生成webassembly解码模块
用c代码封装ffmpeg为多线程解码库,将多线程解码库编译为llvmbytecode,并用Emscripten编译为js语言变体webassembly模块,js语言以worker方式启动webassembly解码模块;
(2)浏览器端调用webassembly解码模块
加载webassembly解码模块,配置子线程调用webassembly解码模块的函数,获取音频和视频数据的配置信息:启动视频渲染子线程,进行音视频播放。
所述步骤(1)中,首先用c代码将解码库编译出来,根据解码类型选择相应的ffmpeg 解码器;同时为了减少编译后的体积,便于浏览器快速加载,只打开需要的解码器,对于不需要的部分则全部关闭,以减少库的体积。
用户根据音视频的编码类型自行编译对应的编码器,所述c代码封装后的多线程解码库函数包括以下几种:
1)放入音视频数据流接口:PutAVDataToDecoder函数,音视频数据流的编码类型由库本身自行检测;
2)获取视频元数据信息接口:GetVideoWidth函数用于获取视频宽,GetVideoHeight 函数用于获取视频高,GetVideoFpsNum函数用于获取视频帧率分子,GetVideoFpsDen函数用于获取视频帧率分母;
3)获取音频元数据信息接口:GetAudioChannels函数用于获取音频通道数,GetAudioSampleRate函数用于获取音频采样率,GetAudioNBSample函数用于获取音频单帧采样次数,由于浏览器端只支持fltp,在c代码中将音频位数直接转换成fltp格式;
4)获取解码后的视频RGBA数据接口:GetVideoRGBA函数直接通过c代码将数据转为浏览器需要的RGBA格式,避免再次转换从而减少浏览器的渲染负担;
5)获取解码后的音频PCM数据接口:GetAudioPCM函数。
所述步骤(1)中,采用Emscripten 1.38.21版本将c代码编译成js语言的变体webassembly,浏览器在检测到变体js之后采用不同的运行机制从而加快执行,用到的优化参数包括以下几种:
1)-O3用于优化编译后体积,以便加快浏览器加载js代码的速度;
2)-USE_PTHREADS用于启用多线程,该功能需要浏览器支持,浏览器通过启用worker的方式开启一个js线程来模拟c代码下的pthread;
3)-TOTAL_MEMORY用于设定内存占用总大小,启用多线程之后,受限于js语言解释型语言本身的限制,内存的设定将不再支持自动增长,因此需手动设定一个固定值;
4)-EXPORTED_FUNCTIONS用于设置导出函数目录,将用到的库函数导出;
5)-USE_ZLIB用于启用zlib压缩,目的是为了压缩编译后的库,加快浏览器的加载速度。
js语言的执行逻辑是单线程,为了在处理异步解码音视频时能充分利用c代码编译后的webassembly带来的性能优势,所述步骤(1)中启用了多线程,由于c版本的代码启用了pthread,对应编译出来的库中会携带work.js和mem.js,浏览器就不需要自行封装worker,因而大大的降低了前端处理解码流程的心智负担,并且性能也得到了体验和保证。
所述步骤(2)中,加载webassembly解码模块时,通过回调函数的形式通知js业务模块播放环境已具备,播放环境已具备的表现形式采用自动播放或播放按钮变更为可用状态。
所述步骤(2)中,具体包括以下步骤:
(a)加载webassembly解码模块,加载需要有几百毫秒时间,所以要
(b)开始播放,调用webassembly解码模块的PutAVDataToDecoder函数,将ts格式的音视频流数据作为参数传入,ts格式的音视频数据来源是本地文件或通过websocket 接受的服务器端的数据音视频解码模块解码过程;
(c)解码过程中复用ffmpeg的组件,首先适配解码器,分配上下文avio_alloc_context 之后打开输入流avformat_open_input,寻找解码器avformat_find_stream_info;然后寻找解码上下文open_codec_context,然后进入解包decode_packet过程,回调解码后的音视频给上层;
(d)配置子线程调用解码模块的函数,获取音频和视频数据的配置信息:
获取视频元数据信息接口
GetVideoWidth(获取视频宽)
GetVideoHeight(获取视频高)
GetVideoFpsNum(获取视频帧率分子)
GetVideoFpsDen(获取视频帧率分母)
获取音频元数据信息接口
GetAudioChannels(获取音频通道数)
GetAudioSampleRate(获取音频采样率)
GetAudioNBSample(获取音频单帧采样次数),因浏览器端只支持fltp,本发明在c代码中将音频位数直接转换成fltp格式。
(e)配置子线程获取到配置信息后,如果有视频数据则启动视频渲染子线程,如果有音频数据则启动音频渲染子线程,然后结束。
所述步骤(e)中,视频渲染子线程调用webassembly解码模块GetVideoRGBA函数从共享内存中获取解码后的视频RGBA数据,将其作为数据源,使用canvas或者webgl 进行视频的播放;所述视频渲染子线程设有定时器,控制子线程获取视频数据进行渲染的频率,该频率由配置子线程提供。
所述步骤(e)中,音频渲染子线程调用webassembly解码模块GetAudioPCM函数,从共享内存中获取解码后的PCM数据,使用AudioContext连接电脑本地的声卡,创建视频源,进行声音的播放;音频渲染子线程设有一个定时器,控制子线程获取音频数据进行渲染的频率,该频率由配置子线程提供。
Claims (10)
1.一种基于webassembly的浏览器音视频解码播放方法,其特征在于:用户根据音视频的编码类型自定义c版解码库,然后通过Emscripten将自定义的c版解码库编译成webassembly代码供浏览器调用,在浏览器端通过webassembly启用多线程的方式进行解码,音视频无延迟播放。
2.根据权利要求1所述的基于webassembly的浏览器音视频解码播放方法,其特征在于,包括以下步骤:
(1)生成webassembly解码模块
用c代码封装ffmpeg为多线程解码库,将多线程解码库编译为llvm bytecode,并用Emscripten编译为js语言变体webassembly模块,js语言以worker方式启动webassembly解码模块;
(2)浏览器端调用webassembly解码模块
加载webassembly解码模块,配置子线程调用webassembly解码模块的函数,获取音频和视频数据的配置信息:启动视频渲染子线程,进行音视频播放。
3.根据权利要求2所述的基于webassembly的浏览器音视频解码播放方法,其特征在于:所述步骤(1)中,首先用c代码将解码库编译出来,根据解码类型选择相应的ffmpeg解码器;同时为了减少编译后的体积,便于浏览器快速加载,只打开需要的解码器,对于不需要的部分则全部关闭,以减少库的体积。
4.根据权利要求3所述的基于webassembly的浏览器音视频解码播放方法,其特征在于:用户根据音视频的编码类型自行编译对应的编码器,所述c代码封装后的多线程解码库函数包括以下几种:
1)放入音视频数据流接口:PutAVDataToDecoder函数,音视频数据流的编码类型由库本身自行检测;
2)获取视频元数据信息接口:GetVideoWidth函数用于获取视频宽,GetVideoHeight函数用于获取视频高,GetVideoFpsNum函数用于获取视频帧率分子,GetVideoFpsDen函数用于获取视频帧率分母;
3)获取音频元数据信息接口:GetAudioChannels函数用于获取音频通道数,GetAudioSampleRate函数用于获取音频采样率,GetAudioNBSample函数用于获取音频单帧采样次数,由于浏览器端只支持fltp,在c代码中将音频位数直接转换成fltp格式;
4)获取解码后的视频RGBA数据接口:GetVideoRGBA函数直接通过c代码将数据转为浏览器需要的RGBA格式,避免再次转换从而减少浏览器的渲染负担;
5)获取解码后的音频PCM数据接口:GetAudioPCM函数。
5.根据权利要求2所述的基于webassembly的浏览器音视频解码播放方法,其特征在于:所述步骤(1)中,采用Emscripten1.38.21版本将c代码编译成js语言的变体webassembly,浏览器在检测到变体js之后采用不同的运行机制从而加快执行,用到的优化参数包括以下几种:
1)-O3用于优化编译后体积,以便加快浏览器加载js代码的速度;
2)-USE_PTHREADS用于启用多线程,该功能需要浏览器支持,浏览器通过启用worker的方式开启一个js线程来模拟c代码下的pthread;
3)-TOTAL_MEMORY用于设定内存占用总大小,启用多线程之后,受限于js语言解释型语言本身的限制,内存的设定将不再支持自动增长,因此需手动设定一个固定值;
4)-EXPORTED_FUNCTIONS用于设置导出函数目录,将用到的库函数导出;
5)-USE_ZLIB用于启用zlib压缩,目的是为了压缩编译后的库,加快浏览器的加载速度。
6.根据权利要求2所述的基于webassembly的浏览器音视频解码播放方法,其特征在于:js语言的执行逻辑是单线程,为了在处理异步解码音视频时能充分利用c代码编译后的webassembly带来的性能优势,所述步骤(1)中启用了多线程,由于c版本的代码启用了pthread,对应编译出来的库中会携带work.js和mem.js,浏览器就不需要自行封装worker,因而大大的降低了前端处理解码流程的心智负担,并且性能也得到了体验和保证。
7.根据权利要求2所述的基于webassembly的浏览器音视频解码播放方法,其特征在于:所述步骤(2)中,加载webassembly解码模块时,通过回调函数的形式通知js业务模块播放环境已具备,播放环境已具备的表现形式采用自动播放或播放按钮变更为可用状态。
8.根据权利要求2所述的基于webassembly的浏览器音视频解码播放方法,其特征在于:所述步骤(2)中,具体包括以下步骤:
(a)加载webassembly解码模块,加载需要有几百毫秒时间,所以要
(b)开始播放,调用webassembly解码模块的PutAVDataToDecoder函数,将ts格式的音视频流数据作为参数传入,ts格式的音视频数据来源是本地文件或通过websocket接受的服务器端的数据音视频解码模块解码过程;
(c)解码过程中复用ffmpeg的组件,首先适配解码器,分配上下文avio_alloc_context之后打开输入流avformat_open_input,寻找解码器avformat_find_stream_info;然后寻找解码上下文open_codec_context,然后进入解包decode_packet过程,回调解码后的音视频给上层;
(d)配置子线程调用解码模块的函数,获取音频和视频数据的配置信息;
(e)配置子线程获取到配置信息后,如果有视频数据则启动视频渲染子线程,如果有音频数据则启动音频渲染子线程,然后结束。
9.根据权利要求8所述的基于webassembly的浏览器音视频解码播放方法,其特征在于:所述步骤(e)中,视频渲染子线程调用webassembly解码模块GetVideoRGBA函数从共享内存中获取解码后的视频RGBA数据,将其作为数据源,使用canvas或者webgl进行视频的播放;所述视频渲染子线程设有定时器,控制子线程获取视频数据进行渲染的频率,该频率由配置子线程提供。
10.根据权利要求8所述的基于webassembly的浏览器音视频解码播放方法,其特征在于:所述步骤(e)中,音频渲染子线程调用webassembly解码模块GetAudioPCM函数,从共享内存中获取解码后的PCM数据,使用AudioContext连接电脑本地的声卡,创建视频源,进行声音的播放;音频渲染子线程设有一个定时器,控制子线程获取音频数据进行渲染的频率,该频率由配置子线程提供。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910438363.6A CN110198479B (zh) | 2019-05-24 | 2019-05-24 | 一种基于webassembly的浏览器音视频解码播放方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910438363.6A CN110198479B (zh) | 2019-05-24 | 2019-05-24 | 一种基于webassembly的浏览器音视频解码播放方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110198479A true CN110198479A (zh) | 2019-09-03 |
CN110198479B CN110198479B (zh) | 2021-10-22 |
Family
ID=67751580
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910438363.6A Active CN110198479B (zh) | 2019-05-24 | 2019-05-24 | 一种基于webassembly的浏览器音视频解码播放方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110198479B (zh) |
Cited By (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110662116A (zh) * | 2019-09-29 | 2020-01-07 | 中电福富信息科技有限公司 | 一种基于WebAssembly技术的Web播放器及播放方法 |
CN111083167A (zh) * | 2019-12-31 | 2020-04-28 | 深圳市思博慧数据科技有限公司 | 一种跨浏览器的h.265视频播放方法 |
CN111107391A (zh) * | 2020-01-16 | 2020-05-05 | 深圳市信义科技有限公司 | 一种基于分布式的web无插件视频直播方法 |
CN111355976A (zh) * | 2020-03-31 | 2020-06-30 | 北京东方国信科技股份有限公司 | 一种基于hevc标准的视频直播方法及系统 |
CN111641838A (zh) * | 2020-05-13 | 2020-09-08 | 深圳市商汤科技有限公司 | 一种浏览器视频播放方法、装置以及计算机存储介质 |
CN111787396A (zh) * | 2020-07-28 | 2020-10-16 | 北京金山云网络技术有限公司 | 一种视频流解析方法及装置 |
CN111954006A (zh) * | 2020-06-30 | 2020-11-17 | 深圳点猫科技有限公司 | 一种用于移动端的跨平台视频播放实现方法及装置 |
CN111988620A (zh) * | 2020-07-17 | 2020-11-24 | 深圳点猫科技有限公司 | 一种基于浏览器实现图片压缩的方法及装置 |
CN112261377A (zh) * | 2020-10-23 | 2021-01-22 | 青岛以萨数据技术有限公司 | web版监控视频播放方法、电子设备及存储介质 |
CN112291628A (zh) * | 2020-11-25 | 2021-01-29 | 杭州视洞科技有限公司 | 一种基于web浏览器的多线程视频解码播放方法 |
CN112511897A (zh) * | 2020-10-26 | 2021-03-16 | 长沙市到家悠享网络科技有限公司 | 视频封面设置方法、装置、设备和存储介质 |
CN112801854A (zh) * | 2021-04-07 | 2021-05-14 | 浙江华创视讯科技有限公司 | 一种视频数据处理方法、装置、存储介质及电子设备 |
CN112822518A (zh) * | 2021-04-19 | 2021-05-18 | 浙江华创视讯科技有限公司 | 视频播放方法、装置、系统、电子设备和存储介质 |
CN112929733A (zh) * | 2021-01-18 | 2021-06-08 | 稿定(厦门)科技有限公司 | 视频预览播放方法及装置 |
CN112954457A (zh) * | 2019-12-11 | 2021-06-11 | 西安诺瓦星云科技股份有限公司 | 视频播放显示方法、装置和系统 |
CN113038292A (zh) * | 2021-03-19 | 2021-06-25 | 佳都新太科技股份有限公司 | 基于浏览器的监控音视频传输播放系统、方法及装置 |
WO2021136161A1 (zh) * | 2019-12-30 | 2021-07-08 | 杭州海康威视数字技术股份有限公司 | 播放方式确定方法及装置 |
CN113225616A (zh) * | 2021-04-27 | 2021-08-06 | 杭州海康威视数字技术股份有限公司 | 视频播放方法、装置、计算机设备及可读存储介质 |
CN113301038A (zh) * | 2021-05-20 | 2021-08-24 | 中国工商银行股份有限公司 | web端视频播放方法及装置 |
CN113434110A (zh) * | 2021-06-29 | 2021-09-24 | 稿定(厦门)科技有限公司 | 一种基于浏览器的实时音频处理方法、系统、储存装置 |
WO2021227532A1 (zh) * | 2020-05-15 | 2021-11-18 | 上海哔哩哔哩科技有限公司 | 基于浏览器的帧提取方法和系统 |
CN114095784A (zh) * | 2021-11-19 | 2022-02-25 | 浩云科技股份有限公司 | H.265格式视频流转码播放方法、系统、设备及介质 |
CN114339389A (zh) * | 2022-01-10 | 2022-04-12 | 稿定(厦门)科技有限公司 | 音视频系统 |
WO2022099459A1 (zh) * | 2020-11-10 | 2022-05-19 | 深圳晶泰科技有限公司 | 一种WebAssembly加载方法、装置及存储介质 |
CN114553846A (zh) * | 2022-01-11 | 2022-05-27 | 南方电网深圳数字电网研究院有限公司 | 一种实时采集流媒体的直播方法及装置 |
CN114661300A (zh) * | 2022-04-11 | 2022-06-24 | 北京万昇智能科技有限公司 | 将PLC程序代码编译为WebAssembly代码的方法及装置 |
CN114827721A (zh) * | 2022-03-28 | 2022-07-29 | 北京砍石高科技有限公司 | 视频特效处理方法、装置、存储介质及电子设备 |
CN115086717A (zh) * | 2022-06-01 | 2022-09-20 | 北京元意科技有限公司 | 一种音视频作品实时编辑渲染合成的方法和系统 |
CN115243102A (zh) * | 2022-09-21 | 2022-10-25 | 天讯瑞达通信技术有限公司 | 基于Web技术的视频播放方法、装置、设备以及存储介质 |
US11528314B2 (en) | 2020-03-26 | 2022-12-13 | Honeywell International Inc. | WebAssembly module with multiple decoders |
WO2024060135A1 (zh) * | 2022-09-22 | 2024-03-28 | 京东方科技集团股份有限公司 | 信息播放方法、装置、电子设备和计算机可读存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170346804A1 (en) * | 2015-06-02 | 2017-11-30 | ALTR Solutions, Inc. | Credential-free user login to remotely executed applications |
CN107995519A (zh) * | 2017-11-30 | 2018-05-04 | 广州酷狗计算机科技有限公司 | 多媒体文件播放的方法、装置和存储介质 |
CN108563517A (zh) * | 2018-03-30 | 2018-09-21 | 腾讯科技(深圳)有限公司 | 系统接口的调用方法及装置 |
CN108664579A (zh) * | 2018-05-03 | 2018-10-16 | 杭州美登科技股份有限公司 | 海量数据实时筛选分析方法、系统及存储介质 |
CN108734464A (zh) * | 2018-05-22 | 2018-11-02 | 上海璧碚符木数据科技有限公司 | 一种利用浏览器执行区块链计算任务的方法、装置和浏览器 |
CN109088887A (zh) * | 2018-09-29 | 2018-12-25 | 北京金山云网络技术有限公司 | 一种流媒体解码的方法及装置 |
CN109284104A (zh) * | 2018-09-28 | 2019-01-29 | 北京航空航天大学青岛研究院 | 基于网页汇编语言控制页面跳转的方法 |
CN109640153A (zh) * | 2018-12-12 | 2019-04-16 | 安徽科大国创软件科技有限公司 | 一种基于vlc的浏览器多窗口播放的方法及其装置 |
CN109670128A (zh) * | 2018-11-06 | 2019-04-23 | 北京居然设计家网络科技有限公司 | 一种基于WebAssembly的网页应用实现方法及装置 |
-
2019
- 2019-05-24 CN CN201910438363.6A patent/CN110198479B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170346804A1 (en) * | 2015-06-02 | 2017-11-30 | ALTR Solutions, Inc. | Credential-free user login to remotely executed applications |
CN107995519A (zh) * | 2017-11-30 | 2018-05-04 | 广州酷狗计算机科技有限公司 | 多媒体文件播放的方法、装置和存储介质 |
CN108563517A (zh) * | 2018-03-30 | 2018-09-21 | 腾讯科技(深圳)有限公司 | 系统接口的调用方法及装置 |
CN108664579A (zh) * | 2018-05-03 | 2018-10-16 | 杭州美登科技股份有限公司 | 海量数据实时筛选分析方法、系统及存储介质 |
CN108734464A (zh) * | 2018-05-22 | 2018-11-02 | 上海璧碚符木数据科技有限公司 | 一种利用浏览器执行区块链计算任务的方法、装置和浏览器 |
CN109284104A (zh) * | 2018-09-28 | 2019-01-29 | 北京航空航天大学青岛研究院 | 基于网页汇编语言控制页面跳转的方法 |
CN109088887A (zh) * | 2018-09-29 | 2018-12-25 | 北京金山云网络技术有限公司 | 一种流媒体解码的方法及装置 |
CN109670128A (zh) * | 2018-11-06 | 2019-04-23 | 北京居然设计家网络科技有限公司 | 一种基于WebAssembly的网页应用实现方法及装置 |
CN109640153A (zh) * | 2018-12-12 | 2019-04-16 | 安徽科大国创软件科技有限公司 | 一种基于vlc的浏览器多窗口播放的方法及其装置 |
Non-Patent Citations (2)
Title |
---|
MANUEL LEITHNER; KRISTOFFER KLEINE; DIMITRIS E. SIMOS: "《CAMETRICS: A Tool for Advanced Combinatorial Analysis and Measurement of Test Sets》", 《2018 IEEE INTERNATIONAL CONFERENCE ON SOFTWARE TESTING, VERIFICATION AND VALIDATION WORKSHOPS》 * |
彭晓晖等: "Web使能的物端计算系统", 《计算机研究与发展》 * |
Cited By (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110662116A (zh) * | 2019-09-29 | 2020-01-07 | 中电福富信息科技有限公司 | 一种基于WebAssembly技术的Web播放器及播放方法 |
CN112954457A (zh) * | 2019-12-11 | 2021-06-11 | 西安诺瓦星云科技股份有限公司 | 视频播放显示方法、装置和系统 |
US11968246B2 (en) | 2019-12-30 | 2024-04-23 | Hangzhou Hikvision Digital Technology Co., Ltd. | Playback mode determining method and apparatus |
WO2021136161A1 (zh) * | 2019-12-30 | 2021-07-08 | 杭州海康威视数字技术股份有限公司 | 播放方式确定方法及装置 |
CN111083167A (zh) * | 2019-12-31 | 2020-04-28 | 深圳市思博慧数据科技有限公司 | 一种跨浏览器的h.265视频播放方法 |
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 |
CN111355976A (zh) * | 2020-03-31 | 2020-06-30 | 北京东方国信科技股份有限公司 | 一种基于hevc标准的视频直播方法及系统 |
CN111355976B (zh) * | 2020-03-31 | 2022-10-11 | 北京东方国信科技股份有限公司 | 一种基于hevc标准的视频直播方法及系统 |
CN111641838A (zh) * | 2020-05-13 | 2020-09-08 | 深圳市商汤科技有限公司 | 一种浏览器视频播放方法、装置以及计算机存储介质 |
WO2021227532A1 (zh) * | 2020-05-15 | 2021-11-18 | 上海哔哩哔哩科技有限公司 | 基于浏览器的帧提取方法和系统 |
CN111954006A (zh) * | 2020-06-30 | 2020-11-17 | 深圳点猫科技有限公司 | 一种用于移动端的跨平台视频播放实现方法及装置 |
CN111988620A (zh) * | 2020-07-17 | 2020-11-24 | 深圳点猫科技有限公司 | 一种基于浏览器实现图片压缩的方法及装置 |
CN111787396A (zh) * | 2020-07-28 | 2020-10-16 | 北京金山云网络技术有限公司 | 一种视频流解析方法及装置 |
CN112261377A (zh) * | 2020-10-23 | 2021-01-22 | 青岛以萨数据技术有限公司 | web版监控视频播放方法、电子设备及存储介质 |
CN112511897A (zh) * | 2020-10-26 | 2021-03-16 | 长沙市到家悠享网络科技有限公司 | 视频封面设置方法、装置、设备和存储介质 |
WO2022099459A1 (zh) * | 2020-11-10 | 2022-05-19 | 深圳晶泰科技有限公司 | 一种WebAssembly加载方法、装置及存储介质 |
CN112291628A (zh) * | 2020-11-25 | 2021-01-29 | 杭州视洞科技有限公司 | 一种基于web浏览器的多线程视频解码播放方法 |
CN112929733A (zh) * | 2021-01-18 | 2021-06-08 | 稿定(厦门)科技有限公司 | 视频预览播放方法及装置 |
CN113038292A (zh) * | 2021-03-19 | 2021-06-25 | 佳都新太科技股份有限公司 | 基于浏览器的监控音视频传输播放系统、方法及装置 |
CN113038292B (zh) * | 2021-03-19 | 2022-12-16 | 佳都科技集团股份有限公司 | 基于浏览器的监控音视频传输播放系统、方法及装置 |
CN112801854A (zh) * | 2021-04-07 | 2021-05-14 | 浙江华创视讯科技有限公司 | 一种视频数据处理方法、装置、存储介质及电子设备 |
CN112822518A (zh) * | 2021-04-19 | 2021-05-18 | 浙江华创视讯科技有限公司 | 视频播放方法、装置、系统、电子设备和存储介质 |
CN113225616A (zh) * | 2021-04-27 | 2021-08-06 | 杭州海康威视数字技术股份有限公司 | 视频播放方法、装置、计算机设备及可读存储介质 |
CN113225616B (zh) * | 2021-04-27 | 2022-11-15 | 杭州海康威视数字技术股份有限公司 | 视频播放方法、装置、计算机设备及可读存储介质 |
CN113301038A (zh) * | 2021-05-20 | 2021-08-24 | 中国工商银行股份有限公司 | web端视频播放方法及装置 |
WO2023273360A1 (zh) * | 2021-06-29 | 2023-01-05 | 稿定(厦门)科技有限公司 | 一种基于浏览器的实时音频处理方法、系统、储存装置 |
CN113434110A (zh) * | 2021-06-29 | 2021-09-24 | 稿定(厦门)科技有限公司 | 一种基于浏览器的实时音频处理方法、系统、储存装置 |
CN114095784A (zh) * | 2021-11-19 | 2022-02-25 | 浩云科技股份有限公司 | H.265格式视频流转码播放方法、系统、设备及介质 |
CN114095784B (zh) * | 2021-11-19 | 2024-02-09 | 浩云科技股份有限公司 | H.265格式视频流转码播放方法、系统、设备及介质 |
CN114339389B (zh) * | 2022-01-10 | 2024-05-14 | 稿定(厦门)科技有限公司 | 音视频系统 |
CN114339389A (zh) * | 2022-01-10 | 2022-04-12 | 稿定(厦门)科技有限公司 | 音视频系统 |
CN114553846A (zh) * | 2022-01-11 | 2022-05-27 | 南方电网深圳数字电网研究院有限公司 | 一种实时采集流媒体的直播方法及装置 |
CN114553846B (zh) * | 2022-01-11 | 2024-05-14 | 南方电网数字平台科技(广东)有限公司 | 一种实时采集流媒体的直播方法及装置 |
CN114827721A (zh) * | 2022-03-28 | 2022-07-29 | 北京砍石高科技有限公司 | 视频特效处理方法、装置、存储介质及电子设备 |
CN114661300B (zh) * | 2022-04-11 | 2022-10-18 | 北京万昇智能科技有限公司 | 将PLC程序代码编译为WebAssembly代码的方法及装置 |
CN114661300A (zh) * | 2022-04-11 | 2022-06-24 | 北京万昇智能科技有限公司 | 将PLC程序代码编译为WebAssembly代码的方法及装置 |
CN115086717A (zh) * | 2022-06-01 | 2022-09-20 | 北京元意科技有限公司 | 一种音视频作品实时编辑渲染合成的方法和系统 |
CN115243102A (zh) * | 2022-09-21 | 2022-10-25 | 天讯瑞达通信技术有限公司 | 基于Web技术的视频播放方法、装置、设备以及存储介质 |
WO2024060135A1 (zh) * | 2022-09-22 | 2024-03-28 | 京东方科技集团股份有限公司 | 信息播放方法、装置、电子设备和计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110198479B (zh) | 2021-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110198479A (zh) | 一种基于webassembly的浏览器音视频解码播放方法 | |
CN109088887A (zh) | 一种流媒体解码的方法及装置 | |
CA2578190C (en) | Device and method for generating a coded multi-channel signal and device and method for decoding a coded multi-channel signal | |
US20120158984A1 (en) | Streaming digital content with flexible remote playback | |
CN104333808A (zh) | 用于Android及Linux智能电视机上的通用播放器 | |
Carpentier | A new implementation of Spat in Max | |
CN105657524A (zh) | 一种视频间无缝切换的方法 | |
TW201243827A (en) | Frame element length transmission in audio coding | |
CN102074257A (zh) | 软硬件结合解码的通用多媒体播放设备及其播放方法 | |
CN114095784B (zh) | H.265格式视频流转码播放方法、系统、设备及介质 | |
CN111954006A (zh) | 一种用于移动端的跨平台视频播放实现方法及装置 | |
CN106060628A (zh) | 基于DirectShow支持可变编码的方法及系统 | |
KR20120123569A (ko) | 멀티미디어 파일 제어 과정에서 빠른 응답을 구현하는 방법 및 재생 장치 | |
WO2007045187A1 (fr) | Procede, appareil et systeme pour executer la fonction de conversion texte-parole | |
CN113055681A (zh) | 视频解码显示方法,装置,电子设备及存储介质 | |
CN101729827A (zh) | 一种语音服务方法、系统及数字电视接收终端和前端设备 | |
CN108566552B (zh) | 适用于数字机顶盒的多媒体播放方法及系统 | |
CN104023260A (zh) | 硬件解码实现方法、装置及播放器 | |
JP2010268420A (ja) | モバイル端末及びインベッド端末のウェブブラウザ内でフラッシュ基盤のビデオコンテンツの再生方法 | |
US11368745B2 (en) | Processing media data structures | |
CN104717536A (zh) | 一种语音控制的方法和系统 | |
CN103051946A (zh) | 基于Android系统的通用RTSP流播放器 | |
CN102098572B (zh) | 基于flash的自定义流媒体嵌入与播放系统及其实现方法 | |
CN102074239A (zh) | 一种实现声音变速的方法 | |
CN114501149A (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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20210926 Address after: 271000 Langchao science and Technology Park, 527 Dongyue street, Tai'an City, Shandong Province Applicant after: INSPUR SOFTWARE Co.,Ltd. Address before: 250100 Ji'nan hi tech Zone No. 2877, Shandong Province Applicant before: INSPUR GROUP Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |