#ios #swift5 #http-live-streaming #azure-media-services
Вопрос:
Во-первых, это ссылка на Youtube, показывающая проблему: растянутое видео. Видео на Youtube отредактировано, чтобы удалить ненужные части, я показываю только важные части. Как вы можете видеть, через некоторое время видео растягивается.
- Исходное видео было загружено в службы мультимедиа Azure и закодировано с помощью Azure media с использованием встроенной предустановки «Адаптивное потоковое воспроизведение».
- Я использую динамическую упаковку HLS с этим URL-адресом:
- Я тестирую его на Iphone 12 pro max, IOS 15.0.1, swift 5.0
- Я использую AVPlayerViewController, это код:
import Foundation
import SwiftUI
import AVKit
struct VideoPlayerView: UIViewControllerRepresentable {
var player: AVPlayer
@Binding var gravity: AVLayerVideoGravity
func makeUIViewController(context: UIViewControllerRepresentableContext<VideoPlayerView>) -> AVPlayerViewController {
let controller = AVPlayerViewController()
controller.player = player
controller.showsPlaybackControls = false
controller.videoGravity = gravity
return controller
}
func updateUIViewController(_ uiViewController: AVPlayerViewController, context: UIViewControllerRepresentableContext<VideoPlayerView>) {
uiViewController.videoGravity = gravity
}
func dismantleUIViewController(_ uiViewController: AVPlayerViewController, coordinator: Self.Coordinator) {
//print("dismantleUIViewController (uiViewController)")
}
}
Моя гипотеза:
- Avplayer неправильно переключается на правильную пропускную способность
- Носитель Azure не отправляет правильные варианты в начальный список воспроизведения
- Может быть, у меня нет правильных параметров для preferredMaximumResolution и preferredForwardBufferDuration? но я не знаю, какие ценности должны быть правильными.
- Динамическая упаковка azure media теперь доступна в версии 7, возможно, не поддерживается IOS?
Я пытался исправить это, изменив свой вид, чтобы иметь фиксированные значения высоты и ширины, но это не работает. Я уже 2 недели пытаюсь разобраться в этом, но ничего не получается, у вас есть какие-нибудь идеи?
Как я уже сказал, видео растягивается через некоторое время, не является последовательным. Иногда это происходит сразу, а иногда занимает больше времени, но случается.
Ответ №1:
Я все еще на iOS 14 на iPhone 8 — и он отлично работает для меня… так что сейчас это может быть проблемой iOS 15.0.1.
Комментарии:
1. Думаю, вы правы. Мне пришлось использовать версию 4 динамической упаковки HLS: формат=m3u8-aapl, чтобы устранить проблему. Вот ссылка: docs.microsoft.com/en-us/azure/media-services/latest/…
2. попробуйте версию CMAF еще раз в официальном выпуске 15.0.1 на аппаратном обеспечении. Я обновил свой iPhone 8 до 15.0.1, и он отлично работает для меня.
3. Я пытался … но иногда воспроизводится звук, но видео имеет черный экран, и видео растягивается. Я убежден, что это не проблема azure…is о том, как Avplayer обрабатывает CMAF. На данный момент версия 4 работает лучше, чем CMAF. Может быть, в будущем это будет работать лучше