비용관점¶
인터넷 콘텐츠 중 비디오는 가장 무거운 콘텐츠이다. 잘못된 비디오 전송전략은 엄청난 계산서로 되돌아온다.
TL;DR
비디오 전송전략 요약
숏폼 비디오는 가능한 짧은 재생시간과 낮은 해상도로 실시간 트랜스코딩
롱폼 비디오는
HLS(HTTP Live Streaming)
로 실시간 변환
시청시간¶
끝까지 비디오를 시청하는 사용자는 아주 적다. 비디오가 페이지에 주인공일 수도 있지만 엑스트라일 수도 있다.
노출 의도에 알맞게 비디오를 편집하여 전송량을 낮추어야 한다.
해상도¶
모바일처럼 제약된 해상도라면 지면을 아껴서 사용해야 한다. 물론 전체화면이라면 가능한 높은 해상도를 제공하는 것이 타당하다. 비디오 해상도를 낮출수록 용량을 효과적으로 낮출 수 있다.
아래와 같은 해상도를 제안한다.
화면 배치 |
권장 해상도 |
---|---|
전체화면, HERO 비디오 |
|
메인 배너 |
|
중형배너 |
|
기타 |
|
포맷/코덱¶
비디오 전송관점에서 GIF
포맷은 믿을 수 없을 정도로 비효율적이다.
더 높은 압축률을 제공하는 시장표준적 포맷( mp4
, webm
등)과 비디오 코덱( h.264
, h.265
등)이 꾸준히 발전하고 있다.
자동재생¶
사용자에게 “재생” 버튼을 클릭해야하는 당위성을 부여하는 것은 매우 어렵다.
웹 표준에서도 자동재생 이 가능한 조건은 엄격히 제한된다. 숨겨진 디테일은 비디오가 가공되면 헤더가 파일 뒤에 위치하게 된다. 이런 경우 클라이언트는 비디오를 100% 다운로드한 뒤에야 재생이 가능하다.
Hint
transcoder 는 비디오 헤더를 앞으로 전달하는
faststart
명령어를 지원한다.https://.../xcdr/faststart
HLS 프로토콜¶
숏폼이 아니라면 HLS(HTTP Live Streaming) 프로토콜은 사실상 시장표준으로 ios/android/windows 등 모든 운용체제에서 통용되는 전송 프로토콜이다.
비용관점에서 HLS의 이득은 아래와 같다.
주체 |
이점 |
---|---|
프론트엔드 |
클라이언트가 능동적으로 필요한만큼만 비디오를 소비한다. |
백엔드 |
CDN을 도입하여 비용합리적인 대규모 전송이 가능하다. |
이제 남은 일은 여러분의 비디오를 HLS에 적합한 형태로 segmentation하는 일만 남았다.
저장관리¶
인터넷상의 비디오 가공 문서의 결론은 크게 2가지이다.
… 이상의 결과물을 스토리지에 저장한다.
… 서비스는 모든 결과물을 저장/관리한다.
저장과 관리 모두 비용이다.
가공된 결과물이 많다면 비용은 그 곱으로 증가한다. 비디오의 유통기한을 생각한다면 가공물을 저장/관리하는 시스템이 커질수록 불합리한 비용지출이 증가한다.
Hint
M2Live
에서 제공되는 모든 기능은 추가 저장/관리 비용을 소비하지 않는다.