Предыстория
Захотел человек стримы свои делать собрал народ И его стримы должны быть на протяжении 1 часа. Зум жабиться больше 40 минут нельзя бесплатно. Стримы и другие площадки не всегда бесплатные.
Человеку нужно в начале было взаимодействовать со всеми А это значит он должен был видеть всех. Конференция это называют. Это говори о том что вся публика тоже должна стримить потоковое видео. Но от этого человек думаю скоро откажется. Потому что условия у всех разные бывают. Плюс если будет несколько десятков людей или даже сотен в час не уложится Но все же это в ходит в задачу на данный момент.
Я решил сам организовать бесплатный аналог зум Это можно было сделать и средствами freeswitch Есть тут тема об этом Но не совсем стабильно клиентская часть. Коммерческие не знаю не юзал.
И так взял за пример OBS https://obsproject.com/
Очень развился и полностью технически устраивает. Настройки особо никакой нет. Захватить камеру и все.
Дальше мне нужен был сервер RTMP который примет от OBS потоковое видео В качестве RTMP выступить мог и freeswitch но оказалось там настроек RTMP довольно мало и в основном нужен для внутреннего вывода информации.
Мой выбор пал на nginx https://nginx.org/
За последние 5 лет он реально развился как веб сервер и плюс у него есть модуль RTMP. Но тут сказывается винда и нет совсем компиляции под винду, новых версий нет попросту. И прошлось юзать сборку от 15 года. Как раз на пике популярности стримов.
Столкнулся с тем что нет информации описания на русском языке. Все на английском и даже на китайском ))
Ещё подумываю свою сборку скомпилировать средствами WSL https://ru.wikipedia.org/wiki/Windows_Subsystem_for_Linux Это будет другая история. )))
Итог
1 Из OBS захватываем источник видео
2 Созданный RTMP направляем из локальной сети используя OBS
3 Принимаем RTMP на сервере NGINX во внешнем глобальной сеть интернет (стандартный порт 1935)
4 Средствами NGINX его модуля RTMP оборачиваем данные в HLS
5 HLS готовит плейлист с видео для WEB сервера.
6 Веб сервер с помощью JavaScript и HTML уже транслирует картинку потокового видео
Вот такой конструктор. Я не смог добиться без HLS сразу гнать потоковое видео в RTMP на веб сервер. Но я там лоханулся когда все это собирал. В браузерах нельзя запускать с localhost адреса для потокового видео в браузерах. Я этого не знал и не подозревал. Нужно в адресе обязательно заходит с IP адреса! Что понял это через много часов.
RTMP легко запустить в программах, VLC проигрыватель легко хавает. Можно дальше все что хочешь делать с видео потоком.
У меня остался открытым вопрос возможно RTMP сразу на веб отправить ? Или нужно обязательно конвертировать с кодаками. Это уже получится как webrtc Но webrtc из браузера конвертировать опять в RTMP?)) Получается если поднять локально WebRTC то его опять захвать OBS или чем то ещё..)) Когда сам OBS легче без посредников браузера захватить источник видео. А если это источник уже в интернете то опять через RTMP?
Что такое
Вот такая история. Отпишусь если получится найти готовый портал по видео аналог ютуба куба тик тока. И реализовать стрим только для одного человека. Вывести его на веб И уже средствами веб объединять пользователей в конференцию. В аналог зума и со всеми инструментами в нем. Так же и с мобильника можно транслировать на OBS и через общую сеть захватывать с них видео и дальше по схеме выше.
Захотел человек стримы свои делать собрал народ И его стримы должны быть на протяжении 1 часа. Зум жабиться больше 40 минут нельзя бесплатно. Стримы и другие площадки не всегда бесплатные.
Человеку нужно в начале было взаимодействовать со всеми А это значит он должен был видеть всех. Конференция это называют. Это говори о том что вся публика тоже должна стримить потоковое видео. Но от этого человек думаю скоро откажется. Потому что условия у всех разные бывают. Плюс если будет несколько десятков людей или даже сотен в час не уложится Но все же это в ходит в задачу на данный момент.
Я решил сам организовать бесплатный аналог зум Это можно было сделать и средствами freeswitch Есть тут тема об этом Но не совсем стабильно клиентская часть. Коммерческие не знаю не юзал.
И так взял за пример OBS https://obsproject.com/
Очень развился и полностью технически устраивает. Настройки особо никакой нет. Захватить камеру и все.
Дальше мне нужен был сервер RTMP который примет от OBS потоковое видео В качестве RTMP выступить мог и freeswitch но оказалось там настроек RTMP довольно мало и в основном нужен для внутреннего вывода информации.
Мой выбор пал на nginx https://nginx.org/
За последние 5 лет он реально развился как веб сервер и плюс у него есть модуль RTMP. Но тут сказывается винда и нет совсем компиляции под винду, новых версий нет попросту. И прошлось юзать сборку от 15 года. Как раз на пике популярности стримов.
Столкнулся с тем что нет информации описания на русском языке. Все на английском и даже на китайском ))
Ещё подумываю свою сборку скомпилировать средствами WSL https://ru.wikipedia.org/wiki/Windows_Subsystem_for_Linux Это будет другая история. )))
Итог
1 Из OBS захватываем источник видео
2 Созданный RTMP направляем из локальной сети используя OBS
3 Принимаем RTMP на сервере NGINX во внешнем глобальной сеть интернет (стандартный порт 1935)
4 Средствами NGINX его модуля RTMP оборачиваем данные в HLS
5 HLS готовит плейлист с видео для WEB сервера.
6 Веб сервер с помощью JavaScript и HTML уже транслирует картинку потокового видео
Вот такой конструктор. Я не смог добиться без HLS сразу гнать потоковое видео в RTMP на веб сервер. Но я там лоханулся когда все это собирал. В браузерах нельзя запускать с localhost адреса для потокового видео в браузерах. Я этого не знал и не подозревал. Нужно в адресе обязательно заходит с IP адреса! Что понял это через много часов.
RTMP легко запустить в программах, VLC проигрыватель легко хавает. Можно дальше все что хочешь делать с видео потоком.
У меня остался открытым вопрос возможно RTMP сразу на веб отправить ? Или нужно обязательно конвертировать с кодаками. Это уже получится как webrtc Но webrtc из браузера конвертировать опять в RTMP?)) Получается если поднять локально WebRTC то его опять захвать OBS или чем то ещё..)) Когда сам OBS легче без посредников браузера захватить источник видео. А если это источник уже в интернете то опять через RTMP?
Что такое
RTMP — Википедия
ru.wikipedia.org
HLS — Википедия
ru.wikipedia.org
Вот такая история. Отпишусь если получится найти готовый портал по видео аналог ютуба куба тик тока. И реализовать стрим только для одного человека. Вывести его на веб И уже средствами веб объединять пользователей в конференцию. В аналог зума и со всеми инструментами в нем. Так же и с мобильника можно транслировать на OBS и через общую сеть захватывать с них видео и дальше по схеме выше.