【问题标题】:how to get bitrate of video streaming on iPhone/iPad devices?如何在 iPhone/iPad 设备上获取视频流的比特率?
【发布时间】:2021-06-16 14:11:16
【问题描述】:

我有一个 iOS 应用,可以在 iPhone/iPad 设备上流式传输视频。

现在我需要在 iPhone/iPad 设备上获取视频流的比特率。 ObservedBitrateIndicatedBitrate 对此没有帮助。

我在下面的帖子中也看到了这篇文章,但很少有 cmets 提到它仅适用于 mpeg4 视频。 How to check Resolution, bitrate of video in iOS

我正在寻找 iPhone/iPad 上视频流的比特率以及任何视频格式。

谢谢!

【问题讨论】:

  • 1.什么是正在使用的蒸汽协议?请举个例子。 2.ObservedBitrateIndicatedBitrate说明了什么? 3. 你的代码在哪里?
  • @Raptor - 通过 http 使用 ABR。虽然观察到的比特率在 2-3 mbps 范围内,但表示也相似。我正在寻找 - 有没有办法获得实际的视频流比特率 - 公式或任何属性。
  • AVPlayerItemAccessLogEvent - 甚至对于视频流比特率也没有。
  • 那么预期的比特率是多少?使用 Adob​​e HTTP 动态流或 Apple HTTP 实时流?
  • this 有帮助吗?

标签: ios objective-c avfoundation avplayer avplayeritem


【解决方案1】:

您可以收听AVPlayerItemNewAccessLogEntry 通知以获取流的当前比特率,例如:

  • observedBitrate - 也就是你当前的下载速度
  • indicatedBitrate - 来自 m3u8 (BANDWIDTH),表示播放当前流的最小比特率值

使用AVPlayer 进行自适应视频播放可以根据网络条件来回将当前流更改为具有高或低带宽的流,但这些更改不会出现在每个停顿、网络问题等情况下,因为您的流可以被缓冲, m3u8 没有较低带宽的流来播放等。因此,如果您需要检测当前的实时播放状态,请查看停顿,FPS。

swift中有示例代码,但如果您需要,它很容易转换为objc:

let url = URL(string: "https://bitdash-a.akamaihd.net/content/MI201109210084_1/m3u8s/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.m3u8")!
let playerItem = AVPlayerItem(url: url)
self.player = AVPlayer(playerItem: playerItem)

NotificationCenter.default.addObserver(forName: .AVPlayerItemNewAccessLogEntry, object: playerItem, queue: nil) { notification in
    if let event = playerItem.accessLog()?.events.last {
        let bitrates = [event.observedBitrate,
                        event.indicatedBitrate,
                        event.averageVideoBitrate,
        ]
        print(">", bitrates)
    }
}

player?.play()

let playerLayer = AVPlayerLayer(player: player)
playerLayer.frame = view.bounds
view.layer.addSublayer(playerLayer)

Outputs:

> [16375938.865617642, 628000.0, 307568.0]
> [nan, 1728000.0, 0.0]
> [9830221.39078689, 2528000.0, 1422032.0]


【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-07-26
  • 2017-07-10
  • 1970-01-01
  • 2011-02-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多