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目录中的图像?