Looping AVPlayer плавно

Ранее обсуждалось, как AVPlayer видеопоток AVPlayer , но никакое «решение» не является достаточно простым, чтобы обеспечить непрерывный цикл записи видео .

Я разрабатываю приложение tvOS, которое имеет высококачественный 10-секундный клип «декорации» на фоне одного из его представлений и просто перезапускает его AVPlayer «стандартным» способом (подписываясь на NSNotification чтобы его поймать) слишком нервничает чтобы заметить и отвлечь от пользовательского опыта.

Кажется, что единственный способ добиться действительно бесшовного цикла – вручную управлять кадрами на более низком уровне (в OpenGL) …

Несмотря на все усилия по ознакомлению с этим и как новичок в манипуляции видеопроводами, я не подошел достаточно близко к понятному решению.

Я знаю, что существуют внешние библиотеки, которые могут легче выполнять это поведение; в первую очередь GPUImage . Тем не менее, приложение, которое я разрабатываю, предназначено для tvOS, и поэтому сложно использовать довольно много сторонних библиотек iOS, включая GPUImage. Еще одна библиотека, с которой я столкнулся, – AVAnimator , которая обеспечивает отличную функциональность для легких анимационных видеороликов, но не для плотных высококачественных видеоклипов исходных видеоматериалов, закодированных в формате .H264.

Ближайшим, к которому я пришел, является исходный код Apple AVCustomEdit , однако в первую очередь это касается статического производства «перехода», который, хотя и является бесшовным, слишком сложным для меня, чтобы понять, как заставить его выполнять простые функции циклирования.

Если кто-то может обмануть опыт работы с AVPlayer на более низком уровне, то есть с обработкой / буферами изображений (или разработкой iOS, которая не опирается на внешние библиотеки), мне было бы невероятно интересно узнать, как я мог бы начать.

4 Solutions collect form web for “Looping AVPlayer плавно”

У меня была такая же проблема при потоковой передаче видео. После игры в первый раз на втором экране появился черный экран при загрузке видео. Я избавился от черного экрана, ища видео до 5 м. Вперед. Он сделал почти бесшовный видеоцикл. (Swift 2.1)

 // Create player here.. let player = AVPlayer(URL: videoURL) // Add notification block NSNotificationCenter.defaultCenter().addObserverForName(AVPlayerItemDidPlayToEndTimeNotification, object: player.currentItem, queue: nil) { notification in let t1 = CMTimeMake(5, 100); player.seekToTime(t1) player.play() } 

Если видео очень короткое (несколько секунд), вы можете извлечь каждый кадр как CGImage и использовать CAKeyframeAnimation для его анимации. Я использую эту технику для воспроизведения изображений GIF в своем приложении, и анимация очень плавная.

Вы упомянули, что вы посмотрели на AVAnimator, но вы видели мой пост в блоге по этому конкретному вопросу непрерывного цикла? Я специально построил логику бесшовной логики, потому что это не удалось сделать с AVPlayer и аппаратным обеспечением H.264.

Я использую два AVPlayerItems с тем же AVAsset в AVQueuePlayer и переключаю элементы:

  weak var w = self NSNotificationCenter.defaultCenter().addObserverForName(AVPlayerItemDidPlayToEndTimeNotification, object: nil, queue: nil) { (notification) -> Void in let queuePlayer = w!.playerController.player! as! AVQueuePlayer if(queuePlayer.currentItem == playerItem1) { queuePlayer.insertItem(playerItem2, afterItem: nil) playerItem1.seekToTime(kCMTimeZero) } else { queuePlayer.insertItem(playerItem1, afterItem: nil) playerItem2.seekToTime(kCMTimeZero) } } 
  • Реализация потоковой передачи HTTP в iOS
  • Как получить кнопку для отображения различного видео в соответствии со строкой, в которой она нажата?
  • PhoneGap iOS не может воспроизводить видео с помощью HTML 5
  • iOS AVFoundation - Преобразование видео в изображения со скоростью 60 кадров в секунду
  • iOS - разрешить только ландшафтный режим только для видео
  • Повторяющиеся элементы сцены в выводе видеоизображения iOS YUV
  • Кодирование видео в ios
  • Воспроизведение видео исчезает через несколько секунд
  • Видео HTML5 не воспроизводится на почтовом клиенте iOS (2015)
  • IOS AVPlayer не будет воспроизводить видео
  • Запись, сохранение и / или конвертирование видео в формате mp4?
  • Interesting Posts
    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.