从远程使用 AVPlayer 播放 HEVC(H.265) 文件 url
Playing HEVC(H.265) file using AVPlayer from a remote url
我正在尝试在 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()
}
按照你的例子,我可以在设备(不是模拟器)上播放这个内容
Pay attention also that I changed the URL from HTTP to 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 使用 MPEG-2 传输流块,Apple 没有
支持
- HLS 中的 HEVC 使用 fMP4 片段,这是 Apple 在
WWDC17 和我们的播放器支持
- 使用 fMP4 片段的 MPEG-DASH 中的 HEVC
供参考:
WWDC17 – HEVC with HLS – Apple just announced a feature that we support out of the box
我正在尝试在 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()
}
按照你的例子,我可以在设备(不是模拟器)上播放这个内容
Pay attention also that I changed the URL from HTTP to 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 使用 MPEG-2 传输流块,Apple 没有 支持
- HLS 中的 HEVC 使用 fMP4 片段,这是 Apple 在 WWDC17 和我们的播放器支持
- 使用 fMP4 片段的 MPEG-DASH 中的 HEVC
供参考: WWDC17 – HEVC with HLS – Apple just announced a feature that we support out of the box