Доставка live-video на Go

Доставка live-video на Go

5b8d20aa7d63c5d391b1c881e1764460?s=128

Iskander (Alex) Sharipov

October 13, 2019
Tweet

Transcript

  1. Доставка live-video на Go Илья Щербак i.shcherbak@corp.vk.com

  2. Принципиальная схема Live

  3. Реальная схема Live

  4. Контейнер выполняет функцию оркестрации медиа Хранит метаинформацию 
 о файле

    Про контейнеры Указывает плееру 
 где находятся 
 нужные фреймы Хранит информацию 
 по таймингу 1 2 3 4
  5. Какие бывают контейнеры ▪ MP4 ▪ MPEG-TS ▪ OGG ▪

    FLV ▪ Matroska
  6. Транспортные медиа протоколы ▪ RTP/SRTP ▪ RTMP ▪ HLS ▪

    MPEG-DASH ▪ HDS
  7. RTMP ▪ Плохой дизайн протокола ▪ Спецификация не соответствует реализации

    Flash Player ▪ Индивидуальный поток для каждого пользователя ▪ Очень плохо кешируется ▪ RTMP всё
  8. HLS ▪ Хорошо кэшируется ▪ Быстро раздается ▪ Хорошо подходит

    для broadcast ▪ Поддерживается на многих платформах ▪ Рабочий адаптивный стриминг
  9. Как выглядит транспорт RTMP HLS

  10. Добавляем транскодер Mediaserver Transcoder Transcoder RTMP HLS

  11. Why Go is a good choice? ▪ SMP ▪ Channels

    ▪ C-style code ▪ Native back-pressure ▪ Easy build and deploy ▪ Easy to learn
  12. Links ▪ https://github.com/VKCOM/kive – наш медиа сервер ▪ https://github.com/VKCOM/joy4 –

    библиотека для работы с media ▪ https://www.ffmpeg.org/ – ffmpeg ▪ https://vk.com/video-147415323_456239030 – доклад про транскодинг и отладку