文章目录
- 1.问题
- 2.原因:iOS swift AVPlayerViewController无法播放HEVC (H.265) 格式的视频
- 3.解决方法用第三方框架MobileVLCKit来播放
- 4.用MobileVLCKit写的播放器
- 4.1 两个oc版本的
- 4.2 两个swiftUI版本的
- 5.苹果是支持HEVC (H.265) 格式的视频,是硬件那边在压缩视频的时候参数的设置有问题,需要硬件压缩视频的时候做一些调整
1.问题
Main thread blocked by synchronous property query on not-yet-loaded property (PreferredTransform) for HTTP(S) asset. This could have been a problem if this asset were being read from a slow network.
Asset is not playable
@objc func buttonClicked() {guard let localVideoURL = Bundle.main.url(forResource: "sample1", withExtension: "mp4") else {MyPrint("Invalid URL")return}// 创建AVPlayerplayer = AVPlayer(url: localVideoURL)// 创建AVPlayerViewController并设置playerplayerViewController = AVPlayerViewController()playerViewController.player = playerpresent(playerViewController, animated: true) { [self] inplayer.play()}}
2.原因:iOS swift AVPlayerViewController无法播放HEVC (H.265) 格式的视频
3.解决方法用第三方框架MobileVLCKit来播放
vlc - github
pod 'MobileVLCKit'
pod install
import UIKit
import MobileVLCKitclass PlayerViewController: UIViewController {var mediaPlayer: VLCMediaPlayer?override func viewDidLoad() {super.viewDidLoad()// 设置媒体播放器mediaPlayer = VLCMediaPlayer()guard let mediaPlayer = mediaPlayer else { return }// 设置视频URLlet url = URL(string: "https://path/to/your/video.mp4")mediaPlayer.media = VLCMedia(url: url!)// 设置媒体播放器的显示区域mediaPlayer.drawable = self.view// 开始播放mediaPlayer.play()}override func viewWillDisappear(_ animated: Bool) {super.viewWillDisappear(animated)// 停止播放mediaPlayer?.stop()}
}
4.用MobileVLCKit写的播放器
4.1 两个oc版本的
iosMobileVLCKitDemo - gitee
WeLSee - github
4.2 两个swiftUI版本的
swiftui-vlc-video-player - github video MP4视频播放数据
VLCKitPlayer - github
5.苹果是支持HEVC (H.265) 格式的视频,是硬件那边在压缩视频的时候参数的设置有问题,需要硬件压缩视频的时候做一些调整
我用剪映导出的HEVC (H.265)的视频,用苹果电脑自带的播放器和safira浏览器是可以正常播放的。但是我们硬件那边产生的视频用苹果电脑自带的播放器和safira浏览器无法播放