Как реплицировать поток Google "Hangouts On Air", сочетая функциональность?
Я изучал этот вопрос довольно давно, но не нашел надежных выводов.
Ранее у меня было приложение Wowza/Flash с функцией видео чата (скажем, 4 или 8 видео / аудио потоков), и я хотел объединить потоки на стороне сервера в один видео / аудио поток для отправки на живой канал Youtube или, скажем, CDN, такой как AWS CloudFront. Кроме того, мне интересно, как это будет реализовано в WebRTC с центральным сервером.
Я нашел пару проектов, таких как jMixer, и несколько полезных ключевых слов, таких как "vision mixer", которые помогут мне в поиске, но ищут какой-либо предыдущий опыт или новые идеи. Теперь, включая WebRTC, я вижу "многоточечный блок управления" для централизации потоков и "mashup".
Другим вариантом является создание чего-то подобного с коммерческой библиотекой декодирования / кодирования видео для необработанных кадров, сшивание кадров и их кодирование. Я изначально шел по этому маршруту, но отложил проект.
Каковы некоторые идеи, ключевые слова, существующее программное обеспечение (предпочтительно с открытым исходным кодом) или даже статьи, чтобы взять эти прямые трансляции и объединить их в один в реальном времени? Или сам кодирую, как будто я был нужным маршрутом?
Не искать кодовое решение, а скорее общее эффективное (по времени и ресурсам, а не по вычислениям) решение, применимое ко всем пользователям.
Спасибо!
2 ответа
Вы можете посмотреть в телеприсутствие или эризо
Насколько я помню из кода телеприсутствия, вы можете кодировать плагин inc C++ для реализации собственного рендерера, соединяя видео вместе.
Jitsi Videobridge - это альтернатива WebRTC с открытым исходным кодом для маршрутизатора Vidyo, который используется в Google Hangouts. Мост можно найти здесь:
Пример приложения в виде видеовстречи доступен здесь:
Код для моста и веб-приложения доступен на GitHub.
Надеюсь это поможет.