ffmpeg.js 在 iOS cordova 中运行速度极慢(但在 iOS safari 中运行良好?)

Posted

技术标签:

【中文标题】ffmpeg.js 在 iOS cordova 中运行速度极慢(但在 iOS safari 中运行良好?)【英文标题】:ffmpeg.js running extremely slow in iOS cordova (but fine in iOS safari?) 【发布时间】:2019-05-13 23:05:14 【问题描述】:

我正在尝试创建一个 phonegap 应用程序,将视频转换为大约 30 个 jpeg 帧。 此页面将一个 bigbuckbunny 视频转换为 30 帧 >https://www.pewify.com/test/(取自https://bgrins.github.io/videoconverter.js/demo/)

它在运行 ios 12 的 iPhone x 上运行良好,大约需要 12-15 秒才能完成,但打包到在同一部手机上运行的 iOS cordova 应用程序中的相同代码将需要将近 160 秒才能完成(两个最终结果相同,但几乎是 10 倍长),但它适用于 android 浏览器或 android cordova 应用程序

我正在为应用程序使用cordova android 7.0 和cordova ios 4.5.4 (phonegap cli-8.0.0)

我已经尝试使用最少的代码删除所有不需要的插件,但没有效果,它仍然运行缓慢

据我了解,phonegap 只是使用类似于 safari 的 webview 来呈现应用程序,但在这种情况下它可以工作但速度要慢得多,除此之外,手机开始变热(大概是在做一些密集型 CPU?)

确实读过一些关于在科尔多瓦中使用 WKWebview 更快的信息,但这会使应用程序出现大量 CORS 和“操作不安全”错误,因此决定暂时不实施(除非这是解决方案?)

希望有人可以为我指出正确的方向,因为我不确定这里的问题是什么,因为它在 android(chrome 和 phonegap)中运行得有些完美,但只在 iOS safari 而不是 phonegap 应用程序中运行

【问题讨论】:

【参考方案1】:

好的解决了,确实是WKWebview,执行正常。我在某处读到,cordova 中的 webview 和移动 safari 中的 webview 不同,因此速度不同(nitro js 引擎?)

对于任何感兴趣的人,我使用“cordova-plugin-wkwebview-file-xhr”来启用 WKWebview 和某些修复以绕过 CORS 问题,在其上运行相同的代码(在创建 worker 时必须使用内联 blob绕过,取自这里Web workers without a separate javascript file?)

视频转换现在按预期运行(12 秒左右),希望这可以帮助那些可能在 iOS phonegap 上面临代码执行缓慢的人..

【讨论】:

以上是关于ffmpeg.js 在 iOS cordova 中运行速度极慢(但在 iOS safari 中运行良好?)的主要内容,如果未能解决你的问题,请参考以下文章

Cordova 5.3.3 和安装的 Cordova iOS 3.9.1 在 iOS9 中无法访问互联网

Cordova 3.1 在 iOS6 上的 Safari 中打开链接

从cordova html页面(cordova)加载保存在iOS App Documents目录中的图像?

如何在 IOS cordva 应用程序中添加 cordova 插件?

无法在 Cordova / iOS 中显示本地图像

使用 cordova 在 Android/Ios 中显示徽章编号