SlideShare una empresa de Scribd logo
1 de 44
Кадры решают все, 
или стриминг видео 
в одноклассниках 
Александр Тоболь
• 10 млн уников в сутки по всему миру 
• 75 млн просмотров в сутки 
• 100 тысяч загрузок в день
Видеоплатформа изнутри 
temp 
storage 
persistent 
storage 
upload 
server 
download 
server 
transformation 
server 
http://habrahabr.ru/company/odnoklassniki/blog/
MPEG1/2/4, DivX, h.264, WMV7/8/9 
COder DECoder 
MP3, AAC, OGG Vorbis, DTS
Контейнер 
MKV, QuickTime, FLV, 3GP, MP4, .TS
Выбор кодека и контейнера 
MP4 
H.264 
AAC 
FLV 
H.263 
MP3 
WebM 
VP8 
Vorbis, MP3
Трансформация видео 
Transformation 
server 
persistent storage 
ffmpeg 
mp4box 
mp4parser 
MP4, H.264, AAC 
144, 240, 360, 480, 720 
1080, 1440, 2160 
temp storage 
Any container/codec 
WxH
Трансформация видео 
ffmpeg -i original.mp4 -threads 3 -loglevel info -y -filter_complex [0:0]yadif=0:- 
1:0,split=3[split0][split1][split2];[split0]scale=640:356[out0];[split1]scale=256:142[out1];[split2]scale=426:236[out2] -vcodec libx264 -map 
[out0] -vb 559k -r 25 -g 60 -vprofile high -acodec libfdk_aac -refs 1 -bf 3 -x264opts b-pyramid:mixed-refs:weightb:8x8dct:deblock=2,2:no-scenecut 
-b_strategy 1 -wpredp 2 -qdiff 4 -flags +loop -partitions +parti8x8+parti4x4+partp8x8+partb8x8 -me_method dis -keyint_min 25 - 
map_metadata -1 -qmin 10 -me_range 16 -qcomp 0.6 -qmax 51 -i_qfactor 0.71 -subq 2 -af aresample=first_pts=0 -pix_fmt yuv420p -coder 1 
-trellis 0 -map 0:1 -ac 2 -ab 55k -ar 44100 -sn -f mp4 LOW -vcodec libx264 -map [out0] -vb 80k -r 25 -g 60 -vprofile baseline -acodec 
libfdk_aac -refs 1 -bf 3 -x264opts b-pyramid:mixed-refs:weightb:deblock=2,2:no-scenecut -b_strategy 2 -wpredp 2 -qdiff 4 -flags +loop - 
partitions +parti4x4 -me_method full -keyint_min 25 -map_metadata -1 -qmin 10 -me_range 16 -qcomp 0.6 -qmax 51 -i_qfactor 0.71 -subq 2 
-af aresample=first_pts=0 -pix_fmt yuv420p -coder 1 -trellis 0 -map 0:1 -ac 2 -ab 32k -ar 44100 -sn -f mp4 MOBILE -vcodec libx264 -map 
[out0] -vb 250k -r 25 -g 60 -vprofile baseline -acodec libfdk_aac -refs 1 -bf 3 -x264opts b-pyramid:mixed-refs:weightb:deblock=2,2:no-scenecut 
-b_strategy 2 -wpredp 2 -qdiff 4 -flags +loop -partitions +parti4x4 -me_method full -keyint_min 25 -map_metadata -1 -qmin 10 - 
me_range 16 -qcomp 0.6 -qmax 51 -i_qfactor 0.71 -subq 2 -af aresample=first_pts=0 -pix_fmt yuv420p -coder 1 -trellis 0 -map 0:1 -ac 2 -ab 
48k -ar 44100 -sn -f mp4 LOWEST
Видео изнутри 
temp 
storage 
persistent 
storage 
upload 
server 
download 
server 
transformation 
server
mp4 pseudo-streaming 
MOOV data1 data2 data m 
data N 
vm am 
Fast start v0 a0 v1 a1 vN aN 
data N 
data 
m 
HTTP 
byte-range 
request 
start time 
parameter in 
the request 
URL 
MOOV data m data N
«Длинный хвост»
Архитектура раздачи 
download 
server 
persistent 
storage 
RAM - 96GB 
SSD - 4TB 
1-й уровень 
2-й уровень 
Segment 
256Kb 
LRU 
FIFO
Zero-copy 
download 
server 
LRU 
1-й уровень RAM - 96GB 
/dev/shm/cache.mem ssize_t sendfile(int out_fd, int in_fd, off_t *offset, size_t count); 
ssize_t send(int sockfd, const void *buf, size_t len, int flags); 
https://github.com/odnoklassniki/one-nio/
Производительность раздачи 
download 
persistent 
storage 
RAM – 96Gb 
SSD - 4Tb 
eth 
4 x 10 Gbps 
80% 
20% 
eth 
10 Gbps
Появились видео от блогеров и партнеров - сериалы, шоу, кино
Двухчасовой mp4 фильм в среднем стартует: 
- 12 секунд в проводных сетях 
- 21 секунду в мобильных сетях
Что происходит? 
Header 
data1 data2 data k data N … … 
6 Mb
- перемотка фильма занимает 6 секунд 
- 30% буферизаций ведут к закрытию плеера
Задачи 
1. Ускорить старт видео в 2-3 раза 
2. Ускорить перемотку в 3-6 раз 
3. Уменьшить колличество беферизаций 
4. Решить проблему на мобильных устройствах
Автокачество в зависимости от разрешения 
окна плеера и скорости Интернет
Технологии стриминга 
Параметр 
HLS HDS 
кодек любой h264,aac 
контейнер MP4, MPEG2-TS MPEG2-TS 
автокачество mpd m3u8 
plugins 
h264,mp3,aac 
f4m 
DASH 
f4v 
dash.js native
Распространение протоколов 
статистика от wmspanel.com
Dynamic Adaptive Streaming over HTTP 
Header data1 data2 data k data N … … 
He data1 data2 data k data N … … 
MP4 
MPEG-DASH 
MPEG2-TS
He 
data1 data2 data k data N … … 
He data1 data2 data k data N … … 
He data1 data2 data k data N … … 
http://example.com/manifest.mpd 
<MPD 
xmlns="urn:mpeg:DASH:schema:MPD:2011" 
mediaPresentationDuration="PT0H3M1.63S" 
minBufferTime="PT1.5S" 
profiles="urn:mpeg:dash:profile:isoff-on- 
demand:2011" 
type="static"> 
2160p 
<Period duration="PT0H3M1.63S" 
144p 
start="PT0S"> 720p 
bandwidth 
time 
MPEG-DASH manifest 
He
MPEG2 Transport stream 
http://example.com/video.m3u8 
#EXTM3U 
#EXT-X-STREAM-INF:BANDWIDTH=200000 
lowest.m3u8 
#EXT-X-STREAM-INF:BANDWIDTH=311111 
low.m3u8 
#EXT-X-STREAM-INF:BANDWIDTH=484444 
medium.m3u8 
#EXT-X-STREAM-INF:BANDWIDTH=737777 
high.m3u8 
http://example.com/lowest.m3u8 
… 
http://example.com/low.m3u8 
… 
http://example.com/medium.m3u8 
… 
http://example.com/lowest.m3u8 
#EXTM3U 
#EXT-X-VERSION:3 
#EXT-X-TARGETDURATION:11 
#EXTINF:10.083333, 
high000.ts 
#EXTINF:9.958333, 
high001.ts 
#EXTINF:10.000000, 
high002.ts 
… 
http://example.com/high000.ts 
http://example.com/high001.ts 
http://example.com/high002.ts 
Http Live Streaming
dash 
FFMPEG 
Upload FFMPEG 
mp4 
MP4BOX 
hls 
10Пб x 3 
Простое решение
Экономное решение 
h264 
Upload dash 
persistent 
storage 
mp4 
hls 
aac 
download 
server 
Delta 
transformation 
server
Проблемы HLS 
1.ts 2.ts k.ts N.ts HLS … … 
MPEG2-TS … 
40Гбит/сек по 188байт пакет = 26 млн пакетов в сек
persistent 
storage 
mp4: h264, aac 
Delta 
HLS 
DASH 
Решение
MPEG-DASH поток на лету
Header data1 data2 data k data N … … 
He data1 data2 data k data N … … 
He 
He Offsets 
MP4 
DASH 
DELTA 
transformation 
server 
mp4box 
Кодирование DASH
He 
He 
Header data1 data2 data k data N … … 
He data1 data2 data k data N … … 
DELTA 
MP4 
DASH 
download 
server 
Раздача DASH
Header data 
Header data 
He data1 data2 data k data N … … 
He data1 data2 data k data N … … 
720p 
2160p 
MP4 
fragmented MP4 
720p 
2160p 
Header data 
MP4 
Header data 
720p 
2160p 
Проблемы DASH
FLASH плеер и MPEG-DASH формат 
ФИЧИ: 
1. Интерлив видео/аудио 
2. Замена UrlLoader на UrlStream 
3. Доработка алгоритма Автокачества 
4. Умный ретрай, кеширование sidx 
5. Умный фронтбуффер 
6. Работа с частично битым видео 
Базовая as3 реализация dash 
https://github.com/castlabs/dashas
HLS поток на лету
m3u8 
playlist 
Кодирование HLS 
Upload FFMPEG mp4 FFMPEG 
delta 
delta index 
persistent 
storage 
mpeg2 
fragments
Panda diff 
MPEG2 … 
MP4 … 
DELTA 
INDEX
Производительность раздачи 
download 
MP4 ~50 Гбит/сек 
DASH ~40 Гбит/сек 
HLS ~20 Гбит/сек 
persistent 
storage 
RAM – 96Gb 
SSD - 4Tb 
eth 
4 x 10 Gbps 
80% 
20% 
eth 
10 Gbps
Результаты
Параметр 
старый формат (MP4) 
средняя длина/2 часа 
adaptive bitrate streaming 
MPEG-Dash/HLS 
константа 
старт 4 сек/12 сек 1.5 сек 
перемотка 4 сек/12 сек 1.3 сек 
стоимость хранения - +10% 
стоимость раздачи - +20% CPU 
Первый кадр в 6 раз быстрее!
Мобильные экраны – смартфоны, планшеты, SmartTV
1. Автоматически выбор качества в 
зависимости от разрешения и скорости 
Интернет 
2. DASH-видео на FLASH и HTML-5 
3. HLS видео в iOS- плеерах и SmartTV 
4. Экономное хранение форматов и 
сохранение производительности раздачи 
5. Экономия времени пользователей 6 лет / 
сутки 
50 млн просмотров/сутки * 4 сек = 200 млн сек / 
сутки 
Итого
Быстрее нас только этот 
мужчина в болиде! 
Быстрее нас только этот чувак в красном!
Спасибо

Más contenido relacionado

La actualidad más candente

Опыт построения СХД на базе Windows Server для использования в публичном обла...
Опыт построения СХД на базе Windows Server для использования в публичном обла...Опыт построения СХД на базе Windows Server для использования в публичном обла...
Опыт построения СХД на базе Windows Server для использования в публичном обла...Ontico
 
Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)
Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)
Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)Ontico
 
Обзор технологий Microsoft Hyper-V: введение в виртуализацию
Обзор технологий Microsoft Hyper-V: введение в виртуализациюОбзор технологий Microsoft Hyper-V: введение в виртуализацию
Обзор технологий Microsoft Hyper-V: введение в виртуализациюSkillFactory
 
Архитектура поиска в Booking.com / Иван Круглов (Booking.com)
Архитектура поиска в Booking.com / Иван Круглов (Booking.com)Архитектура поиска в Booking.com / Иван Круглов (Booking.com)
Архитектура поиска в Booking.com / Иван Круглов (Booking.com)Ontico
 
Сегментируем 600 млн. пользователей в режиме реального времени каждый день. H...
Сегментируем 600 млн. пользователей в режиме реального времени каждый день. H...Сегментируем 600 млн. пользователей в режиме реального времени каждый день. H...
Сегментируем 600 млн. пользователей в режиме реального времени каждый день. H...Ontico
 
Виртуальный ЦОД для корпоративных клиентов на базе Virtuozzo: стабильность, п...
Виртуальный ЦОД для корпоративных клиентов на базе Virtuozzo: стабильность, п...Виртуальный ЦОД для корпоративных клиентов на базе Virtuozzo: стабильность, п...
Виртуальный ЦОД для корпоративных клиентов на базе Virtuozzo: стабильность, п...Ontico
 
Андрей Светлов-«Делаем своё решение для оптимальной загрузки кластера»
Андрей Светлов-«Делаем своё решение для оптимальной загрузки кластера»Андрей Светлов-«Делаем своё решение для оптимальной загрузки кластера»
Андрей Светлов-«Делаем своё решение для оптимальной загрузки кластера»Tanya Denisyuk
 
Flashcache в mamba.ru / Яковлев Александр Юрьевич (ЗАО Мамба)
Flashcache в mamba.ru / Яковлев Александр Юрьевич (ЗАО Мамба)Flashcache в mamba.ru / Яковлев Александр Юрьевич (ЗАО Мамба)
Flashcache в mamba.ru / Яковлев Александр Юрьевич (ЗАО Мамба)Ontico
 
Twisted Framework - сетевые приложения в Python
Twisted Framework - сетевые приложения в PythonTwisted Framework - сетевые приложения в Python
Twisted Framework - сетевые приложения в PythonAndrey Smirnov
 
Архитектура хранения фотографий в Badoo
Архитектура хранения фотографий в BadooАрхитектура хранения фотографий в Badoo
Архитектура хранения фотографий в BadooBadoo Development
 
AWS и GCP: трудная жизнь в облаках / Максим Пугачев (IPONWEB)
AWS и GCP: трудная жизнь в облаках / Максим Пугачев (IPONWEB)AWS и GCP: трудная жизнь в облаках / Максим Пугачев (IPONWEB)
AWS и GCP: трудная жизнь в облаках / Максим Пугачев (IPONWEB)Ontico
 
Юрий Насретдинов, Badoo
Юрий Насретдинов, BadooЮрий Насретдинов, Badoo
Юрий Насретдинов, BadooOntico
 
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)Ontico
 
Дмитрий Лазаренко-«Живая миграция и отказоустойчивость контейнеров в гибридно...
Дмитрий Лазаренко-«Живая миграция и отказоустойчивость контейнеров в гибридно...Дмитрий Лазаренко-«Живая миграция и отказоустойчивость контейнеров в гибридно...
Дмитрий Лазаренко-«Живая миграция и отказоустойчивость контейнеров в гибридно...Tanya Denisyuk
 
nginx.CHANGES.2015 / Игорь Сысоев, Валентин Бартенев (Nginx)
nginx.CHANGES.2015 / Игорь Сысоев, Валентин Бартенев (Nginx)nginx.CHANGES.2015 / Игорь Сысоев, Валентин Бартенев (Nginx)
nginx.CHANGES.2015 / Игорь Сысоев, Валентин Бартенев (Nginx)Ontico
 
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...Ontico
 
Сравнение решений по балансировке высоконагруженных систем / Евгений Пивень (...
Сравнение решений по балансировке высоконагруженных систем / Евгений Пивень (...Сравнение решений по балансировке высоконагруженных систем / Евгений Пивень (...
Сравнение решений по балансировке высоконагруженных систем / Евгений Пивень (...Ontico
 
Ровная балансировка нагрузки на фронтенд-кластере
Ровная балансировка нагрузки на фронтенд-кластереРовная балансировка нагрузки на фронтенд-кластере
Ровная балансировка нагрузки на фронтенд-кластереBadoo Development
 
Движок LMDB — особенный чемпион / Юрьев Леонид (Петер-Сервис R&D)
Движок LMDB — особенный чемпион / Юрьев Леонид (Петер-Сервис R&D)Движок LMDB — особенный чемпион / Юрьев Леонид (Петер-Сервис R&D)
Движок LMDB — особенный чемпион / Юрьев Леонид (Петер-Сервис R&D)Ontico
 
Андрей Федоренчик- «Высоконагруженная система с аналитикой на InfoBright»
Андрей Федоренчик- «Высоконагруженная система с аналитикой на InfoBright»Андрей Федоренчик- «Высоконагруженная система с аналитикой на InfoBright»
Андрей Федоренчик- «Высоконагруженная система с аналитикой на InfoBright»Tanya Denisyuk
 

La actualidad más candente (20)

Опыт построения СХД на базе Windows Server для использования в публичном обла...
Опыт построения СХД на базе Windows Server для использования в публичном обла...Опыт построения СХД на базе Windows Server для использования в публичном обла...
Опыт построения СХД на базе Windows Server для использования в публичном обла...
 
Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)
Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)
Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)
 
Обзор технологий Microsoft Hyper-V: введение в виртуализацию
Обзор технологий Microsoft Hyper-V: введение в виртуализациюОбзор технологий Microsoft Hyper-V: введение в виртуализацию
Обзор технологий Microsoft Hyper-V: введение в виртуализацию
 
Архитектура поиска в Booking.com / Иван Круглов (Booking.com)
Архитектура поиска в Booking.com / Иван Круглов (Booking.com)Архитектура поиска в Booking.com / Иван Круглов (Booking.com)
Архитектура поиска в Booking.com / Иван Круглов (Booking.com)
 
Сегментируем 600 млн. пользователей в режиме реального времени каждый день. H...
Сегментируем 600 млн. пользователей в режиме реального времени каждый день. H...Сегментируем 600 млн. пользователей в режиме реального времени каждый день. H...
Сегментируем 600 млн. пользователей в режиме реального времени каждый день. H...
 
Виртуальный ЦОД для корпоративных клиентов на базе Virtuozzo: стабильность, п...
Виртуальный ЦОД для корпоративных клиентов на базе Virtuozzo: стабильность, п...Виртуальный ЦОД для корпоративных клиентов на базе Virtuozzo: стабильность, п...
Виртуальный ЦОД для корпоративных клиентов на базе Virtuozzo: стабильность, п...
 
Андрей Светлов-«Делаем своё решение для оптимальной загрузки кластера»
Андрей Светлов-«Делаем своё решение для оптимальной загрузки кластера»Андрей Светлов-«Делаем своё решение для оптимальной загрузки кластера»
Андрей Светлов-«Делаем своё решение для оптимальной загрузки кластера»
 
Flashcache в mamba.ru / Яковлев Александр Юрьевич (ЗАО Мамба)
Flashcache в mamba.ru / Яковлев Александр Юрьевич (ЗАО Мамба)Flashcache в mamba.ru / Яковлев Александр Юрьевич (ЗАО Мамба)
Flashcache в mamba.ru / Яковлев Александр Юрьевич (ЗАО Мамба)
 
Twisted Framework - сетевые приложения в Python
Twisted Framework - сетевые приложения в PythonTwisted Framework - сетевые приложения в Python
Twisted Framework - сетевые приложения в Python
 
Архитектура хранения фотографий в Badoo
Архитектура хранения фотографий в BadooАрхитектура хранения фотографий в Badoo
Архитектура хранения фотографий в Badoo
 
AWS и GCP: трудная жизнь в облаках / Максим Пугачев (IPONWEB)
AWS и GCP: трудная жизнь в облаках / Максим Пугачев (IPONWEB)AWS и GCP: трудная жизнь в облаках / Максим Пугачев (IPONWEB)
AWS и GCP: трудная жизнь в облаках / Максим Пугачев (IPONWEB)
 
Юрий Насретдинов, Badoo
Юрий Насретдинов, BadooЮрий Насретдинов, Badoo
Юрий Насретдинов, Badoo
 
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
 
Дмитрий Лазаренко-«Живая миграция и отказоустойчивость контейнеров в гибридно...
Дмитрий Лазаренко-«Живая миграция и отказоустойчивость контейнеров в гибридно...Дмитрий Лазаренко-«Живая миграция и отказоустойчивость контейнеров в гибридно...
Дмитрий Лазаренко-«Живая миграция и отказоустойчивость контейнеров в гибридно...
 
nginx.CHANGES.2015 / Игорь Сысоев, Валентин Бартенев (Nginx)
nginx.CHANGES.2015 / Игорь Сысоев, Валентин Бартенев (Nginx)nginx.CHANGES.2015 / Игорь Сысоев, Валентин Бартенев (Nginx)
nginx.CHANGES.2015 / Игорь Сысоев, Валентин Бартенев (Nginx)
 
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...
 
Сравнение решений по балансировке высоконагруженных систем / Евгений Пивень (...
Сравнение решений по балансировке высоконагруженных систем / Евгений Пивень (...Сравнение решений по балансировке высоконагруженных систем / Евгений Пивень (...
Сравнение решений по балансировке высоконагруженных систем / Евгений Пивень (...
 
Ровная балансировка нагрузки на фронтенд-кластере
Ровная балансировка нагрузки на фронтенд-кластереРовная балансировка нагрузки на фронтенд-кластере
Ровная балансировка нагрузки на фронтенд-кластере
 
Движок LMDB — особенный чемпион / Юрьев Леонид (Петер-Сервис R&D)
Движок LMDB — особенный чемпион / Юрьев Леонид (Петер-Сервис R&D)Движок LMDB — особенный чемпион / Юрьев Леонид (Петер-Сервис R&D)
Движок LMDB — особенный чемпион / Юрьев Леонид (Петер-Сервис R&D)
 
Андрей Федоренчик- «Высоконагруженная система с аналитикой на InfoBright»
Андрей Федоренчик- «Высоконагруженная система с аналитикой на InfoBright»Андрей Федоренчик- «Высоконагруженная система с аналитикой на InfoBright»
Андрей Федоренчик- «Высоконагруженная система с аналитикой на InfoBright»
 

Destacado

Как построить видеоплатформу на 200 Гбитс / Ольховченков Вячеслав (Integros)
Как построить видеоплатформу на 200 Гбитс / Ольховченков Вячеслав (Integros)Как построить видеоплатформу на 200 Гбитс / Ольховченков Вячеслав (Integros)
Как построить видеоплатформу на 200 Гбитс / Ольховченков Вячеслав (Integros)Ontico
 
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...odnoklassniki.ru
 
лекции2
лекции2лекции2
лекции2kuzalex
 
Тестирование аварий. Андрей Губа. Highload++ 2015
Тестирование аварий. Андрей Губа. Highload++ 2015Тестирование аварий. Андрей Губа. Highload++ 2015
Тестирование аварий. Андрей Губа. Highload++ 2015odnoklassniki.ru
 
Инструменты высоконагруженных проектов - кэширование и очереди, Вячеслав Моск...
Инструменты высоконагруженных проектов - кэширование и очереди, Вячеслав Моск...Инструменты высоконагруженных проектов - кэширование и очереди, Вячеслав Моск...
Инструменты высоконагруженных проектов - кэширование и очереди, Вячеслав Моск...Ontico
 
NodeJS в HighLoad проекте / Акрицкий Владимир (iAge Engineering)
NodeJS в HighLoad проекте / Акрицкий Владимир (iAge Engineering)NodeJS в HighLoad проекте / Акрицкий Владимир (iAge Engineering)
NodeJS в HighLoad проекте / Акрицкий Владимир (iAge Engineering)Ontico
 
101 способ приготовления RabbitMQ и немного о pipeline архитектуре / Филонов ...
101 способ приготовления RabbitMQ и немного о pipeline архитектуре / Филонов ...101 способ приготовления RabbitMQ и немного о pipeline архитектуре / Филонов ...
101 способ приготовления RabbitMQ и немного о pipeline архитектуре / Филонов ...Ontico
 
Anomaly Detection - New York Machine Learning
Anomaly Detection - New York Machine LearningAnomaly Detection - New York Machine Learning
Anomaly Detection - New York Machine LearningTed Dunning
 
Практика совместного использования Lua и C в opensource спам-фильтре Rspamd /...
Практика совместного использования Lua и C в opensource спам-фильтре Rspamd /...Практика совместного использования Lua и C в opensource спам-фильтре Rspamd /...
Практика совместного использования Lua и C в opensource спам-фильтре Rspamd /...Ontico
 
Artisto: опыт запуска нейросетей в production / Эдуард Тянтов (Mail.ru Group)
Artisto: опыт запуска нейросетей в production / Эдуард Тянтов (Mail.ru Group)Artisto: опыт запуска нейросетей в production / Эдуард Тянтов (Mail.ru Group)
Artisto: опыт запуска нейросетей в production / Эдуард Тянтов (Mail.ru Group)Ontico
 
Sphinx 3.0 и RT-индексы на основном поиске Avito / Андрей Смирнов, Вячеслав К...
Sphinx 3.0 и RT-индексы на основном поиске Avito / Андрей Смирнов, Вячеслав К...Sphinx 3.0 и RT-индексы на основном поиске Avito / Андрей Смирнов, Вячеслав К...
Sphinx 3.0 и RT-индексы на основном поиске Avito / Андрей Смирнов, Вячеслав К...Ontico
 

Destacado (11)

Как построить видеоплатформу на 200 Гбитс / Ольховченков Вячеслав (Integros)
Как построить видеоплатформу на 200 Гбитс / Ольховченков Вячеслав (Integros)Как построить видеоплатформу на 200 Гбитс / Ольховченков Вячеслав (Integros)
Как построить видеоплатформу на 200 Гбитс / Ольховченков Вячеслав (Integros)
 
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
 
лекции2
лекции2лекции2
лекции2
 
Тестирование аварий. Андрей Губа. Highload++ 2015
Тестирование аварий. Андрей Губа. Highload++ 2015Тестирование аварий. Андрей Губа. Highload++ 2015
Тестирование аварий. Андрей Губа. Highload++ 2015
 
Инструменты высоконагруженных проектов - кэширование и очереди, Вячеслав Моск...
Инструменты высоконагруженных проектов - кэширование и очереди, Вячеслав Моск...Инструменты высоконагруженных проектов - кэширование и очереди, Вячеслав Моск...
Инструменты высоконагруженных проектов - кэширование и очереди, Вячеслав Моск...
 
NodeJS в HighLoad проекте / Акрицкий Владимир (iAge Engineering)
NodeJS в HighLoad проекте / Акрицкий Владимир (iAge Engineering)NodeJS в HighLoad проекте / Акрицкий Владимир (iAge Engineering)
NodeJS в HighLoad проекте / Акрицкий Владимир (iAge Engineering)
 
101 способ приготовления RabbitMQ и немного о pipeline архитектуре / Филонов ...
101 способ приготовления RabbitMQ и немного о pipeline архитектуре / Филонов ...101 способ приготовления RabbitMQ и немного о pipeline архитектуре / Филонов ...
101 способ приготовления RabbitMQ и немного о pipeline архитектуре / Филонов ...
 
Anomaly Detection - New York Machine Learning
Anomaly Detection - New York Machine LearningAnomaly Detection - New York Machine Learning
Anomaly Detection - New York Machine Learning
 
Практика совместного использования Lua и C в opensource спам-фильтре Rspamd /...
Практика совместного использования Lua и C в opensource спам-фильтре Rspamd /...Практика совместного использования Lua и C в opensource спам-фильтре Rspamd /...
Практика совместного использования Lua и C в opensource спам-фильтре Rspamd /...
 
Artisto: опыт запуска нейросетей в production / Эдуард Тянтов (Mail.ru Group)
Artisto: опыт запуска нейросетей в production / Эдуард Тянтов (Mail.ru Group)Artisto: опыт запуска нейросетей в production / Эдуард Тянтов (Mail.ru Group)
Artisto: опыт запуска нейросетей в production / Эдуард Тянтов (Mail.ru Group)
 
Sphinx 3.0 и RT-индексы на основном поиске Avito / Андрей Смирнов, Вячеслав К...
Sphinx 3.0 и RT-индексы на основном поиске Avito / Андрей Смирнов, Вячеслав К...Sphinx 3.0 и RT-индексы на основном поиске Avito / Андрей Смирнов, Вячеслав К...
Sphinx 3.0 и RT-индексы на основном поиске Avito / Андрей Смирнов, Вячеслав К...
 

Similar a Кадры решают все, или стриминг видео, Александр Тоболь (Одноклассники)

Кадры решают все, или стриминг видео в «Одноклассниках». Александр Тоболь
Кадры решают все, или стриминг видео в «Одноклассниках». Александр ТобольКадры решают все, или стриминг видео в «Одноклассниках». Александр Тоболь
Кадры решают все, или стриминг видео в «Одноклассниках». Александр Тобольodnoklassniki.ru
 
стриминг видео на ок
стриминг видео на окстриминг видео на ок
стриминг видео на окAlexander Tobol
 
Александр Тоболь, Кадры решают все, или стриминг видео в Одноклассниках
Александр Тоболь, Кадры решают все, или стриминг видео в ОдноклассникахАлександр Тоболь, Кадры решают все, или стриминг видео в Одноклассниках
Александр Тоболь, Кадры решают все, или стриминг видео в ОдноклассникахTanya Denisyuk
 
Видеохостинг своими руками
Видеохостинг своими рукамиВидеохостинг своими руками
Видеохостинг своими рукамиStanislavMalkin
 
Пишем свой протокол поверх UDP или платформа потокового видео с нуля на милли...
Пишем свой протокол поверх UDP или платформа потокового видео с нуля на милли...Пишем свой протокол поверх UDP или платформа потокового видео с нуля на милли...
Пишем свой протокол поверх UDP или платформа потокового видео с нуля на милли...Ontico
 
Security Meetup 22 октября. «Опасное видео». Максим Андреев. Облако Mail.Ru
Security Meetup 22 октября. «Опасное видео». Максим Андреев. Облако Mail.RuSecurity Meetup 22 октября. «Опасное видео». Максим Андреев. Облако Mail.Ru
Security Meetup 22 октября. «Опасное видео». Максим Андреев. Облако Mail.RuMail.ru Group
 
мои модули и патчи для Nginx. максим дунин. зал 1
мои модули и патчи для Nginx. максим дунин. зал 1мои модули и патчи для Nginx. максим дунин. зал 1
мои модули и патчи для Nginx. максим дунин. зал 1rit2011
 
Devpoint2 video in internet
Devpoint2 video in internetDevpoint2 video in internet
Devpoint2 video in internetMax Lapshin
 
Реактивный раздатчик ok.ru/music
Реактивный раздатчик ok.ru/musicРеактивный раздатчик ok.ru/music
Реактивный раздатчик ok.ru/musicVadim Tsesko
 
Тюним память и сетевой стек в Linux: история перевода высоконагруженных сер...
Тюним память  и сетевой стек в Linux: история перевода высоконагруженных  сер...Тюним память  и сетевой стек в Linux: история перевода высоконагруженных  сер...
Тюним память и сетевой стек в Linux: история перевода высоконагруженных сер...Dmitry Samsonov
 
Видео в сети
Видео в сетиВидео в сети
Видео в сетиGetDev.NET
 
Video 111127013709-phpapp02
Video 111127013709-phpapp02Video 111127013709-phpapp02
Video 111127013709-phpapp02Newlink
 
Video 111127013709-phpapp02
Video 111127013709-phpapp02Video 111127013709-phpapp02
Video 111127013709-phpapp02LLC NewLink
 
Презентация "Это что-то новенькое"
Презентация "Это что-то новенькое"Презентация "Это что-то новенькое"
Презентация "Это что-то новенькое"Дмитрий Костюк
 
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...Ontico
 
3 рекордеры, мобильный клиент, pssct
3   рекордеры, мобильный клиент, pssct3   рекордеры, мобильный клиент, pssct
3 рекордеры, мобильный клиент, pssctjournalrubezh
 
Как обслужить 60 миллионов абонентов, Артем Руфанов (ПЕТЕР-СЕРВИС)
Как обслужить 60 миллионов абонентов, Артем Руфанов (ПЕТЕР-СЕРВИС)Как обслужить 60 миллионов абонентов, Артем Руфанов (ПЕТЕР-СЕРВИС)
Как обслужить 60 миллионов абонентов, Артем Руфанов (ПЕТЕР-СЕРВИС)Ontico
 
Особенности передачи и обработки видео данных. Приправа из кодеков или с чем ...
Особенности передачи и обработки видео данных. Приправа из кодеков или с чем ...Особенности передачи и обработки видео данных. Приправа из кодеков или с чем ...
Особенности передачи и обработки видео данных. Приправа из кодеков или с чем ...DotNetConf
 
Как ВКонтакте использует Go
Как ВКонтакте использует GoКак ВКонтакте использует Go
Как ВКонтакте использует GoArtem Kovardin
 

Similar a Кадры решают все, или стриминг видео, Александр Тоболь (Одноклассники) (20)

Кадры решают все, или стриминг видео в «Одноклассниках». Александр Тоболь
Кадры решают все, или стриминг видео в «Одноклассниках». Александр ТобольКадры решают все, или стриминг видео в «Одноклассниках». Александр Тоболь
Кадры решают все, или стриминг видео в «Одноклассниках». Александр Тоболь
 
стриминг видео на ок
стриминг видео на окстриминг видео на ок
стриминг видео на ок
 
Александр Тоболь, Кадры решают все, или стриминг видео в Одноклассниках
Александр Тоболь, Кадры решают все, или стриминг видео в ОдноклассникахАлександр Тоболь, Кадры решают все, или стриминг видео в Одноклассниках
Александр Тоболь, Кадры решают все, или стриминг видео в Одноклассниках
 
Видеохостинг своими руками
Видеохостинг своими рукамиВидеохостинг своими руками
Видеохостинг своими руками
 
Пишем свой протокол поверх UDP или платформа потокового видео с нуля на милли...
Пишем свой протокол поверх UDP или платформа потокового видео с нуля на милли...Пишем свой протокол поверх UDP или платформа потокового видео с нуля на милли...
Пишем свой протокол поверх UDP или платформа потокового видео с нуля на милли...
 
Security Meetup 22 октября. «Опасное видео». Максим Андреев. Облако Mail.Ru
Security Meetup 22 октября. «Опасное видео». Максим Андреев. Облако Mail.RuSecurity Meetup 22 октября. «Опасное видео». Максим Андреев. Облако Mail.Ru
Security Meetup 22 октября. «Опасное видео». Максим Андреев. Облако Mail.Ru
 
мои модули и патчи для Nginx. максим дунин. зал 1
мои модули и патчи для Nginx. максим дунин. зал 1мои модули и патчи для Nginx. максим дунин. зал 1
мои модули и патчи для Nginx. максим дунин. зал 1
 
Devpoint2 video in internet
Devpoint2 video in internetDevpoint2 video in internet
Devpoint2 video in internet
 
Реактивный раздатчик ok.ru/music
Реактивный раздатчик ok.ru/musicРеактивный раздатчик ok.ru/music
Реактивный раздатчик ok.ru/music
 
Тюним память и сетевой стек в Linux: история перевода высоконагруженных сер...
Тюним память  и сетевой стек в Linux: история перевода высоконагруженных  сер...Тюним память  и сетевой стек в Linux: история перевода высоконагруженных  сер...
Тюним память и сетевой стек в Linux: история перевода высоконагруженных сер...
 
Видео в сети
Видео в сетиВидео в сети
Видео в сети
 
Видео в сети
Видео в сетиВидео в сети
Видео в сети
 
Video 111127013709-phpapp02
Video 111127013709-phpapp02Video 111127013709-phpapp02
Video 111127013709-phpapp02
 
Video 111127013709-phpapp02
Video 111127013709-phpapp02Video 111127013709-phpapp02
Video 111127013709-phpapp02
 
Презентация "Это что-то новенькое"
Презентация "Это что-то новенькое"Презентация "Это что-то новенькое"
Презентация "Это что-то новенькое"
 
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
 
3 рекордеры, мобильный клиент, pssct
3   рекордеры, мобильный клиент, pssct3   рекордеры, мобильный клиент, pssct
3 рекордеры, мобильный клиент, pssct
 
Как обслужить 60 миллионов абонентов, Артем Руфанов (ПЕТЕР-СЕРВИС)
Как обслужить 60 миллионов абонентов, Артем Руфанов (ПЕТЕР-СЕРВИС)Как обслужить 60 миллионов абонентов, Артем Руфанов (ПЕТЕР-СЕРВИС)
Как обслужить 60 миллионов абонентов, Артем Руфанов (ПЕТЕР-СЕРВИС)
 
Особенности передачи и обработки видео данных. Приправа из кодеков или с чем ...
Особенности передачи и обработки видео данных. Приправа из кодеков или с чем ...Особенности передачи и обработки видео данных. Приправа из кодеков или с чем ...
Особенности передачи и обработки видео данных. Приправа из кодеков или с чем ...
 
Как ВКонтакте использует Go
Как ВКонтакте использует GoКак ВКонтакте использует Go
Как ВКонтакте использует Go
 

Más de Ontico

One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...Ontico
 
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)Ontico
 
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Ontico
 
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Ontico
 
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...Ontico
 
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)Ontico
 
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...Ontico
 
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Ontico
 
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)Ontico
 
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)Ontico
 
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...Ontico
 
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...Ontico
 
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...Ontico
 
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)Ontico
 
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)Ontico
 
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)Ontico
 
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Ontico
 
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...Ontico
 
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...Ontico
 
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...Ontico
 

Más de Ontico (20)

One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
 
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
 
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
 
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
 
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
 
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
 
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
 
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
 
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
 
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
 
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
 
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
 
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
 
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
 
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
 
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
 
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
 
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
 
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
 
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
 

Кадры решают все, или стриминг видео, Александр Тоболь (Одноклассники)

  • 1. Кадры решают все, или стриминг видео в одноклассниках Александр Тоболь
  • 2. • 10 млн уников в сутки по всему миру • 75 млн просмотров в сутки • 100 тысяч загрузок в день
  • 3. Видеоплатформа изнутри temp storage persistent storage upload server download server transformation server http://habrahabr.ru/company/odnoklassniki/blog/
  • 4. MPEG1/2/4, DivX, h.264, WMV7/8/9 COder DECoder MP3, AAC, OGG Vorbis, DTS
  • 6. Выбор кодека и контейнера MP4 H.264 AAC FLV H.263 MP3 WebM VP8 Vorbis, MP3
  • 7. Трансформация видео Transformation server persistent storage ffmpeg mp4box mp4parser MP4, H.264, AAC 144, 240, 360, 480, 720 1080, 1440, 2160 temp storage Any container/codec WxH
  • 8. Трансформация видео ffmpeg -i original.mp4 -threads 3 -loglevel info -y -filter_complex [0:0]yadif=0:- 1:0,split=3[split0][split1][split2];[split0]scale=640:356[out0];[split1]scale=256:142[out1];[split2]scale=426:236[out2] -vcodec libx264 -map [out0] -vb 559k -r 25 -g 60 -vprofile high -acodec libfdk_aac -refs 1 -bf 3 -x264opts b-pyramid:mixed-refs:weightb:8x8dct:deblock=2,2:no-scenecut -b_strategy 1 -wpredp 2 -qdiff 4 -flags +loop -partitions +parti8x8+parti4x4+partp8x8+partb8x8 -me_method dis -keyint_min 25 - map_metadata -1 -qmin 10 -me_range 16 -qcomp 0.6 -qmax 51 -i_qfactor 0.71 -subq 2 -af aresample=first_pts=0 -pix_fmt yuv420p -coder 1 -trellis 0 -map 0:1 -ac 2 -ab 55k -ar 44100 -sn -f mp4 LOW -vcodec libx264 -map [out0] -vb 80k -r 25 -g 60 -vprofile baseline -acodec libfdk_aac -refs 1 -bf 3 -x264opts b-pyramid:mixed-refs:weightb:deblock=2,2:no-scenecut -b_strategy 2 -wpredp 2 -qdiff 4 -flags +loop - partitions +parti4x4 -me_method full -keyint_min 25 -map_metadata -1 -qmin 10 -me_range 16 -qcomp 0.6 -qmax 51 -i_qfactor 0.71 -subq 2 -af aresample=first_pts=0 -pix_fmt yuv420p -coder 1 -trellis 0 -map 0:1 -ac 2 -ab 32k -ar 44100 -sn -f mp4 MOBILE -vcodec libx264 -map [out0] -vb 250k -r 25 -g 60 -vprofile baseline -acodec libfdk_aac -refs 1 -bf 3 -x264opts b-pyramid:mixed-refs:weightb:deblock=2,2:no-scenecut -b_strategy 2 -wpredp 2 -qdiff 4 -flags +loop -partitions +parti4x4 -me_method full -keyint_min 25 -map_metadata -1 -qmin 10 - me_range 16 -qcomp 0.6 -qmax 51 -i_qfactor 0.71 -subq 2 -af aresample=first_pts=0 -pix_fmt yuv420p -coder 1 -trellis 0 -map 0:1 -ac 2 -ab 48k -ar 44100 -sn -f mp4 LOWEST
  • 9. Видео изнутри temp storage persistent storage upload server download server transformation server
  • 10. mp4 pseudo-streaming MOOV data1 data2 data m data N vm am Fast start v0 a0 v1 a1 vN aN data N data m HTTP byte-range request start time parameter in the request URL MOOV data m data N
  • 12. Архитектура раздачи download server persistent storage RAM - 96GB SSD - 4TB 1-й уровень 2-й уровень Segment 256Kb LRU FIFO
  • 13. Zero-copy download server LRU 1-й уровень RAM - 96GB /dev/shm/cache.mem ssize_t sendfile(int out_fd, int in_fd, off_t *offset, size_t count); ssize_t send(int sockfd, const void *buf, size_t len, int flags); https://github.com/odnoklassniki/one-nio/
  • 14. Производительность раздачи download persistent storage RAM – 96Gb SSD - 4Tb eth 4 x 10 Gbps 80% 20% eth 10 Gbps
  • 15. Появились видео от блогеров и партнеров - сериалы, шоу, кино
  • 16. Двухчасовой mp4 фильм в среднем стартует: - 12 секунд в проводных сетях - 21 секунду в мобильных сетях
  • 17. Что происходит? Header data1 data2 data k data N … … 6 Mb
  • 18. - перемотка фильма занимает 6 секунд - 30% буферизаций ведут к закрытию плеера
  • 19. Задачи 1. Ускорить старт видео в 2-3 раза 2. Ускорить перемотку в 3-6 раз 3. Уменьшить колличество беферизаций 4. Решить проблему на мобильных устройствах
  • 20. Автокачество в зависимости от разрешения окна плеера и скорости Интернет
  • 21. Технологии стриминга Параметр HLS HDS кодек любой h264,aac контейнер MP4, MPEG2-TS MPEG2-TS автокачество mpd m3u8 plugins h264,mp3,aac f4m DASH f4v dash.js native
  • 23. Dynamic Adaptive Streaming over HTTP Header data1 data2 data k data N … … He data1 data2 data k data N … … MP4 MPEG-DASH MPEG2-TS
  • 24. He data1 data2 data k data N … … He data1 data2 data k data N … … He data1 data2 data k data N … … http://example.com/manifest.mpd <MPD xmlns="urn:mpeg:DASH:schema:MPD:2011" mediaPresentationDuration="PT0H3M1.63S" minBufferTime="PT1.5S" profiles="urn:mpeg:dash:profile:isoff-on- demand:2011" type="static"> 2160p <Period duration="PT0H3M1.63S" 144p start="PT0S"> 720p bandwidth time MPEG-DASH manifest He
  • 25. MPEG2 Transport stream http://example.com/video.m3u8 #EXTM3U #EXT-X-STREAM-INF:BANDWIDTH=200000 lowest.m3u8 #EXT-X-STREAM-INF:BANDWIDTH=311111 low.m3u8 #EXT-X-STREAM-INF:BANDWIDTH=484444 medium.m3u8 #EXT-X-STREAM-INF:BANDWIDTH=737777 high.m3u8 http://example.com/lowest.m3u8 … http://example.com/low.m3u8 … http://example.com/medium.m3u8 … http://example.com/lowest.m3u8 #EXTM3U #EXT-X-VERSION:3 #EXT-X-TARGETDURATION:11 #EXTINF:10.083333, high000.ts #EXTINF:9.958333, high001.ts #EXTINF:10.000000, high002.ts … http://example.com/high000.ts http://example.com/high001.ts http://example.com/high002.ts Http Live Streaming
  • 26. dash FFMPEG Upload FFMPEG mp4 MP4BOX hls 10Пб x 3 Простое решение
  • 27. Экономное решение h264 Upload dash persistent storage mp4 hls aac download server Delta transformation server
  • 28. Проблемы HLS 1.ts 2.ts k.ts N.ts HLS … … MPEG2-TS … 40Гбит/сек по 188байт пакет = 26 млн пакетов в сек
  • 29. persistent storage mp4: h264, aac Delta HLS DASH Решение
  • 31. Header data1 data2 data k data N … … He data1 data2 data k data N … … He He Offsets MP4 DASH DELTA transformation server mp4box Кодирование DASH
  • 32. He He Header data1 data2 data k data N … … He data1 data2 data k data N … … DELTA MP4 DASH download server Раздача DASH
  • 33. Header data Header data He data1 data2 data k data N … … He data1 data2 data k data N … … 720p 2160p MP4 fragmented MP4 720p 2160p Header data MP4 Header data 720p 2160p Проблемы DASH
  • 34. FLASH плеер и MPEG-DASH формат ФИЧИ: 1. Интерлив видео/аудио 2. Замена UrlLoader на UrlStream 3. Доработка алгоритма Автокачества 4. Умный ретрай, кеширование sidx 5. Умный фронтбуффер 6. Работа с частично битым видео Базовая as3 реализация dash https://github.com/castlabs/dashas
  • 36. m3u8 playlist Кодирование HLS Upload FFMPEG mp4 FFMPEG delta delta index persistent storage mpeg2 fragments
  • 37. Panda diff MPEG2 … MP4 … DELTA INDEX
  • 38. Производительность раздачи download MP4 ~50 Гбит/сек DASH ~40 Гбит/сек HLS ~20 Гбит/сек persistent storage RAM – 96Gb SSD - 4Tb eth 4 x 10 Gbps 80% 20% eth 10 Gbps
  • 40. Параметр старый формат (MP4) средняя длина/2 часа adaptive bitrate streaming MPEG-Dash/HLS константа старт 4 сек/12 сек 1.5 сек перемотка 4 сек/12 сек 1.3 сек стоимость хранения - +10% стоимость раздачи - +20% CPU Первый кадр в 6 раз быстрее!
  • 41. Мобильные экраны – смартфоны, планшеты, SmartTV
  • 42. 1. Автоматически выбор качества в зависимости от разрешения и скорости Интернет 2. DASH-видео на FLASH и HTML-5 3. HLS видео в iOS- плеерах и SmartTV 4. Экономное хранение форматов и сохранение производительности раздачи 5. Экономия времени пользователей 6 лет / сутки 50 млн просмотров/сутки * 4 сек = 200 млн сек / сутки Итого
  • 43. Быстрее нас только этот мужчина в болиде! Быстрее нас только этот чувак в красном!

Notas del editor

  1. перемотка ролика средней длины
  2. Видео – второй по популярности сервис на Одноклассниках, им пользуется свыше 50%, вот немного цифр, чтобы напомнить тем, кто уже слышал о нашем успехе, и поразить тех, кто слышит это впервые. Перечисление и комментарии к цифрам.
  3. Особенность: аудио/видео сэмплы в обычном mp4 и фрагментированном одни и те же. Стадия нарезки. На трансформе создадим фрагментированные файлы из обычных. Удалим из них все сэмплы, оставим только метаданные. Запомним смещения всех фрагментов. Сохраним смещения и метаданные в базу.
  4. Особенность: аудио/видео сэмплы в обычном mp4 и фрагментированном одни и те же. Стадия нарезки. На трансформе создадим фрагментированные файлы из обычных. Удалим из них все сэмплы, оставим только метаданные. Запомним смещения всех фрагментов. Сохраним смещения и метаданные в базу.
  5. Особенность: для фрагмента заголовок сохранен отдельно, а данные будем брать из исходного файла. Стадия раздачи. Плеер делает запрос за очередным фрагментом. Находим заголовок этого фрагмента в метаданных. По заголовку определяем индексы сэмплов текущего фрагмента. Отправляем заголовок и сэмплы в плеер.
  6. Базовая as3 реализация dash https://github.com/castlabs/dashas Решенные проблемы 1. Интерлив видео/audio 2. Замена UrlLoader на UrlStream (потоковый муксинг начиная с первого фрагмента) 3. Доработка алгоритма автокачества (ориентируемся на скорость канала, размер окна, и предыдущий выбор пользователя) 4. Умный ретрай, кеширование sidx 5. Умный фронтбуффер 6. Работа с частично битым видео (восстановление таймстампа и офсета) 7. Идеальный интерлив меседжей и борьба с хрюканием
  7. Базовая as3 реализация dash https://github.com/castlabs/dashas Решенные проблемы 1. Интерлив видео/audio 2. Замена UrlLoader на UrlStream (потоковый муксинг начиная с первого фрагмента) 3. Доработка алгоритма автокачества (ориентируемся на скорость канала, размер окна, и предыдущий выбор пользователя) 4. Умный ретрай, кеширование sidx 5. Умный фронтбуффер 6. Работа с частично битым видео (восстановление таймстампа и офсета) 7. Идеальный интерлив меседжей и борьба с хрюканием
  8. просмотр видео на мобильном устройстве – сейчас это мобильная версия и андроид приложение