Skip to content

sangjin-hash/VideoStreamingPlayer

Repository files navigation

HLS, DASH 학습 기록

Goal

iOS 에서 HLS 와 DASH 를 지원하는 비디오를 재생해보며 스트리밍 프로토콜의 동작 원리를 학습한 기록입니다. AVPlayer 를 사용하며 플레이어 설정 및 제어부터 HLS 와 DASH 이해까지 다루었습니다.

  1. AVPlayer 설정 및 재생 제어 그리고 상태 관리
image

  1. .m3u8 파일 톺아보기 + 비디오 세그먼트를 받아와 AVPlayer에 재생해보기
  1. Custom scheme을 이용한 AVAssetResourceLoaderDelegate 활용하기
image

  1. .mpd 파일 톺아보기 + 가상의 HLS 플레이리스트로 변환하여 AVPlayer 에서 재생해보기
image

추후에 업데이트되는 내용이 있을 때 추가할 계획입니다.


Structure

  ToyVideoStreamingPlayer/
  ├── App/
  │   ├── AppDelegate.swift
  │   └── SceneDelegate.swift
  ├── Player/
  │   ├── VideoPlayerViewController.swift
  │   ├── HLSResourceLoaderDelegate.swift
  │   ├── DASHResourceLoaderDelegate.swift
  │   ├── Models/
  │   │   ├── PlaybackState.swift
  │   │   ├── HLS/
  │   │   │   ├── Master/ (HLSMasterPlaylist, HLSStreamInfo, HLSMediaInfo)
  │   │   │   └── Media/ (HLSMediaPlaylist)
  │   │   └── DASH/ (DASHMPD)
  │   └── Views/
  │       └── PlayerView.swift
  ├── Managers/
  │   ├── StreamPlayerManager.swift
  │   └── HLSDownloadManager.swift
  └── Utilities/
      ├── HLSParser.swift
      └── DASHParser.swift

주요 구성

  • Player/Models: HLS/DASH 매니페스트 및 재생 상태 모델
  • Player/Views: 렌더링 레이어 (AVPlayerLayer)
  • Player: ResourceLoaderDelegate, VideoPlayerViewController
  • Managers: 스트리밍 재생 및 다운로드 관리
  • Utilities: HLS/DASH 파서

Reference

[Apple Docs]

[Docs]

[Blog]

[Naver Deview]

About

AVPlayer 를 이용해 HLS 와 DASH 비디오 재생해보기

Resources

Stars

Watchers

Forks

Contributors

Languages