Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Доставка live-video на Go
Search
Iskander (Alex) Sharipov
October 13, 2019
Programming
0
190
Доставка live-video на Go
Iskander (Alex) Sharipov
October 13, 2019
Tweet
Share
More Decks by Iskander (Alex) Sharipov
See All by Iskander (Alex) Sharipov
quasigo
quasilyte
0
31
Go gamedev: XM music
quasilyte
0
88
Zero alloc pathfinding
quasilyte
0
410
Mycelium
quasilyte
0
48
Roboden game pitch
quasilyte
0
170
Ebitengine Ecosystem Overview
quasilyte
1
760
Go gamedev patterns
quasilyte
0
430
profile-guided code analysis
quasilyte
0
330
Go inlining
quasilyte
0
100
Other Decks in Programming
See All in Programming
運用しながらリアーキテクチャ
nealle
0
350
NestJSのコードからOpenAPIを自動生成する際の最適解を探す
astatsuya
0
100
イベントソーシングによってインピーダンスミスマッチから解放された話
tkawae
1
270
2025/3/18 サービスの成長で生じる幅広いパフォーマンスの問題を、 AIで手軽に解決する
shirahama_x
0
130
PsySHから紐解くREPLの仕組み
muno92
PRO
1
410
技術好きなエンジニアが "リーダーへの進化" によって得たものと失ったもの
pospome
5
1.3k
体得しよう!RSA暗号の原理と解読
laysakura
3
470
Kubernetesで実現できるPlatform Engineering の現在地
nwiizo
1
240
フロントエンドオブザーバビリティ on Google Cloud
yunosukey
0
150
爆速スッキリ! Rspack 移行の成果と道のり - Muddy Web #11
dora1998
0
120
RecSys2024 参加報告
unonao
1
170
私の愛したLaravel 〜レールを超えたその先へ〜
kentaroutakeda
9
2.4k
Featured
See All Featured
Building an army of robots
kneath
303
45k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
49k
A designer walks into a library…
pauljervisheath
205
24k
How to train your dragon (web standard)
notwaldorf
91
5.9k
Reflections from 52 weeks, 52 projects
jeffersonlam
349
20k
Measuring & Analyzing Core Web Vitals
bluesmoon
6
290
Build The Right Thing And Hit Your Dates
maggiecrowley
34
2.6k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
11
590
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
129
19k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
176
52k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Docker and Python
trallard
44
3.3k
Transcript
Доставка live-video на Go Илья Щербак i.shcherbak@corp.vk.com
Принципиальная схема Live
Реальная схема Live
Контейнер выполняет функцию оркестрации медиа Хранит метаинформацию о файле
Про контейнеры Указывает плееру где находятся нужные фреймы Хранит информацию по таймингу 1 2 3 4
Какие бывают контейнеры ▪ MP4 ▪ MPEG-TS ▪ OGG ▪
FLV ▪ Matroska
Транспортные медиа протоколы ▪ RTP/SRTP ▪ RTMP ▪ HLS ▪
MPEG-DASH ▪ HDS
RTMP ▪ Плохой дизайн протокола ▪ Спецификация не соответствует реализации
Flash Player ▪ Индивидуальный поток для каждого пользователя ▪ Очень плохо кешируется ▪ RTMP всё
HLS ▪ Хорошо кэшируется ▪ Быстро раздается ▪ Хорошо подходит
для broadcast ▪ Поддерживается на многих платформах ▪ Рабочий адаптивный стриминг
Как выглядит транспорт RTMP HLS
Добавляем транскодер Mediaserver Transcoder Transcoder RTMP HLS
Why Go is a good choice? ▪ SMP ▪ Channels
▪ C-style code ▪ Native back-pressure ▪ Easy build and deploy ▪ Easy to learn
Links ▪ https://github.com/VKCOM/kive – наш медиа сервер ▪ https://github.com/VKCOM/joy4 –
библиотека для работы с media ▪ https://www.ffmpeg.org/ – ffmpeg ▪ https://vk.com/video-147415323_456239030 – доклад про транскодинг и отладку