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
210
Доставка 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
69
Go gamedev: XM music
quasilyte
0
120
Zero alloc pathfinding
quasilyte
0
560
Mycelium
quasilyte
0
72
Roboden game pitch
quasilyte
0
220
Ebitengine Ecosystem Overview
quasilyte
1
910
Go gamedev patterns
quasilyte
0
480
profile-guided code analysis
quasilyte
0
370
Go inlining
quasilyte
0
130
Other Decks in Programming
See All in Programming
DartASTとその活用
sotaatos
2
130
Nitro v3
kazupon
2
310
Promise.tryで実現する新しいエラーハンドリング New error handling with Promise try
bicstone
3
460
flutter_kaigi_2025.pdf
kyoheig3
1
330
Rails Girls Sapporo 2ndの裏側―準備の日々から見えた、私が得たもの / SAPPORO ENGINEER BASE #11
lemonade_37
2
160
自動テストのアーキテクチャとその理由ー大規模ゲーム開発の場合ー
segadevtech
2
1k
Stay Hacker 〜九州で生まれ、Perlに出会い、コミュニティで育つ〜
pyama86
2
1.6k
PyCon mini 東海 2025「個人ではじめるマルチAIエージェント入門 〜LangChain × LangGraphでアイデアを形にするステップ〜」
komofr
3
1k
Eloquentを使ってどこまでコードの治安を保てるのか?を新人が考察してみた
itokoh0405
0
3.2k
Flutterチームから作る組織の越境文化
findy_eventslides
0
110
イベントストーミングのはじめかた / Getting Started with Event Storming
nrslib
1
570
CSC509 Lecture 10
javiergs
PRO
0
180
Featured
See All Featured
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
132
19k
A designer walks into a library…
pauljervisheath
210
24k
Large-scale JavaScript Application Architecture
addyosmani
514
110k
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
Raft: Consensus for Rubyists
vanstee
140
7.2k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.1k
How STYLIGHT went responsive
nonsquared
100
5.9k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
8.1k
Documentation Writing (for coders)
carmenintech
76
5.1k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
2.9k
Faster Mobile Websites
deanohume
310
31k
Git: the NoSQL Database
bkeepers
PRO
432
66k
Transcript
Доставка live-video на Go Илья Щербак
[email protected]
Принципиальная схема 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 – доклад про транскодинг и отладку