iOS- 来自 DB 的视频流非常慢。我怎样才能让它加载得更快?

Posted

技术标签:

【中文标题】iOS- 来自 DB 的视频流非常慢。我怎样才能让它加载得更快?【英文标题】:iOS- video streaming from DB is very slow. How can I make it load faster? 【发布时间】:2017-03-12 10:04:13 【问题描述】:

我正在尝试使用 Swift 从服务器播放视频。

我已经导入了 AVKit 和 AVFoundation 框架,这是我的代码:

import UIKit
import AVKit
import AVFoundation


class SongViewController: UIViewController, SendInfoDelegate 

let keyPathLoadedTimeRanges = "currentItem.loadedTimeRanges"
var songInfo : Dictionary<String, Any>!
var player : AVPlayer!
var previousVC : UIViewController!
let movie = AVPlayerViewController()

.....

override func viewWillDisappear(_ animated: Bool) 
    player.pause()
    movie.player = nil
    movie.removeFromParentViewController()
    self.removeFromParentViewController()


override func viewDidAppear(_ animated: Bool) 
    view.addGestureRecognizer(self.revealViewController().panGestureRecognizer())

....

 func loadVideo (videoURL: String) 

    //Load video in Avplayer
    let movieurl : URL = URL(string: videoURL)!

    movie.view.frame = videoContainerView.bounds

    player = AVPlayer(url: movieurl)
    movie.player = player
    self.addChildViewController(movie)
    videoContainerView.addSubview(movie.view)

    player.play()

    player.addObserver(self, forKeyPath: keyPathLoadedTimeRanges, options: .new, context: nil)

    controllsContainerView.frame = videoContainerView.frame
    videoContainerView.addSubview(controllsContainerView)
    controllsContainerView.addSubview(activityIndicatorView)
    activityIndicatorView.centerXAnchor.constraint(equalTo: videoContainerView.centerXAnchor).isActive = true
    activityIndicatorView.centerYAnchor.constraint(equalTo: videoContainerView.centerYAnchor).isActive = true


现在开始播放视频需要 8-15 秒。我必须改进加载时间。 在网站上,视频在 3 秒后开始播放。

【问题讨论】:

【参考方案1】:

我发现由于渲染时的高帧率,我尝试播放的视频文件非常大。 (每个视频剪辑超过 200 MB)

我将视频重新渲染为 30 帧速率,它使文件更小并显着提高了加载速度

【讨论】:

以上是关于iOS- 来自 DB 的视频流非常慢。我怎样才能让它加载得更快?的主要内容,如果未能解决你的问题,请参考以下文章

io.BytesIO非常慢。备择方案?优化?

为啥这个 pg 查询这么慢?我怎样才能让它更快?

尝试使用 Sqoop 从 DB2 获取数据到 Hbase 非常慢

用MCI处置WAV视频时,怎样才能让视频在当前窗口播放

需要帮助优化涉及数百万条记录的非常慢的 DB2 SQL 查询

Tizen 中的 HTML5 视频元素非常慢(三星智能电视开发)