Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- SWiFT
- CoreML
- Mac
- AppleEvent
- SF Symbols 3.0
- actor
- DriverKit
- async
- App Clip
- Object Capture
- Xcode Organizer
- Reality Composer
- METAL
- SF Symbols
- MDM
- Physical Audio
- AR Quick Look
- Hand Pose Detect
- Xcode Cloud
- AVFoundation
- User Enrollment
- ProRAW
- concurrency
- DooC
- profile
- NSUserActivity
- WWDC 2021
- Hand Action Detect
- detent
- swiftUI
Archives
- Today
- Total
nyancoder
WWDC 2021 - Transition media gaplessly with HLS 본문
원본 영상: https://developer.apple.com/videos/play/wwdc2021/10142/
Playback experiences
- HLS를 지원하는 AVPlayerItem을 AVQueuePlayer에서 사용하는 이점은 다음과 같습니다.
- 하나의 항목이 재생이 끝났을 때, 다음 항목의 재생이 자연스럽게 시작되게 할 수 있습니다.
- 앨범과 라이브 방송 간의 전환을 지원합니다.
- 선형 프로그래밍을 지원합니다.
- 연속성을 유지하면서도 동적으로 장면 간의 결합을 제공합니다.
- 화면의 장면을 프로그램을 통해서 적절한 반복 횟수를 추가하거나 원하는 순서로 구성할 수 있습니다.
- Apple Music의 새로운 기능은 HLS를 통해 콘텐츠를 제공하고 각 노래 간에 끊김 없는 전환을 구현합니다.
Media requirements
- HLS manifest에서는 끊김 없는 전환을 위해 FairPlay 스트리밍, 오디오 코덱, 채널 수, 비트 수, 샘플 속도를 제공해야 합니다.
- 대기열에 있는 항목들 간의 끊김 없는 전환을 위해서는 동등한 오디오 미디어를 제공해야 합니다.
- 또한 미디어를 저작할 때 "공통 미디어 응용 프로그램 형식"을 나타내는 CMAF 지침을 따라야 합니다.
- MPEG 사양에는 목록을 나머지 프레임의 존재를 알려주는 권장 사항이 있습니다.
- 위의 예에서 HLS manifest는 한 쌍의 720p과 한 쌍의 1080p의 총 4가지 스트림을 제공합니다.
- 각 쌍 내에서 고급 오디오 코덱인 HE_AAC로 인코딩 된 스트림과 AAC_LC로 인코딩 된 스트림을 제공합니다.
- 우선 이 예에서는 HE_AAC와 페어링 된 720p 비디오를 재생한다고 가정합니다.
- 그러면 재생이 끝 나갈 때에 AVQueuePlayer는 다음 항목에서 더 높은 품질인 1080p가 있더라도 끊김 없는 전환에서는 유사한 인코딩이 더 우선순위가 높기 때문에 유사한 인코딩을 선택합니다.
- 만약 재생이 진행되는 과정에서 비트 전송률이 충분하다면 자연스럽게 플레이어가 더 높은 품질로 전환하게 됩니다.
- 만일 위의 예제에서 HE_AAC를 제공하지 않았다고 가정합니다.
- 그렇다면 AVQueuePlayer는 끊김 없는 전환을 할 수 없기 때문에 자유롭게 재생 조건에 가장 적합한 항목을 선택할 수 있습니다.
- 코드의 예를 보면 우선 서로 다른 url에서 두 개의 AVPlayerItem을 만듭니다.
- AVQueuePlayer를 생성한 후 "insert after" 함수를 호출하여 순서대로 넣은 다음 "play"를 호출하면 됩니다.
- 끊김 없는 전환에서는 일반적인 AVAsset도 이용 가능합니다.
- AVPlayerItems를 통해 여러 개의 Asset도 이용할 수 있습니다.
- AVQueuePlayer에 대기열에 추가하기 전에 각각의 AVPlayerItem에 대해 서로 다른 시작 및 종료 지점을 정의할 수 있습니다.
- 시작점을 정의하기 위해서는 seekToTime함수를 사용하며 종료지점을 정의하기 위해서는 forwardPlaybackEndTime을 사용합니다.
- 3개의 항목에서 각각 seekToTime과 forwardPlaybackEndTime를 호출하여 시작과 끝 지점을 정의한 예제입니다.
- 이 세 가지 항목을 AVQueuePlayer에 추가하면 위와 같이 지정된 영역들만 추가되는 것을 볼 수 있습니다.
Demo
- 위의 예제에서 처럼 재생 목록의 순서를 정하여 자연스럽게 3개의 항목을 재생할 수 있습니다.
'WWDC > WWDC 2021' 카테고리의 다른 글
WWDC 2021 - Take your iPad apps to the next level (0) | 2021.08.09 |
---|---|
WWDC 2021 - Use the camera for keyboard input in your app (0) | 2021.08.06 |
WWDC 2021 - Tap into virtual and physical game controllers (0) | 2021.08.05 |
WWDC 2021 - Simplify sign in for your tvOS apps (0) | 2021.08.03 |
WWDC 2021 - Meet the UIKit button system (0) | 2021.08.02 |
Comments