본문 바로가기
WWDC/2024

Discover media performance metrics in AVFoundation

by 토끼찌짐 2024. 8. 8.

https://developer.apple.com/videos/play/wwdc2024/10113/

 

Discover media performance metrics in AVFoundation - WWDC24 - Videos - Apple Developer

Discover how you can monitor, analyze, and improve user experience with the new media performance APIs. Explore how to monitor AVPlayer...

developer.apple.com

해당 포스트는 위 영상을 기반으로 개인적으로 메모/정리한 글입니다.

개요

미디어 성능 관련 API 신규 소개. HLS 를 위한 AVPlayer 성능을 측정하는 새로운 방법을 배워보자.


What are events?

iOS 18부터 미디어 성능 분석지표(metrics)는 ‘Event’로 표현된다

As-is & To-be

지금까지는 `access logs()`, `error logs()`, AVPlayer Notification 등을 사용해서 분석지표들을 얻을 수 있었다

iOS 18 부터는 (HLS 스트리밍 환경에서는) 분석지표들이 강화되었다. CDN 파트너와 함께 문제 상황을 파악하기 쉬워질 것으로 기대된다.
- Playlist event, Media segment event, Content key event
- Stall event, Variant switch event, Summary event
- Rate change event, Seek event, Error event 등등

Example: 흔한 미디어 재생 이슈들

1) 재생에 걸리기까지의 시간이 너무 길다 -> iOS 18부터는 재생을 지연시키는 데에 영향을 주는 playlist, media segment, content key 등을 알 수 있다

2) 재생 버퍼로 인한 멈춤 -> iOS 18부터는 재생 멈춤(Stall)이 발생한 상황을 자세히 파악할 수 있다

비디오 404 때문에 스위칭이 발생했고 또 404가 발생했다 → 버퍼로 인한 멈춤 현상

 

Subscribing to events

이벤트들을 구독해서 매 이벤트 타임라인마다 노티 받기.

new API: AVMetrics

사용 방법 검색 키워드: AVMetricEventStreamPublisher

let playerItem : AVPlayerItem = ...
			
let ltkuMetrics = item.metrics(forType: AVMetricPlayerItemLikelyToKeepUpEvent.self)
let summaryMetrics = item.metrics(forType: AVMetricPlayerItemPlaybackSummaryEvent.self)
		
for await (metricEvent, publisher) in ltkuMetrics.chronologicalMerge(with: summaryMetrics) 
{
	// send metricEvent to backend analytics server
}

'WWDC > 2024' 카테고리의 다른 글

Analyze heap memory  (0) 2024.08.08
Explore Swift performance  (0) 2024.08.08
Demystify explicitly built modules (추천세션!)  (0) 2024.08.08
Migrate your app to Swift 6 (추천세션!)  (0) 2024.08.08
Consume noncopyable types in Swift  (0) 2024.08.08