Apple HLS 최신 정보 캡처 #WWDC 2017
6338 단어 WWDCFairPlayStreamingHLSiOS
그렇다면 WWDC 2017에서 HLS는 RFC 규격으로 공식 인정됐다.
HLS는 오랫동안 애플만의'draft'규격의 상태여서 웹과 앱 개발자들에게는 어디까지 열심히 투자해야 할지 도무지 알 수 없다.이 공식적인 규격이 업그레이드돼 지금까지 HLS 굿즈 기술에 투자한 개발자들에게는 상당히 행복한 뉴스가 되겠죠.
최신판 초고가 업데이트되기 때문에 한번 보세요.그리고 방금 검사를 하고 올라갔어요.
https://developer.apple.com/streaming/HLS-WWDC-2017-Preliminary-Spec.pdf
다른 것도 중요한 사항을 많이 발표했지만 사소한 일은 금방 잊어버리기 때문에 메모를 총괄하고 싶습니다.주로 다음과 같은 회화의 화제다.
Advances in HTTP Live Streaming
https://developer.apple.com/videos/play/wwdc2017/504/
HEVC/H.265
새로운 OS는 HEVC를 지원합니다.
HEVC 자체는 페이스타임 앱에서 A8 칩을 지원받았지만, 개발자에게는 공개되지 않았다.iOS 11에서 A9 칩이라면 하드웨어 디코딩을 지원할 수 있다고 한다.그렇지 않아도 소프트웨어 디코딩이 지원되기 때문에 기본적으로 아무 걱정도 할 필요가 없다.
컨테이너 형식 및 암호화
그러나 HEVC는 ts를 지원하지 않고 fmp4만 지원합니다.
No support for HEVC in MPEG-2 TS
오랫동안 HLS의 컨테이너 포맷으로 사용해온 ts(transport stream)는 앞으로 추천하지 않게 된다.외로웠지만 눈엣가시를 뗄 수 있을 것 같은 건 나뿐인가.
암호화에 관해서는 "common encryption의 cbcs 프로젝트를 사용할 수 있습니다."그러나 표와 같이 FairPlay는 소프트웨어 디코딩을 지원하지 않습니다.HEVC에서 FairPlay를 사용할 수 있다는 것은 현실적으로 오래전 일일 수도 있다.
이전 OS와의 호환성
CODECS= "hvc1.2.4.L123.B0,..."
이전 OS와의 호환성을 유지하기 위해 CODEC
속성을 사용합니다.
WWDC 세션 애니메이션의 재생 목록도 바로 그 예입니다.$ curl https://devstreaming-cdn.apple.com/videos/wwdc/2017/504op4c3001w2f222/504/hls_vod_mvp.m3u8 | head
#EXTM3U
#EXT-X-VERSION:4
#EXT-X-STREAM-INF:BANDWIDTH=1096572,AVERAGE-BANDWIDTH=1096572,CODECS="avc1.77.30,mp4a.40.2",RESOLUTION=640x360
0640/0640.m3u8
#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=548286,AVERAGE-BANDWIDTH=548286,CODECS="avc1.77.30,mp4a.40.2",RESOLUTION=640x360,URI="0640/0640_I-Frame.m3u8"
#EXT-X-STREAM-INF:BANDWIDTH=6176320,AVERAGE-BANDWIDTH=6176320,CODECS="avc1.640028,mp4a.40.2",RESOLUTION=1920x1080
1920/1920.m3u8
#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=3088160,AVERAGE-BANDWIDTH=3088160,CODECS="avc1.640028,mp4a.40.2",RESOLUTION=1920x1080,URI="1920/1920_I-Frame.m3u8"
메인 재생 목록에 여러 개의 디코더를 혼합해도 상관없기 때문에 고객측에서 HEVC로 메시지를 보내는 재생 목록과 AVC1로 메시지를 보내는 재생 목록을 구분할 수 있습니다.
IMSC1
새로운 자막 형식을 지원한다고 합니다.
자신이 필요로 하지 않기 때문에, 여기서는 생략을 차단한다.
EXT-X-GAP
새 태그가 추가되었습니다!
이것은 발송자의 오류에 대해 고객측이 오류 방지 조치를 취하기 위한 메커니즘이다.
예를 들어 ABR(Adaptive Bitrate) 배포 과정에서 특정 비트레이트의 포장이 일시적으로 실패할 경우 정확한 정보 대신 쓰기EXT-X-GAP
를 통해 고객 측은 헛되이 영상을 되찾지 않고 오류 상태에서 회복되기를 기다릴 수 있다.이 기간 동안 다른 비트레이트의 재생 목록이 정상적으로 업데이트되면, 그곳에서 틈새 없이 전환되면, 사용자는 심지어 편지 배달에 이상이 있다는 것을 알아차리지 못할 것이다.물론 iOS라면 AVPlayer가 이 근처에서 잘 처리하겠죠.
주로 실황 중계에서 활약하지만, 편지 배신을 놓친 경우라도 이 같은 이상 내용이 안전하게 재생될 수 있어 배신자들에게는 즐겁지 않겠느냐.
mpd(MPEG-DASH)도 이럴 수 있나요?
변수 지원
상당히 화려한 기능이네요.지금까지 URI를 일괄 변경하는 방법이 없어서 편하지 않나요?
프로덕션 환경에서의 예로 CDN 구성 컨텐츠에 대한 액세스 제어를 나열했습니다.
실시간 영상 동기화
개인적으로 가장 흥분된 것은 바로 이것이다.여러 명의 유저들 사이에서 영상을 동시 생중계할 수 있는 시간.시위행진을 했지만 전혀 문제 없이 활동하다 보니 오히려 흥이 깨지는 느낌이었고, 이 일대 제작은 역시 순조로운 결정이었다는 인상을 받았다.
EXT-X-PROGRAM-DATE-TIME
라는 라벨을 사용했지만 응용 프로그램도 구상된 코드를 써야 하며 공개된 샘플 코드SyncStartTV
를 참고할 수 있다.(데모에 사용된 어플리케이션)
preferredPeakBitRate
유저는 최대 비트레이트를 설정할 수 있습니다.예를 들어, 즐겨찾기 뷰 셀에 애니메이션의 첫 번째 부분을 미리 보기로 표시할 수 있습니다.
다운로드 관리
CODECS= "hvc1.2.4.L123.B0,..."
$ curl https://devstreaming-cdn.apple.com/videos/wwdc/2017/504op4c3001w2f222/504/hls_vod_mvp.m3u8 | head
#EXTM3U
#EXT-X-VERSION:4
#EXT-X-STREAM-INF:BANDWIDTH=1096572,AVERAGE-BANDWIDTH=1096572,CODECS="avc1.77.30,mp4a.40.2",RESOLUTION=640x360
0640/0640.m3u8
#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=548286,AVERAGE-BANDWIDTH=548286,CODECS="avc1.77.30,mp4a.40.2",RESOLUTION=640x360,URI="0640/0640_I-Frame.m3u8"
#EXT-X-STREAM-INF:BANDWIDTH=6176320,AVERAGE-BANDWIDTH=6176320,CODECS="avc1.640028,mp4a.40.2",RESOLUTION=1920x1080
1920/1920.m3u8
#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=3088160,AVERAGE-BANDWIDTH=3088160,CODECS="avc1.640028,mp4a.40.2",RESOLUTION=1920x1080,URI="1920/1920_I-Frame.m3u8"
새로운 자막 형식을 지원한다고 합니다.
자신이 필요로 하지 않기 때문에, 여기서는 생략을 차단한다.
EXT-X-GAP
새 태그가 추가되었습니다!
이것은 발송자의 오류에 대해 고객측이 오류 방지 조치를 취하기 위한 메커니즘이다.
예를 들어 ABR(Adaptive Bitrate) 배포 과정에서 특정 비트레이트의 포장이 일시적으로 실패할 경우 정확한 정보 대신 쓰기EXT-X-GAP
를 통해 고객 측은 헛되이 영상을 되찾지 않고 오류 상태에서 회복되기를 기다릴 수 있다.이 기간 동안 다른 비트레이트의 재생 목록이 정상적으로 업데이트되면, 그곳에서 틈새 없이 전환되면, 사용자는 심지어 편지 배달에 이상이 있다는 것을 알아차리지 못할 것이다.물론 iOS라면 AVPlayer가 이 근처에서 잘 처리하겠죠.
주로 실황 중계에서 활약하지만, 편지 배신을 놓친 경우라도 이 같은 이상 내용이 안전하게 재생될 수 있어 배신자들에게는 즐겁지 않겠느냐.
mpd(MPEG-DASH)도 이럴 수 있나요?
변수 지원
상당히 화려한 기능이네요.지금까지 URI를 일괄 변경하는 방법이 없어서 편하지 않나요?
프로덕션 환경에서의 예로 CDN 구성 컨텐츠에 대한 액세스 제어를 나열했습니다.
실시간 영상 동기화
개인적으로 가장 흥분된 것은 바로 이것이다.여러 명의 유저들 사이에서 영상을 동시 생중계할 수 있는 시간.시위행진을 했지만 전혀 문제 없이 활동하다 보니 오히려 흥이 깨지는 느낌이었고, 이 일대 제작은 역시 순조로운 결정이었다는 인상을 받았다.
EXT-X-PROGRAM-DATE-TIME
라는 라벨을 사용했지만 응용 프로그램도 구상된 코드를 써야 하며 공개된 샘플 코드SyncStartTV
를 참고할 수 있다.(데모에 사용된 어플리케이션)
preferredPeakBitRate
유저는 최대 비트레이트를 설정할 수 있습니다.예를 들어, 즐겨찾기 뷰 셀에 애니메이션의 첫 번째 부분을 미리 보기로 표시할 수 있습니다.
다운로드 관리
상당히 화려한 기능이네요.지금까지 URI를 일괄 변경하는 방법이 없어서 편하지 않나요?
프로덕션 환경에서의 예로 CDN 구성 컨텐츠에 대한 액세스 제어를 나열했습니다.
실시간 영상 동기화
개인적으로 가장 흥분된 것은 바로 이것이다.여러 명의 유저들 사이에서 영상을 동시 생중계할 수 있는 시간.시위행진을 했지만 전혀 문제 없이 활동하다 보니 오히려 흥이 깨지는 느낌이었고, 이 일대 제작은 역시 순조로운 결정이었다는 인상을 받았다.
EXT-X-PROGRAM-DATE-TIME
라는 라벨을 사용했지만 응용 프로그램도 구상된 코드를 써야 하며 공개된 샘플 코드SyncStartTV
를 참고할 수 있다.(데모에 사용된 어플리케이션)
preferredPeakBitRate
유저는 최대 비트레이트를 설정할 수 있습니다.예를 들어, 즐겨찾기 뷰 셀에 애니메이션의 첫 번째 부분을 미리 보기로 표시할 수 있습니다.
다운로드 관리
유저는 최대 비트레이트를 설정할 수 있습니다.예를 들어, 즐겨찾기 뷰 셀에 애니메이션의 첫 번째 부분을 미리 보기로 표시할 수 있습니다.
다운로드 관리
AVAssetDownloadStorageManagementPolicy
에서 유효기간 또는 중요도 설정 가능AVAggregateAssetDownloadTask
새 다운로드 클래스가 추가되었습니다.주로 여러 개의 오디오가 있는 상황에서 편리하게 사용할 수 있지만 개인이 필요하지 않기 때문에 필요하지 않다.
FairPlay
FairPlay와 관련해서도 일부 업데이트가 있습니다.
AVContentKeySession
우선 iOS 11에서 각각 콘텐츠를 재생하고 버튼을 받을 수 있어 기쁘다.이 범주를 사용하는 경우 먼저 라이센스 서버에 액세스하여 키를 가져올 수 있습니다.실제로 열쇠를 불러오는 것은 재생하기 전이다.
오프라인 재생용 버튼의 2단계 유효기간
Dual Expiry Windows for Persistent Keys
이런 일인가...?
간단하게 말하면, 당신은 버튼 자체의 유효기간과 버튼을 사용하여 재생하는 유효기간을 설정할 수 있습니다.
storage의 유효기간 내에 사용자가 재생을 시작한 후에 새로운 키를 얻고 그 키로 재생할 수 있는 유효기간과 같은 구조를 관리한다.이른바 임대 기능이다.
첫 번째 키는 그때 효력을 잃었다.
총결산
WWDC 2017에 HLS 관련 주제를 발표했다.
업계에서도 최근 라이브 출시 열풍 속에서 애플은 동영상 사용자 체험에 대해 진지하게 생각했다는 인상을 주고 있다.작년에는 fmp4 대응이 오피스FPS와 같은 수준이었지만, 올해는 새로운 애니메이션 인코딩 방법에 대한 대응과 같은 큰 업데이트뿐만 아니라 재생 목록 수준의 오류 처리 구조와 실황 녹음 이미지 동기화 등 간지러운 부분도 새로운 기능이 많다.
그렇게 노력하면 FairPlay도 Common Enceryption의 mandaatory 규격에 잘 맞춰지거나, 아예 MPEG-DASH 같은 걸로 바꿔서 할 수 있는 게 또 있지 않을까 하는 생각이 들긴 하지만, 한꺼번에 삼키고 새로운 OS의 등장을 먼저 기대하고📺
Reference
이 문제에 관하여(Apple HLS 최신 정보 캡처 #WWDC 2017), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/toshi0383/items/d11e0d42a8318d19e746
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
FairPlay와 관련해서도 일부 업데이트가 있습니다.
AVContentKeySession
우선 iOS 11에서 각각 콘텐츠를 재생하고 버튼을 받을 수 있어 기쁘다.이 범주를 사용하는 경우 먼저 라이센스 서버에 액세스하여 키를 가져올 수 있습니다.실제로 열쇠를 불러오는 것은 재생하기 전이다.
오프라인 재생용 버튼의 2단계 유효기간
Dual Expiry Windows for Persistent Keys
이런 일인가...?간단하게 말하면, 당신은 버튼 자체의 유효기간과 버튼을 사용하여 재생하는 유효기간을 설정할 수 있습니다.
storage의 유효기간 내에 사용자가 재생을 시작한 후에 새로운 키를 얻고 그 키로 재생할 수 있는 유효기간과 같은 구조를 관리한다.이른바 임대 기능이다.
첫 번째 키는 그때 효력을 잃었다.
총결산
WWDC 2017에 HLS 관련 주제를 발표했다.
업계에서도 최근 라이브 출시 열풍 속에서 애플은 동영상 사용자 체험에 대해 진지하게 생각했다는 인상을 주고 있다.작년에는 fmp4 대응이 오피스FPS와 같은 수준이었지만, 올해는 새로운 애니메이션 인코딩 방법에 대한 대응과 같은 큰 업데이트뿐만 아니라 재생 목록 수준의 오류 처리 구조와 실황 녹음 이미지 동기화 등 간지러운 부분도 새로운 기능이 많다.
그렇게 노력하면 FairPlay도 Common Enceryption의 mandaatory 규격에 잘 맞춰지거나, 아예 MPEG-DASH 같은 걸로 바꿔서 할 수 있는 게 또 있지 않을까 하는 생각이 들긴 하지만, 한꺼번에 삼키고 새로운 OS의 등장을 먼저 기대하고📺
Reference
이 문제에 관하여(Apple HLS 최신 정보 캡처 #WWDC 2017), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/toshi0383/items/d11e0d42a8318d19e746
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Apple HLS 최신 정보 캡처 #WWDC 2017), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/toshi0383/items/d11e0d42a8318d19e746텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)