2

我正在尝试在 AVPlayer 上播放 HEVC(H.265) 编解码器媒体 url。但是视频没有显示。我没有得到任何解决方案。我如何在ios中实现这个?

let videoURL = URL(string: "http://bitmovin-a.akamaihd.net/content/dataset/multi-codec/hevc/stream_fmp4.m3u8")
let avPlayer = AVPlayer(url: videoURL!)
let playerViewController = AVPlayerViewController() 
playerViewController.player = avPlayer 
self.present(playerViewController, animated: true) { 
    playerViewController.player!.play()
}
4

1 回答 1

3

按照您的示例,我可以在设备(不是模拟器)上播放此内容

另请注意,我将 URL 从 HTTP 更改为 HTTPS!

import UIKit
import AVFoundation

class ViewController: UIViewController {

    let videoURL = URL(string: "https://bitmovin-a.akamaihd.net/content/dataset/multi-codec/hevc/stream_fmp4.m3u8")
    let avPlayer = AVPlayer()


    override func viewDidLoad() {
        super.viewDidLoad()
    }

    override func viewDidAppear(_ animated: Bool) {
        let asset = AVAsset(url: videoURL!)
        let playerItem = AVPlayerItem(asset: asset)
        avPlayer.replaceCurrentItem(with: playerItem)

        let avLayer = AVPlayerLayer(player: avPlayer)
        avLayer.frame = view.bounds
        view.layer.addSublayer(avLayer)
        avPlayer.play()
    }

}

注意:

HEVC 视频的容器格式必须是 fMP4。

有几种方法可以向用户提供 HEVC 内容:

  • HLS 中的 HEVC 使用 Apple 不支持的 MPEG-2 传输流块
  • HLS 中的 HEVC 使用 fMP4 片段,这是 Apple 在 WWDC17 上宣布的,我们的播放器支持
  • 使用 fMP4 段的 MPEG-DASH 中的 HEVC

供参考: WWDC17 – 带有 HLS 的 HEVC – Apple 刚刚宣布了一项我们支持开箱即用的功能

Apple 设备的 HLS 创作规范

于 2018-12-03T13:24:46.833 回答