Adaptive Bitrate Streaming

최신 업데이트:2025-05-29 11:39:33

적응형 비트레이트(ABR) 스트리밍은 다양한 사용자 기기와 변화하는 네트워크 조건의 문제를 해결합니다. 이 기술은 각 사용자의 현재 연결 상태에 가장 적합한 비트레이트로 비디오 콘텐츠를 자동으로 전달하여 모든 기기와 네트워크 환경에서 최적의 시청 경험을 보장합니다.

CDNetworks는 HLS 및 DASH 패키징 형식에 대한 포괄적인 ABR 지원을 제공합니다.

사용 방법

요청 본문에 fops 파라미터를 다음과 같이 구성하세요:

<op>/<Format>
    /envBandWidth/<value>
    /multiAb/<value>
    /multiVb/<value>
    /multiResolution/<value>
    |saveas/<Urlsafe_Base64_Encode(bucket:filekey)>

파라미터

파라미터 필수 설명
op 작업 유형. 적응형 비트레이트 스트리밍 시 avthumb 사용
format 출력 대상 형식. m3u8(HLS), mpd(DASH) 등 지원
envBandWidth 아니오 HLS 스트리밍 전환을 트리거하는 대역폭 임계값

• 최대 5개 임계값 설정 가능 (최소 2개 필요)
• 유효 범위: 50,000~30,000,000 b/s
• 예시: 60000:150000:500000

중요 사항:
1. HLS 형식 출력 시 필수
2. multiVb, multiAb, multiResolution 값 개수와 일치 필요
3. 트랜스코딩 비트레이트 값과 유사하게 설정 권장
4. 값은 오름차순으로 배열 필요
multiAb 아니오 품질 레벨별 오디오 비트레이트(bps 단위)

• 최대 5개 오디오 비트레이트 설정 가능 (최소 2개 필요)
• 예시: 64k:128k:256k

중요 사항:
1. multiVbmultiResolution 값 개수와 일치 필요
2. 기본 오디오 트랜스코딩 파라미터 ab와 함께 사용 불가
multiVb 아니오 품질 레벨별 비디오 비트레이트(bps 단위)

• 최대 5개 비디오 비트레이트 설정 가능 (최소 2개 필요)
• 예시: 128k:600k:1.25m

중요 사항:
1. multiAbmultiResolution 값 개수와 일치 필요
2. 기본 비디오 트랜스코딩 파라미터 vb와 함께 사용 불가
multiResolution 아니오 품질 레벨별 해상도(wxh 형식)

• 최대 5개 해상도 설정 가능 (최소 2개 필요)
• 해상도 지정 방법 두 가지:

1. 가로/세로 명시: 두 차원 모두 정의 (예: 320x240:640x480:1080x720)
참고: 출력 화면비가 원본과 다를 경우 영상 늘어남 발생 가능

2. 단일 차원 지정: 한 차원만 설정 후 -1 사용 (예: 320x-1:-1x480:1080x-1)
지정되지 않은 차원은 원본 화면비 유지하며 자동 조정
saveas 아니오 URL-safe Base64 인코딩 문자열로 출력 위치 지정: Urlsafe_Base64_Encode(bucket:savedfilename)

예시

예시 1: HLS 적응형 비트레이트

소스 파일 test_hls.m3u8에서 2개 품질 레벨의 HLS 적응형 스트림 생성:

품질 레벨:

  • 레벨 1:
    • 대역폭 임계값: 60 kb/s
    • 비디오 비트레이트: 128 kbit/s
    • 오디오 비트레이트: 64 kbit/s
    • 해상도: 320x240
  • 레벨 2:
    • 대역폭 임계값: 100 kb/s
    • 비디오 비트레이트: 600 kbit/s
    • 오디오 비트레이트: 128 kbit/s
    • 해상도: 640x480

의사 코드 요청:

curl -v -X POST 
–d "bucket=Urlsafe_Base64_Encode(vod-wcs-test001)&key=Urlsafe_Base64_Encode(test_hls.m3u8)&fops=Urlsafe_Base64_Encode(avthumb/m3u8/envBandWidth/60000:100000/multiAb/64k:128k/multiVb/128k:600k/multiResolution/320x240:640x480|saveas/Urlsafe_Base64_Encode(vod-wcs-test001:test_file.m3u8))&force=1&separate=1"
–H "Authorization:AccessKey:EncodeSign" 
--url "http://mgrDomain/fops"

실제 요청:

curl -v -X POST 
-d "bucket=dm9kLXdjcy10ZXN0MDAx&key=dGVzdF9obHMubTN1OA==&fops=YXZ0aHVtYi9tM3U4L2VudkJhbmRXaWR0aC81MDAwMDoxMDAwMDAvbXVsdGlBYi82NGs6MTI4ay9tdWx0aVZiLzEyOGs6NjAway9tdWx0aVJlc29sdXRpb24vMzIweDI0MDo2NDB4NDgwfHNhdmVhcy9kbTlrTFhkamN5MTBaWE4wTURBeE9uUmxjM1JmWm1sc1pTNXRNM1U0&force=1&separate=1"
-H "Authorization:AccessKey:EncodeSign" 
--url "http://mgrDomain/fops"

예시 2: DASH 적응형 비트레이트

소스 파일 test.mp4에서 2개 비디오 품질 레벨과 1개 오디오 스트림으로 구성된 DASH 적응형 스트림 생성:

스트림 구성:

  • 비디오 스트림 1:
    • 비트레이트: 128 kbit/s
    • 해상도: 320x240
  • 비디오 스트림 2:
    • 비트레이트: 600 kbit/s
    • 해상도: 640x480
  • 오디오 스트림:
    • 비트레이트: 64 kbit/s

의사 코드 요청:

curl -v -X POST 
–d "bucket=Urlsafe_Base64_Encode(vod-wcs-test001)&key=Urlsafe_Base64_Encode(test_hls.m3u8)&fops=Urlsafe_Base64_Encode(avthumb/mpd/multiVb/128k:600k/multiAb/64k/multiResolution/320x240:640x480|saveas/Urlsafe_Base64_Encode(vod-wcs-test001:test.mpd))&force=1&separate=1"
–H "Authorization:AccessKey:EncodeSign" 
--url "http://mgrDomain/fops"

실제 요청 형식은 예시 1을 참조하십시오.

이 문서의 내용이 도움이 되었습니까?
아니오
정상적으로 제출되었습니다.피드백을 주셔서 감사합니다.앞으로도 개선을 위해 노력하겠습니다.