video streaming. nginx rtmp in particular
TRANSCRIPT
![Page 1: Video Streaming. NGINX RTMP in particular](https://reader037.vdocuments.net/reader037/viewer/2022102620/587fe9231a28ab46228b5e5f/html5/thumbnails/1.jpg)
![Page 2: Video Streaming. NGINX RTMP in particular](https://reader037.vdocuments.net/reader037/viewer/2022102620/587fe9231a28ab46228b5e5f/html5/thumbnails/2.jpg)
Основы видео стриминга. Бесплатный сервер стриминга
для себя и маленькой сети.
![Page 3: Video Streaming. NGINX RTMP in particular](https://reader037.vdocuments.net/reader037/viewer/2022102620/587fe9231a28ab46228b5e5f/html5/thumbnails/3.jpg)
• Антон Пинчук
• Системный администратор
• Уже 4й год
![Page 4: Video Streaming. NGINX RTMP in particular](https://reader037.vdocuments.net/reader037/viewer/2022102620/587fe9231a28ab46228b5e5f/html5/thumbnails/4.jpg)
То чторасскажу
То что хочу
рассказать
![Page 5: Video Streaming. NGINX RTMP in particular](https://reader037.vdocuments.net/reader037/viewer/2022102620/587fe9231a28ab46228b5e5f/html5/thumbnails/5.jpg)
О чем я расскажу в двух частях:
?
![Page 6: Video Streaming. NGINX RTMP in particular](https://reader037.vdocuments.net/reader037/viewer/2022102620/587fe9231a28ab46228b5e5f/html5/thumbnails/6.jpg)
Зачем?
Мне? Вам?
Что это такое?
История Платформы
Доставка пользователю
Виды Методы Протоколы
Схема
Теория Практика
Элементы стрима
Источники Микшеры OBS Настройки Схема
передачи на сервер
Сервер
Установка Виды настройки HDS + HLS Статистика
Первая часть
![Page 7: Video Streaming. NGINX RTMP in particular](https://reader037.vdocuments.net/reader037/viewer/2022102620/587fe9231a28ab46228b5e5f/html5/thumbnails/7.jpg)
Вторая частьСхема
обработки видео
Что куда идет и зачем
BitRate
Принцип CBR VBR
CODEC
Принцип Пирамида
сжатия Прикладные
кодеки Примеры
сжатия
![Page 8: Video Streaming. NGINX RTMP in particular](https://reader037.vdocuments.net/reader037/viewer/2022102620/587fe9231a28ab46228b5e5f/html5/thumbnails/8.jpg)
Для чего это понадобилось мне?
![Page 9: Video Streaming. NGINX RTMP in particular](https://reader037.vdocuments.net/reader037/viewer/2022102620/587fe9231a28ab46228b5e5f/html5/thumbnails/9.jpg)
Хватит о себе, для чего это вам?
![Page 10: Video Streaming. NGINX RTMP in particular](https://reader037.vdocuments.net/reader037/viewer/2022102620/587fe9231a28ab46228b5e5f/html5/thumbnails/10.jpg)
Какие бонусы?)))
![Page 11: Video Streaming. NGINX RTMP in particular](https://reader037.vdocuments.net/reader037/viewer/2022102620/587fe9231a28ab46228b5e5f/html5/thumbnails/11.jpg)
Какие минусы?)))
![Page 12: Video Streaming. NGINX RTMP in particular](https://reader037.vdocuments.net/reader037/viewer/2022102620/587fe9231a28ab46228b5e5f/html5/thumbnails/12.jpg)
Что же такое стриминг?
![Page 13: Video Streaming. NGINX RTMP in particular](https://reader037.vdocuments.net/reader037/viewer/2022102620/587fe9231a28ab46228b5e5f/html5/thumbnails/13.jpg)
Немного истории))
![Page 14: Video Streaming. NGINX RTMP in particular](https://reader037.vdocuments.net/reader037/viewer/2022102620/587fe9231a28ab46228b5e5f/html5/thumbnails/14.jpg)
![Page 15: Video Streaming. NGINX RTMP in particular](https://reader037.vdocuments.net/reader037/viewer/2022102620/587fe9231a28ab46228b5e5f/html5/thumbnails/15.jpg)
Методы доставки контента
Streaming
Adaptive Bitrate Streaming
File Download
Progressive Download
Pseudo-Streaming
![Page 16: Video Streaming. NGINX RTMP in particular](https://reader037.vdocuments.net/reader037/viewer/2022102620/587fe9231a28ab46228b5e5f/html5/thumbnails/16.jpg)
File Download
![Page 17: Video Streaming. NGINX RTMP in particular](https://reader037.vdocuments.net/reader037/viewer/2022102620/587fe9231a28ab46228b5e5f/html5/thumbnails/17.jpg)
Progressive Download
![Page 18: Video Streaming. NGINX RTMP in particular](https://reader037.vdocuments.net/reader037/viewer/2022102620/587fe9231a28ab46228b5e5f/html5/thumbnails/18.jpg)
Pseudo-StreamingTo HTTP
![Page 19: Video Streaming. NGINX RTMP in particular](https://reader037.vdocuments.net/reader037/viewer/2022102620/587fe9231a28ab46228b5e5f/html5/thumbnails/19.jpg)
Streaming
![Page 20: Video Streaming. NGINX RTMP in particular](https://reader037.vdocuments.net/reader037/viewer/2022102620/587fe9231a28ab46228b5e5f/html5/thumbnails/20.jpg)
Adaptive Bitrate Streaming
![Page 21: Video Streaming. NGINX RTMP in particular](https://reader037.vdocuments.net/reader037/viewer/2022102620/587fe9231a28ab46228b5e5f/html5/thumbnails/21.jpg)
Виды доставки
Live (Прямой Эфир) On-Demand (По требованию)
Streaming Adaptive str. Download Streaming Progressive Dwn. Adaptive Streaming
![Page 22: Video Streaming. NGINX RTMP in particular](https://reader037.vdocuments.net/reader037/viewer/2022102620/587fe9231a28ab46228b5e5f/html5/thumbnails/22.jpg)
Сложности выбора!
HLS – HDS - Dash, RTMP-RTSP, Progressive…
![Page 23: Video Streaming. NGINX RTMP in particular](https://reader037.vdocuments.net/reader037/viewer/2022102620/587fe9231a28ab46228b5e5f/html5/thumbnails/23.jpg)
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
![Page 24: Video Streaming. NGINX RTMP in particular](https://reader037.vdocuments.net/reader037/viewer/2022102620/587fe9231a28ab46228b5e5f/html5/thumbnails/24.jpg)
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
![Page 25: Video Streaming. NGINX RTMP in particular](https://reader037.vdocuments.net/reader037/viewer/2022102620/587fe9231a28ab46228b5e5f/html5/thumbnails/25.jpg)
Real Time Messaging Protocol (RTMP)
• TCP streaming protocol• Live and VOD • Поддерживается множеством софта• Не HTTP• Быстр
![Page 26: Video Streaming. NGINX RTMP in particular](https://reader037.vdocuments.net/reader037/viewer/2022102620/587fe9231a28ab46228b5e5f/html5/thumbnails/26.jpg)
Логическая схема стриминга
Получение данных
Готовка(микширование
и сжатие)
Раздача зрителям
Практическая схемаSource Mixer Encoder Server People
![Page 27: Video Streaming. NGINX RTMP in particular](https://reader037.vdocuments.net/reader037/viewer/2022102620/587fe9231a28ab46228b5e5f/html5/thumbnails/27.jpg)
Что же может быть источником?
![Page 28: Video Streaming. NGINX RTMP in particular](https://reader037.vdocuments.net/reader037/viewer/2022102620/587fe9231a28ab46228b5e5f/html5/thumbnails/28.jpg)
![Page 29: Video Streaming. NGINX RTMP in particular](https://reader037.vdocuments.net/reader037/viewer/2022102620/587fe9231a28ab46228b5e5f/html5/thumbnails/29.jpg)
![Page 30: Video Streaming. NGINX RTMP in particular](https://reader037.vdocuments.net/reader037/viewer/2022102620/587fe9231a28ab46228b5e5f/html5/thumbnails/30.jpg)
А тут список 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] •
![Page 31: Video Streaming. NGINX RTMP in particular](https://reader037.vdocuments.net/reader037/viewer/2022102620/587fe9231a28ab46228b5e5f/html5/thumbnails/31.jpg)
![Page 32: Video Streaming. NGINX RTMP in particular](https://reader037.vdocuments.net/reader037/viewer/2022102620/587fe9231a28ab46228b5e5f/html5/thumbnails/32.jpg)
32
![Page 33: Video Streaming. NGINX RTMP in particular](https://reader037.vdocuments.net/reader037/viewer/2022102620/587fe9231a28ab46228b5e5f/html5/thumbnails/33.jpg)
33
![Page 34: Video Streaming. NGINX RTMP in particular](https://reader037.vdocuments.net/reader037/viewer/2022102620/587fe9231a28ab46228b5e5f/html5/thumbnails/34.jpg)
34
С чем имел дело я?
IP Camera+ RadioMic+AudioMixer
IP h.264+audio with lag
PC+OBSAudio In +
RTSP Module
Transformation 3000 Bitrate
RTMP
NGINX-RTMPJV Player
![Page 35: Video Streaming. NGINX RTMP in particular](https://reader037.vdocuments.net/reader037/viewer/2022102620/587fe9231a28ab46228b5e5f/html5/thumbnails/35.jpg)
![Page 36: Video Streaming. NGINX RTMP in particular](https://reader037.vdocuments.net/reader037/viewer/2022102620/587fe9231a28ab46228b5e5f/html5/thumbnails/36.jpg)
Качественные характеристики стрима!
• Зачем все это?• Bitrate• Quality• Theoretical Codec (FPS, Colours, Picture, Audio)• Practical Codecs
36
![Page 37: Video Streaming. NGINX RTMP in particular](https://reader037.vdocuments.net/reader037/viewer/2022102620/587fe9231a28ab46228b5e5f/html5/thumbnails/37.jpg)
Bitrate
37
![Page 38: Video Streaming. NGINX RTMP in particular](https://reader037.vdocuments.net/reader037/viewer/2022102620/587fe9231a28ab46228b5e5f/html5/thumbnails/38.jpg)
38
![Page 39: Video Streaming. NGINX RTMP in particular](https://reader037.vdocuments.net/reader037/viewer/2022102620/587fe9231a28ab46228b5e5f/html5/thumbnails/39.jpg)
39
![Page 40: Video Streaming. NGINX RTMP in particular](https://reader037.vdocuments.net/reader037/viewer/2022102620/587fe9231a28ab46228b5e5f/html5/thumbnails/40.jpg)
40
![Page 41: Video Streaming. NGINX RTMP in particular](https://reader037.vdocuments.net/reader037/viewer/2022102620/587fe9231a28ab46228b5e5f/html5/thumbnails/41.jpg)
41
![Page 42: Video Streaming. NGINX RTMP in particular](https://reader037.vdocuments.net/reader037/viewer/2022102620/587fe9231a28ab46228b5e5f/html5/thumbnails/42.jpg)
42
Quality(Искажения)
Computation(Вычисления)к
Comression (rate)
![Page 43: Video Streaming. NGINX RTMP in particular](https://reader037.vdocuments.net/reader037/viewer/2022102620/587fe9231a28ab46228b5e5f/html5/thumbnails/43.jpg)
43
![Page 44: Video Streaming. NGINX RTMP in particular](https://reader037.vdocuments.net/reader037/viewer/2022102620/587fe9231a28ab46228b5e5f/html5/thumbnails/44.jpg)
44
![Page 45: Video Streaming. NGINX RTMP in particular](https://reader037.vdocuments.net/reader037/viewer/2022102620/587fe9231a28ab46228b5e5f/html5/thumbnails/45.jpg)
45
![Page 46: Video Streaming. NGINX RTMP in particular](https://reader037.vdocuments.net/reader037/viewer/2022102620/587fe9231a28ab46228b5e5f/html5/thumbnails/46.jpg)
46
![Page 47: Video Streaming. NGINX RTMP in particular](https://reader037.vdocuments.net/reader037/viewer/2022102620/587fe9231a28ab46228b5e5f/html5/thumbnails/47.jpg)
47
![Page 48: Video Streaming. NGINX RTMP in particular](https://reader037.vdocuments.net/reader037/viewer/2022102620/587fe9231a28ab46228b5e5f/html5/thumbnails/48.jpg)
Bitrate
FileSizeQuality
48
![Page 49: Video Streaming. NGINX RTMP in particular](https://reader037.vdocuments.net/reader037/viewer/2022102620/587fe9231a28ab46228b5e5f/html5/thumbnails/49.jpg)
Прикладные кодеки• H.264• Intel QuickSync• Nvidia NVENC
49
![Page 50: Video Streaming. NGINX RTMP in particular](https://reader037.vdocuments.net/reader037/viewer/2022102620/587fe9231a28ab46228b5e5f/html5/thumbnails/50.jpg)
50
![Page 51: Video Streaming. NGINX RTMP in particular](https://reader037.vdocuments.net/reader037/viewer/2022102620/587fe9231a28ab46228b5e5f/html5/thumbnails/51.jpg)
51
![Page 52: Video Streaming. NGINX RTMP in particular](https://reader037.vdocuments.net/reader037/viewer/2022102620/587fe9231a28ab46228b5e5f/html5/thumbnails/52.jpg)
Выжимка
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%
![Page 53: Video Streaming. NGINX RTMP in particular](https://reader037.vdocuments.net/reader037/viewer/2022102620/587fe9231a28ab46228b5e5f/html5/thumbnails/53.jpg)
Как это выглядит у больших компаний?
• Youtube – принимает в RTMP. А потом пережав на своих серверах, отдает уже в Dash на плеер.
• Как и Twitch –то же самое, но использует HLS.Вывод: сначала побыстрее получить поток от вас, а потом сжать и передать с помощью HTTP на CDN - дешево и сердито.
53
![Page 54: Video Streaming. NGINX RTMP in particular](https://reader037.vdocuments.net/reader037/viewer/2022102620/587fe9231a28ab46228b5e5f/html5/thumbnails/54.jpg)
Не забыть• Юникаст – бродкаст – мультикаст• Безопасность.
54
![Page 55: Video Streaming. NGINX RTMP in particular](https://reader037.vdocuments.net/reader037/viewer/2022102620/587fe9231a28ab46228b5e5f/html5/thumbnails/55.jpg)
55
?