Основы видео стриминга.
Бесплатный сервер стриминга
для себя и маленькой сети.
• Антон Пинчук
• Системный администратор
• Уже 4й год
То что
расскажу
То что хочу
рассказать
О чем я расскажу в двух частях:
?
Зачем?
 Мне?
 Вам?
Что это такое?
 История
 Платформы
Доставка
пользователю
 Виды
 Методы
 Протоколы
Схема
 Теория
 Практика
Элементы
стрима
 Источники
 Микшеры
 OBS
 Настройки
 Схема
передачи на
сервер
Сервер
 Установка
 Виды настройки
 HDS + HLS
 Статистика
Первая часть
Вторая часть
Схема
обработки видео
 Что куда идет и
зачем
BitRate
 Принцип
 CBR
 VBR
CODEC
 Принцип
 Пирамида
сжатия
 Прикладные
кодеки
 Примеры
сжатия
Для чего это понадобилось мне?
Хватит о себе, для чего это вам?
Какие бонусы?)))
Какие минусы?)))
Что же такое стриминг?
Немного истории))
Методы доставки контента
Streaming
Adaptive Bitrate
Streaming
File
Download
Progressive
Download
Pseudo-
Streaming
File Download
Progressive Download
Pseudo-Streaming
To HTTP
Streaming
Adaptive Bitrate Streaming
Виды доставки
Live (Прямой Эфир)
On-Demand (По
требованию)
Streaming Adaptive str. Download
Streaming
Progressive Dwn.
Adaptive Streaming
Сложности выбора!
HLS – HDS - Dash, RTMP-RTSP, Progressive…
HLS File Structure
Master Playlist
.mp4.m3u8
Playlist Bitrate 1
.mp4.m3u8
Segment 1 Bitrate 1
.mp4.ts
Segment 2 Bitrate 1
.mp4.ts
Playlist Bitrate 2
.mp4.m3u8
Segment 1 Bitrate 2
.mp4.ts
Segment 2 Bitrate 2
.mp4.ts
HDS File Structure
Master Manifest
.f4m
Manifest Bitrate 1
.f4m
Index Bitrate 1
.f4x
Fragment Bitrate 1
.f4f
Manifest Bitrate 2
.f4m
Index Bitrate 2
.f4x
Fragment Bitrate 2
.f4f
Real Time Messaging Protocol (RTMP)
• TCP streaming protocol
• Live and VOD
• Поддерживается множеством софта
• Не HTTP
• Быстр
Логическая схема стриминга
Получение
данных
Готовка
(микширование
и сжатие)
Раздача
зрителям
Практическая схема
Source Mixer Encoder Server People
Что же может быть источником?
А тут список Software решений
• Open source[edit] Commercial[edit]
• DVSwitch (Linux) avtake CutFour (SD/HD, Microsoft
Windows 7 64bit) [11]
• FreeJ (Linux & OS X) [2] wdCamCamX (Mac OS X) [13]
• ScreenStudio (Linux & partially OS X) [3] ManyCam (Mac OS X and Microsoft
Windows) [14]
• WebcamStudio (Linux) [4] D3DGear Broadcaster(Microsoft
Windows) [15]
• Open Broadcaster Software(Linux,Microsoft Windows,OS X) [5 XSplit Broadcaster (Microsoft Windows) [19]
• CasparCG (Microsoft Windows) [6] vMix (Microsoft Windows) [17]
• Voctomix (Linux) [7] Wirecast (Mac OS X) and (Microsoft
Windows) [18]
• Freeware[edit] CamTwist (Mac OS X) [8]
• FFsplit (Microsoft Windows) [9]
• Wirecast for YouTube(Microsoft Windows, Mac OS X) [10]
•
32
33
34
С чем имел дело я?
IP Camera+
RadioMic+
AudioMixer
IP h.264
+audio with lag
PC+OBS
Audio In +
RTSP Module
Transformation
3000 Bitrate
RTMP
NGINX-RTMP
JV Player
Качественные характеристики
стрима!
• Зачем все это?
• Bitrate
• Quality
• Theoretical Codec (FPS, Colours, Picture, Audio)
• Practical Codecs
36
Bitrate
37
38
39
40
41
42
Quality(Искажения)
Computation(Вычисления)
к
Comression (rate)
43
44
45
46
47
Bitrate
FileSizeQuality
48
Прикладные кодеки
• H.264
• Intel QuickSync
• Nvidia NVENC
49
50
51
Выжимка
52
H.264 NVENC QS
Bitrate CPU Video CPU Video CPU Video Intel
Video
1500 55% 10% 16% 16% 16% 34% 57%
3000 60% 10% 17% 17% 17% 35% 59%
4500 64% 10% 17% 17% 18% 38% 60%
Как это выглядит у больших
компаний?
• Youtube – принимает в RTMP. А потом пережав
на своих серверах, отдает уже в Dash на плеер.
• Как и Twitch –то же самое, но использует HLS.
Вывод: сначала побыстрее получить поток от вас,
а потом сжать и передать с помощью HTTP на
CDN - дешево и сердито.
53
Не забыть
• Юникаст – бродкаст – мультикаст
• Безопасность.
54
55
?

Video Streaming. NGINX RTMP in particular

Editor's Notes