HLS(HTTP Live Streaming) 이용가이드 1. HLS 소개 Apple iphone, ipad, ipod의운영체제인 ios에서사용하는표준 HTTP 기반스트리밍프로토콜입니다. 2. HLS 지원대상 - 디바이스 : iphone/ipad/ipod - 운영체제 : ios 3.0 이상 - 콘텐츠형식 : MP4 (H264,AAC ), MP3 * 디바이스별해상도, 화면크기, 코덱설정은 Apple에문의하십시오. 3. M3U8 파일및 HLS 서비스 URL 3.1 m3u8 파일 m3u8 파일은 HLS에필요한메타데이터를담고있는파일이며, 따로올릴필요없이 ucloud CDN에서자동생성됩니다. 3.2 HLS 서비스 URL [ ucloud CDN Prefix URL ] + [ 콘텐츠 ] + /playlist.m3u8 * MP4/MP3에대한 ucloud CDN Prefix URL : http://[cdn도메인 ]/vol-xxx/_definst_ * HLS는 TCP 80포트사용 http://stm.ktics.co.kr/vol-xxx/_definst_/sample.mp4/playlist.m3u8 4. ios 에서재생하기 4.1 A Tag 를이용한재생 1 / 5
<HTML> <A HREF="[ ucloud CDN Prefix URL ] + [ 콘텐츠 ] + /playlist.m3u8">sample</a> </HTML> <html> <a href="http://stm.ktics.co.kr/vol-xxx/_definst_/sample.mp4/playlist.m3u8">sample</a> </html> 4.2 Video/Audio Tag 를이용한재생 Video/Audio Tag는 HTML5에포함된멀티미디어콘텐츠를웹페이지에삽입하기위한 Tag입니다. 현재 ios의 Safari 브라우져는 Video/Audio Tag를지원하고있습니다. <HTML> <VIDEO SRC="[ ucloud CDN Prefix URL ] + [ 콘텐츠 ] + /playlist.m3u8" controls> </VIDEO> </HTML> <html> <video src=" http://stm.ktics.co.kr/vol-xxx/_definst_/sample.mp4/playlist.m3u8" controls> </video> </html> 2 / 5
5. HLS의 Adaptive Streaming 소개 5.1 Adaptive streaming 이란? 동일영상에대해서 2가지이상의 Bitrate로인코딩을한후, 네트워크속도에맞추어서최적의 Bitrate로스티리밍하는방식입니다. Adaptive streaming을하기위해서는 MP4 파일과별도로 SMIL 파일을작성, 같이올리셔야합니다. 5.2 SMIL 파일내용 <SMIL> <HEAD> </HEAD> <SWITCH> <VIDEO SRC="[ ucloud CDN Prefix URL ] + [ 콘텐츠 ] + /playlist.m3u8" SYSTEM-BITRATE="[ 비트레이트, Kbps]"/> <VIDEO SRC="[ ucloud CDN Prefix URL ] + [ 콘텐츠 ] + /playlist.m3u8" SYSTEM-BITRATE="[ 비트레이트, Kbps]"/> </SWITCH> </SMIL> <smil> <head> </head> <switch> <video src="http://stm.ktics.co.kr/vol-xxx/_definst_/sample_400k.mp4 /playlist.m3u8" system-bitrate="400000"/> <video src="http://stm.ktics.co.kr/vol-xxx/_definst_/sample_800k.mp4 /playlist.m3u8" system-bitrate="800000"/> </switch> </smil> 3 / 5
5.3 SMIL URL MP4파일과유사한형식으로작성되며 URL Link 및 HTML5 모두사용가능합니다. [ ucloud CDN Prefix URL ] + [ 콘텐츠 ] + /playlist.m3u8 * SMIL에대한 ucloud CDN Prefix URL: http://[cdn도메인 ]/vol-xxx/_definst_ http://stm.ktics.co.kr/vol-xxx/_definst_/sample.smil/playlist.m3u8 6. 인증서비스사용방법 6.1 인증서비스란? 클라이언트는 HTTP URL에인증토큰을첨부해서접속하고, ucloud CDN HLS 서버는 URL에포함된인증토큰을검사해서올바르면서비스를제공하고, 인증토큰이올바르지않으면서비스를제공하지않는서비스입니다. 6.2 인증서비스 URL 형식 [HLS 스트리밍 URL]? token = [ 인증토큰 ] & expr = [ 인증유효시간 ] http://stm.ktics.co.kr/volxxx/_definst_/sample.mp4/playlist.m3u8?token=abcdefgh&expr=abcdef 6.3 인증파라미터 file : 스트리밍할파일명입니다. token : 인증토큰으로 32자리로이루어집니다. expr : 인증토큰의만료시간으로 unix timestamp의 hex 값입니다. * unix timestamp는세계표준시간기준입니다. 4 / 5
6.4 token/expr 생성방법및사용예 expr_rel = 60 // 인증토근유효시간지정 ( 단위 : 초 ) secret = "123456789" // 서비스생성과정에서설정한인증암호 filename = "/sample.mp4" // / 을포함해서파일명설정 current = get_curr_unix_timestamp() // 현재 UNIX TIMESTAMP expr = convert_int_to_hex(current + expr_rel) // 인증토큰유효시간 (16진수문 자열 ) message = concatenate(secret, filename, expr) // 인증토큰생성에필요한문자열 생성 token = md5(message) // MD5 Hash를이용인증토큰생성 (2) PHP 사용예 $expr_rel = 60; $secret = '1234567890'; $filename = '/sample.mp4'; $current = time(); $expr = dechex(time()+$expr_rel); $messages = $secret.$filename.$expr; $token = md5($messages); 6.5 시간동기화 인증토큰을발급하는서버는 Unix/Linux는 kr.pool.ntp.org 시간서버와, Windows는 time.windows.com 과시간동기화가되어있어야합니다. (1) Unix / Linux 시간동기화 ntpdate 명령어또는 ntp 서비스를이용해서주기적으로동기화하시면됩니다. OS별설정은 OS제조사에문의하십시오. (2) Windows 시간동기화제어판 > 시계, 언어및국가별옵션 > 날짜및시간 > 인터넷시간에서설정하시면됩니다. 자세한동기화방법은 Microsoft에문의하십시오. 5 / 5