- 인쇄
- PDF
VOD 스트리밍
- 인쇄
- PDF
VOD 스트리밍을 위한 채널을 생성하고 CDN 플랫폼과의 연동 설정을 완료했다면 재생 경로 URL로 콘텐츠를 재생해 스트리밍 서비스 구현 상태를 확인할 수 있습니다. 재생 시작 지점과 종료 지점을 설정해 파일 트리밍을 적용하거나 자막을 적용할 수도 있습니다.
- 서비스 중인 원본 미디어 파일을 교체할 때에는 동일한 파일명을 사용하지 마십시오. 동일한 파일명을 사용해야 한다면, 파일을 교체하고 최소 10분이 지난 후에 CDN 퍼지를 수행해 캐시된 기존 콘텐츠를 제거해 주십시오.
- 원본 파일명에 #,$,; 문자가 포함된 경우 재생경로 URL을 통한 프로토콜 재생이 불가능합니다. 원본파일명의 특수문자를 주의해 주십시오.
- VOD Station은 오디오 스트리밍을 지원하며, VOD Station을 통해 인코딩된 m4a 파일 또는 VOD Station Channel input 사양을 만족하는 m4a 파일을 활용해야 합니다.
- VOD Station Channel input 사양은 사용 가이드를 참조해 주십시오.
- Live Station에서 생성된 m4a 레코딩 파일은 세그먼트 파일이므로 VOD Streaming을 지원하지 않아 재생이 불가합니다.
재생 경로 URL 확인
VOD Station에서 사용되는 재생 경로 URL의 구조는 다음과 같습니다.
Scheme | CDN 도메인 | 스트리밍 프로토콜 | 파일 이름 | Manifest |
---|---|---|---|---|
https:// | example.cdn.ntruss.com | /hls /dash | /example/example.mp4 | /index.m3u8 /manifest.mpd |
URL Scheme | 재생 CDN 도메인 | 생성한 채널의 스트리밍 프로토콜 | Object Storage 버킷 및 폴더 경로를 포함한 재생할 미디어 파일의 이름 | 스트리밍을 제공하기 위한 Manifest 파일 |
CDN+ 재생 경로 URL
채널을 생성할 때 CDN+를 함께 생성했다면 채널 정보의 CDN 재생 경로 URL을 참고해 재생할 수 있습니다. 채널 목록에서 재생할 채널을 선택하고 [채널 정보] 버튼을 클릭한 후 정보 팝업 창의 CDN 재생경로 영역에서 URL을 확인해 주십시오.
- URL Template: https://example.cdn.ntruss.com/[protocol]/[encryptedBucketName]/[path]/[video filename]/[manifest]
별도 생성 CDN 재생 경로 URL
채널을 생성할 때 CDN을 생성하지 않고 별도로 생성한 경우에는 채널 정보에 CDN 재생 경로 URL이 노출되지 않습니다. CDN 목록에서 생성한 CDN의 서비스 도메인을 확인한 후 URL Template의 [cdnDomain] 부분을 대체해 콘텐츠를 재생해 주십시오.
- URL Template: https://[cdnDomain]/[protocol]/[encryptedBucketName]/[path]/[video filename]/[manifest]
재생 경로 URL 생성
채널을 생성할 때 CDN+를 함께 생성했다면 콘텐츠별 CDN 재생 경로 URL을 자동으로 생성할 수 있습니다. 재생 경로 URL을 생성하는 방법은 다음과 같습니다.
- 네이버 클라우드 플랫폼 콘솔에서 Services > Media > VOD Station 메뉴를 차례대로 클릭해 주십시오.
- Channel 메뉴를 클릭한 후 채널 목록에서 채널을 선택해 주십시오.
- 채널의 콘텐츠 목록에서 자동 URL을 생성할 콘텐츠의 [HLS URL 생성] 또는 [DASH URL 생성] 버튼을 클릭해 주십시오.
- 생성된 URL로 바로 연결되어 콘텐츠가 재생됩니다.
콘텐츠 재생
채널의 콘텐츠를 재생해 VOD 스트리밍 서비스의 구현 상태를 확인할 수 있습니다. 다음의 예시를 참고하여 콘텐츠를 재생해 주십시오.
단일 비트레이트 재생
- guide 버킷 내의 vod-5100k.mp4 재생
버킷 아래 별도의 폴더 없이 존재하는 파일을 재생하므로 URL Template의 [path] 부분을 생략해 주십시오.
URL Template: https://[cdnDomain]/[protocol]/[encryptedBucketName]/[path]/[video filename]/[manifest]- HLS: https://example.cdn.ntruss.com/hls/guide/vod-5100k.mp4/index.m3u8
- DASH: https://example.cdn.ntruss.com/dash/guide/vod-5100k.mp4/manifest.mpd
- guide 버킷 내 1-depth 폴더 안의 vod-5100k.mp4 재생
URL Template의 [path] 부분에 버킷의 폴더 이름을 추가해 주십시오.
URL Template: https://[cdnDomain]/[protocol]/[encryptedBucketName]/[path]/[video filename]/[manifest]- HLS: https://example.cdn.ntruss.com/hls/guide/1-depth/vod-5100k.mp4/index.m3u8
- DASH: https://example.cdn.ntruss.com/dash/guide/1-depth/vod-5100k.mp4/manifest.mpd
Adaptive 비트레이트 재생
Adaptive 비트레이트 재생을 위한 미디어 파일은 모두 같은 폴더에 위치해야 합니다.
- guide 버킷 내 vod-5400k.mp4, vod-2400k.mp4, vod-1200k.mp4, vod-0900k.mp4, vod-0600k.mp4, vod-0300k.mp4 재생
prefix, suffix, 각 파일의 구분자로 쉼표(,)를 사용해 주십시오. suffix 뒤에는 abr 요청임을 구분하는 .smil을 추가해 주십시오.
미디어 파일의 prefix: vod-
미디어 파일의 suffix: k.mp4
URL Template: https://[cdnDomain]/[protocol]/[encryptedBucketName]/[path]/[prefix],[video filenames],[suffix].smil/[manifest]- HLS: https://example.cdn.ntruss.com/hls/guide/abr/vod-,5400,2400,1200,0900,0600,0300,k.mp4.smil/master.m3u8
(HLS 요청 시에는 manifest로 index.m3u8이 아닌 master.m3u8을 사용해 주십시오.) - DASH: https://example.cdn.ntruss.com/dash/guide/abr/vod-,5400,2400,1200,0900,0600,0300,k.mp4.smil/manifest.mpd
- HLS: https://example.cdn.ntruss.com/hls/guide/abr/vod-,5400,2400,1200,0900,0600,0300,k.mp4.smil/master.m3u8
- guide 버킷 내 vod-0600k.mp4, vod-0300k.mp4, svod-360p.mp4 재생
파일 이름이 다른 경우 prefix와 suffix 사이에는 공백을 두고 쉼표(,)를 추가해 주십시오.
미디어 파일의 prefix: 없음
미디어 파일의 suffix: 없음
URL Template: https://[cdnDomain]/[protocol]/[encryptedBucketName]/[path]/[prefix],[video filenames],[suffix].smil/[manifest]- HLS: https://example.cdn.ntruss.com/hls/guide/abr/,vod-0600k.mp4,vod-0300k.mp4,svod-360p.mp4,.smil/master.m3u8
- DASH: https://example.cdn.ntruss.com/dash/guide /abr/,vod-0600k.mp4,vod-0300k.mp4,svod-360p.mp4,.smil/manifest.mpd
미디어 파일 자르기
미디어 파일의 재생 지점을 설정해 파일 자르기(Cropping) 기능을 사용할 수 있습니다.
재생 시작 지점 지정
다음 예시는 VOD의 재생 시작 지점(vodStart)을 10초로 지정해 재생하는 방법을 보여줍니다. 시간 단위는 밀리초입니다.(1초 = 1000밀리초) 파일 자르기 옵션은 [protocol]/[encryptedBucketName] 뒤에 위치합니다.
- 단일 비트레이트 재생
URL Template:
https://[cdnDomain]/[protocol]/[encryptedBucketName]/vodStart/[time]/[path]/[video filename]/[manifest]- HLS: https://example.cdn.ntruss.com/hls/Bxpv-g0eEp-Gu4pCSAHOPQ__/vodStart/10000/guide/1-depth/vod-5100k.mp4/index.m3u8
- DASH: https://example.cdn.ntruss.com/dash/Bxpv-g0eEp-Gu4pCSAHOPQ__/vodStart/10000/guide/1-depth/vod-5100k.mp4/manifest.mpd
- Adaptive 비트레이트 재생
URL Template:
https://[cdnDomain]/[protocol]/[encryptedBucketName]/vodStart/[time]/[path]/[prefix],[video filenames],[suffix].smil/[manifest]- HLS:
https://example.cdn.ntruss.com/hls/Bxpv-g0eEp-Gu4pCSAHOPQ__/vodStart/10000/guide/abr/vod-,5400,2400,k.mp4.smil/master.m3u8 - DASH:
https://example.cdn.ntruss.com/dash/Bxpv-g0eEp-Gu4pCSAHOPQ__/vodStart/10000/guide/abr/vod-,5400,2400,k.mp4.smil/manifest.mpd
- HLS:
재생 종료 지점 지정
다음 예시는 VOD의 재생 종료 지점(vodEnd)을 10초로 지정해 재생하는 방법을 보여줍니다. 시간 단위는 밀리초입니다.(1초 = 1000밀리초) 파일 자르기 옵션은 [protocol]/[encryptedBucketName] 뒤에 위치합니다.
- 단일 비트레이트 재생
URL Template:
https://[cdnDomain]/[protocol]/[encryptedBucketName]/vodEnd/[time]/[path]/[video filename]/[manifest]- HLS: https://example.cdn.ntruss.com/hls/Bxpv-g0eEp-Gu4pCSAHOPQ__/vodEnd/10000/guide/1-depth/vod-5100k.mp4/index.m3u8
- DASH:
https://example.cdn.ntruss.com/dash/Bxpv-g0eEp-Gu4pCSAHOPQ__/vodEnd/10000/guide/1-depth/vod-5100k.mp4/manifest.mpd
- Adaptive 비트레이트 재생
URL Template:
https://[cdnDomain]/[protocol]/[encryptedBucketName]/vodEnd/[time]/[path]/[prefix],[video filenames],[suffix].smil/[manifest]- HLS: https://example.cdn.ntruss.com/hls/Bxpv-g0eEp-Gu4pCSAHOPQ__/vodEnd/10000/guide/abr/vod-,5400,2400,k.mp4.smil/master.m3u8
- DASH: https://example.cdn.ntruss.com/dash/Bxpv-g0eEp-Gu4pCSAHOPQ__/vodEnd/10000/guide/abr/vod-,5400,2400,k.mp4.smil/manifest.mpd
재생 시작 및 종료 지점 지정
다음 예시는 VOD의 1분 지점부터 2분 지점까지(vodStart, vodEnd) 재생하는 방법을 보여줍니다. 시간 단위는 밀리초입니다.(1초 = 1000밀리초) 파일 자르기 옵션은 [protocol]/[encryptedBucketName] 뒤에 위치합니다.
- 단일 비트레이트 재생
URL Template:
https://[cdnDomain]/[protocol]/[encryptedBucketName]/vodStart/[time]/vodEnd/[time]/[path]/[video filename]/[manifest]- HLS:
https://example.cdn.ntruss.com/hls/Bxpv-g0eEp-Gu4pCSAHOPQ__/vodStart/60000/vodEnd/120000/guide/1-depth/vod-5100k.mp4/index.m3u8 - DASH:
https://example.cdn.ntruss.com/dash/Bxpv-g0eEp-Gu4pCSAHOPQ__/vodStart/60000/vodEnd/120000/guide/1-depth/vod-5100k.mp4/manifest.mpd
- HLS:
- Adaptive 비트레이트 재생
URL Template: https://[cdnDomain]/[protocol]/[encryptedBucketName]/vodStart/[time]/vodEnd/[time]/[path]/[prefix],[video filenames],[suffix].smil/[manifest]- HLS:
https://example.cdn.ntruss.com/hls/Bxpv-g0eEp-Gu4pCSAHOPQ__/vodStart/60000/vodEnd/120000/guide/abr/vod-,5400,2400,k.mp4.smil/master.m3u8 - DASH:
https://example.cdn.ntruss.com/dash/Bxpv-g0eEp-Gu4pCSAHOPQ__/vodStart/60000/vodEnd/120000/guide/abr/vod-,5400,2400,k.mp4.smil/manifest.mpd
- HLS:
자막 설정
배포하는 영상 콘텐츠에 자막을 적용할 수 있습니다. 지원되는 자막 형식은 다음과 같습니다.
입력 | 출력 |
---|---|
VTT, SRT, DFXP, TTML, CAP | VTT |
영상 및 자막 파일 위치 지정
영상 파일과 자막 파일의 위치는 ABR URL이 시작되는 쉼표(,) 앞 [path]를 기준으로 합니다.
https://example.cdn.ntruss.com/[protocol]/[encryptedBucketName]/[path]/,[video files],lang/[lang code]/[subtitle filename],.smil/master.m3u8
/[path] 아래에 영상 파일과 자막 파일이 위치해야 합니다.
자막 언어 설정
언어 구분은 URL 내에 [lang code]로 분류됩니다.
https://example.cdn.ntruss.com/[protocol]/[encryptedBucketName]/[path]/,[video files],lang/[lang code]/[subtitle filename],.smil/master.m3u8
언어 코드는 ISO 639-3 규격의 3자리 코드를 사용해야 합니다. ISO639-3 코드 목록을 참고하십시오.
자막 사용
- 단일 비트레이트, 단일 자막
URL Template: https://[cdnDomain]/[protocol]/[encryptedBucketName]/[path]/,[video file],lang/[lang code]/[subtitle filename],.smil/[manifest]- HLS: https://example.cdn.ntruss.com/hls/guide/,vod-5100k.mp4,lang/kor/sample.vtt,.smil/master.m3u8
- DASH: https://example.cdn.ntruss.com/dash/guide/,vod-5100k.mp4,lang/kor/sample.vtt,.smil/manifest.mpd
- 단일 비트레이트, 다중 언어 자막
URL Template: https://[cdnDomain]/[protocol]/[encryptedBucketName]/[path]/,[video file],lang/[lang code]/[subtitle filename],lang/[lang code]/[subtitle filename],...lang/[lang code]/[subtitle filename],.smil/[manifest]- HLS: https://example.cdn.ntruss.com/hls/guide/,vod-5100k.mp4,lang/kor/samplek.vtt,lang/eng/sample-en.vtt,.smil/master.m3u8
- DASH: https://example.cdn.ntruss.com/dash/guide/,vod-5100k.mp4,lang/kor/sample-k.vtt,lang/eng/sample-en.vtt,.smil/manifest.mpd
- 다중 비트레이트, 다중 언어 자막
URL Template: https://[cdnDomain]/[protocol]/[encryptedBucketName]/[path]/,[video files],lang/[lang code]/[subtitle filename],lang/[lang code]/[subtitle filename],...lang/[lang code]/[subtitle filename],.smil/[manifest]- HLS: https://example.cdn.ntruss.com/hls/guide/,vod-5100k.mp4,vod-2400k.mp4,lang/kor/sample-k.vtt,lang/eng/sample-en.vtt,.smil/master.m3u8
- DASH: https://example.cdn.ntruss.com/dash/guide/,vod-5100k.mp4,vod-2400k.mp4,lang/kor/sample-k.vtt,lang/eng/sample-en.vtt,.smil/manifest.mpd
보안 설정
미디어 파일의 보안 향상을 위해서는 CDN의 Security Token 설정을 사용해 주십시오. CDN 생성 시 해당 항목을 설정하지 않았다면 CDN 목록 화면에서 [설정 변경] 버튼을 클릭해 설정을 변경할 수 있습니다.
CDN+ Security Token 활용
CDN+의 Viewer 전송 설정 화면에서 Security Token 영역의 사용을 클릭한 후 인증 예외 대상 확장자와 원본에 Token을 전달하는 확장자를 설정해 주십시오.
- HLS
인증 예외 대상 확장자: 없음
원본에 Token 을 전달하는 확장자: m3u8 - DASH
인증 예외 대상 확장자: mp4
원본에 Token을 전달하는 확장자: mpd
HLS 및 DASH Java Token 생성 예시는 다음과 같습니다.
- HLS: $ java AkamaiToken --token_name token --key abcd1234 --start_time now -- window 3600 --acl '/hls/vod-5100k.mp4/*'
- DASH: $ java AkamaiToken --token_name token --key abcd1234 --start_time now -- window 3600 --acl '/dash/vodStart/10000/abr/vod-,5400,2400,k.mp4.smil/*'