Воспроизведение файла HEVC (H.265) с использованием AVPlayer с удаленного URL - PullRequest
0 голосов
/ 03 декабря 2018

Я пытаюсь воспроизвести URL-адрес кодека HEVC (H.265) на AVPlayer.Но видео не показывает.Я не получил никакого решения.Как мне реализовать это в 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()
}

1 Ответ

0 голосов
/ 03 декабря 2018

Следуя вашему примеру, я могу воспроизвести этот контент на устройстве (не на симуляторе)

Обратите также внимание, что я изменил 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 впользователи:

  • HEVC в HLS с использованием фрагментов транспортного потока MPEG-2, которые Apple не поддерживает
  • HEVC в HLS с использованием сегментов fMP4, что Apple анонсировала на WWDC17 и нашихплеер поддерживает
  • HEVC в MPEG-DASH с использованием сегментов fMP4

Для справки: WWDC17 - HEVC с HLS - Apple только что анонсировала функцию, которую мы поддерживаем из коробки

HLS Авторская спецификация для устройств Apple

...