Upload
yandex
View
232
Download
0
Embed Size (px)
DESCRIPTION
Я расскажу о том, как организовать проигрывание видео на всевозможных устройствах при таких условиях: 99% загруженных роликов никто никогда не посмотрит, 0,5% откроют один раз, а 0,1% будут смотреть тысячи людей в сутки.
Citation preview
Стриминг для сервиса, который хранит миллионы видеофайлов.
Лев Толмачев
〉Более 40 млн пользователей
〉Более 10 млрд файлов
〉Более 20 млн новых файлов в сутки
2
3
mkv
wmv
mp4
webm
avi ogv
〉Разные исходные форматы
〉Размер файла и скорость сети
〉Некоторые форматы требуют скачивания файла целиком
〉Различные разрешения
4
Проблемы
5
Диск - не видеохостинг!
6
Архитектура
Storage
iOS
Android
Firefox
Safari
Yandex.BrowserWinPhone
Chrome
7
Архитектура
Storage
Transcoder
avi, mkv, ogv, …
iOS
Android
Firefox
Safari
Yandex.BrowserWinPhone
Chrome
mp4, webm, hls
8
Архитектура
Core
Controller
File 1 File 2 File 3
Free Free
Transcoder
Core Core Core Core Core Core Core
Ffmpeg
9
Архитектура.Транскодер
Storage
HTTP
/…/file.mp4
Controller
GETstart
file.mp4
Ffmpeg
10
Архитектура.Транскодер
Storage
HTTP
file.mp4
Controller
GETstart
file2.mp4
11
HLS
#EXTINF:5
a0.ts
#EXTINF:7
a1.ts
#EXTINF:3
a2.ts
…..
#EXT-X-ENDLIST
a0.ts
a1.ts
a2.ts
playlist.m3u8
12
HLS
#EXTINF:5
a0.ts
#EXTINF:7
a1.ts
a0.ts
a1.ts
playlist.m3u8
13
HLS
a0.ts a1.ts a2.ts a3.ts a4.ts a5.ts a6.ts a7.ts a8.ts a9.ts
Ffmpeg
14
HLS
a0.ts a1.ts a2.ts a3.ts a4.ts a5.ts a6.ts a7.ts a8.ts a9.ts
Ffmpeg
15
HLS
a0.ts a1.ts a2.ts a3.ts a4.ts a5.ts a6.ts a7.ts a8.ts a9.ts
Ffmpeg
16
HLS
a0.ts a1.ts a2.ts a3.ts a4.ts a5.ts a6.ts a7.ts a8.ts a9.ts
Ffmpeg
Ffmpeg
17
HLS
Ffmpeg
Ffmpeg
Ffmpeg
18
Архитектура
Storage
Transcoder
avi, mkv, ogv, …
iOS
Android
Firefox
Safari
Yandex.BrowserWinPhone
Chrome
mp4, webm, hls
19
АрхитектураPlayer
Balancer
Transcoder TranscoderTranscoder
Storage
20
АрхитектураPlayer
Balancer
Transcoder TranscoderTranscoder
Storage
Balancer
21
АрхитектураPlayer
Balancer
Transcoder TranscoderTranscoder
Storage
Balancer
video content
〉Один файл - несколько ядер процессора
〉Один меньше 50 файлов одновременно
22
Проблема
〉Один файл - несколько ядер процессора
〉Один меньше 50 файлов одновременно
23
Проблема
Идея!
Используем дедубликацию. Не будем конвертировать файл несколько раз для разных клиентов.
24
Популярные файлы
Balancer
Клиент 1
Storage
Transcoder
Клиент 2
Клиент 3
Клиент 4
〉Один файл - один транскодер
〉Один транскодер - один датацентр
〉Все запросы про файл попадают на одну машину
25
Проблема
26
Очень популярные файлы
API
Клиент 1
RealtimeOffline
Конвертация
Клиент 2
Подсчет числа просмотров
Популярные файлы
〉Работаем как с личными так и с очень популярными роликами
〉Миллионы просмотров в сутки
〉Экономия ресурсов
27
Результат
Лев Толмачев
Руководитель группы облачного медиа
Контакты