[기술 블로그] 인스타그램이 기본 비디오 계산을 94% 줄인 방법

2024. 2. 1. 09:00기술 블로그

문제

당시 인스타에서 가장 많이 쓰이고 있었던 인코딩은 Minimum Functionality Encoding(이하 MFM)으로 오래된 장치에서도 돌아간다는 특징이 있다. 

메타에서는 새로운 인코딩인 Advanced Encoding을 만들었는데 이걸 사용하면 조금 더 깔끔하고 네트워크가 느린 지역에서도 볼 수 있다는 특징이 있다. 

메타는 이 새로운 인코딩을 더 늘리고 싶지만 컴퓨팅을 위해 사용되는 자원의 80% 이상이 MFM을 만드는데 사용되고 있었다. 

이 상황에서 자원을 늘리지 않고 이 문제를 해결하고 싶었고 그 방법으로 MFM을 최적화하는데 초점을 두었다.

메타가 사용한 방법을 이해하려면 먼저 MFM에는 두 가지 종류가 있다는 점을 알아야 한다.

하나는 ABR(Adaptive Bit Rate Streaming)방식으로 안정적인 스트리밍을 제공한다는 특징이 있다. 가장 많이 보는타입이다. 

다른 하나는 Progressive Encoding으로 인스타그램의 구버전을 지원하기 위해 사용하는 인코딩 방식이다.

문제의 원인은 요 두 개를 각각 만드려면 23초의 비디오를 720p로 transcode하기 위해 86초가 걸린다는 것이다. 

하지만 두 인코딩의 차이는 encoding profile과 preset이었고 Progressive Encoding을 ABR Encoding 방식으로 repackaging할 수 있다는 것을 알게 되었다. 이는 ABR Encoding을 만들지 않아도 된다는 것을 의미했다.

이 방식으로 23초의 비디오를 720p로 transcode한 결과 0.36초가 걸리게 되었다. 100배 넘게 줄어든 것이다.

그래서 이를 확인하기 위해 테스트를 진행했는데 이전 이후 방식을 직접 비교하지 않고 Advanced Encdoing을 더 사용하도록 하는 것이 원하는 방향이였기 때문에 테스트군과 통제군으로 나누어서 하나는 원래 ABR 인코딩을 제공하고 다른 하나는 repackaging만 한 인코딩을 제공했다. 그 결과 예상대로 ABR Encoding의 시청 시간은 떨어졌고 Advanced Encdoing의 시청 시간이 늘어났다.

새로운 인코딩은 원래 인코딩을 만드는데 걸리는 비용을 94%만큼 감소했다. 그리고 Advanced Encoding의 시청 시간 비율도 33%로 올랐다.

 

Reference


https://engineering.fb.com/2022/11/04/video-engineering/instagram-video-processing-encoding-reduction/

 

Reducing Instagram’s basic video compute time by 94 percent

In our constant quest to prioritize efficiency, Instagram’s engineers have developed a way to process new videos that reduces the cost to produce basic video encodings by 94 percent. With this meth…

engineering.fb.com