Benchmark w Node.js pokazuje, że pięć popularnych usług video-API wykazuje drastyczne różnice w wydajności w zależności od rozmiaru pliku. Na ograniczonym łączu 4G (10 Mb/s) FastPix zdominował test dużych plików, podczas gdy Cloudinary wyprzedził konkurencję w przypadku mniejszego klipu.

Dlaczego ten test jest ważny

Dostawcy video-API nieustannie chwalą się „najszybszym przesyłaniem” lub „błyskawicznym odtwarzaniem” na swoich stronach marketingowych. Twierdzenia te zazwyczaj opierają się na starannie dobranych plikach testowych, które trafiają w optymalne parametry każdego dostawcy. Gdy zespół produktowy opiera decyzję o wyborze dostawcy na takich nagłówkach, ryzykuje niedopasowanie między reklamowanymi a rzeczywistymi opóźnieniami, zwłaszcza jeśli ich użytkownicy przesyłają treści o różnych rozmiarach lub korzystają z różnej jakości sieci.

Jak zbudowano benchmark

Autor napisał prosty mechanizm testowy (harness) w Node.js, który mierzy dwie metryki dla każdego przesyłania:

  • Czas przesyłania – czas rzeczywisty (w sekundach) wymagany do przesłania surowych bajtów do API.
  • Time-to-ready – interwał od rozpoczęcia przesyłania do momentu, w którym wideo może być strumieniowane (tj. API zgłasza zasób jako gotowy do odtwarzania).

Pięć usług zostało poddanych temu samemu skryptowi: FastPix, Mux, api.video, Cloudinary oraz Gumlet. Wszystkie testy przeprowadzono z tej samej maszyny, przy ograniczeniu przepustowości sieci do 10 Mb/s, aby odwzorować typowe doświadczenie z mobilną siecią 4G. Użyto dwóch reprezentatywnych plików:

  • Duży plik: 177 MB, odpowiadający treściom długofalowym lub materiałom master w wysokiej rozdzielczości.
  • Mały plik: 65 MB, typowy dla krótkich klipów lub fragmentów z mediów społecznościowych.

Mechanizm automatyzował przesyłanie, a następnie odpytywał punkt końcowy (endpoint) statusu każdego dostawcy, aż wideo osiągnęło stan „ready”, rejestrując oba znaczniki czasu.

Co mówią liczby

Duży plik (177 MB)

  • FastPix uzyskał najniższy czas przesyłania i najkrótszy całkowity czas „time-to-ready”, co czyni go wyraźnym liderem w przypadku masowych transferów.
  • Mux zapewnił najszybszy „cold-startup”, co oznacza, że pierwsza klatka pojawiła się szybciej po tym, jak wideo zostało oznaczone jako gotowe.

Mały plik (65 MB)

  • Cloudinary przet