video streaming. nginx rtmp in particular

Post on 19-Jan-2017

134 Views

Category:

Internet

4 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Основы видео стриминга. Бесплатный сервер стриминга

для себя и маленькой сети.

• Антон Пинчук

• Системный администратор

• Уже 4й год

То чторасскажу

То что хочу

рассказать

О чем я расскажу в двух частях:

?

Зачем?

Мне? Вам?

Что это такое?

История Платформы

Доставка пользователю

Виды Методы Протоколы

Схема

Теория Практика

Элементы стрима

Источники Микшеры OBS Настройки Схема

передачи на сервер

Сервер

Установка Виды настройки HDS + HLS Статистика

Первая часть

Вторая частьСхема

обработки видео

Что куда идет и зачем

BitRate

Принцип CBR VBR

CODEC

Принцип Пирамида

сжатия Прикладные

кодеки Примеры

сжатия

Для чего это понадобилось мне?

Хватит о себе, для чего это вам?

Какие бонусы?)))

Какие минусы?)))

Что же такое стриминг?

Немного истории))

Методы доставки контента

Streaming

Adaptive Bitrate Streaming

File Download

Progressive Download

Pseudo-Streaming

File Download

Progressive Download

Pseudo-StreamingTo 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+OBSAudio In +

RTSP Module

Transformation 3000 Bitrate

RTMP

NGINX-RTMPJV 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

?

top related