페이스북에는 매일 수억 개씩 동영상이 올라온다. 하지만 모든 동영상을 최고 품질과 해상도로 가능한 한 적은 버퍼링으로 전달할 수 있게 하려면 동영상에 가장 적합한 코덱 설정을 사용해 인코딩을 해야 한다. 페이스북은 동영상 인코딩을 최적화하기 위해 실시하는 새로운 방법에 대해 페이스북 엔지니어링(Facebook Engineering)이 설명해 눈길을 끈다.
페이스북에 동영상이 올라오면 평균 비트전송률에 의해 360p, 480p, 720p, 1080p 등 여러 해상도로 인코딩이 시작된다. 이 때 사용되는 코덱과 설정에 따라 압축 효율과 시각적 동영상 품질에 필요한 계산 능력이 변화한다.
물론 동시에 대량 동영상을 인코딩할 수 없으므로 동영상 처리 큐는 우선순위가 존재해 순서대로 진행된다. 이 우선순위는 일단 동영상 총 재생시간과 동영상 내용, 동영상을 업로드한 친구와 팔로어 수 등 다양한 요인에 따라 결정되어 있었다고 한다. 페이스북은 동영상 인코딩 우선순위를 적절하게 할당해 사용자 경험 최적화를 도모하고 있었다는 것.
하지만 페이스북은 이 방법에 단점이 있다고 인정하고 있다. 동영상 코덱과 이에 따른 설정은 날마다 새로운 게 등장하기 때문에 그만큼 동영상 코딩 패턴도 방대해버려 사용자 경험을 완전히 최적화하는 건 불가능하다.
또 페이스북은 페이스북에서 동영상 소비 패턴에 편향이 있다고 지적하고 있다. 예를 들어 디즈니 같은 대기업 페이스북 페이지와 일반 중소 비디오 블로거 페이스북 페이지를 비교하면 디즈니는 브이로거보다 동영상 업로그 수는 적더라도 동영상 총 재생시간은 압도적으로 길어 필연적으로 우선순위가 올라간다. 하지만 동영상 소비가 격렬한 페이지를 우선하면 소규모 제작자 지원을 무시하게 되어 버린다.
따라서 페이스북은 업로드한 동영상을 빨리 고품질로 인코딩하는 걸 목적으로 동영상 인코딩에 비용 편익 모델을 도입했다고 밝히고 있다. 페이스북은 이익과 비용, 우선순위에 대해 이렇게 정의했다. 이익은 고정 품질로 인코딩 제품군 상대적 압축효율×유효 예측 총 재생시간으로, 비용은 제품군에서 누락된 인코딩 계산 비용으로, 우선순위는 이익÷비용으로 한다.
인코딩 제품군과 함께 배달할 수 있는 인코딩 파일 세트로 예를 들어 H.264 360p와 480p, 720p, 1080p는 한 인코딩 제품군을 구성하고 있다고 말할 수 있다. 그리고 압축 효율은 특정 코덱 설정에서 1GB 동영상을 인코딩했을 때 동영상 재생 시간이 몇 분되는지 보여준다.
올바른 예측 총 재생시간은 동영상 총 재생시간을 기계학습 모델에 따라 예상한 것이다. 이는 인코딩한 동영상이 얼마나 장치에서 재생할 수 있는지를 보여주고 있다는 것이다. 예를 들어 예측 총 재생시간이 100시간 동영상을 재생하려는 장치 중 20%가 VP9로 인코딩된 동영상을 재생할 수 없다고 가정하면 널리 일반적인 H.264로 인코딩된 동영상 유효 예측 재생 시간은 100시간, VP9로 인코딩된 경우는 80시간이다.
기계학습 모델은 동영상 업로드, 친구와 팔로어 수, 지금까지 업로딩한 동영상 평균 총 재생시간, 동영상 메타 데이터 플랫폼에서 과거 인기 등을 판단 근거로 총 재생시간을 예측한다. 페이스북에 따르면 동영상 총 재생시간 예측에서 과거 총 재생시간 데이터가 가장 좋은 예측 인자가 된다. 또 몇 초짜리 스토리 동영상인지 몇 시간 단위 생방송인지에 따라 총 재생시간이 크게 바뀐다고 한다.
기계학습 모델을 이용한 우선순위 새로운 계산 방법을 채택해 페이스북에 업로드된 동영상 인코딩을 이전보다 훨씬 효율적으로 할 수 있게 된 것. 페이스북은 결과적으로 페이스북 사용자에게 최고 품질 영상 경험을 제공하기 위해 더 새롭고 고급 코덱에 대한 투자를 계속하는 게 용이하게 됐다고 밝히고 있다. 관련 내용은 이곳에서 확인할 수 있다.