1

현재 주로 AWS 기술을 사용하는 간단한 VOD 브라우저 기반 서비스에 대해 작업하고 있습니다. HLS는 Elastic Transcoder에서 지원하는 스트리밍 프로토콜로 사용됩니다.HLS, AWS Elastic Encoder 및 적응 형 스트리밍

현재 소스 자료는 720p (1280x720)이며이 정보도 처리 할 수있는 모든 기기에 표시하려는 해상도입니다. 비디오를 데스크톱, iPad 및 대부분의 스마트 폰에서 사용하고 싶습니다. 나는 비디오 jj와 함께 ViBlast를 플레이어로 사용하고 있습니다.

나는 다음과 같은 질문이 :

  • M3U8 재생 목록은 다중 스트림을 지정할 수 있습니다. 각 해상도마다 다른 비트율의 다른 소스 스트림이있는 자체 재생 목록을 가져야합니까, 아니면 하나의 재생 목록에 모든 것을 넣을 수 있습니까 (하나의 재생 목록은 다른 해상도와 비트 전송률을 제공 할 수 있습니다).
  • 데스크톱과 가장 최근의 태블릿이 1280x720을 표시 할 수있는 것처럼 보입니다. 동일한 재생 목록을 사용할 수 있다고 가정합니다. 비트 레이트를 지정하기 만하면됩니다. 그러나 휴대 전화를위한 최상의 해상도는 무엇입니까? 모든 기기의 크기가 다른 것 같습니다 (Android는 여기를 참조).
  • 각 장치에 어떤 비트율을 사용해야합니까? 나는 약간의 연구를하고 있지만 모든 기사는 "최고"설정에 대한 다른 권고 사항을 가지고 있지만 그 숫자를 어떻게 얻었는지 결코 설명하지는 않습니다.
  • 해상도가 다른 소스가 포함 된 재생 목록을 사용하는 경우 재생 목록의 순서가 중요합니까? 가장 낮은 비트 전송률을 먼저 나열해야한다는 내용을 읽었지만 해결 방법에도 적용됩니까? 또는 플레이어가 화면과 가장 잘 맞는 스트림을 자동으로 선택합니까?

나는 대부분의 장치에 맞는 "좋은"솔루션을 찾고 있습니다.

답변

2

희망이 도움이됩니다.

m3u8 재생 목록은 여러 스트림을 지정할 수 있습니다. 각 해상도는 자신의 재생 목록 (다른 소스 스트림은 다른 비트 전송률)이거나 하나의 재생 목록에 모든 것을 넣을 수 있습니까 (하나의 재생 목록은 다른 해상도와 비트 전송률을 제공 할 수 있습니다).

참고로 아래 정보에 대한 좋은 지침 인 주제의 Apple 'Technical Note TN2224'를 참조하십시오. https://developer.apple.com/library/content/technotes/tn2224/_index.html

간단한 대답 : 각 해상도마다 고유 한 변형 재생 목록이 있어야합니다.

일반적으로 변형 재생 목록 (일명 변환)에 대한 참조가있는 마스터 재생 목록이 하나 있습니다. 변형 재생 목록은 비트율 및 해상도가 다른 동일한 비디오의 서로 다른 품질의 스트림입니다. 그러나 각 변형은 하나의 비트 전송률 수준 만 포함합니다. 샘플 마스터 플레이리스트 :

#EXTM3U 
#EXT-X-VERSION:3 
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=4648000,RESOLUTION=3840x2160 
4648k/stream.m3u8 
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2670000,RESOLUTION=1920x1080 
2670k/stream.m3u8 
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1823000,RESOLUTION=1280x720 
1823k/stream.m3u8 
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=975000,RESOLUTION=854x480 
975k/stream.m3u8 
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=491000,RESOLUTION=640x360 
491k/stream.m3u8 
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=186000,RESOLUTION=256x144 
186k/stream.m3u8 

은 (TN2224) "비트율은 대역폭 속성을 이용하여 X-EXT-STREAM-INF 태그에 지정된". 또한 사용 가능한 데이터가 적고 일반적으로 더 작은 모바일 화면에서 볼 것으로 예상되기 때문에 각각의 내림차순 대역폭 (비트 전송률) 수준은 해당 해상도가 낮습니다.

데스크톱과 가장 최근의 태블릿에는 1280x720이 표시 될 수 있지만, 동일한 재생 목록을 사용할 수 있다고 가정합니다. 비트 레이트를 지정하기 만하면됩니다. 그러나 휴대 전화를위한 최상의 해상도는 무엇입니까? 기기마다 다른 크기가 있습니다 (Android는 여기를 참조).

해상도와 비트율이 함께합니다. 186K 비트 전송률 (매우 낮음)로 인코딩 된 스트림에는 1280x720 화면을 채우기에 충분한 데이터가 없습니다. 그러나 셀 네트워크의 모바일 장치는 높은 비트 전송률을 다운로드하지 못할 수 있습니다. 따라서 적절한 해상도와 비트 전송률을 가진 여러 가지 변형 옵션이 필요합니다.

특정 장치에 집중하지 마십시오. 끝내지 않습니다. 일반적인 16 : 9 종횡비를 사용하여 비트 전송률/해상도 변형 사다리를 작성하십시오. 예 : 1280x720, 1024x576, 640x360, ...

고려해야 할 몇 가지 사항이 있습니다. 이미 고려중인 비트 전송률, 해상도. 그러나이 비디오는 H.264를 사용하여 인코딩 되었습니까? 그렇다면 프로필 수준을 고려해야합니다. 다음은 주제에 대한 좋은 기사입니다 : http://www.streamingmedia.com/Articles/ReadArticle.aspx?ArticleID=94216&PageNum=1.

enter image description here

나는 각 장치에 사용해야 비트 레이트

? 나는 약간의 연구를하고 있는데, 하지만 모든 기사에는 "best"설정에 대한 다른 권장 사항이 있지만 어떻게 그 숫자를 얻었는지 설명하지는 못합니다.

해상도와 같은 대답. 실제 장치에 집중하지 마십시오. 등의 장치를 선택할 수 있습니다 비트 레이트/해상도 변종의 사다리를 사용 가능한 대역폭, 배터리 수명, 처리 능력에 따라 가장 적합한 빌드

내가 다른 해상도가 서로 다른 소스를 포함하는 재생 목록을 사용하는 경우, 재생 목록의 순서가 중요합니까? 어딘가에서 가장 낮은 비트 전송률을 먼저 나열해야하지만이 방법을 사용하면 해상도가 에 해당합니까? 또는 플레이어가 화면과 가장 일치하는 스트림 을 자동으로 선택합니까?

각 게시자 또는 제조업체는 플레이어를 다르게 구성 할 수 있습니다. 그러나 이것은 Apple이 TN2224에서 권장하는 것입니다.

"첫 비트 전송률은 대부분의 클라이언트가 유지할 수있는 값이어야합니다. 마스터 재생 목록의 첫 번째 항목은 스트림 시작시 재생되며 테스트의 일부로 사용되어 가장 적합한 스트림을 결정합니다. 다른 스트림의 순서는 무의미합니다. 따라서 재생 목록의 첫 번째 비트 전송률은 대부분의 클라이언트가 유지할 수있는 비트 전송률이어야합니다. "

희망이 있습니다.

이안