Skip to content

Commit

Permalink
chore
Browse files Browse the repository at this point in the history
  • Loading branch information
hughfenghen committed Aug 13, 2024
1 parent c22b643 commit 4746e6c
Showing 1 changed file with 5 additions and 6 deletions.
11 changes: 5 additions & 6 deletions blog/_posts/webav/webcodecs-performance-benchmark/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ _注:WebAV 是基于 WebCodecs 构建的 SDK,在 Web 平台**创建/编辑

## WebCodecs 性能表现

数字是合成视频消耗的时间单位 s
数字是合成视频消耗的时间单位 秒),**WebAV 性能数据以后文最新版为准**
![benchmark](./benchmark.png)

_注 1:本地合成(WebAV、ffmpeg、剪映 APP),跟设备的硬件配置强相关;云端合成(剪映 Web),跟服务资源分配的资源强相关_
Expand All @@ -49,9 +49,8 @@ _注 2:剪映 APP 是由官方下载器自动安装的,有个 4.1.0 版本
### 总结

1. 结果**在 MacBook Pro、高性能设备上是乐观的**,与 Native APP 性能表现在同一水准
2. WebCodecs API 能利用硬件加速,与中低性能的 Win 设备有一定差距
3. 设备性能越差,WebAV 性能表现劣化越快
4. WebAV(WebCodecs) 还存在优化空间
2. WebCodecs API 能利用硬件加速,在中低性能设备上跟 Native 有一定性能差距
3. WebAV 近期才开始性能优化,WebCodecs 方案还存在一定的优化空间

关注 WebAV(WebCodecs) 性能优化数据的同学,可以订阅该 [文章评论对应的 issue](https://github.com/hughfenghen/hughfenghen.github.io/issues/205) 以接收更新。

Expand All @@ -67,13 +66,13 @@ _以下记录一些笔者的经验,欢迎读者讨论与补充_
比如,可以提前准备好帧数据,一旦开始合成视频,要让编码器持续工作,让编码队列有不间断的视频帧供给。

但需要注意控制好内存/显存占用,不要提前解码太多数据;
编码队列也不能太大,避免打爆显存,阅读后文*控制显存占用*
编码队列也不能太大,避免打爆显存,详情阅读后文**控制显存占用**

### 优化内存占用

音视频文件体积通常会比较大,如果将整个文件加载到内存中将占用过多内存空间,导致频繁 GC 降低性能,加载特别大的音视频文件还会溢出导致错误或崩溃。

可以将视频文件写入到 OPFS(私有源文件系统),按需读取到内存中
可以将视频文件写入到 OPFS(私有源文件系统),按需读取到内存中
[WebAV][1] 依赖了 [opfs-tools][3] 来操作私有源文件,大幅降低了内存占用。

### 优化内存分配
Expand Down

0 comments on commit 4746e6c

Please sign in to comment.