我有一个 iOS 应用程序,它从 Firebase (Cloud Firestore) 下载视频,其提要类似于 Instagram / TikTok。但是,在用户滚动到视频之前,我无法让视频随时可用。任何提示都会非常有帮助。TikTok 是如何做到的?他们会在加载时将一大堆视频保存到后台文件中吗?
我当前的 VideoDownloadManager:
检查视频是否已加载到临时缓存或本地文件中,如果没有:
下载视频 URL(查看 Firebase 的下载 URL)
返回立即使用的视频 URL(在播放之前,它仍然有一些延迟缓冲)
将视频 URL 存储在临时缓存中(以防用户滚动并回滚)
开始将视频写入文件并在完成时从临时缓存中删除视频
使用当前设置,视频在下载后可以高效播放。但是如果视频尚未下载并且用户滚动到该视频,则上面的(# 1 / 2)需要太长时间才能完成并缓冲足够的播放时间。我已经在使用 OperationQueues 并将当前视频的优先级设置为任何其他背景视频-但这还不够快。
TikTok 视频几乎总是可以在用户滚动时随时获得。秘密是什么?
谢谢你的帮助!

我为您提供一些提示:
1-当你加载你的流时,你应该开始在后台线程中预热视频 URL。
2-尽量不要下载完整的文件,只缓存或缓冲少量文件,如 1MB。
3-使用.mp4 文件,即使未完全下载,也可以播放视频。
4-根据缓冲率或视频长度,在视频开始播放时开始完整下载。
5-尝试使用最小文件大小和视频的视频,当您创建它们时,请尝试将其转换为方便的格式,我的建议将是:
Video:
video bit rate -> 12.5
video size -> 960x540
conversion format -> h264
Sound:
rate -> 44100
encoding bit rate -> 96000
6-当您要开始播放时,请检查视频的缓冲范围是否超过 25 %。
7-不要忘记在临时文件夹中进行下载并定期清理该文件夹。这有助于避免巨大的应用程序大小,不这样做的后果可能会导致用户删除您的应用程序!
对于 iOS 开发人员:这是我的videoConverter。此外,您可以使用此缓存视频播放器GSPlayer
本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处
评论列表(3条)