πŸ“Ί HLS둜 λΉ„λ””μ˜€ 슀트리밍 μ΅œμ ν™”ν•˜κΈ°

zizonyoungjunΒ·2024λ…„ 10μ›” 27일
1
post-thumbnail

ν˜„λŒ€ μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜κ³Ό λ―Έλ””μ–΄ ν”Œλž«νΌμ—μ„œ λΉ„λ””μ˜€ μŠ€νŠΈλ¦¬λ°μ€ ν•„μˆ˜μ μΈ μš”μ†Œλ‘œ 자리 작고 μžˆμŠ΅λ‹ˆλ‹€. μ‚¬μš©μžλ“€μ΄ μ–Έμ œ μ–΄λ””μ„œλ‚˜ κ³ ν™”μ§ˆ λΉ„λ””μ˜€ μ½˜ν…μΈ λ₯Ό λŠκΉ€ 없이 즐길 수 μžˆλ„λ‘ ν•˜κΈ° μœ„ν•΄, λ‹€μ–‘ν•œ 슀트리밍 기술이 κ°œλ°œλ˜μ—ˆμ£ . κ·Έμ€‘μ—μ„œλ„ HLS (HTTP Live Streaming)λŠ” μ›Ήκ³Ό λͺ¨λ°”일 ν™˜κ²½μ—μ„œ μ•ˆμ •μ μ΄κ³  μœ μ—°ν•œ μŠ€νŠΈλ¦¬λ°μ„ μ œκ³΅ν•˜λŠ” λŒ€ν‘œμ μΈ ν”„λ‘œν† μ½œμž…λ‹ˆλ‹€. 이번 κΈ€μ—μ„œλŠ” HLSκ°€ 무엇인지, 그리고 μ–΄λ–»κ²Œ μž‘λ™ν•˜λŠ”μ§€λ₯Ό μ•Œμ•„λ³΄κ³ , 이λ₯Ό μ μ ˆν•˜κ²Œ 잘 ν™œμš©ν•˜λŠ” 방법을 μ‚΄νŽ΄λ³΄λ € ν•©λ‹ˆλ‹€ πŸ“Ί

πŸ€” HLSλž€ 무엇인고

슀트리밍 ν”„λ‘œν† μ½œμ€ λΉ„λ””μ˜€λ‚˜ μ˜€λ””μ˜€ μ½˜ν…μΈ λ₯Ό 인터넷을 톡해 μ‹€μ‹œκ°„μœΌλ‘œ μ „μ†‘ν•˜κ³  μž¬μƒν•  수 μžˆλ„λ‘ ν•˜λŠ” 기술 ν‘œμ€€μž…λ‹ˆλ‹€. 슀트리밍 ν”„λ‘œν† μ½œμ€ 데이터λ₯Ό 연속적인 μž‘μ€ 쑰각으둜 λ‚˜λˆ„μ–΄ μ „μ†‘ν•˜λ©°, μ‚¬μš©μžλŠ” 전체 파일이 λ‹€μš΄λ‘œλ“œλ˜κΈ° 전에 μ΄λŸ¬ν•œ 쑰각을 μ‹€μ‹œκ°„μœΌλ‘œ μž¬μƒν•  수 μžˆμŠ΅λ‹ˆλ‹€. μ΄λŠ” λ‹€μš΄λ‘œλ“œ ν›„ μž¬μƒν•˜λŠ” 전톡적인 방식과 λ‹€λ₯΄κ²Œ, λ„€νŠΈμ›Œν¬λ₯Ό 톡해 즉각적인 λ―Έλ””μ–΄ μ†ŒλΉ„κ°€ κ°€λŠ₯ν•˜λ„λ‘ λ§Œλ“€μ–΄μ€λ‹ˆλ‹€.

HLS (HTTP Live Streaming)λŠ” Appleμ—μ„œ κ°œλ°œν•œ 슀트리밍 ν”„λ‘œν† μ½œμœΌλ‘œ, HTTPλ₯Ό 기반으둜 ν•˜κΈ° λ•Œλ¬Έμ— λŒ€λΆ€λΆ„μ˜ μ›Ή λΈŒλΌμš°μ €μ™€ λͺ¨λ°”일 κΈ°κΈ°μ—μ„œ 기본적으둜 μ§€μ›λ©λ‹ˆλ‹€. 특히 iOS와 macOS 같은 Apple μƒνƒœκ³„μ—μ„œλŠ” HLSκ°€ ν‘œμ€€ 슀트리밍 ν”„λ‘œν† μ½œλ‘œ 자리 μž‘μ•˜κ³ , 이λ₯Ό 톡해 μˆ˜λ§Žμ€ μ‚¬μš©μžμ—κ²Œ μΌκ΄€λ˜κ³  μ•ˆμ •μ μΈ 슀트리밍 κ²½ν—˜μ„ μ œκ³΅ν•  수 있게 λ˜μ—ˆμŠ΅λ‹ˆλ‹€. λΉ„λ””μ˜€ μ½˜ν…μΈ λ₯Ό μž‘μ€ 청크(chunk) λ‹¨μœ„λ‘œ λ‚˜λˆ„μ–΄ μ „μ†‘ν•˜κΈ° λ•Œλ¬Έμ—, μ‚¬μš©μžλŠ” λ„€νŠΈμ›Œν¬ μƒνƒœμ™€ 관계없이 λΉ λ₯΄κ³  μ•ˆμ •μ μΈ μž¬μƒμ„ κ²½ν—˜ν•  수 있으며, ν”Œλž«νΌμ€ 적은 지연 μ‹œκ°„μœΌλ‘œ μ½˜ν…μΈ λ₯Ό 전솑할 수 μžˆμŠ΅λ‹ˆλ‹€.

이름에 '라이브'κ°€ λ“€μ–΄κ°€ μžˆμ§€λ§Œ, HLSλŠ” 라이브 슀트리밍뿐만 μ•„λ‹ˆλΌ λΉ„λ””μ˜€ μ˜¨λ””λ§¨λ“œ(VOD)와 같은 λΉ„μ‹€μ‹œκ°„ μ½˜ν…μΈ μ—λ„ μœ μš©ν•˜κ²Œ μ μš©λ©λ‹ˆλ‹€. HLSλŠ” μ μ‘ν˜• λΉ„νŠΈλ ˆμ΄νŠΈ 슀트리밍(Adaptive Bitrate Streaming)을 톡해 λ„€νŠΈμ›Œν¬ μƒνƒœμ— 따라 μžλ™μœΌλ‘œ λΉ„λ””μ˜€ ν’ˆμ§ˆμ„ μ‘°μ •ν•˜μ—¬, μ‚¬μš©μžκ°€ 졜적의 ν™”μ§ˆλ‘œ μ½˜ν…μΈ λ₯Ό λŠκΉ€ 없이 μ‹œμ²­ν•  수 μžˆλ„λ‘ ν•©λ‹ˆλ‹€ πŸš€

πŸ€– HLS의 λ™μž‘ 원리와 적용 방식

μ•žμ„œ μ„€λͺ… λ“œλ Έλ“―μ΄, HLSλŠ” λΉ„λ””μ˜€λ₯Ό μž‘μ€ 쑰각, 즉 청크둜 λ‚˜λˆ„μ–΄ μ „μ†‘ν•©λ‹ˆλ‹€. 이 방식은 μ‚¬μš©μžμ˜ λ””λ°”μ΄μŠ€κ°€ μž‘μ€ νŒŒμΌμ„ 순차적으둜 λ‹€μš΄λ‘œλ“œν•˜μ—¬ μž¬μƒν•˜λŠ” ꡬ쑰둜, μ‚¬μš©μžκ°€ μ²˜ν•œ λ„€νŠΈμ›Œν¬ ν™˜κ²½μ— 따라 λΉ„νŠΈλ ˆμ΄νŠΈμ™€ 해상도λ₯Ό μ‹€μ‹œκ°„μœΌλ‘œ μ‘°μ •ν•©λ‹ˆλ‹€ πŸ“Ά 예λ₯Ό λ“€μ–΄, μ‚¬μš©μžμ˜ λ„€νŠΈμ›Œν¬ μƒνƒœκ°€ μ–‘ν˜Έν•  λ•ŒλŠ” κ³ ν™”μ§ˆμ˜ λΉ„λ””μ˜€ 슀트림이 μ „μ†‘λ˜λ©°, λ„€νŠΈμ›Œν¬ μƒνƒœκ°€ 쒋지 μ•Šμ„ λ•ŒλŠ” μ €ν™”μ§ˆ 슀트림으둜 μžλ™ μ „ν™˜ν•˜μ—¬ λŠκΉ€ μ—†λŠ” μž¬μƒμ„ κ°€λŠ₯ν•˜κ²Œ ν•©λ‹ˆλ‹€.

HLS의 핡심 μš”μ†ŒλŠ” ν”Œλ ˆμ΄λ¦¬μŠ€νŠΈ 파일(m3u8)μž…λ‹ˆλ‹€. μ΄λŠ” 청크 λͺ©λ‘μ„ ν¬ν•¨ν•˜λ©°, 각 청크의 λΉ„νŠΈλ ˆμ΄νŠΈ, 해상도, 그리고 파일 μœ„μΉ˜μ— λŒ€ν•œ 정보λ₯Ό λ‹΄κ³  μžˆμŠ΅λ‹ˆλ‹€. μ‚¬μš©μžμ˜ λ””λ°”μ΄μŠ€λŠ” 이 ν”Œλ ˆμ΄λ¦¬μŠ€νŠΈ νŒŒμΌμ„ μ°Έμ‘°ν•˜μ—¬ λ„€νŠΈμ›Œν¬ μƒνƒœμ— λ§žλŠ” 청크λ₯Ό λ‹€μš΄λ‘œλ“œ 및 μž¬μƒν•˜λŠ” λ°©μ‹μœΌλ‘œ μŠ€νŠΈλ¦¬λ°μ„ μˆ˜ν–‰ν•©λ‹ˆλ‹€.

μ„œλ²„λŠ” HLS ν”Œλ ˆμ΄λ¦¬μŠ€νŠΈ(m3u8 파일)와 청크듀을 μ œκ³΅ν•˜λ©°, ν΄λΌμ΄μ–ΈνŠΈλŠ” 이λ₯Ό HTTPλ₯Ό 톡해 μš”μ²­ν•˜κ³  μž¬μƒν•˜λŠ”λ°μš”. μ΄λŠ” λ³΅μž‘ν•œ 슀트리밍 μ„œλ²„λ₯Ό λ”°λ‘œ κ΅¬μΆ•ν•˜μ§€ μ•Šμ•„λ„ κΈ°μ‘΄ μ›Ή μ„œλ²„μ™€ CDN(Content Delivery Network)을 톡해 μ‰½κ²Œ μŠ€νŠΈλ¦¬λ°μ„ κ΅¬ν˜„ν•  수 있게 ν•΄μ€λ‹ˆλ‹€. μ΄λŸ¬ν•œ HLS의 λ™μž‘ 원리와 적용 방식을 톡해, λ‹€μ–‘ν•œ 기기와 ν™˜κ²½μ—μ„œλ„ μ•ˆμ •μ μ΄κ³  μœ μ—°ν•œ 슀트리밍이 κ°€λŠ₯ν•˜λ©°, μ‚¬μš©μžμ—κ²Œ μ΅œμ ν™”λœ μ‹œμ²­ κ²½ν—˜μ„ μ œκ³΅ν•©λ‹ˆλ‹€.

πŸ“Ή HLS의 ν™œμš© 사둀 및 κ³ λ € 사항

μ΄λŸ¬ν•œ HLSλŠ” λ‹€μ–‘ν•œ λΆ„μ•Όμ—μ„œ λΉ„λ””μ˜€ μŠ€νŠΈλ¦¬λ°μ„ μ§€μ›ν•˜λ©°, ν˜„λŒ€ λ―Έλ””μ–΄ ν”Œλž«νΌμ˜ ν•„μˆ˜ 기술둜 자리 작고 μžˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, 슀포츠 κ²½κΈ°λ‚˜ μ½˜μ„œνŠΈμ™€ 같은 라이브 슀트리밍 ν™˜κ²½μ—μ„œ HLSλŠ” λΉ„λ””μ˜€λ₯Ό 짧은 청크 λ‹¨μœ„λ‘œ μ „μ†‘ν•˜μ—¬ μ‹€μ‹œκ°„μ— κ°€κΉŒμš΄ κ²½ν—˜μ„ μ œκ³΅ν•©λ‹ˆλ‹€. 이λ₯Ό 톡해 μ‹œμ²­μžλŠ” 경기의 νλ¦„μ΄λ‚˜ κ³΅μ—°μ˜ 생동감을 λ†“μΉ˜μ§€ μ•Šκ³ , λ‹€μ–‘ν•œ λ„€νŠΈμ›Œν¬ ν™˜κ²½μ—μ„œλ„ λŠκΉ€ μ—†λŠ” μŠ€νŠΈλ¦¬λ°μ„ 즐길 수 μžˆμŠ΅λ‹ˆλ‹€. 특히, 지연 μ‹œκ°„μ„ μ΅œμ†Œν™”ν•œ Low-Latency HLS(LL-HLS)λ₯Ό μ μš©ν•˜λ©΄ μ‹€μ‹œκ°„ λ°˜μ‘μ— λ”μš± κ·Όμ ‘ν•œ μŠ€νŠΈλ¦¬λ°μ„ κ΅¬ν˜„ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

뿐만 μ•„λ‹ˆλΌ, HLSλŠ” λΉ„λ””μ˜€ μ˜¨λ””λ§¨λ“œ(VOD) μ„œλΉ„μŠ€μ—μ„œλ„ 핡심 기술둜 ν™œμš©λ©λ‹ˆλ‹€. λ„·ν”Œλ¦­μŠ€λ‚˜ μœ νŠœλΈŒμ™€ 같은 VOD ν”Œλž«νΌμ—μ„œ HLSλŠ” 사전 λ…Ήν™”λœ μ½˜ν…μΈ λ₯Ό 청크 λ‹¨μœ„λ‘œ λ‚˜λˆ„μ–΄ μ „μ†‘ν•˜μ—¬ μ‚¬μš©μžκ°€ μ›ν•˜λŠ” μ‹œμ μ— μ½˜ν…μΈ λ₯Ό λΉ λ₯΄κ²Œ λ‘œλ“œν•˜κ³  μž¬μƒν•  수 μžˆλ„λ‘ μ§€μ›ν•©λ‹ˆλ‹€. μ΄λŸ¬ν•œ ꡬ쑰 덕뢄에 μ‚¬μš©μžλŠ” λ„€νŠΈμ›Œν¬ μƒνƒœμ™€ 관계없이 μΌκ΄€λœ μ‹œμ²­ κ²½ν—˜μ„ 얻을 수 μžˆμŠ΅λ‹ˆλ‹€.

μ΄λŸ¬ν•œ HLSλ₯Ό λ„μž…ν•  λ•ŒλŠ” λͺ‡ 가지 κ³ λ €ν•΄μ•Ό ν•  μš”μ†Œλ“€μ΄ μžˆμŠ΅λ‹ˆλ‹€. μš°μ„ , HLSλŠ” HTTP ν”„λ‘œν† μ½œμ„ 기반으둜 청크λ₯Ό μ „μ†‘ν•˜κ³  μž¬μƒν•˜λŠ” κ³Όμ •μ—μ„œ 지연 μ‹œκ°„μ΄ λ°œμƒν•  μœ„ν—˜μ„ μ§€λ‹™λ‹ˆλ‹€. 라이브 μŠ€νŠΈλ¦¬λ°μ—μ„œ μ΄λŸ¬ν•œ 지연은 μ‹€μ‹œκ°„μ„±μ„ μ €ν•΄ν•˜λŠ” 원인이 λ˜κΈ°μ—, μ§€μ—°μ˜ 정도가 μ‹¬ν•΄μ§ˆ 것 κ°™λ‹€κ³  νŒλ‹¨λœλ‹€λ©΄ Low-Latency HLSλ₯Ό μ μš©ν•  ν•„μš”κ°€ μžˆμŠ΅λ‹ˆλ‹€. λ˜ν•œ, HLSλŠ” 청크λ₯Ό λ‹€μš΄λ‘œλ“œν•˜μ—¬ μž¬μƒν•˜λŠ” 방식이기 λ•Œλ¬Έμ— 초기 λ‘œλ“œ μ‹œκ°„κ³Ό 버퍼 관리가 μ€‘μš”ν•©λ‹ˆλ‹€. λ”°λΌμ„œ μ‚¬μš©μž κ²½ν—˜μ„ μœ„ν•΄μ„œ 졜적의 청크 크기와 버퍼링 μ „λž΅μ„ μ€€λΉ„ν•˜μ—¬ 즉각적인 μž¬μƒμ„ μ œκ³΅ν•˜κ³ , 버퍼링 문제λ₯Ό μ΅œμ†Œν™”ν•˜λŠ” λ…Έλ ₯이 ν•„μš”ν•©λ‹ˆλ‹€.

HLS의 또 λ‹€λ₯Έ μ£Όμš” κ³ λ € 사항은 λ³΄μ•ˆμž…λ‹ˆλ‹€. HLSλŠ” AES-128 μ•”ν˜Έν™”μ™€ 같은 λ³΄μ•ˆ κΈ°λŠ₯을 μ§€μ›ν•˜μ—¬, μ½˜ν…μΈ  λ³΄ν˜Έκ°€ ν•„μš”ν•œ μ„œλΉ„μŠ€μ—μ„œ μ•ˆμ •μ μΈ 전솑을 κ°€λŠ₯ν•˜κ²Œ ν•©λ‹ˆλ‹€. DRM(Digital Rights Management) μ‹œμŠ€ν…œκ³Όμ˜ 톡합을 톡해 유료 μ½˜ν…μΈ λ‚˜ μ €μž‘κΆŒ λ³΄ν˜Έκ°€ ν•„μš”ν•œ μ½˜ν…μΈ λ₯Ό μ•ˆμ „ν•˜κ²Œ μ œκ³΅ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

λ§ˆμ§€λ§‰μœΌλ‘œ, HLSλŠ” Apple μƒνƒœκ³„μ— μ΅œμ ν™”λ˜μ–΄ μžˆμ§€λ§Œ, μ•ˆλ“œλ‘œμ΄λ“œ 및 일뢀 λΉ„ Apple κΈ°κΈ°μ—μ„œλŠ” MPEG-DASH와 같은 λ‹€λ₯Έ ν”„λ‘œν† μ½œμ΄ 더 μ„ ν˜Έλ  수 μžˆμŠ΅λ‹ˆλ‹€. 이 경우, CMAF(Common Media Application Format)λ₯Ό ν™œμš©ν•˜μ—¬ HLS와 MPEG-DASHλ₯Ό λ™μ‹œμ— μ§€μ›ν•¨μœΌλ‘œμ¨ λ‹€μ–‘ν•œ 기기와 ν™˜κ²½μ—μ„œ μΌκ΄€λœ 슀트리밍이 μ΄λ£¨μ–΄μ§ˆ 수 μžˆλ„λ‘ λ§Œλ“€μ–΄μ£Όμ–΄μ•Ό ν•©λ‹ˆλ‹€.

πŸ”‘ λ§ˆλ¬΄λ¦¬ν•˜λ©°

HLSλŠ” ν˜„λŒ€μ˜ λΉ„λ””μ˜€ 슀트리밍 κΈ°μˆ μ—μ„œ μ€‘μš”ν•œ μœ„μΉ˜λ₯Ό μ°¨μ§€ν•˜λ©°, 라이브 슀트리밍, VOD λ“± λ‹€μ–‘ν•œ λΆ„μ•Όμ—μ„œ ν™œμš©λ˜κ³  μžˆμŠ΅λ‹ˆλ‹€. 특히, μ μ‘ν˜• λΉ„νŠΈλ ˆμ΄νŠΈ 슀트리밍과 HTTP 기반의 높은 ν˜Έν™˜μ„± 덕뢄에 μ‚¬μš©μžμ—κ²Œ μ•ˆμ •μ μ΄κ³  μΌκ΄€λœ 슀트리밍 κ²½ν—˜μ„ μ œκ³΅ν•©λ‹ˆλ‹€.

ν•˜μ§€λ§Œ μ΄λŸ¬ν•œ HLSλ₯Ό 효과적으둜 μ‚¬μš©ν•˜κΈ° μœ„ν•΄μ„œλŠ” 지연 μ‹œκ°„ 관리,λ³΄μ•ˆ μ„€μ •, 그리고 κΈ°κΈ° κ°„ ν˜Έν™˜μ„±μ— λŒ€ν•œ μΆ©λΆ„ν•œ κ³ λ €κ°€ ν•„μš”ν•©λ‹ˆλ‹€. Low-Latency HLS와 같은 μ΅œμ‹  κΈ°μˆ μ„ λ„μž…ν•˜μ—¬ 지연 μ‹œκ°„μ„ 쀄이고, CMAFλ₯Ό ν™œμš©ν•΄ HLS와 λ‹€λ₯Έ ν”„λ‘œν† μ½œ κ°„μ˜ ν˜Έν™˜μ„±μ„ ν™•λ³΄ν•¨μœΌλ‘œμ¨, μ΅œμ ν™”λœ λΉ„λ””μ˜€ 슀트리밍 κ²½ν—˜μ„ μ œκ³΅ν•  수 μžˆμŠ΅λ‹ˆλ‹€. HLSλŠ” λ‹€μ–‘ν•œ ν™˜κ²½μ—μ„œ μœ μ—°ν•˜κ²Œ μ μš©ν•  수 μžˆλŠ” 슀트리밍 기술둜, κ·Έ νŠΉμ„±κ³Ό μœ μ˜μ λ“€μ„ 잘 μ΄ν•΄ν•˜κ³  ν™œμš©ν•œλ‹€λ©΄ ν˜„λŒ€μ μΈ λ―Έλ””μ–΄ ν”Œλž«νΌ ꡬ좕을 μœ„ν•œ μ€‘μš”ν•œ 기반이 λ˜μ–΄μ€„ κ²ƒμž…λ‹ˆλ‹€ πŸ“‘

post-custom-banner

0개의 λŒ“κΈ€