首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SWIFT:让视频下载更快的技巧?

SWIFT:让视频下载更快的技巧?
EN

Stack Overflow用户
提问于 2020-04-20 18:49:37
回答 1查看 1.4K关注 0票数 5

我有一个iOS应用程序,用类似Instagram/TikTok的提要从Firebase ()下载视频。但是,在用户滚动到视频之前,我无法让视频随时可用。任何建议都是非常有用的。TikTok是如何做到的?他们是否保存了大量的视频文件在后台加载?

我现在的VideoDownloadManager:

  1. 检查视频是否已经加载到临时缓存或本地文件中,如果没有:
  2. 下载视频url (查看Firebase的downloadURL)
  3. 返回视频url以供立即使用(在播放之前,它仍有一些缓冲延迟)
  4. 将视频url存储在临时缓存中(以防用户滚动并回滚)
  5. 开始将视频写入文件,并在完成时从临时缓存中删除视频。

在当前的设置下,视频在下载后会高效地播放。但是,如果一个视频还没有下载并且用户滚动到该视频,那么上面的(#1/2)就需要很长时间才能完成并缓冲足够的播放。我已经在使用OperationQueues,并将当前的视频优先于任何其他背景视频--但这还不够快。

几乎所有的TikTok视频都可以作为用户滚动使用。什么秘密?

谢谢你的帮忙!

EN

回答 1

Stack Overflow用户

发布于 2020-12-15 10:49:10

,我有几个小窍门给你:

当您正在加载您的流时,您应该在后台线程中开始预热视频URL。

2-尽量不要下载完整的文件,而只是缓存或缓冲少量的文件,如1MB。

3-使用.mp4文件,您可以播放视频,即使它们没有被完全下载。

4-当视频开始播放时,根据缓冲速率或视频长度开始完全下载。

尝试使用最小的文件大小和比特率的视频。创建它们时,尝试将它们转换为方便的格式。我的建议是:

代码语言:javascript
复制
Video:
video bit rate -> 12.5
video size -> 960x540
conversion format -> h264

Sound:
rate -> 44100
encoding bit rate -> 96000

6-检查视频是否有超过25%的缓冲范围,当你要开始回放。

不要忘记在临时文件夹中下载并定期清理该文件夹。这有助于避免庞大的应用程序,不这样做的后果可能会导致用户删除您的应用程序!

对于iOS开发人员:这是我的videoConverter。此外,您还可以使用这个缓存视频播放器GSPlayer

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61329828

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档