CN117834992A - 一种用于Web播放器多种倍速播放的方法、设备及存储介质 - Google Patents
一种用于Web播放器多种倍速播放的方法、设备及存储介质 Download PDFInfo
- Publication number
- CN117834992A CN117834992A CN202311828676.5A CN202311828676A CN117834992A CN 117834992 A CN117834992 A CN 117834992A CN 202311828676 A CN202311828676 A CN 202311828676A CN 117834992 A CN117834992 A CN 117834992A
- Authority
- CN
- China
- Prior art keywords
- speed
- video
- playing
- frame
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 29
- 238000005516 engineering process Methods 0.000 claims abstract description 8
- 230000009191 jumping Effects 0.000 claims abstract description 6
- 238000009877 rendering Methods 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 7
- 238000004458 analytical method Methods 0.000 claims description 3
- 230000009286 beneficial effect Effects 0.000 abstract description 2
- 238000012545 processing Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Landscapes
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本发明涉及网络多媒体技术领域,具体地,涉及一种用于Web播放器多种倍速播放的方法、设备及存储介质。与现有技术相比,本申请提出的技术方案具有如下的有益效果:多倍速支持:提供了更多倍速选择,最高可达16倍速,用户可以根据个人需求选择更快或更慢的播放速度;实时性:通过使用WebAssembly进行解码,提高了视频的解码速度,保证了实时性;流畅性:采用跳跃至下一个关键帧的方式实现倍速提升,确保了视频播放的流畅性。
Description
技术领域
本发明涉及网络多媒体技术领域,具体地,涉及一种用于Web播放器多种倍速播放的方法、设备及存储介质。
背景技术
沙盘随着网络技术的迅猛发展,Web播放器成为广大用户观看在线视频的主要途径之一。然而,在传统的Web播放器中,常常只提供有限的倍速播放选项,无法满足用户对灵活多变的播放速度需求。目前的倍速播放实现通常依赖于浏览器原生支持,其局限性在于不同浏览器可能存在差异,而且提供的倍速选项有限。然而,现有技术在实现多倍速播放时仍存在一些问题:播放效果不稳定,可能出现画面卡顿或音频异常的情况;多倍速播放对硬件资源和性能的要求较高,适用性有限,大多数浏览器最多只能达到3倍速。
发明内容
本发明的目的在于解决现有技术的不足,提供一种用于实现Web播放器多种倍速播放的方法,以便用户更加灵活地选择适合自己的观看速度。
为实现上述目的,本发明提供一种用于Web播放器多种倍速播放的方法,具体步骤如下:
S1.通过JavaScript从网络中拉取视频流,并进行解析切片;
S2.采用WebAssembly技术对视频进行解码和解封装,得到原始的YUV和PCM数据;
S3.将解码后的数据传递给JavaScript进行渲染;
S4.通过调整视频和音频的播放速度来实现倍速播放。
优选的:所述步骤S1包括步骤S11,所述步骤S11具体如下:
S11.使用JavaScript通过网络请求获取视频流,下载m3u8格式文件并进行切片解析,得到最新的切片链接并下载切片。
优选的:所述步骤S2包括步骤S21,所述步骤S21具体如下:
S21.将下载的切片数据送入WebAssembly模块,通过WebAssembly模块集成相应的解封装器和视频解码器,在解封装和解码过程中,从视频流中提取原始的的音频PCM和视频YUV数据以及相对应的显示时间PTSPresentation Time Stamp。
优选的:所述步骤S3包括步骤S31,所述步骤S31具体如下:
S31.对视频和音频数据进行渲染,并根据渲染速度和音视频显示时间PTS进行同步,使得音频和视频的正常播放。
优选的:所述步骤S4包括步骤S41,所述步骤S41具体如下:
S41.根据需要进行倍速切换,在切换时,快速将视频文件跳跃至下一个关键帧。
优选的:所述步骤S41包括步骤S411,所述步骤S411具体如下:
S411.当倍速S的值在(0,1)和(1,3]区间,正常两帧间隔为t1,计算出两帧实际播放时间间隔t=t1/s,前后帧***时间间隔大于t,播放下一帧;倍速s的值为1,开始播放时记录***当前时间为t1,第一帧视频帧PTS为p1,下一帧的PTS为pn,当前***时间为tn,当tn-t1>pn-p1时,播放下一帧;倍速s值在(3,n],n>3区间,GOP为两个视频关键帧之间的帧数,计算单个GOP组内播放帧数量n=GOP/s,每个关键帧播放n帧图像之后跳转到下个关键帧开始播放。
本发明还提供一种计算机设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现上述任一项所述的方法。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项所述的方法。。
与现有技术相比,本申请提出的技术方案具有如下的有益效果:
1.多倍速支持:提供了更多倍速选择,最高可达16倍速,用户可以根据个人需求选择更快或更慢的播放速度。
2.实时性:通过使用WebAssembly进行解码,提高了视频的解码速度,保证了实时性。
3.流畅性:采用跳跃至下一个关键帧的方式实现倍速提升,确保了视频播放的流畅性。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明的第一流程示意图;
图2为本发明的第二流程示意图;
图3为本发明的电子设备的结构示意图;
图4为本发明的计算机可读存储介质的结构示意图。
具体实施方式
以下将结合本发明的附图,对本发明实施例中的技术方案进行清楚、完整的描述和讨论,显然,这里所描述的仅仅是本发明的一部分实例,并不是全部的实例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明的保护范围。
需要说明的是,当组件被称为“固定于”另一个组件,它可以直接在另一个组件上或者也可以存在居中的组件。当一个组件被认为是“连接”另一个组件,它可以是直接连接到另一个组件或者可能同时存在居中组件。当一个组件被认为是“设置于”另一个组件,它可以是直接设置在另一个组件上或者可能同时存在居中组件。本文所使用的术语“垂直的”、“水平的”、“左”、“右”以及类似的表述只是为了说明的目的。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。本文所使用的术语“及/或”包括一个或多个相关的所列项目的任意的和所有的组合。
本发明采用了一种创新的技术解决方案。首先,通过JavaScript(JS)从网络中拉取视频流,并进行解析切片。接着,采用WebAssembly(Wasm)技术对视频进行解码和解封装,得到原始的YUV和PCM数据。最后,将解码后的数据传递给JS进行渲染,实现视频的播放。在倍速提升方面,本发明通过对视频进行快速定位,采用跳跃至下一个关键帧的方法来实现倍速提升。这样的实现方式既保证了视频播放的流畅性,又提供了更多倍速选择的可能性。
以HLS点播流为例如下:
1.视频流拉取与切片解析:
使用JavaScript通过网络请求获取视频流,下载m3u8文件并进行切片解析。解析出最新的切片链接并下载切片到内存,如图1所示。
2.WebAssembly解码与解封装:
将下载的切片数据送入WebAssembly(wasm)模块,在wasm中集成相应的解封装器和视频解码器,例如FFmpeg解封装器和AV1解码器。这可以通过使用现有的开源库并将其编译为wasm模块来实现。
解封装、解码过程将从视频流中提取原始的音频(PCM)和视频(YUV)数据以及相对应的显示时间PTS(Presentation Time Stamp)。如图1所示。
3.JavaScript渲染:
将解封装和解码后的YUV和PCM数据传递给JavaScript层,利用WebGL或其他适当的技术进行视频渲染。音频渲染可以使用Web Audio API。
根据渲染速度和音频视频显示时间PTS进行同步,确保视频和音频的正常播放。如图1所示。
4.倍速提升:
对于倍速提升,通过调整视频和音频的播放速度来实现。
为了确保倍速提升的流畅性,可以通过跳跃至下一个关键帧的方式实现。当用户切换倍速时,***会快速定位到下一个关键帧,从而避免由于快速切换导致的画面失真和音频断裂。可以使用视频的时间戳信息来进行跳跃,并且通过跳转到最接近的关键帧来减小画面失真的可能性。
不同倍速的播放实现如图2所示:
1)倍速s值在(0,1)和(1,3]区间,正常两帧间隔为t1,计算出两帧实际播放时间间隔t=t1/s。
2)倍速s为1,开始播放时记录***当前时间为t1,第一帧视频帧PTS为p1,下一帧的PTS为pn,当前***时间为tn,当tn-t1>pn-p1时,播放下一帧。
3)倍速s值在(3,16]区间,GOP为两个视频关键帧之间的帧数,计算单个GOP组内播放帧数量n=GOP/s,每个关键帧播放n帧图像之后跳转到下个关键帧开始播放。
4)音频帧播放时机通过PTS与视频帧同步。判断当音频PTS小于视频PTS时可以播放。
5.其他优化措施:
为了提高性能和用户体验,可以实现预加载机制,提前加载一定数量的切片,以减少切换倍速时的等待时间。
实现缓冲机制,确保在切换倍速时,***能够缓存足够的视频和音频数据,避免因网络波动导致的卡顿和播放中断。
通过以上实施方式,用户可以在Web播放器中以多种倍速播放视频,并且通过跳跃至下一个关键帧的方式,可以在切换倍速时保持画面的稳定和音频的连续。这种实现方式充分利用了WebAssembly和JavaScript的优势,同时考虑了用户体验和性能的平衡。
本公开的一些实施例,示出了一种电子设备的结构示意图。下面参照图3来详细描述根据本实施例中的实施方法实施的电子设备600。图3显示的电子设备600仅仅是一个示例,不应对本公开技术方案任何实施例的功能和使用范围带来任何限制。
如图3所示,电子设备600以通用计算设备的形式表现。电子设备600的组建可以包括但不限于:至少一个处理单元610、至少一个存储单元620、连接不同平台组件(包括存储单元620和处理单元610)的总线630、显示单元640等。
其中,存储单元存储有程序代码,程序代码可以被处理单元610执行,使得处理单元610执行本实施例中上述方法的实现。
存储单元620可以包括易失性存储单元形式的可读介质,例如随机存取单元(RAM)6201和/或高速缓存存储单元6202,可以进一步包括只读存储单元(ROM)6203。
存储单元620还可以包括具有一组(至少一个)程序模块6205的程序/实用工具6204,这样的程序模块6205包括但不限于:操作***、一个或多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线630可以表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、***总线、图像加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备600也可以与一个或多个外部设备700(例如键盘、指向设备、蓝牙设备等)通信,还可以与一个或者多个使得用户与该电子设备600交互的设备通信,和/或与使得该电子设备能与一个或多个其他计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口650进行。并且,电子设备600还可以通过网络适配器660与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。网络适配器660可以通过总线630与电子设备600的其他模块通信。应当明白,尽管图3中未示出,可以结合电子设备600使用其他硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID***、磁带驱动器以及数据备份存储平台等。
在本实施例中,还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时能够实现上述方法。
尽管本实施例未详尽地列举其他具体的实施方法,但在一些可能的实施方法中,本公开技术方案说明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在终端设备上运行时,程序代码用于使终端设备执行根据本公开技术方案各种实施例中实施方法的具体步骤。
图4根据本公开的一些实施例示出了一种计算机可读存储介质的结构示意图。如图4所示,其中描述了根据本公开技术方案的实施方法中用于实现上述方法的程序产品800,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。当然,依据本实施例产生的程序产品不限于此,在本公开技术方案中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读存储介质可以包括在基带中或者作为载波一区域传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开技术方案操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如C语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、区域地在用户设备上执行、作为一个独立的软件包执行、区域在用户计算设备上区域在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,以及对于上述实施例一个或多个进行组合实施例,本领域技术人员可以在权利要求的范围内做出各种变化或修改或组合,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。
Claims (8)
1.一种用于Web播放器多种倍速播放的方法,其特征在于,具体步骤如下:
S1.通过JavaScript从网络中拉取视频流,并进行解析切片;
S2.采用WebAssembly技术对视频进行解码和解封装,得到原始的YUV和PCM数据;
S3.将解码后的数据传递给JavaScript进行渲染;
S4.通过调整视频和音频的播放速度来实现倍速播放。
2.根据权利要求1所述的一种用于Web播放器多种倍速播放的方法,其特征在于,所述步骤S1包括步骤S11,所述步骤S11具体如下:
S11.使用JavaScript通过网络请求获取视频流,下载m3u8格式文件并进行切片解析,得到最新的切片链接并下载切片。
3.根据权利要求2所述的一种用于Web播放器多种倍速播放的方法,其特征在于,所述步骤S2包括步骤S21,所述步骤S21具体如下:
S21.将下载的切片数据送入WebAssembly模块,通过WebAssembly模块集成相应的解封装器和视频解码器,在解封装和解码过程中,从视频流中提取原始的的音频PCM和视频YUV数据以及相对应的显示时间PTSPresentation Time Stamp。
4.根据权利要求3所述的一种用于Web播放器多种倍速播放的方法,其特征在于,所述步骤S3包括步骤S31,所述步骤S31具体如下:
S31.对视频和音频数据进行渲染,并根据渲染速度和音视频显示时间PTS进行同步,使得音频和视频的正常播放。
5.根据权利要求4所述的一种用于Web播放器多种倍速播放的方法,其特征在于,所述步骤S4包括步骤S41,所述步骤S41具体如下:
S41.根据需要进行倍速切换,在切换时,快速将视频文件跳跃至下一个关键帧。
6.根据权利要求5所述的一种用于Web播放器多种倍速播放的方法,其特征在于,所述步骤S41包括步骤S411,所述步骤S411具体如下:
S411.当倍速S的值在(0,1)和(1,3]区间,正常两帧间隔为t1,计算出两帧实际播放时间间隔t=t1/s,前后帧***时间间隔大于t,播放下一帧;倍速s的值为1,开始播放时记录***当前时间为t1,第一帧视频帧PTS为p1,下一帧的PTS为pn,当前***时间为tn,当tn-t1>pn-p1时,播放下一帧;倍速s值在(3,n],n>3区间,GOP为两个视频关键帧之间的帧数,计算单个GOP组内播放帧数量n=GOP/s,每个关键帧播放n帧图像之后跳转到下个关键帧开始播放。
7.一种计算机设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至6中任一项所述的方法。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6中任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311828676.5A CN117834992A (zh) | 2023-12-27 | 2023-12-27 | 一种用于Web播放器多种倍速播放的方法、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311828676.5A CN117834992A (zh) | 2023-12-27 | 2023-12-27 | 一种用于Web播放器多种倍速播放的方法、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117834992A true CN117834992A (zh) | 2024-04-05 |
Family
ID=90504071
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311828676.5A Pending CN117834992A (zh) | 2023-12-27 | 2023-12-27 | 一种用于Web播放器多种倍速播放的方法、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117834992A (zh) |
-
2023
- 2023-12-27 CN CN202311828676.5A patent/CN117834992A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11887630B2 (en) | Multimedia data processing method, multimedia data generation method, and related device | |
US8473628B2 (en) | Dynamically altering playlists | |
US10930318B2 (en) | Gapless video looping | |
WO2021159770A1 (zh) | 视频播放方法、装置、设备和存储介质 | |
US20140189735A1 (en) | Streaming media buffer points reflecting user behavior and interests | |
CN113424553B (zh) | 用于重放媒体项目的方法和*** | |
CN111541913A (zh) | 一种拼接屏的视频播放方法、装置、计算机设备和介质 | |
WO2017096885A1 (zh) | 视频播放方法及装置 | |
US20140267337A1 (en) | Pre-Defined Streaming Media Buffer Points | |
CN111787365A (zh) | 多路音视频同步方法及装置 | |
CN105187897A (zh) | 多分段的媒体文件跨段播放方法和*** | |
US9369766B2 (en) | Method and system for remote altering static video content in real time | |
CN113038237B (zh) | 直播信息处理方法、装置、设备及存储介质 | |
CN105120323B (zh) | 一种分布式播放器任务调度的方法及*** | |
CN117834992A (zh) | 一种用于Web播放器多种倍速播放的方法、设备及存储介质 | |
CN114339415B (zh) | 客户端视频播放方法、装置、电子设备和可读介质 | |
KR102459197B1 (ko) | 프리젠테이션 커스터마이제이션 및 인터랙티비티를 위한 방법 및 장치 | |
CN110855645B (zh) | 流媒体数据播放方法、装置 | |
US20100076944A1 (en) | Multiprocessor systems for processing multimedia data and methods thereof | |
CN112019858A (zh) | 一种视频播放方法、装置、计算机设备和存储介质 | |
CN117336563B (zh) | 外挂字幕显示方法、装置、设备、介质及程序产品 | |
AU2020345967B2 (en) | Improved audio transitions when streaming audiovisual media titles | |
CN112887755A (zh) | 用于播放视频的方法和装置 | |
CN115243089A (zh) | 一种音视频同步渲染方法及装置、电子设备 | |
CN117241091A (zh) | 用于处理图像解码数据的方法、装置及计算机可读介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination |