CN118075562A - 多媒体解码方法、播放方法、装置、电子设备及存储介质 - Google Patents

多媒体解码方法、播放方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN118075562A
CN118075562A CN202410189707.5A CN202410189707A CN118075562A CN 118075562 A CN118075562 A CN 118075562A CN 202410189707 A CN202410189707 A CN 202410189707A CN 118075562 A CN118075562 A CN 118075562A
Authority
CN
China
Prior art keywords
target
video
multimedia file
playing
audio
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
CN202410189707.5A
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.)
Xiaohongshu Technology Co ltd
Original Assignee
Xiaohongshu 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 Xiaohongshu Technology Co ltd filed Critical Xiaohongshu Technology Co ltd
Priority to CN202410189707.5A priority Critical patent/CN118075562A/zh
Publication of CN118075562A publication Critical patent/CN118075562A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

本申请提供一种多媒体解码方法、播放方法、装置、电子设备以及存储介质,通过接收目标网页中待播放的多媒体文件,提取多媒体文件中的视频数据,以及音频数据;响应对预设的多媒体工具库的编译指令,根据预设的编译语言对多媒体文件工具库进行编译,并根据目标网页对应的播放配置信息,通过编译的多媒体文件工具库调用对应的视频解码器对视频数据进行解码,得到目标视频;将所述音频数据输入预设的音频源节点,并通过与音频源节点连接的音频处理节点,对音频数据进行解码,得到目标音频;根据目标视频与目标音频的时序关系得到解码后的目标多媒体文件。本申请能够提高多媒体解码性能。

Description

多媒体解码方法、播放方法、装置、电子设备及存储介质
技术领域
本申请涉及解码播放技术领域,具体涉及一种多媒体解码方法、多媒体播放方法装置、电子设备以及计算机可读存储介质。
背景技术
网页(Web)播放器是用于在网页中播放音频和视频内容的工具。随着互联网速度和技术的提升,对于视频和音频内容的需求也逐渐增加。Web播放器解决了在网页中嵌入并播放多媒体文件内容的问题。
当前的Web播放器,普遍使用浏览器提供的媒体渲染引擎将解码后的音视频数据进行渲染,从而实现音视频播放的功能。
但是,此种音视频解码播放方式,无法适用于大尺寸的音视频文件,导致音视频解码性能较为低下,进而无法保证音视频高质量播放,出现视频卡顿、音画不同步等问题。
发明内容
本申请的实施例提供了一种多媒体解码方法、多媒体播放方法、装置、电子设备以及计算机可读存储介质,旨在提高多媒体文件解码播放性能。
第一方面,本申请的实施例提供了一种多媒体解码方法,包括:
接收目标网页中待播放的多媒体文件,提取所述多媒体文件中的视频数据,以及与所述视频数据关联的音频数据;
响应对预设的多媒体工具库的编译指令,根据预设的编译语言对所述多媒体文件工具库进行编译,并根据所述目标网页对应的播放配置信息,通过编译的多媒体文件工具库调用对应的视频解码器对所述视频数据进行解码,得到目标视频,其中,所述播放配置信息包含浏览器信息和播放设备信息中的至少一个;
将所述音频数据输入预设的音频源节点,并通过与所述音频源节点连接的音频处理节点,对所述音频数据进行解码,得到目标音频;
根据所述目标视频与目标音频的时序关系得到解码后的目标多媒体文件。
第二方面,本申请的实施例提供了一种多媒体播放方法,包括:
接收目标网页中待播放的多媒体文件,根据所述多媒体文件的数据格式,确定目标下载器;
提取通过所述目标下载器下载的所述多媒体文件中的视频数据,以及与所述视频数据关联的音频数据;
响应对预设的多媒体工具库的编译指令,根据预设的编译语言对所述多媒体文件工具库进行编译,并根据所述目标网页对应的播放配置信息,通过编译的多媒体文件工具库调用对应的视频解码器对所述视频数据进行解码,得到目标视频,其中,所述播放配置信息包含浏览器信息和播放设备信息中的至少一个;
将所述音频数据输入预设的音频源节点,并通过与所述音频源节点连接的音频处理节点,对所述音频数据进行解码,得到目标音频;
根据所述目标视频与目标音频之间的时序关系得到解码后的目标多媒体文件,并在所述目标网页渲染目标多媒体文件进行播放。
第三方面,本申请的实施例提供了一种多媒体解码装置,包括:
第一提取模块,用于接收目标网页中待播放的多媒体文件,提取所述多媒体文件中的视频数据,以及与所述视频数据关联的音频数据;
第一解码模块,用于响应对预设的多媒体工具库的编译指令,根据预设的编译语言对所述多媒体文件工具库进行编译,并根据所述目标网页对应的播放配置信息,通过编译的多媒体文件工具库调用对应的视频解码器对所述视频数据进行解码,得到目标视频,其中,所述播放配置信息包含浏览器信息和播放设备信息中的至少一个;
第二解码模块,用于将所述音频数据输入预设的音频源节点,并通过与所述音频源节点连接的音频处理节点,对所述音频数据进行解码,得到目标音频;
第三解码模块,用于根据所述目标视频与目标音频的时序关系得到解码后的目标多媒体文件。
第四方面,本申请的实施例提供了一种多媒体播放装置,包括:
第一确定模块,用于接收目标网页中待播放的多媒体文件,根据所述多媒体文件的数据格式,确定目标下载器;
第二提取模块,用于提取通过所述目标下载器下载的所述多媒体文件中的视频数据,以及与所述视频数据关联的音频数据;
第四解码模块,用于响应对预设的多媒体工具库的编译指令,根据预设的编译语言对所述多媒体文件工具库进行编译,并根据所述目标网页对应的播放配置信息,通过编译的多媒体文件工具库调用对应的视频解码器对所述视频数据进行解码,得到目标视频,其中,所述播放配置信息包含浏览器信息和播放设备信息中的至少一个;
第五解码模块,用于将所述音频数据输入预设的音频源节点,并通过与所述音频源节点连接的音频处理节点,对所述音频数据进行解码,得到目标音频;
播放模块,用于根据所述目标视频与目标音频之间的时序关系得到解码后的目标多媒体文件,并在所述目标网页渲染目标多媒体文件进行播放。
第五方面,本申请的实施例提供了一种电子设备,包括处理器和存储器,所述存储器存储有多条指令;所述处理器从所述存储器中加载指令,以执行上述多媒体解码方法和多媒体播放方法的步骤。
第六方面,本申请的实施例提供了一种计算机可读存储介质,包括处理器和存储器,所述存储器存储有多条指令;所述处理器从所述存储器中加载指令,以执行上述多媒体解码方法和多媒体播放方法的步骤。
本申请的实施例的有益效果:
相比于现有技术中直接对多媒体文件进行解码,本实施例在从多媒体文件中提取视频数据和音频数据后,采用对应的解码方案分别对视频数据和音频数据进行解码,得到解码的多媒体文件并渲染播放,通过将视频数据和音频数据针对性解码的方式,提高了视频解码和音频解码的解码性能,既能够高效处理视频解码,也能够支持更加复杂的音频处理操作,保证了解码的多媒体解码流畅性以及音视频质量,避免出现播放过程中出现音视频不同步以及卡顿等问题,在此基础上,本申请实施例也提高了用户的观看体验。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例中多媒体播放架构示意图;
图2是本申请实施例中提供的多媒体解码流程示意图;
图3是本申请实施例中提供的多媒体播放流程示意图;
图4是本申请实施例中提供的多媒体解码装置结构示意图;
图5是本申请实施例中提供的多媒体播放装置结构示意图;
图6是本申请实施例中提供的电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。此外,应当理解的是,此处所描述的具体实施方式仅用于说明和解释本申请,并不用于限制本申请。在本申请中,在未作相反说明的情况下,使用的方位词如“上”和“下”通常是指装置实际使用或工作状态下的上和下,具体为附图中的图面方向;而“内”和“外”则是针对装置的轮廓而言的。同时,在本申请实施例的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个特征。在本申请实施例的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
Web播放器是用于在网页中播放音频和视频内容的工具,Web播放器解决了如何在网页中嵌入并播放多媒体文件的问题,其在各个领域都有广泛的应用,为用户提供了在网页上观看视频和音频的便利性,普遍应用于在线视频服务、教育培训平台、数字广告、企业内部培训、社交媒体等行业。通过Web播放器,用户可以在不同场景下享受高质量的多媒体文件体验。
而在本申请中,根据上述背景技术说明,当前的Web播放器,普遍使用浏览器提供的媒体渲染引擎将解码后的音视频数据进行渲染,从而实现音视频播放的功能。但是,此种音视频解码播放方式,无法适用于大尺寸的音视频文件,导致音视频同步解码过程中耗时长、解码效率低下,进而导致视频播放卡顿以及音画不同步等问题。
除此之外,现有的开源Web播放器框架已经无法满足日益增长的用户需求和不断变化的技术标准,当前存在的开源播放器架构,如video.js、hls.js等,其整体的兼容性以及扩展性不足,且在整体的性能等方面有所不足,导致这些框架在特定场景下(比如大音视频文件)可能无法满足用户需求,导致播放体验下降或功能受限。
比如:
(1)缺乏可扩展性和兼容性;当前许多Web播放器在各种设备、不同浏览器和操作系统上的兼容性不足,不能确保能够顺利地播放视频内容,并且对许多视频格式和编码方式的支持不足,比如,当前许多Web播放器不支持软解h265格式视频;
(2)解码性能和效率;当前的一些解码方案,比如将音视频输入同一解码器进行解码,效率较低,很容易出现视频播放卡顿等问题,因此,本申请实施例可以针对Web播放器的解码性能进行优化,减少解码耗时、提高解码效率,以确保流畅播放和更低的延迟;
(3)流畅度以及交互体验;Web播放器在流畅度和用户交互体验方面面临多重挑战,因此,如何确保Web播放器视频加载迅速、播放流畅且不间断、同时兼顾全屏播放和非全屏状态下的交互易用性,是十分必要的,而本申请实施例可以优化自适应码率和缓冲管理,提供友好的错误处理和恢复机制,确保用户能够顺畅地观看视频并提供良好的用户体验。
总的来说,现有的Web播放器除了解码性能较为低下,还缺乏可扩展性和兼容性,并且也无法保证音视频播放的流畅性和用户交互体验。
因此,在本申请实施例中提供了一种多媒体解码方法、装置、电子设备及存储介质,旨在提高Web播放器的解码性能,与此同时,本申请实施例还能够提升Web播放器的可扩展性以及兼容性,普遍适用于多类型格式视频,另外,本申请实施例还能够保证音视频播放流畅度,也有效提升用户交互体验。
本实施例的多媒体解码方法可以应用于终端设备,该终端设备可以包含Web播放器,也可以包含手机、平板、计算机等设备,也可以是服务器等网络设备,不对终端设备类型做具体限定,本申请实施例的音视频播放架构,如图1所示,本申请实施例为不同的音视频格式配置了对应的下载器、数据管理器、音视频解码方案,进而对解码后的音视频进行渲染并播放,通过本申请实施例中的音视频解码播放方式,能够提高Web播放器的解码性能,并提升Web播放器的可扩展性以及兼容性,还能够保证音视频播放流畅度,有效提升用户交互体验。
具体地,本申请实施例中的多媒体解码方法,包括以下步骤:
S10,接收目标网页中待播放的多媒体文件,提取所述多媒体文件中的视频数据,以及与所述视频数据关联的音频数据;
需要说明的是,在本实施例中,目标网页可以为终端设备当前打开并使用的页面,比如,直播网页(比如商品直播网页、课程直播网页等),也可以是任意能够进行音视频播放的其他网页。
用户可以利用终端设备选择待播放的多媒体文件,比如,用户可以点击直播连接,进入直播。
而终端设备可以接收用户选择的待播放的多媒体文件,并提取该多媒体文件中的视频数据以及与该视频数据关联的音频数据。其中,在本实施例中,视频数据与音频数据之间的关联关系可以理解为两者在时间维度存在对应关系,即,在音视频播放过程中保证音画同步播放。
需要说明的是,相比于直接对多媒体文件进行解码,在本实施例中,首先将多媒体文件中的视频数据和音频数据划分至两通道,以采用对应的解码方案分别对视频数据和音频数据进行解码,极大程度上提高了多媒体文件的解码性能,尤其适用于时长较长、文件较大的多媒体文件,提高了音视频解码效率。
S20,响应对预设的多媒体工具库的编译指令,根据预设的编译语言对所述多媒体文件工具库进行编译,并根据所述目标网页对应的播放配置信息,通过编译的多媒体文件工具库调用对应的视频解码器对所述视频数据进行解码,得到目标视频,其中,所述播放配置信息包含浏览器信息和播放设备信息中的至少一个;
在本实施例中,终端设备在从多媒体文件中提取到视频数据和对应的音频数据后,可以根据所述目标网页对应的播放配置信息,通过编译的多媒体文件调用对应的视频解码器,对上述视频数据进行解码,得到目标视频,其中,该
比如,在本实施例中,终端设备可以在目标网页的浏览器中,使用WebAssembly编译的FFmpeg(即本实施例中的多媒体文件工具库),调用对应的视频解码器,对提取的视频数据进行解码。
其中,FFmpeg提供了各种编解码器,可以对音频和视频文件进行解码(将文件解析为原始的音视频数据)和编码(将原始的音视频数据转换为特定格式的音视频文件),支持多种常见的音视频编解码格式包含H.264、AAC、MP3、VP9等。而WebAssembly(后续可以简称为Wasm)是一种低级编程语言,可以在现代Web浏览器中运行。FFmpeg可以编译成WebAssembly的形式,实现了在Web浏览器中使用FFmpeg库来进行音视频处理、转码等操作,而无需服务器端的支持。
在此基础上,通过将WebAssembly与FFmpeg结合,构建了用于浏览器中进行视频解码的方案,有效利用了Wasm的性能优势,通过在浏览器中使用Wasm编译的FFmpeg库,可以实现对视频文件进行高效解码。
其中,WebAssembly与FFmpeg结合进行视频数据解码,具体可以包含以下步骤:
(1)加载FFmpeg和WebAssembly模块:在项目中加载经过编译的FFmpeg和WebAssembly模块,比如可以通过在HTML中引入<script>标签或者使用模块导入方式;
(2)初始化FFmpeg:在JavaScript中初始化FFmpeg模块,包括调用FFmpeg模块提供的初始化函数,准备解码器和相关的运行环境;
(3)配置解码参数:提供视频解码所需的参数,如视频文件路径、解码后帧的格式等;
(4)执行解码操作:调用FFmpeg模块的解码函数,传递解码参数,并开始执行视频解码,此时FFmpeg将读取视频数据,解码视频帧,并将解码后的帧数据保存在内存中。
(5)获取解码后的数据:通过FFmpeg模块提供的接口,可以从内存中读取解码后的视频帧数据,以将解码后的视频帧数据用于后续的图形渲染、图像处理、视频播放等应用逻辑。
(6)释放资源:在完成所有操作后,释放FFmpeg模块占用的资源,以确保正确的清理和退出。
总的来说,在本实施例中,可以利用WebAssembly编译的FFmpeg在目标网页的浏览器中对视频数据进行解码,充分利用了Wasm的性能优势,通过在浏览器中使用Wasm编译的FFmpeg库,实现对视频文件的高效解码。
S30,将所述音频数据输入预设的音频源节点,通过与所述音频源节点连接的音频处理节点,对所述音频数据进行解码,得到目标音频;
在本实施例中,终端设备在提取到多媒体文件中的视频数据和音频数据后,除了可以利用WebAssembly编译的FFmpeg对视频数据进行解码,还可以根据预设的音频处理节点对上述音频数据进行解码,得到目标音频。
具体地,例如,在本实施例中,终端设备可以通过AudioContext对音频数据进行解码,可以包含以下流程:
(1)创建AudioContext对象:首先,创建一个AudioContext对象,表示音频处理的上下文环境;
(2)创建音频源节点:使用AudioContext创建音频源节点,并将获取到的音频数据作为输入;
(3)创建音频处理节点:创建音频处理节点,比如音频效果节点、分析节点等;
(4)连接音频节点:将音频源节点和音频处理节点连接到AudioContext的目标节点,通常是扬声器,并在需要播放音频时,则调用音频源节点的start()方法开始播放音频。
值得注意的是,在本实施例中,对于音频数据,并未利用FFmpeg进行解码,而是直接将获取到的音频数据给到AudioContext进行处理,不仅能够实时控制和处理音频数据,还可以创建和管理音频流、应用特效、调整音频参数等,从而实现更复杂的音频处理操作。
本实施例上述利用WebAssembly编译的FFmpeg对视频数据进行解码且利用AudioContext对音频数据进行解码的解码方式可以称之为软解码方式,即,在软件层面对音频或视频进行解码的过程,普遍使用软件算法来实现解码操作。与之不同的硬解码,则是指使用专用的硬件(如图形处理器、视频解码器等)来执行解码操作,硬件专门设计用于处理特定类型的数据,具有更高的效率和性能。
S40,根据所述目标视频与目标音频的时序关系得到解码后的目标多媒体文件。
在本实施例中,终端设备在分别将提取到的视频数据和音频数据进行解码得到目标视频和目标音频后,可以根据目标视频和目标音频之间的时序关系,得到解码后的目标多媒体文件,进而,可以在目标网页的浏览器上渲染该目标多媒体文件进行播放。
可以理解的是,根据上述说明,本实施例利用WebAssembly编译的FFmpeg对视频数据进行解码,并利用AudioContext对音频数据进行解码,最终可以根据目标视频和目标音频得到解码后的目标多媒体文件并播放。
在本实施例中,终端设备可以接收用户选择的待播放的多媒体文件,并提取该多媒体文件中的视频数据以及与该视频数据关联的音频数据。终端设备在从多媒体文件中提取到视频数据和对应的音频数据后,可以通过预编译的视频解码器对上述视频数据进行解码,得到目标视频,还可以根据预设的音频处理节点对上述音频数据进行解码,得到目标音频。进而根据目标视频和目标音频之间的时序关系,得到解码后的目标多媒体文件,并在目标网页的浏览器上渲染该目标多媒体文件进行播放。
因此,相比于现有技术中直接对多媒体文件进行解码,本实施例在从多媒体文件中提取视频数据和音频数据后,采用对应的解码方案分别对视频数据和音频数据进行解码,得到解码的多媒体文件并渲染播放,通过将视频数据和音频数据针对性解码的方式,提高了视频解码和音频解码的解码性能,既能够高效处理视频解码,也能够支持更加复杂的音频处理操作,保证了解码的多媒体解码流畅性以及音视频质量,避免出现播放过程中出现音视频不同步以及卡顿等问题,在此基础上,本申请实施例也提高了用户的观看体验。
在一实施例中,在上述S20中,“根据所述目标网页对应的播放配置信息,通过编译的多媒体文件工具库调用对应的视频解码器对所述视频数据进行解码,得到目标视频”之前,包括:
S40,响应解码链路初始化指令,构建多媒体文件控制器和视频数据处理器,其中,所述多媒体文件控制器包括多个节点容器,所述节点容器包含多个视频处理元素,所述视频处理元素用于控制视频播放;
需要说明的是,在本实施例中,在分别对视频数据和音频数据进行解码之前,用户可以触发解码链路初始化指令,对解码链路进行初始化。
而终端设备可以响应上述解码链路初始化指令,如图1所示,创建多媒体文件控制器,用于接收下载之后的音视频数据,并管理解码之后的数据,同时还进行相关音视频同步的相关工作,并创建视频数据处理器,其主要是使用软解码的方式对视频数据进行解码输出。
其中,可以理解的是,上述多媒体文件控制器包括多个节点容器,每一节点容器包含多个视频处理元素<video>,该视频处理元素<video>用于控制视频播放。
除此之外,在进行解码链路初始化时,还执行以下操作:
(1)创建音视频节点元素并统一添加到相关的父元素容器内。
(2)创建音视频播放的实例,视频播放使用webgl,其能够利用GPU进行硬件加速,通过使用着色器程序对视频帧进行处理和渲染;音频使用AudioContext进行处理,它不仅能够实时控制和处理音频数据,还可以创建和管理音频流、应用特效、调整音频参数等,从而实现更复杂的音频处理操作。
(3)绑定相关事件监听,例如:数据准备完成、时间更新等相关事件。
另外,这个初始化阶段还涉及一些配置,比如视频解码器的参数设置、视频格式的识别以及设置相应的解码器插件等,在此不再赘述。
在此基础上,上述S20中,“根据所述目标网页对应的播放配置信息,通过编译的多媒体文件工具库调用对应的视频解码器对所述视频数据进行解码,得到目标视频”,可以包括:
S201,通过所述多媒体文件控制器接收视频数据,并将视频数据发送至所述视频数据处理器,由所述视频数据处理器识别所述目标网页对应的播放配置信息;
S202,根据所述播放配置信息,通过编译的多媒体文件工具库,调用对应的视频解码器;
S203,根据所述视频解码器,对所述视频数据进行解码,得到目标视频。
在本实施例中,根据上述说明,在进行解码链路初始化后,如图2所示,可以由多媒体文件控制器接收提取的视频数据,并将该视频数据发送至所述视频数据处理器,视频数据处理器可以识别该视频数据的播放配置信息,播放配置信息包括浏览器信息、播放设备信息,还可以包括视频文件路径、视频格式和视频存储格式等,比如,如图2所示,对于不同的视频格式,比如Ts、MP4和FLV等,通过编译的多媒体文件工具库,可以调用所需的视频解码器对视频数据进行解码,得到目标视频。
在此基础上,可以将目标视频发送至视频数据处理器,由视频数据处理器将目标视频发送至多媒体文件控制器,通过多媒体文件控制器控制目标视频的渲染和播放。
因此,在本实施例中,终端设备可以预先构建解码链路,对提取到的视频数据进行视频软解码,通过wasm封装FFmpeg和视频解码器,相比于仅利用FFmpeg进行音视频解码,本实施例极大程度提高了视频解码性能。
进一步地,上述S202中,“根据所述播放配置信息,通过编译的多媒体文件工具库,调用对应的视频解码器”,可以包括:
S2021,根据所述浏览器信息获取目标网页中浏览器所支持的解码器类型以及解码速率,并根据所述播放设备信息获取播放设备的设备类型;
S2022,若所述播放设备的设备类型为移动端设备类型,则通过编译的多媒体文件工具库,调用的视频解码器为硬件解码器;或者,
S2023,若所述播放设备的设备类型为桌面端设备类型,则根据所述解码器类型和所述解码速率,调用软件解码器或者硬件解码器作为视频解码器。
需要说明的是,在本实施例中,可以根据不同的客户端、浏览器和视频格式等来确定播放方式,在这个过程中,通常会考虑使用硬件解码方式还是软件解码方式,根据上述说明,硬解码利用设备的硬件资源来直接解码视频,而软解码则依赖于软件来解码视频,在某些情况下可能需要更多的系统资源,但也能在更多设备上实现兼容性。
在此基础上,终端设备可以根据上述浏览器信息获取目标网页所支持的解码器以及解码速率,并根据播放设备信息获取播放设备的设备类型。
进而,若是播放设备的设备类型为移动端设备类型,比如手机,在移动端为了保证兼容性,以及播放体验,可以通过编译的多媒体文件工具库,优先调用硬件解码器为视频解码器。
若是播放设备的设备类型为桌面端设备类型,比如PC,则可以根据上述解码器类型和解码速率,调用软件解码器或者硬件解码器为视频解码器。
因此,在本实施例中,对于不同类型的播放设备以及目标网页所支持的解码器类型以及解码速率,可以采用调用对应的视频解码器,既考虑了系统硬件资源,也考虑了系统兼容性,实现了音视频播放的跨平台兼容性,解决了不同浏览器对多媒体格式的支持差异,保证在各种设备上能够稳定播放。
进一步地,上述S2023中,“根据所述解码器类型和所述解码速率,调用软件解码器或者硬件解码器作为视频解码器”,可以包括:
步骤a,若所述目标网页支持的视频解码器类型包含硬件解码器和软件解码器,则获取所述目标网页中浏览器支持的硬件解码器的第一解码速率以及所述软件解码器的第二解码速率;
步骤b,将所述第一解码速率和所述第二解码速率中的更快的解码速率对应的解码器设置为所述视频解码器。
需要说明的是,在本实施例中,根据上述说明,若播放设备的设备类型为桌面端设备类型,比如PC,PC端可以根据浏览器类型来对播放方式进行选择,可以理解的是,chrome浏览器、safari浏览器、QQ浏览器以及Eage浏览器等浏览器在性能资源上存在区别,各浏览器能够支持的解码器的解码速率是存在显著区别的,因此,本实施例可以从浏览器所支持的视频解码速率维度,选择对应的视频解码器。
具体地,例如,若目标网页支持的视频解码器类型包含硬件解码器和软件解码器,则获取所述目标网页中浏览器提供的硬件解码器的第一解码速率以及软件解码器的第二解码速率。进而,获取上述第一解码速率和第二解码速率中的更快的解码速率对应的解码器作为软解码方式中的视频解码器。
除此之外,在本实施例中,PC端不同浏览器在使用软硬解时会依据视频的编码格式来确认,比如,在chrome和safari上使用硬解的方式,其他浏览器使用软解的方式。
因此,在本实施例中,桌面端设备可以根据浏览器性能,选择对应的视频解码器,实现了软解码和硬解码的灵活切换,保证了视频解码速率,进而有效提升后续音视频播放高质量流畅播放。
进一步地,上述S40,“根据所述目标视频与目标音频的时序关系得到解码后的目标多媒体文件”之后,还可以包括:
S60,获取所述目标网页对应的播放参数,其中,所述播放参数包含网络传输速率、播放设备的播放性能和所述目标多媒体文件的数据源中的至少一个;
S70,根据所述播放参数,确定所述目标多媒体文件对应的目标清晰度和目标码率;
S80,按照所述目标清晰度和所述目标码率,将所述目标多媒体文件经由所述目标网页进行渲染播放。
在本实施例中,终端设备在根据目标视频与目标音频的时序关系得到解码后的目标多媒体文件后,可以获取目标网页对应的播放参数,该播放参数包括但不限于:网页传输速率、播放设备的播放性能和目标多媒体文件的数据源。
进而,终端设备可以根据上述播放参数,确定目标多媒体文件对应的目标清晰度和目标码率。
可以理解的是,在视频播放之前确定清晰度和码率是确保播放流畅性和用户体验的关键步骤,需要根据设备性能、网络状况以及视频源的提供情况来选择最合适的清晰度和码率,以确保视频的连续播放和高质量观看体验。
在此基础上,终端设备可以按照上述目标清晰度和目标码率,将目标多媒体文件经由目标网页中的Web播放器进行渲染播放。
具体地,例如,在WebGL中绘制视频,可以包含以下步骤:
(1)获取WebGL上下文:使用<canvas>元素获取WebGL上下文,作为进行图形渲染的基础;
(2)创建纹理对象:在WebGL中创建一个纹理对象,用于存储视频帧的像素数据,该纹理对象可以作为图像的载体;
(3)初始化着色器程序:编写顶点着色器和片元着色器,并创建一个着色器程序。着色器程序负责处理视频帧的渲染逻辑;
(4)设置纹理参数:配置纹理的一些参数,例如过滤方式和环绕方式。这确保了纹理能够被正确地映射到图形上;
(5)将视频帧绘制到纹理:在每一帧更新时,将视频帧数据绘制到WebGL的纹理上;
(6)绘制纹理到画布:使用WebGL上下文将纹理渲染到<canvas>元素上。
通过上述操作,本申请实施例可以实现目标多媒体文件中的视频数据的渲染显示,通过在WebGL中绘制视频,WebGL能够利用GPU进行硬件加速,使用着色器程序对视频帧进行处理和渲染,本实施例能够支持更复杂的视频效果和滤镜,提高视频播放的性能和质量。
进一步地,上述S10,“接收目标网页中待播放的多媒体文件”之后,还可以包括:
S90,通过显示所述目标网页的播放设备的硬件解码器,对所述多媒体文件进行解码,得到目标多媒体文件;
S100,根据预设视频元素,将所述目标多媒体文件在所述目标网页进行渲染并播放;或者,
S110,接收多媒体文件控制请求,对所述目标多媒体文件的播放参数进行调整,并将调整的目标多媒体文件传递至所述预设视频元素,根据所述预设视频元素,将调整的目标多媒体文件在所述目标网页进行渲染并播放。
值得注意的是,根据上述说明,上述利用WebAssembly编译的FFmpeg对视频数据进行解码且利用AudioContext对音频数据进行解码的解码方式可以称之为软解码方式,与之不同的硬解码,则是指使用专用的硬件(如图形处理器、视频解码器等)来执行解码操作,硬件专门设计用于处理特定类型的数据,具有更高的效率和性能。
而在本实施例中,若是采用硬解码方式对多媒体文件进行解码,则无需将视频数据和音频数据分开处理,而是可以直接利用显示上述目标网页的播放设备(比如手机、PC等)的硬件解码器,对多媒体文件进行解码,得到目标多媒体文件。
进而,如图2所示,根据预设视频元素<video>,将目标多媒体文件在目标网页进行渲染并播放,或者,利用MSE(媒体源扩展,Media Source Extensions)进行多媒体播放,其中,MSE是一种在网页上通过JavaScript动态生成和管理媒体流的技术,MSE允许开发者通过JavaScript控制媒体流的获取和播放,而不仅仅依赖于浏览器默认的<video>元素。
即,用户可以通过JavaScript触发多媒体文件控制请求,而终端设备可以对目标多媒体文件的播放参数进行调整,比如对音量、音效等参数进行调整,并将调整的目标多媒体文件传递至上述<video>元素,根据<video>元素将调整的目标多媒体文件在目标网页进行渲染并播放。
因此,在本实施例中,对于硬解码和软解码提供了不同的多媒体解码策略,支持多种音频和视频格式,并与各种编解码器兼容,以便在不同场景下播放各种类型的多媒体内容,并在缓冲、码率自适应和解码效率等方面都进行了全面的优化,同时提供了用户友好的界面和控制功能,比如播放/暂停、音量调节、全屏模式等,以及与其他元素的交互性,让用户能够灵活地控制播放器。
进一步地,上述S20,“通过编译的多媒体文件工具库调用对应的视频解码器对所述视频数据进行解码,得到目标视频”之后,还可以包括:
S120,按照预设色彩空间存储格式,将所述目标视频存储于预设缓存空间;
在此基础上,上述S40中,“根据所述目标视频与目标音频的时序关系得到解码后的目标多媒体文件”,可以包括:
S401,根据所述目标视频与目标音频之间的时序关系,提取所述预设缓存空间中视频数据和对应的音频数据,得到解码后的目标多媒体文件。
在本实施例中,终端设备在调用对应的视频解码器对视频数据进行解码,得到目标视频后,可以按照预设色彩空间存储格式,将目标视频存储于预设空间。
具体地,例如,本实施例中的预设色彩空间存储格式可以为yuv格式,其中,YUV是一种颜色编码格式,通常用于存储彩色图像和视频数据,它将图像分成亮度(Y)和色度(U、V)三个分量,每个分量都有自己的采样率和分辨率。Y代表亮度(Luminance),U和V分别代表蓝色色度(Chrominance Blue)和红色色度(Chrominance Red)。
进而,终端设备在利用WebAssembly编译的FFmpeg对视频数据进行解码,并利用AudioContext对音频数据进行解码后,可以根据目标视频与目标音频之间的时序关系,提取上述预设缓存空间中视频数据和对应的音频数据,得到解码后的目标多媒体文件。
因此,在本实施例中,采用yuv格式存储解码后的视频可以有效减少视频数据存储空间,进而可以优化多媒体播放性能,保证音视频播放流畅性,避免存储空间不足所导致的多媒体解码以及播放错误等问题。
在一实施例中,本实施例还提供了一种多媒体播放方法,本实施例的多媒体播放方法可以应用于终端设备,该终端设备可以包含Web播放器,也可以包含手机、平板、计算机等设备,也可以是服务器等网络设备,本实施例后续Web播放器为例,对各实施例进行详细说明。
本实施例中的多媒体播放方法,如图3所示,具体包括以下步骤:
步骤1,接收目标网页中待播放的多媒体文件,根据所述多媒体文件的数据格式,确定目标下载器;
需要说明的是,在本实施例中,如图1所示,对于不同的多媒体文件的数据格式,Web播放器采用的下载器也是不同的,比如,本实施例提供了HLS下载器、MP4下载器、FLV下载器等。
在此基础上,Web播放器可以在接收目标网页中待播放的多媒体文件后,识别多媒体文件的数据格式,进而可以数据格式,选择对应的目标下载器。
在本实施例中,通过针对视频封装格式的不同特点,选择并初始化相应的下载器,能够确保不同封装格式的视频能够被准确解析和处理,下载器的初始化涉及多个方面,包括但不限于对视频格式的识别、选择适当的解析器、建立与视频源的连接以及处理特定格式所需的额外参数。
比如,依据不同封装格式的视频,选择合适的下载器,目前播放器支持的格式有HLS/FLV/Mp4,下载器从CDN进行数据下载,并将响应的资源传递到对应的数据管理模块,比如图2所示的HLS数据管理器、MP4数据管理器、FLV数据管理器等。另外,下载器中还包含相关的解析器,其在收到原始的视频数据后,按照MP4/FLV/HLS的封转协议,进行解封装,将视频容器中封装的音视频编码数据取出,发送给解码器,进行解码。
另外,在本实施例中,在接收目标网页中待播放的多媒体文件,根据多媒体文件的数据格式,确定目标下载器之前,Web播放器还可以进行播放器初始化,在这个过程中,播放器被设置和调整,以准备开始视频播放,这包括创建播放器实例、加载必要的插件和扩展,设置播放界面和控件,并构建整个播放链路,以确保视频能够以高质量、稳定、流畅地播放等,具体可以包括以下流程:
(1)创建播放器对象:首先,需要创建一个自定义的播放器对象。并依据视频类型选择合适的下载器,下载器从CDN进行数据下载。同时,还需要依据不同的终端选择不同的解码和播放方式,例如可以将<video>元素与播放器对象关联,进而对视频进行解码和播放;
(2)监听播放器事件:注册事件监听器,以便在播放器状态发生变化时执行相应的操作。常见事件包括播放、暂停、结束、时间更新等;
(3)配置和定制:根据当前播放需求,配置播放器的各种参数,例如视频源、控制栏的显示与隐藏、音量控制、全屏功能等。可以应用样式或进行主题定制;
(4)错误处理:处理播放器初始化过程中可能发生的错误,例如视频源不可用、浏览器不支持某些功能等。
(5)启动播放器:在所有配置和定制完成后,启动播放器开始播放视频。这可以通过调用播放器对象的播放方法或通过用户交互触发。
步骤2,提取通过所述目标下载器下载的所述多媒体文件中的视频数据,以及与所述视频数据关联的音频数据;
在本实施例中,Web播放器可以利用目标下载器,将多媒体文件下载至本地,进而,可以提取下载的多媒体文件中的视频数据,以及与该视频数据关联的音频数据。
具体地,例如,根据上述实施例说明,用户可以利用终端设备选择待播放的多媒体文件,比如,用户可以点击直播连接,进入直播。而终端设备可以接收用户选择的待播放的多媒体文件,并提取该多媒体文件中的视频数据以及与该视频数据关联的音频数据。
步骤3,响应对预设的多媒体工具库的编译指令,根据预设的编译语言对所述多媒体文件工具库进行编译,并根据所述目标网页对应的播放配置信息,通过编译的多媒体文件工具库调用对应的视频解码器对所述视频数据进行解码,得到目标视频,其中,所述播放配置信息包含浏览器信息和播放设备信息中的至少一个;
Web播放器还可以浏览器信息和播放设备信息中的至少一个,通过预编译的多媒体文件工具库,调用对应的视频解码器。
具体地,例如,根据上述实施例说明,本实施例中,终端设备可以在目标网页的浏览器中,使用WebAssembly编译的FFmpeg(即本实施例中的多媒体文件工具库),根据目标网页对应的播放配置信息,调用对应的视频解码器,对提取的视频数据进行解码。
步骤4,将所述音频数据输入预设的音频源节点,并通过与所述音频源节点连接的音频处理节点,对所述音频数据进行解码,得到目标音频;
在本实施例中,终端设备在提取到多媒体文件中的视频数据和音频数据后,除了可以利用WebAssembly编译的FFmpeg对视频数据进行解码,还可以根据预设的音频处理节点对上述音频数据进行解码,得到目标音频。
步骤5,根据所述目标视频与目标音频之间的时序关系,经由目标浏览器,将所述目标视频以及目标音频进行播放。
在本实施例中,终端设备在分别将提取到的视频数据和音频数据进行解码得到目标视频和目标音频后,可以根据目标视频和目标音频之间的时序关系,得到解码后的目标多媒体文件,进而,可以在目标网页的浏览器上渲染该目标多媒体文件进行播放。
本实施例在从多媒体文件中提取视频数据和音频数据后,采用对应的解码方案分别对视频数据和音频数据进行解码,得到解码的多媒体文件并渲染播放,通过将视频数据和音频数据针对性解码的方式,提高了视频解码和音频解码的解码性能,既能够高效处理视频解码,也能够支持更加复杂的音频处理操作,保证了解码的多媒体解码流畅性以及音视频质量,避免出现播放过程中出现音视频不同步以及卡顿等问题。本实施例中软解码的具体实施方式,可以参考上述实施例,在此不再赘述。
本实施例还提供一种多媒体解码装置,该多媒体解码装置具体可以集成在终端设备中,例如,如图4所示,该多媒体解码装置可以包括:
第一提取模块1001,用于接收目标网页中待播放的多媒体文件,提取所述多媒体文件中的视频数据,以及与所述视频数据关联的音频数据;
第一解码模块1002,用于响应对预设的多媒体工具库的编译指令,根据预设的编译语言对所述多媒体文件工具库进行编译,并根据所述目标网页对应的播放配置信息,通过编译的多媒体文件工具库调用对应的视频解码器对所述视频数据进行解码,得到目标视频,其中,所述播放配置信息包含浏览器信息和播放设备信息中的至少一个;
第二解码模块1003,用于将所述音频数据输入预设的音频源节点,并通过与所述音频源节点连接的音频处理节点,对所述音频数据进行解码,得到目标音频;
第三解码模块1004,用于根据所述目标视频与目标音频的时序关系得到解码后的目标多媒体文件。
可选地,该多媒体解码装置,还可以包括:
响应模块,用于响应解码链路初始化指令,构建多媒体文件控制器和视频数据处理器,其中,所述多媒体文件控制器包括多个节点容器,所述节点容器包含多个视频处理元素,所述视频处理元素用于控制视频播放;
所述第一解码模块1002,还用于:
通过所述多媒体文件控制器接收视频数据,并将视频数据发送至所述视频数据处理器,由所述视频数据处理器识别所述目标网页对应的播放配置信息;
根据所述播放配置信息,通过编译的多媒体文件工具库,调用对应的视频解码器;
根据所述视频解码器,对所述视频数据进行解码,得到目标视频。
可选地,所述第一解码模块1002,还用于:
根据所述浏览器信息获取目标网页中浏览器所支持的解码器类型以及解码速率,并根据所述播放设备信息获取播放设备的设备类型;
若所述播放设备的设备类型为移动端设备类型,则通过编译的多媒体文件工具库,调用硬件解码器作为视频解码器;或者,
若所述播放设备的设备类型为桌面端设备类型,则根据所述解码器类型和所述解码速率,调用软件解码器或者硬件解码器作为视频解码器。
可选地,所述第一解码模块1002,还用于:
若所述目标网页支持的视频解码器类型包含硬件解码器和软件解码器,则获取所述目标网页中浏览器支持的硬件解码器的第一解码速率以及所述软件解码器的第二解码速率;
将所述第一解码速率和所述第二解码速率中的更快的解码速率对应的解码器设置为所述视频解码器。
可选地,该多媒体解码装置,还可以包括:
获取模块,用于获取所述目标网页对应的播放参数,其中,所述播放参数包含网页传输速率、播放设备的播放性能和所述目标多媒体文件的数据源中的至少一个;
第二确定模块,用于根据所述播放参数,确定所述目标多媒体文件对应的目标清晰度和目标码率;
第二播放模块,用于按照所述目标清晰度和所述目标码率,将所述目标多媒体文件经由所述目标网页进行渲染播放。
可选地,该多媒体解码装置,还可以包括:
第六解码模块,用于通过显示所述目标网页的播放设备的硬件解码器,对所述多媒体文件进行解码,得到目标多媒体文件;
第三播放模块,用于根据预设视频元素,将所述目标多媒体文件在所述目标网页进行渲染并播放;或者,
第四播放模块,用于接收多媒体文件控制请求,对所述目标多媒体文件的播放参数进行调整,并将调整的目标多媒体文件传递至所述预设视频元素,根据所述预设视频元素,将调整的目标多媒体文件在所述目标网页进行渲染并播放。
可选地,该多媒体解码装置,还可以包括:
存储模块,用于按照预设色彩空间存储格式,将所述目标视频存储于预设缓存空间;
所述第三解码模块,还用于:
根据所述目标视频与目标音频之间的时序关系,提取所述预设缓存空间中视频数据和对应的音频数据,得到解码后的目标多媒体文件。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
本实施例还提供一种多媒体播放装置,该多媒体播放装置具体可以集成在终端设备中,例如,如图5所示,该多媒体播放装置可以包括:
确定模块1005,用于接收目标网页中待播放的多媒体文件,根据所述多媒体文件的数据格式,确定目标下载器;
第二提取模块1006,用于提取通过所述目标下载器下载的所述多媒体文件中的视频数据,以及与所述视频数据关联的音频数据;
第四解码模块1007,用于响应对预设的多媒体工具库的编译指令,根据预设的编译语言对所述多媒体文件工具库进行编译,并根据所述目标网页对应的播放配置信息,通过编译的多媒体文件工具库调用对应的视频解码器对所述视频数据进行解码,得到目标视频,其中,所述播放配置信息包含浏览器信息和播放设备信息中的至少一个;
第五解码模块1008,用于将所述音频数据输入预设的音频源节点,并通过与所述音频源节点连接的音频处理节点,对所述音频数据进行解码,得到目标音频;
播放模块1009,用于根据所述目标视频与目标音频之间的时序关系得到解码后的目标多媒体文件,并在所述目标网页渲染目标多媒体文件进行播放。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
相应的,本申请实施例还提供一种电子设备,该电子设备可以为终端,该终端可以为智能手机、平板电脑、笔记本电脑、触控屏幕、游戏机、个人计算机(PC,PersonalComputer)、个人数字助理(Personal Digital Assistant,PDA)等终端设备。或者,电子设备可以为服务器。
如图6所示,图6为本申请实施例提供的电子设备的结构示意图。该电子设备1100包括有一个或者一个以上处理核心的处理器1101、有一个或一个以上计算机可读存储介质的存储器1102及存储在存储器1102上并可在处理器上运行的计算机程序。其中,处理器1101与存储器1102电性连接。本领域技术人员可以理解,图中示出的电子设备结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
处理器1101是电子设备1100的控制中心,利用各种接口和线路连接整个电子设备1100的各个部分,通过运行或加载存储在存储器1102内的软件程序和/或单元,以及调用存储在存储器1102内的数据,执行电子设备1100的各种功能和处理数据,从而对电子设备1100进行整体监控。处理器1101可以是处理器CPU、图形处理器GPU、网络处理器(NetworkProcessor,NP)等,可以实现或者执行本申请实施例中公开的各方法、步骤及逻辑框图。
在本申请实施例中,电子设备1100中的处理器1101会按照如下的步骤,将一个或一个以上的应用程序的进程对应的指令加载到存储器1102中,并由处理器1101来运行存储在存储器1102中的应用程序,从而实现各种功能,例如:
接收目标网页中待播放的多媒体文件,提取所述多媒体文件中的视频数据,以及与所述视频数据关联的音频数据;
响应对预设的多媒体工具库的编译指令,根据预设的编译语言对所述多媒体文件工具库进行编译,并根据所述目标网页对应的播放配置信息,通过编译的多媒体文件工具库调用对应的视频解码器对所述视频数据进行解码,得到目标视频,其中,所述播放配置信息包含浏览器信息和播放设备信息中的至少一个;
将所述音频数据输入预设的音频源节点,并通过与所述音频源节点连接的音频处理节点,对所述音频数据进行解码,得到目标音频;
根据所述目标视频与目标音频的时序关系得到解码后的目标多媒体文件。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
可选的,如图6所示,电子设备1100还包括:触控显示屏1103、射频电路1104、音频电路1105、输入单元1106以及电源1107。其中,处理器1101分别与触控显示屏1103、射频电路1104、音频电路1105、输入单元1106以及电源1107电性连接。本领域技术人员可以理解,图6中示出的电子设备结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
触控显示屏1103可用于显示图形用户界面以及接收用户作用于图形用户界面产生的操作指令。触控显示屏1103可以包括显示面板和触控面板。其中,显示面板可用于显示由用户输入的信息或提供给用户的信息以及电子设备的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。可选的,可以采用液晶显示器(LCD,Liquid Crystal Display)、有机发光二极管(OLED,Organic Light-EmittingDiode)等形式来配置显示面板。触控面板可用于收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板上或在触控面板附近的操作),并生成相应的操作指令,且操作指令执行对应程序。可选的,触控面板可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器1101,并能接收处理器1101发来的命令并加以执行。触控面板可覆盖显示面板,当触控面板检测到在其上或附近的触摸操作后,传送给处理器1101以确定触摸事件的类型,随后处理器1101根据触摸事件的类型在显示面板上提供相应的视觉输出。在本申请实施例中,可以将触控面板与显示面板集成到触控显示屏1103而实现输入和输出功能。但是在某些实施例中,触控面板与触控面板可以作为两个独立的部件来实现输入和输出功能。即触控显示屏1103也可以作为输入单元1106的一部分实现输入功能。
射频电路1104可用于收发射频信号,以通过无线通信与网络设备或其他电子设备建立无线通讯,与网络设备或其他电子设备之间收发信号。
音频电路1105可以用于通过扬声器、传声器提供用户与电子设备之间的音频接口。音频电路1105可将接收到的音频数据转换后的电信号,传输到扬声器,由扬声器转换为声音信号输出;另一方面,传声器将收集的声音信号转换为电信号,由音频电路1105接收后转换为音频数据,再将音频数据输出处理器1101处理后,经射频电路1104以发送给比如另一电子设备,或者将音频数据输出至存储器1102以便进一步处理。音频电路1105还可能包括耳塞插孔,以提供外设耳机与电子设备的通信。
输入单元1106可用于接收输入的数字、字符信息或用户特征信息(例如指纹、虹膜、面部信息等),以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
电源1107用于给电子设备1100的各个部件供电。可选的,电源1107可以通过电源管理装置与处理器1101逻辑相连,从而通过电源管理装置实现管理充电、放电、以及功耗管理等功能。电源1107还可以包括一个或一个以上的直流或交流电源、再充电装置、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
尽管图6中未示出,电子设备1100还可以包括摄像头、传感器、无线保真模块、蓝牙模块等,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本申请实施例提供一种计算机可读存储介质,其中存储有多条计算机程序,该计算机程序能够被处理器进行加载,以执行本申请实施例所提供的任一种多媒体解码方法和多媒体播放方法,该计算机程序可以执行如下多媒体解码方法的步骤:
接收目标网页中待播放的多媒体文件,提取所述多媒体文件中的视频数据,以及与所述视频数据关联的音频数据;
响应对预设的多媒体工具库的编译指令,根据预设的编译语言对所述多媒体文件工具库进行编译,并根据所述目标网页对应的播放配置信息,通过编译的多媒体文件工具库调用对应的视频解码器对所述视频数据进行解码,得到目标视频,其中,所述播放配置信息包含浏览器信息和播放设备信息中的至少一个;
将所述音频数据输入预设的音频源节点,并通过与所述音频源节点连接的音频处理节点,对所述音频数据进行解码,得到目标音频;
根据所述目标视频与目标音频的时序关系得到解码后的目标多媒体文件。
该计算机程序可以执行如下多媒体播放方法的步骤:
接收目标网页中待播放的多媒体文件,根据所述多媒体文件的数据格式,确定目标下载器;
提取通过所述目标下载器下载的所述多媒体文件中的视频数据,以及与所述视频数据关联的音频数据;
响应对预设的多媒体工具库的编译指令,根据预设的编译语言对所述多媒体文件工具库进行编译,并根据所述目标网页对应的播放配置信息,通过编译的多媒体文件工具库调用对应的视频解码器对所述视频数据进行解码,得到目标视频,其中,所述播放配置信息包含浏览器信息和播放设备信息中的至少一个;
将所述音频数据输入预设的音频源节点,并通过与所述音频源节点连接的音频处理节点,对所述音频数据进行解码,得到目标音频;
根据所述目标视频与目标音频之间的时序关系得到解码后的目标多媒体文件,并在所述目标网页渲染目标多媒体文件进行播放。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
其中,该计算机可读存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
由于该计算机可读存储介质中所存储的计算机程序,可以执行本申请实施例所提供的任一种多媒体解码方法和多媒体播放方法,因此,可以实现本申请实施例所提供的任一种多媒体解码方法和多媒体播放方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
在上述多媒体解码装置、多媒体播放装置、计算机可读存储介质、电子设备中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的多媒体解码装置、计算机可读存储介质、计算机程序产品、电子设备及其相应单元的具体工作过程及可带来的有益效果,可以参考如上实施例中多媒体解码方法和多媒体播放方法的说明,具体在此不再赘述。
以上对本申请实施例所提供的一种多媒体解码方法、多媒体播放方法、装置、电子设备、计算机可读存储介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (12)

1.一种多媒体解码方法,其特征在于,所述方法,包括:
接收目标网页中待播放的多媒体文件,提取所述多媒体文件中的视频数据,以及与所述视频数据关联的音频数据;
响应对预设的多媒体工具库的编译指令,根据预设的编译语言对所述多媒体文件工具库进行编译,并根据所述目标网页对应的播放配置信息,通过编译的多媒体文件工具库调用对应的视频解码器对所述视频数据进行解码,得到目标视频,其中,所述播放配置信息包含浏览器信息和播放设备信息中的至少一个;
将所述音频数据输入预设的音频源节点,并通过与所述音频源节点连接的音频处理节点,对所述音频数据进行解码,得到目标音频;
根据所述目标视频与目标音频的时序关系得到解码后的目标多媒体文件。
2.根据权利要求1所述的多媒体解码方法,其特征在于,所述根据所述目标网页对应的播放配置信息,通过编译的多媒体文件工具库调用对应的视频解码器对所述视频数据进行解码,得到目标视频之前,包括:
响应解码链路初始化指令,构建多媒体文件控制器和视频数据处理器,其中,所述多媒体文件控制器包括多个节点容器,所述节点容器包含多个视频处理元素,所述视频处理元素用于控制视频播放;
所述根据所述目标网页对应的播放配置信息,通过编译的多媒体文件工具库调用对应的视频解码器对所述视频数据进行解码,得到目标视频包括:
通过所述多媒体文件控制器接收视频数据,并将视频数据发送至所述视频数据处理器,由所述视频数据处理器识别所述目标网页对应的播放配置信息;
根据所述播放配置信息,通过编译的多媒体文件工具库,调用对应的视频解码器;
根据所述视频解码器,对所述视频数据进行解码,得到目标视频。
3.根据权利要求2所述的多媒体解码方法,其特征在于,所述根据所述视频解码参数,通过编译的多媒体文件工具库,确定对应的视频解码器,包括:
根据所述浏览器信息获取目标网页中浏览器所支持的解码器类型以及解码速率,并根据所述播放设备信息获取播放设备的设备类型;
若所述播放设备的设备类型为移动端设备类型,则通过编译的多媒体文件工具库,调用硬件解码器作为视频解码器;或者,
若所述播放设备的设备类型为桌面端设备类型,则根据所述解码器类型和所述解码速率,调用软件解码器或者硬件解码器作为视频解码器。
4.根据权利要求3所述的多媒体解码方法,其特征在于,所述根据所述解码器类型和所述解码速率,调用软件解码器或者硬件解码器作为视频解码器,包括:
若所述目标网页支持的视频解码器类型包含硬件解码器和软件解码器,则获取所述目标网页中浏览器支持的硬件解码器的第一解码速率以及所述软件解码器的第二解码速率;
将所述第一解码速率和所述第二解码速率中的更快的解码速率对应的解码器设置为所述视频解码器。
5.根据权利要求1所述的多媒体解码方法,其特征在于,所述根据所述目标视频与目标音频的时序关系得到解码后的目标多媒体文件之后,包括:
获取所述目标网页对应的播放参数,其中,所述播放参数包含网页传输速率、播放设备的播放性能和所述目标多媒体文件的数据源中的至少一个;
根据所述播放参数,确定所述目标多媒体文件对应的目标清晰度和目标码率;
按照所述目标清晰度和所述目标码率,将所述目标多媒体文件经由所述目标网页进行渲染播放。
6.根据权利要求1所述的多媒体解码方法,其特征在于,所述接收目标网页中待播放的多媒体文件之后,包括:
通过显示所述目标网页的播放设备的硬件解码器,对所述多媒体文件进行解码,得到目标多媒体文件;
根据预设视频元素,将所述目标多媒体文件在所述目标网页进行渲染并播放;或者,
接收多媒体文件控制请求,对所述目标多媒体文件的播放参数进行调整,并将调整的目标多媒体文件传递至所述预设视频元素,根据所述预设视频元素,将调整的目标多媒体文件在所述目标网页进行渲染并播放。
7.根据权利要求1-6任意一项所述的多媒体解码方法,其特征在于,所述通过编译的多媒体文件工具库调用对应的视频解码器对所述视频数据进行解码,得到目标视频之后,包括:
按照预设色彩空间存储格式,将所述目标视频存储于预设缓存空间;
所述根据所述目标视频与目标音频的时序关系得到解码后的目标多媒体文件,包括:
根据所述目标视频与目标音频之间的时序关系,提取所述预设缓存空间中视频数据和对应的音频数据,得到解码后的目标多媒体文件。
8.一种多媒体播放方法,其特征在于,所述方法,包括:
接收目标网页中待播放的多媒体文件,根据所述多媒体文件的数据格式,确定目标下载器;
提取通过所述目标下载器下载的所述多媒体文件中的视频数据,以及与所述视频数据关联的音频数据;
响应对预设的多媒体工具库的编译指令,根据预设的编译语言对所述多媒体文件工具库进行编译,并根据所述目标网页对应的播放配置信息,通过编译的多媒体文件工具库调用对应的视频解码器对所述视频数据进行解码,得到目标视频,其中,所述播放配置信息包含浏览器信息和播放设备信息中的至少一个;
将所述音频数据输入预设的音频源节点,并通过与所述音频源节点连接的音频处理节点,对所述音频数据进行解码,得到目标音频;
根据所述目标视频与目标音频之间的时序关系得到解码后的目标多媒体文件,并在所述目标网页渲染目标多媒体文件进行播放。
9.一种多媒体解码装置,其特征在于,包括:
第一提取模块,用于接收目标网页中待播放的多媒体文件,提取所述多媒体文件中的视频数据,以及与所述视频数据关联的音频数据;
第一解码模块,用于响应对预设的多媒体工具库的编译指令,根据预设的编译语言对所述多媒体文件工具库进行编译,并根据所述目标网页对应的播放配置信息,通过编译的多媒体文件工具库调用对应的视频解码器对所述视频数据进行解码,得到目标视频,其中,所述播放配置信息包含浏览器信息和播放设备信息中的至少一个;
第二解码模块,用于将所述音频数据输入预设的音频源节点,并通过与所述音频源节点连接的音频处理节点,对所述音频数据进行解码,得到目标音频;
第三解码模块,用于根据所述目标视频与目标音频的时序关系得到解码后的目标多媒体文件。
10.一种多媒体播放装置,其特征在于,包括:
确定模块,用于接收目标网页中待播放的多媒体文件,根据所述多媒体文件的数据格式,确定目标下载器;
第二提取模块,用于提取通过所述目标下载器下载的所述多媒体文件中的视频数据,以及与所述视频数据关联的音频数据;
第四解码模块,用于响应对预设的多媒体工具库的编译指令,根据预设的编译语言对所述多媒体文件工具库进行编译,并根据所述目标网页对应的播放配置信息,通过编译的多媒体文件工具库调用对应的视频解码器对所述视频数据进行解码,得到目标视频,其中,所述播放配置信息包含浏览器信息和播放设备信息中的至少一个;
第五解码模块,用于将所述音频数据输入预设的音频源节点,并通过与所述音频源节点连接的音频处理节点,对所述音频数据进行解码,得到目标音频;
播放模块,用于根据所述目标视频与目标音频之间的时序关系得到解码后的目标多媒体文件,并在所述目标网页渲染目标多媒体文件进行播放。
11.一种电子设备,其特征在于,包括处理器和存储器,所述存储器存储有多条指令;所述处理器从所述存储器中加载指令,以执行如权利要求1~7任一项所述的多媒体解码方法以及如权利要求8所述的多媒体播放方法的步骤。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有多条指令,所述指令适于处理器进行加载,以执行如权利要求1~7任一项所述的多媒体解码方法以及如权利要求8所述的多媒体播放方法的步骤。
CN202410189707.5A 2024-02-20 2024-02-20 多媒体解码方法、播放方法、装置、电子设备及存储介质 Pending CN118075562A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410189707.5A CN118075562A (zh) 2024-02-20 2024-02-20 多媒体解码方法、播放方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410189707.5A CN118075562A (zh) 2024-02-20 2024-02-20 多媒体解码方法、播放方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN118075562A true CN118075562A (zh) 2024-05-24

Family

ID=91110712

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410189707.5A Pending CN118075562A (zh) 2024-02-20 2024-02-20 多媒体解码方法、播放方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN118075562A (zh)

Similar Documents

Publication Publication Date Title
US11336953B2 (en) Video processing method, electronic device, and computer-readable medium
US20230362430A1 (en) Techniques for managing generation and rendering of user interfaces on client devices
KR101496607B1 (ko) 이미지들을 디스플레이하기 위한 무선 소스와 싱크 디바이스 간의 데이터 교환
US8640097B2 (en) Hosted application platform with extensible media format
WO2020248909A1 (zh) 视频解码方法、装置、计算机设备及存储介质
WO2019001347A1 (zh) 移动设备的投屏方法、存储介质、终端及投屏系统
CN111277869B (zh) 视频播放方法、装置、设备和存储介质
CN107645491A (zh) 媒体流传输设备和媒体服务设备
CN105518614A (zh) 用于多屏幕应用程序的屏幕录制
US20140344469A1 (en) Method of in-application encoding for decreased latency application streaming
WO2017080175A1 (zh) 用于多机位的视频播放器、播放系统及播放方法
CN113535063A (zh) 直播页面切换方法、视频页面切换方法、电子设备及存储介质
CN110505511A (zh) 一种在网页中播放视频的方法、装置、系统及计算设备
JP2023522266A (ja) マルチメディアデータ配信の方法、装置、デバイス及び媒体
CN110933495A (zh) 基于嵌入式系统的视频播放方法及装置
CN114040251A (zh) 音视频播放方法、系统、存储介质及计算机程序产品
CN114466246A (zh) 一种视频处理方法及其装置
CN114302176A (zh) 视频播放方法及装置
WO2023024803A1 (zh) 动态封面生成方法、装置、电子设备、介质及程序产品
CN118075562A (zh) 多媒体解码方法、播放方法、装置、电子设备及存储介质
CN114222185B (zh) 视频播放方法、终端设备及存储介质
WO2014024255A1 (ja) 端末および動画再生プログラム
CN113825016A (zh) 视频渲染方法、装置、设备、存储介质及计算机程序产品
CN116261003A (zh) 一种显示设备及基于浏览器的流媒体播放控制方法
CN117812383A (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