![Page 1: 2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы](https://reader031.vdocuments.site/reader031/viewer/2022022413/58ed41e91a28ab014a8b4583/html5/thumbnails/1.jpg)
Video Streaming:от идеи до нагруженной
системыОськин Евгений
developer
![Page 2: 2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы](https://reader031.vdocuments.site/reader031/viewer/2022022413/58ed41e91a28ab014a8b4583/html5/thumbnails/2.jpg)
![Page 3: 2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы](https://reader031.vdocuments.site/reader031/viewer/2022022413/58ed41e91a28ab014a8b4583/html5/thumbnails/3.jpg)
С чего мы начинали
![Page 4: 2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы](https://reader031.vdocuments.site/reader031/viewer/2022022413/58ed41e91a28ab014a8b4583/html5/thumbnails/4.jpg)
С чего мы начинали
![Page 5: 2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы](https://reader031.vdocuments.site/reader031/viewer/2022022413/58ed41e91a28ab014a8b4583/html5/thumbnails/5.jpg)
С чего мы начинали
![Page 6: 2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы](https://reader031.vdocuments.site/reader031/viewer/2022022413/58ed41e91a28ab014a8b4583/html5/thumbnails/6.jpg)
С чего мы начинали
![Page 7: 2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы](https://reader031.vdocuments.site/reader031/viewer/2022022413/58ed41e91a28ab014a8b4583/html5/thumbnails/7.jpg)
Требования
![Page 8: 2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы](https://reader031.vdocuments.site/reader031/viewer/2022022413/58ed41e91a28ab014a8b4583/html5/thumbnails/8.jpg)
Требования● Live видео с низкой задержкой
![Page 9: 2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы](https://reader031.vdocuments.site/reader031/viewer/2022022413/58ed41e91a28ab014a8b4583/html5/thumbnails/9.jpg)
Требования● Live видео с низкой задержкой● В штатном режиме 100 параллельных
стримов
![Page 10: 2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы](https://reader031.vdocuments.site/reader031/viewer/2022022413/58ed41e91a28ab014a8b4583/html5/thumbnails/10.jpg)
Требования● Live видео с низкой задержкой● В штатном режиме 100 параллельных
стримов● Горизонтальное масштабирование
![Page 11: 2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы](https://reader031.vdocuments.site/reader031/viewer/2022022413/58ed41e91a28ab014a8b4583/html5/thumbnails/11.jpg)
Требования● Live видео с низкой задержкой● В штатном режиме 100 параллельных
стримов● Горизонтальное масштабирование● Основная платформа – iOS
![Page 12: 2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы](https://reader031.vdocuments.site/reader031/viewer/2022022413/58ed41e91a28ab014a8b4583/html5/thumbnails/12.jpg)
Что мы ожидали
![Page 13: 2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы](https://reader031.vdocuments.site/reader031/viewer/2022022413/58ed41e91a28ab014a8b4583/html5/thumbnails/13.jpg)
Что мы ожидали● Мы будем использовать 3rd party сервис
для стриминга
![Page 14: 2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы](https://reader031.vdocuments.site/reader031/viewer/2022022413/58ed41e91a28ab014a8b4583/html5/thumbnails/14.jpg)
Что мы ожидали● Мы будем использовать 3rd party сервис
для стриминга● Работать с HLS будет легко
![Page 15: 2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы](https://reader031.vdocuments.site/reader031/viewer/2022022413/58ed41e91a28ab014a8b4583/html5/thumbnails/15.jpg)
Что мы ожидали● Мы будем использовать 3rd party сервис
для стриминга● Работать с HLS будет легко● На backend нужно будет реализовать REST
API и клиент для 3rd party сервиса
![Page 16: 2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы](https://reader031.vdocuments.site/reader031/viewer/2022022413/58ed41e91a28ab014a8b4583/html5/thumbnails/16.jpg)
Какую боль мы испытали
![Page 17: 2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы](https://reader031.vdocuments.site/reader031/viewer/2022022413/58ed41e91a28ab014a8b4583/html5/thumbnails/17.jpg)
Какую боль мы испытали● Отсутствует сервис, который нас
устраивает
![Page 18: 2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы](https://reader031.vdocuments.site/reader031/viewer/2022022413/58ed41e91a28ab014a8b4583/html5/thumbnails/18.jpg)
Поиск сервисов● DaCast● Wowza Streaming Cloud● Zencoder● LiveStream.com
![Page 19: 2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы](https://reader031.vdocuments.site/reader031/viewer/2022022413/58ed41e91a28ab014a8b4583/html5/thumbnails/19.jpg)
Поиск сервисов● DaCast – большая задержка● Wowza Streaming Cloud – большая
задержка● Zencoder – большая задержка● LiveStream.com – большая задержка
![Page 20: 2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы](https://reader031.vdocuments.site/reader031/viewer/2022022413/58ed41e91a28ab014a8b4583/html5/thumbnails/20.jpg)
Какую боль мы испытали● Отсутствует сервис, который нас
устраивает● Live HLS
![Page 21: 2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы](https://reader031.vdocuments.site/reader031/viewer/2022022413/58ed41e91a28ab014a8b4583/html5/thumbnails/21.jpg)
Какая проблема с Live HLS?
![Page 22: 2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы](https://reader031.vdocuments.site/reader031/viewer/2022022413/58ed41e91a28ab014a8b4583/html5/thumbnails/22.jpg)
Какая проблема с Live HLS?● Адаптивный стриминг live видео
![Page 23: 2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы](https://reader031.vdocuments.site/reader031/viewer/2022022413/58ed41e91a28ab014a8b4583/html5/thumbnails/23.jpg)
Какая проблема с Live HLS?● Адаптивный стриминг live видео● Стриминг видео с фиксированным bitrate
![Page 24: 2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы](https://reader031.vdocuments.site/reader031/viewer/2022022413/58ed41e91a28ab014a8b4583/html5/thumbnails/24.jpg)
Что значит адаптивный?
![Page 25: 2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы](https://reader031.vdocuments.site/reader031/viewer/2022022413/58ed41e91a28ab014a8b4583/html5/thumbnails/25.jpg)
Что значит адаптивный?
![Page 26: 2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы](https://reader031.vdocuments.site/reader031/viewer/2022022413/58ed41e91a28ab014a8b4583/html5/thumbnails/26.jpg)
Что значит адаптивный?
Streaming service
HD
MD
LD
![Page 27: 2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы](https://reader031.vdocuments.site/reader031/viewer/2022022413/58ed41e91a28ab014a8b4583/html5/thumbnails/27.jpg)
Какую боль мы испытали● Отсутствует сервис, который нас
устраивает● Live HLS● Отсутствует готовое руководство по
созданию платформы для стриминга
![Page 28: 2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы](https://reader031.vdocuments.site/reader031/viewer/2022022413/58ed41e91a28ab014a8b4583/html5/thumbnails/28.jpg)
Решение
![Page 29: 2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы](https://reader031.vdocuments.site/reader031/viewer/2022022413/58ed41e91a28ab014a8b4583/html5/thumbnails/29.jpg)
Решение
Сделать свою платформу для video streaming’а
![Page 30: 2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы](https://reader031.vdocuments.site/reader031/viewer/2022022413/58ed41e91a28ab014a8b4583/html5/thumbnails/30.jpg)
Что если не HLS?
![Page 31: 2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы](https://reader031.vdocuments.site/reader031/viewer/2022022413/58ed41e91a28ab014a8b4583/html5/thumbnails/31.jpg)
● DASH – HTTP-based
Что если не HLS?
![Page 32: 2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы](https://reader031.vdocuments.site/reader031/viewer/2022022413/58ed41e91a28ab014a8b4583/html5/thumbnails/32.jpg)
● DASH – HTTP-based● RTMP, RTSP – Real Time Protocol
Что если не HLS?
![Page 33: 2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы](https://reader031.vdocuments.site/reader031/viewer/2022022413/58ed41e91a28ab014a8b4583/html5/thumbnails/33.jpg)
● DASH – HTTP-based● RTMP, RTSP – Real Time Protocol
Что если не HLS?
![Page 34: 2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы](https://reader031.vdocuments.site/reader031/viewer/2022022413/58ed41e91a28ab014a8b4583/html5/thumbnails/34.jpg)
Servers for video streaming
![Page 35: 2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы](https://reader031.vdocuments.site/reader031/viewer/2022022413/58ed41e91a28ab014a8b4583/html5/thumbnails/35.jpg)
● Nginx-rtmp● SRS (Simple RTMP Server)● Wowza Streaming Engine
Servers for video streaming
![Page 36: 2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы](https://reader031.vdocuments.site/reader031/viewer/2022022413/58ed41e91a28ab014a8b4583/html5/thumbnails/36.jpg)
● Nginx-rtmp● SRS (Simple RTMP Server)● Wowza Streaming Engine
Servers for video streaming
![Page 37: 2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы](https://reader031.vdocuments.site/reader031/viewer/2022022413/58ed41e91a28ab014a8b4583/html5/thumbnails/37.jpg)
Кодеки и протоколы
![Page 38: 2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы](https://reader031.vdocuments.site/reader031/viewer/2022022413/58ed41e91a28ab014a8b4583/html5/thumbnails/38.jpg)
Кодеки и протоколыH.264,MPEG-4
![Page 39: 2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы](https://reader031.vdocuments.site/reader031/viewer/2022022413/58ed41e91a28ab014a8b4583/html5/thumbnails/39.jpg)
Кодеки и протоколыH.264,MPEG-4
AAC,MP3
![Page 40: 2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы](https://reader031.vdocuments.site/reader031/viewer/2022022413/58ed41e91a28ab014a8b4583/html5/thumbnails/40.jpg)
Кодеки и протоколыH.264,MPEG-4
AAC,MP3
FLV,MP4,AVI MPEG TS
![Page 41: 2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы](https://reader031.vdocuments.site/reader031/viewer/2022022413/58ed41e91a28ab014a8b4583/html5/thumbnails/41.jpg)
Кодеки и протоколыH.264,MPEG-4
AAC,MP3
FLV,MP4,AVI MPEG TS
![Page 42: 2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы](https://reader031.vdocuments.site/reader031/viewer/2022022413/58ed41e91a28ab014a8b4583/html5/thumbnails/42.jpg)
Кодеки и протоколыH.264,MPEG-4
AAC,MP3
FLV,MP4,AVI MPEG TS
![Page 43: 2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы](https://reader031.vdocuments.site/reader031/viewer/2022022413/58ed41e91a28ab014a8b4583/html5/thumbnails/43.jpg)
Архитектура
![Page 44: 2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы](https://reader031.vdocuments.site/reader031/viewer/2022022413/58ed41e91a28ab014a8b4583/html5/thumbnails/44.jpg)
Архитектура
![Page 45: 2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы](https://reader031.vdocuments.site/reader031/viewer/2022022413/58ed41e91a28ab014a8b4583/html5/thumbnails/45.jpg)
Архитектура
![Page 46: 2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы](https://reader031.vdocuments.site/reader031/viewer/2022022413/58ed41e91a28ab014a8b4583/html5/thumbnails/46.jpg)
Архитектура
![Page 47: 2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы](https://reader031.vdocuments.site/reader031/viewer/2022022413/58ed41e91a28ab014a8b4583/html5/thumbnails/47.jpg)
Архитектура
![Page 48: 2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы](https://reader031.vdocuments.site/reader031/viewer/2022022413/58ed41e91a28ab014a8b4583/html5/thumbnails/48.jpg)
Архитектура
![Page 49: 2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы](https://reader031.vdocuments.site/reader031/viewer/2022022413/58ed41e91a28ab014a8b4583/html5/thumbnails/49.jpg)
Архитектура
![Page 50: 2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы](https://reader031.vdocuments.site/reader031/viewer/2022022413/58ed41e91a28ab014a8b4583/html5/thumbnails/50.jpg)
Архитектура
![Page 51: 2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы](https://reader031.vdocuments.site/reader031/viewer/2022022413/58ed41e91a28ab014a8b4583/html5/thumbnails/51.jpg)
Deployment
![Page 52: 2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы](https://reader031.vdocuments.site/reader031/viewer/2022022413/58ed41e91a28ab014a8b4583/html5/thumbnails/52.jpg)
● Docker у разработчика и на AWS
Deployment
![Page 53: 2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы](https://reader031.vdocuments.site/reader031/viewer/2022022413/58ed41e91a28ab014a8b4583/html5/thumbnails/53.jpg)
● Docker у разработчика и на AWS● Deploy в две команды
Deployment
![Page 54: 2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы](https://reader031.vdocuments.site/reader031/viewer/2022022413/58ed41e91a28ab014a8b4583/html5/thumbnails/54.jpg)
● Docker у разработчика и на AWS● Deploy в две команды● Запуск тестов в одну команду
Deployment
![Page 55: 2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы](https://reader031.vdocuments.site/reader031/viewer/2022022413/58ed41e91a28ab014a8b4583/html5/thumbnails/55.jpg)
Flow разработки
![Page 56: 2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы](https://reader031.vdocuments.site/reader031/viewer/2022022413/58ed41e91a28ab014a8b4583/html5/thumbnails/56.jpg)
● Сложно воспроизводить bug’и руками
Flow разработки
![Page 57: 2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы](https://reader031.vdocuments.site/reader031/viewer/2022022413/58ed41e91a28ab014a8b4583/html5/thumbnails/57.jpg)
● Сложно воспроизводить bug’и руками● Сложно iOS разработчикам работать с
нестабильным backend’ом
Flow разработки
![Page 58: 2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы](https://reader031.vdocuments.site/reader031/viewer/2022022413/58ed41e91a28ab014a8b4583/html5/thumbnails/58.jpg)
● Сложно воспроизводить bug’и руками● Сложно iOS разработчикам работать с
нестабильным backend’ом● Страшно изменять архитектуру
Flow разработки
![Page 59: 2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы](https://reader031.vdocuments.site/reader031/viewer/2022022413/58ed41e91a28ab014a8b4583/html5/thumbnails/59.jpg)
BDD
![Page 60: 2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы](https://reader031.vdocuments.site/reader031/viewer/2022022413/58ed41e91a28ab014a8b4583/html5/thumbnails/60.jpg)
BDDFeature: Sending feedback after watching a stream.
Scenario: A user watches and shares the record.Given we have a Recorder userAnd we have a Viewer userWhen the Viewer asks the PublisherAnd the Recorder responds with a new streamAnd the Viewer gets “stream notification” and recordsThen the Recorder ends publishing in 25 secondsAnd the Viewer shares the streamAnd an Anonymous user opens the shared link and plays a video
![Page 61: 2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы](https://reader031.vdocuments.site/reader031/viewer/2022022413/58ed41e91a28ab014a8b4583/html5/thumbnails/61.jpg)
BDDFeature: Sending feedback after watching a stream.
Scenario: A user watches and shares the record.
Given we have a Recorder userAnd we have a Viewer userWhen the Viewer asks the RecorderAnd the Recorder responds with a new streamAnd the Viewer gets “stream notification” and plays the streamThen the Recorder ends publishing in 25 secondsAnd the Viewer shares the streamAnd an Anonymous user opens the shared link and plays a video
![Page 62: 2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы](https://reader031.vdocuments.site/reader031/viewer/2022022413/58ed41e91a28ab014a8b4583/html5/thumbnails/62.jpg)
BDDFeature: Sending feedback after watching a stream.
Scenario: A user watches and shares the record.Given we have a Recorder userAnd we have a Viewer user
When the Viewer asks the RecorderAnd the Recorder responds with a new streamAnd the Viewer gets “stream notification” and
plays the streamThen the Recorder ends publishing in 25 secondsAnd the Viewer shares the streamAnd an Anonymous user opens the shared link and plays a video
![Page 63: 2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы](https://reader031.vdocuments.site/reader031/viewer/2022022413/58ed41e91a28ab014a8b4583/html5/thumbnails/63.jpg)
BDDFeature: Sending feedback after watching a stream.
Scenario: A user watches and shares the record.Given we have a Recorder userAnd we have a Viewer userWhen the Viewer asks the RecorderAnd the Recorder responds with a new streamAnd the Viewer gets “stream notification” and plays the stream
Then the Recorder ends publishing in 25 secondsAnd the Viewer shares the streamAnd an Anonymous user opens the shared link
and plays a video
![Page 64: 2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы](https://reader031.vdocuments.site/reader031/viewer/2022022413/58ed41e91a28ab014a8b4583/html5/thumbnails/64.jpg)
- А что если будет 1000 параллельных стримов?
Вопрос
![Page 65: 2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы](https://reader031.vdocuments.site/reader031/viewer/2022022413/58ed41e91a28ab014a8b4583/html5/thumbnails/65.jpg)
- А что если будет 1000 параллельных стримов?
- Не понятно. Надо проверить.
Вопрос
![Page 66: 2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы](https://reader031.vdocuments.site/reader031/viewer/2022022413/58ed41e91a28ab014a8b4583/html5/thumbnails/66.jpg)
Performance тесты
![Page 67: 2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы](https://reader031.vdocuments.site/reader031/viewer/2022022413/58ed41e91a28ab014a8b4583/html5/thumbnails/67.jpg)
● Locust
Performance тесты
![Page 68: 2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы](https://reader031.vdocuments.site/reader031/viewer/2022022413/58ed41e91a28ab014a8b4583/html5/thumbnails/68.jpg)
● Locust● Переиспользование кода от behaviour
тестов
Performance тесты
![Page 69: 2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы](https://reader031.vdocuments.site/reader031/viewer/2022022413/58ed41e91a28ab014a8b4583/html5/thumbnails/69.jpg)
● Locust● Переиспользование кода от behaviour
тестов● Специфика сбора метрик
Performance тесты
![Page 70: 2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы](https://reader031.vdocuments.site/reader031/viewer/2022022413/58ed41e91a28ab014a8b4583/html5/thumbnails/70.jpg)
● Locust● Переиспользование кода от behaviour
тестов● Специфика сбора метрик● Отдельное окружение
Performance тесты
![Page 71: 2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы](https://reader031.vdocuments.site/reader031/viewer/2022022413/58ed41e91a28ab014a8b4583/html5/thumbnails/71.jpg)
Итог
![Page 72: 2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы](https://reader031.vdocuments.site/reader031/viewer/2022022413/58ed41e91a28ab014a8b4583/html5/thumbnails/72.jpg)
Итог● Законченный продукт
![Page 73: 2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы](https://reader031.vdocuments.site/reader031/viewer/2022022413/58ed41e91a28ab014a8b4583/html5/thumbnails/73.jpg)
Итог● Законченный продукт● Архитектура, BDD и Docker – лучшие
друзья
![Page 74: 2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы](https://reader031.vdocuments.site/reader031/viewer/2022022413/58ed41e91a28ab014a8b4583/html5/thumbnails/74.jpg)
Итог● Законченный продукт● Архитектура, BDD и Docker – лучшие
друзья● Nginx-RTMP и FFmpeg Streaming Guide –
хорошие ресурсы для старта
![Page 75: 2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы](https://reader031.vdocuments.site/reader031/viewer/2022022413/58ed41e91a28ab014a8b4583/html5/thumbnails/75.jpg)
Ссылкиhttp://www.look-app.net/
http://bit.ly/nginx-rtmp
http://bit.ly/ffmpeg-streaming
http://bit.ly/simple-rtmp
http://bit.ly/wowza-github
http://bit.ly/wiki-codecs
http://bit.ly/wiki-containers