-
Notifications
You must be signed in to change notification settings - Fork 2
WWDC18 session 502: Measuring and Optimizing HLS Performance
Joonwon Lee edited this page Jul 15, 2018
·
2 revisions
WWDC 2018 Measuring and Optimizing HLS Performance 세션을 요약 공유하고자 합니다.
해당 세션은 크게,
- HLS 스트리밍 QoS에 대한 기초적 용어 및 이해
- 객관적으로 HLS 스트리밍 QoS를 측정하는 법
- HLS 스트리밍 QoS문제의 조사 방법 및 해결방법
5가지 HLS 퍼포먼스 KPI
- 초기 재생 시간
- 지연 재생 횟수
- 지연 재생 시간
- 비트레이트
- 에러
초기 재생을 위한 프로세스
- AVPlayerItemAccessLog를 이용해 지연횟수, 지연시간 및 실제 재생시간등을 확인 가능
- 초기재생 시간 줄이기
- 재생 지연 조사하기
- 에러 조사하기
- AVAsset을 이용한 초기 재생 시간 줄이기
- 재생 누르기 전에 AVAsset 생성 및 프로퍼티 미리 로딩하기
- 암호화키도 미리 땡겨 놓기(AVContentKeySession이용)
- AVPlayer, AVPlayerItem을 이용해서 초기재생 시간 줄이기
- 버퍼링 전에 AVPlayerItem을 미리 세팅
- AVPlayer.rate을 AVPlayerItem 세팅전에 세팅하기
- 여러 플레이 아이템의 경우, AVQueuePlayer사용하기
- 여러 플레이 아이템의 경우, 다음 아이템 미리 플레이 큐에 넣어놓기
-
AVPlayerItemPlaybackStalled 노티걸기
-
AVPlayerItem.isPlaybackLikelyToKeepUp 확인

- AVPlayerItemErrorLog, AVPlayerItemAccessLog 확인

- 전체 비트레이트 셋을 제공
- 미디어 플레이리스트, 세그먼트, 키를 지연없이 전달
- live 플레이리스트를 타겟시간에는 업데이트 시키기
- 플레이 리스트간에 시퀀스가 비연결되는 지점 동기화하기
- 서버사이드 실패는 확실히 넘기기
- AVPlayerItemErrorLog 확인
- error 커멘트에 상세 내용 나옴
- error 커멘트에 상세 내용 나옴
- AVPlayerItem, AVPlayer의 status 확인후, AVPlayerItemError 확인
- AVPlayerItem.Error는 재생을 종료시키고, 플레어 큐에서 아이템을 제거 시킴