728x90
미디어
2017년 전체 IP 트래픽의 75%는 Video
동영상 압축 원리
- 동영상 압축 원리의 가장 기본은 픽셀은 옆에 픽셀과 유사하고 프레임은 이전 프레임과 유사하다동영상 원리
- 조금씩 변하는 화면을 빠르게 보여줌으로써 마치 연속된 것처럼 느끼게 하는 것
코덱 (Codec)
- 동영상을 압축하고 해제하는 애플리케이션
- Coder와 Decoder의 합성어
- Ex) H.264, DivX, XviD, Windows Media Codec, MPEG 1~4, On2 VP6, VP8, MP3, AAC
컨테이너 (Container)
- 코덱으로 압축된 동영상 데이터를 담는 그릇, 동영상 파일 형식 포맷, 확장자
- Ex) wmv, asf, avi, mkv, mov, webm, mp4
해상도 (Resolution)
- 가로 세로에 관한 정의
- SD / HD / Full HD / UHD (4K)
- SD, HD, UHD는 화질이 아니라 해상도를 정의
- SD는 720 * 480
- HD는 1280 * 720
- Full HD는 1920 * 1080
- UHD(4K)는 3840 * 2160
Bitrate
- 전송률, 동영상에서 초당 사용되는 data (bps). 대역폭(Bandwidth)와 유사
- 동영상의 화질을 결정하는 중요한 부분
프레임(Frame)
- 동영상에 있어 하나의 정지 된 화면
Frame Rate
- 동영상에서 초당 표현되는 화면의 수 (fps)
Encoding
- 동영상을 압축하여 만드는 기술
Transcoding
- 동영상을 서로 다른 Container와 Codec으로 변환하는 기술
Transrating
- 동영상의 Bitrate와 Resolution 만을 변경하는 기술
Transmuxing (Packaging, Transwrapping)
- 동영상의 Container 만을 변환하는 기술
- HTTP 기반 HLS가 보편화 되면서 널리 활용
동영상 종류
JPEG
- 사진이나 그림과 같은 이미지를 디지털화하여 압축
MPEG-1
- CD-ROM과 같은 디지털 저장 매체에 비디오 테이프(VHS) 수준의 동영상과 오디오를 압축 저장할 수 있도록 설계
- 상용화한 대표적인 분야는 Video CD (VCD)와 MP3
- MP3는 MPEG-1 오디오의 LAyer3를 의미
MPEG-2
- ISO와 ITU가 최초 합작아여 만든 표준 (= H.262)
- 디지털 TV, DVD 등 높은 화질과 음질을 필요로 하는 분야에 사용되기 위해서 설계
MPEG-4
- 멀티미디어 통신 전제로 만들어져서 인터넷이나 모바일 환경과 같은 낮은 전송률로 동영상을 구현하기 위해 설계
- DivX(XviD)나 Windows Media도 MPEG-4에 기반을 두고 만들어짐
MPEG-7
- 멀티미디어 정보에 대한 빠르고 효율적인 검색에 대한 표준
- 비디오 / 오디오 압축과는 관련성이 작음
MPEG-21
- 멀티미디어 컨텐츠 제작, 배급, 사용 시의 보호에 대한 표준
- MPEG-1, 2, 3, 7을 통합해서 전체의 프레임워크를 구성하고자 하는 표준
- MPEG-7과 마찬가지로 산술적인 계산이나 알고리즘보다는 전반적인 통합의 개념
H.264 (MPEG-4 Part 10, AVC)
- ITU와 ISO가 공동 결성한 JVT(Joint Video Team)에 의해 MPEG-2, MPEG-4, H.263을 개선한 코덱
- MPEG-4 AVC, MPEG-4 Part10 이라고도 함
HEVC
- H.264/AVC를 이을 차세대 비디오 코덱
- H.264에 비해 35% - 40% 효율 향상
AAC Audio Codec
- MPEG-4 AAC LC (Low Complexity)
- 흔히 우리가 알고 있는 AAC. MPEG-2 AAC에서 업그레이드
- 높은 Bitrate에서 좋은 음질로 압축 가능
- 높은 압축률에도 불구하고 채널 당 32kbps 이하로 압축할 경우 음질이 급격히 떨어지는 단점이 있음
- HE-AAC(High Effeciency). AAC+
- AAC의 낮은 bitrate에서 음질이 급격히 떨어지는 단점 개선
- 높은 Bitrate보다는 낮은 Bitrate에서 주로 사용
- OPUS
- 국제 인터넷 표준화 기구인 IETF에서 표준화한 Audio Open Codec
- VolP 기반으로 개발된 코덱으로 WebRTC를 통해 점차 보급되는 추세
- AC3
- MPEG 표준이 아님, 미국의 Dolby 연구소에서 개발. 5.1 채널 지원. DVD에서 사용
무손실 압축과 손실 압축
무손실 압축
- 화질, 데이터 손실 없이 압축
- 압축 데이터를 다시 복원했을 때, 압축되기 이전 원래 데이터와 모든 비트 일치
손실 압축
- 화질이나 데이터의 손실을 가져오는 압축
- 영상에서 중복되거나 상대적으로 덜 중요한 부분의 정보를 제거하여 압축
동영상 스트리밍 서비스 종류
레거시 스트리밍 서비스
- Microsoft MMS 프로토콜, Adobe RTMP, 표준 RTSP 프로토콜 사용
- 프로토콜 별 전용 서버 사용에 따른 비용 증가 및 방화벽, NAT, 공유기 환경에서의 재생 이슈로 인해 시장에서 점차 퇴출 (HTTP 기반 프로토콜만 살아남음)
- Ex) MS의 WMS, Adobe의 FMS(AMS), Wowza, RED5 Pro
HTTP 기반 스트리밍 서비스 (Pseudo Streaming, HLS, DASH)
- MP4 Progressive Download
- MP4 동영상 파일을 별다른 가공 없이 그대로 전송
- Adaptive Streaming 지원 X, Live 서비스에 적용 X
- 광고나 Hot Clip 같은 짧은 미디어 컨텐츠 전송에 유리
- Apple HLS (HTTP Live Streaming)
- 하나의 동영상 파일을 물리적으로 여러 개의 파일로 나눈 후, 각각의 나눠진 파일을 HTTP 프로토콜 이용해 순차적 전송
- Adaptive Streaming 및 Live 서비스에도 적용 가능
HLS 서비스
- m3u8
- Manifest 파일
- MP3에서 사용되던 Playlist 파일인 m3u애서 동영상 Streaming 서비스를 위한 추가적인 정보를 포함하고 규격을 확장한 포맷
- Live와 VOD의 m3u8 태그 차이는 마지막 라인에 #EXT-X-ENDLIST 태그 유무
- Live의 경우는 Player가 m3u8 Playlist에 포함되어 있는 ts파일을 재생하면서 다시 서버에 새로운 m3u8 지속적으로 요청
- TS
- MPEG-2 기반의 비디오나 오디오, 방송 채널 정보 등을 전송하기 위해 정의한 규격
- 재생에 필요한 최소한의 헤더 정보와 Video/Audio 스트림 만을 가지고 있어 MP4와 비교하여 동영상 컨테이너가 가벼움
- HLS에서 사용하는 TS는 MPEG-2 컨테이너 방식을 따르나 압축에 사용되는 코덱은 MPEG-2가 아닌 H.264와 AAC를 사용
- Apple이 권장하는 각 TS 파일 길이 단위는 (Duration) 10초
Progressive Download vs HLS
- 동영상 파일은 사이즈가 크기 때문에 HLS 같이 여러 개로 나눈 후 순차적으로 전송하는 방식이 효율적
- Progressive Download 재생을 위해서는 MP4 파일 moov(Header)가 먼저 전송되어야 하는데, moov 크기는 파일 사이즈와 비례
- moov 사이즈 크면, moov 전송으로 인한 초기 지연 발생 (특히 모바일 환경)
- HLS 경우, 재생을 위해서는 MSE 기반의 HTML5 플레이어 사용해야 함
Adaptive Streaming
- 사용자의 네트워크 속도에 따라 적합한 Bitrate 선택하여 동영상을 끊기지 않고 재생할 수 있는 기술
- 네트워크 속도의 변화에 따라 화질이나 해상도 등은 떨어질 수 있지만 끊기지 않고 지속적 서비스 가능
Adaptive Streaming을 지원하는 서비스 종류
- Apple의 HTTP Live Streaming (HLS)
- Adobe의 HTTP Dynamic Streaming (HDS)
- Microsoft의 Smooth Streaming (SS, MSS)
- MPEG의 Dynamic Adaptive Streaming over HTTP (DASH)
HTTP 기반 Live Service 특징
- HTTP를 사용하여 Cache 구조가 가능하여 확장성 및 유연성 향상에 장점
- Legacy 대비 아직 Live Latency가 긴 단점이 있으나 점차적으로 보완중
- Apple의 HLS와 MPEG의 DASH가 대표적으로 HTTP 기반 Live 서비스 지원
- 브라우저의 HTML5나 모바일의 Native를 활용하면 Player 구현이 비교적 용이
- Adaptive Streaming 이용하면 Client 네트워크 환경에 적합한 화질로 서비스 가능
HTTP 기반 VOD Service 특징
- HTTP를 사용하여 Cache 구조 가능, 확장성 및 유연성 향상에 장점
- 브라우저의 HTML5나 모바일의 Native를 활용하면 Player 구현이 비교적 용이
- Adaptive Streaming을 활용하면 Client 네트워크 환경에 적합한 화질로 서비스 가능
Encoder
- 영상을 입력 받는 H/W 부분과, 입력 받은 영상을 실시간으로 압축해서 Origin으로 송출하는 S/W 부분으로 구분
- Legacy 및 HTTP 기반 모두 Live 서비스에서 RTMP 프로토콜 많이 사용
- Ex) S/W - Adobe의 FMLE, OBS, Wirecast, vMix
미디어 기술 Trend
CMAF (fMP4)
- Apple과 Microsoft이 합작하여 표준화한 동영상 규격
- HLS와 MPEG-DASH에서 함꼐 사용될 수 있는 표준화된 동영상 컨테이너
CMAF 구조
- CMAF로 표준화되기 전까지는 fMP4로 명칭 (Fragmented MP4)
- 하나의 동영상 파일 자체가 내부적으로 Fragmented된 구조
- MP4의 경우 서버와 플레이어에서 moov를 직접 파싱하고 chunk 처리 해야 하는데, fMP$는 이미 파일이 Fragmented된 구조라 이부분에 대한 Load가 상대적으로 적음
CMAF 장점
- HLS TS 컨테이너보다 CDN 비용 절감
- Chunked Encoding 통해 Low Latency Live 서비스 가능
- 표준 포맷 통일에 의한 미디어 환경 전반에 걸친 효율성 증가에 따른 비용 절감 (Storage 절감, Packaging 비용 절감, Cache 효율성 증가)
CBR (Constant-Bit-Rate)
- 고정 전송률
- 기준 Bitrate를 고정적으로 사용
- Bitrate 사용이 효율적이지 X
- 파일 사이즈를 비교적 정확하게 예측 가능
VBR (Variable-Bit-Rate)
- 가변 전송률
- Bitrate를 그 때 그 때 화면 상태에 맞게 변화시켜 사용
- Bitrate 사용 효율 높아서 CBR에 비해 화질 우수
- Bitrate가 Spike 치는 경우, 예상치 못한 불안정한 전송 초래
- QVBR
- 사용자가 지정한 절대 화질에 맞춰 Bitrate를 변화시킴
- 컨텐츠가 처음부터 끝까지 고르게 유지
- 인코딩 전, 컨텐츠 파일 크기나 대역폭 예측 X
- QVBR
WebRTC (Web Real-Time Communication)
- 웹 표준 영상통화 및 화상회의 서비스
- 영상통화나 화상회의를 브라우저 사용자들끼리, 별도 프로그램 설치 없이 대화할 수 있게 해주는 실시간 통신 웹 표준
- 웹 표준으로 Chrome, Firefox, Edge, Safari, Opera 등 대부분 브라우저에서 지원
MSE
- HTML5 확장팩
- HTML5 비디오 재생을 위한 입력 소스 확대를 위해 W3C에서 규격화한 JavaScript API
- Javascript API 기반으로 미디어를 핸들링 가능
728x90