Infiniscene

Мобильное приложение для проведения онлайн-трансляций

Tilda Publishing
Stream
RTMP
iOS
OAuth
Ffmpeg
Social
Video
Camera
Android
Broadcasting
Задача
Старое мобильное приложение Infiniscene работало как пульт управления: не выходя из игры, пользователь мог останавливать и возобновлять стрим и переключать видеопотоки. Последний апдейт был в марте 2016 года. Летом 2016 года основатели обратились к нам. Стояла задача сделать принципиально другое приложение, которое должно стримить на YouTube, Twitch, Hitbox и Facebook Live с мобильного устройства.
Предыстория
Infiniscene — это стартап, основатели которого в прошлом принимали участие в таких проектах, как SteelSeries, Machinima, Open Broadcasting Software, Major League Gaming, ESL, Beyond Gaming, GotFrag и World Cyber Games, связанных с мультимедиа-вещанием, играми и киберспортом.

Мы верим, что каждый должен быть способен рассказать о своих увлечениях и не столкнуться с техническими трудностями. С помощью Infiniscene уже можно устроить живую видеотрансляцию через браузер, и мы захотели дать людям простой мобильный инструмент. Он поможет им стать заметнее и рассказать историю без заморочек с настройками кодеков и битрейтов.

Стью Граббс
CEO в Infiniscene
Инвестиции

Закрытое бета-тестирование платформы началось в июле 2015 года. В сентябре 2015 года стартап привлёк 1,8 млн. долларов через венчурный фонд MK Capital и прошёл акселерацию на Techstars. В апреле 2016 года в бета-тестировании мог принять участие каждый желающий, чтобы дать фидбек по продукту к его официальному релизу.

Статистика популярных
площадок для стрима
Подобные сервисы актуальны, это подтверждает огромное количество подписчиков и участников подобных сервисов. Ниже приведена статистика самых популярных платформ для стрима.
Статистика популярных
площадок для стрима
Подобные сервисы актуальны, это подтверждает огромное количество подписчиков и участников подобных сервисов. Ниже приведена статистика самых популярных платформ для стрима.
Periscope
Более 200 миллионов трансляций ежедневно
статистика за 2016
Facebook
5,7 миллиарда просмотров ежедневно
статистика за 2016
Twitch
Количество вещателей более 2,1 миллиона
максимальное за 2015 год
Hitbox
Около 10 миллионов зрителей ежемесячно
статистика за 2015
YouTube
Обращается 90% геймеров
частота в среднем раз в неделю за 2016
Periscope
Более 200 миллионов трансляций ежедневно
статистика за 2016
Facebook
5,7 миллиарда просмотров ежедневно
статистика за 2016
Twitch
Количество вещателей более 2,1 миллиона
максимальное за 2015 год
Hitbox
Около 10 миллионов зрителей ежемесячно
статистика за 2015
YouTube
Обращается 90% геймеров
частота в среднем раз в неделю за 2016
Особенности Infiniscene
Приложение обладает редкой возможностью стримить напрямую на серверы Twitch и Hitbox. Проведя исследование рынка, мы не нашли ни одного похожего решения.
Кроме того, что Infiniscene стримит на серверы упомянутых площадок, он также стримит и на собственный сервер.
В последнем случае пользователь может зайти в веб-интерфейс и кастомизировать видеоизображение: наложить свой логотип, текст и фильтры и поместить изображение в рамку.
Особенности Infiniscene
Приложение обладает редкой возможностью стримить напрямую на серверы Twitch и Hitbox. Проведя исследование рынка, мы не нашли ни одного похожего решения.
Кроме того, что Infiniscene стримит на серверы упомянутых площадок, он также стримит и на собственный сервер.
В последнем случае пользователь может зайти в веб-интерфейс и кастомизировать видеоизображение: наложить свой логотип, текст и фильтры и поместить изображение в рамку.
Библиотеки для стриминга
Приложение обладает редкой возможностью стримить напрямую на серверы Twitch и Hitbox. Проведя исследование рынка, мы не нашли ни одного похожего решения.
Кроме того, что Infiniscene стримит на серверы упомянутых площадок, он также стримит и на собственный сервер.
В последнем случае пользователь может зайти в веб-интерфейс и кастомизировать видеоизображение: наложить свой логотип, текст и фильтры и поместить изображение в рамку.
Библиотеки для стриминга
Приложение обладает редкой возможностью стримить напрямую на серверы Twitch и Hitbox. Проведя исследование рынка, мы не нашли ни одного похожего решения.
Кроме того, что Infiniscene стримит на серверы упомянутых площадок, он также стримит и на собственный сервер.
В последнем случае пользователь может зайти в веб-интерфейс и кастомизировать видеоизображение: наложить свой логотип, текст и фильтры и поместить изображение в рамку.
Pili Engineering

Поддержка iOS: да
Поддержка Android: да
Цена: неизвестна


SDK для протокола вещания RTMP. Поддерживается аппаратное кодирование видео в стандарты H.264 и AAC. Входящее изображение можно кастомизировать.
Realtimelibs

Поддержка iOS: да
Поддержка Android: да
Цена: 1990 $ (библиотека), 2990 $ (исходный код)


Простая библиотека, позволяющая реализовать вещание с iPhone, iPod touch и iPad на сервер. Поддерживает протокол вещания RTMP и публикацию H.264 и AAC-видео.
Pili Engineering

Поддержка iOS: да
Поддержка Android: да
Цена: неизвестна


SDK для протокола вещания RTMP. Поддерживается аппаратное кодирование видео в стандарты H.264 и AAC. Входящее изображение можно кастомизировать.
Realtimelibs

Поддержка iOS: да
Поддержка Android: да
Цена: 1990 $ (библиотека), 2990 $ (исходный код)


Простая библиотека, позволяющая реализовать вещание с iPhone, iPod touch и iPad на сервер. Поддерживает протокол вещания RTMP и публикацию H.264 и AAC-видео.
Nanocosmos

Поддержка iOS: да
Поддержка Android: да
Цена: 99 евро в месяц


Пробная версия работает 14 дней, но требуется регистрация для просмотра примера.
NodeMediaClient

Поддержка iOS: да
Поддержка Android: да
Цена: бесплатно


Достойная китайская библиотека, минус которой в том, что она не лицензируется за пределами Китая.
Nanocosmos

Поддержка iOS: да
Поддержка Android: да
Цена: 99 евро в месяц


Пробная версия работает 14 дней, но требуется регистрация для просмотра примера.
NodeMediaClient

Поддержка iOS: да
Поддержка Android: да
Цена: бесплатно


Достойная китайская библиотека, минус которой в том, что она не лицензируется за пределами Китая.
В итоге мы остановились
на WMSPanel
Библиотека WMSPanel поддерживает обе платформы iOS и Android. Стоимость составляет 1000 $ в месяц на обе платформы. Эта библиотека от русскоязычных разработчиков. После окончания подписки библиотекой можно пользоваться без поддержки и обновлений. Цена этой библиотеки оказалась самой демократичной.
В итоге мы остановились на WMSPanel
Библиотека WMSPanel поддерживает обе платформы iOS и Android. Стоимость составляет 1000 $ в месяц на обе платформы. Эта библиотека от русскоязычных разработчиков. После окончания подписки библиотекой можно пользоваться без поддержки и обновлений. Цена этой библиотеки оказалась самой демократичной.
Параметры вещания
Библиотека для RTMP-протокола, используемая в приложении Infiniscene, сама высчитывает аудио- и видеобитрейты*. Расчёт проводится на основе количества кадров в секунду (FPS) и размера кадра.

* Битрейт  — это количество бит, используемых для хранения одной секунды видео или аудиоконтента. Он нужен для расчёта пропускной способности канала передачи данных.
Параметры вещания
Библиотека для RTMP-протокола, используемая в приложении Infiniscene, сама высчитывает аудио- и видеобитрейты*. Расчёт проводится на основе количества кадров в секунду (FPS) и размера кадра.

*Битрейт  — это количество бит, используемых для хранения одной секунды видео или аудиоконтента. Он нужен для расчёта пропускной способности канала передачи данных.

Настройки iOS
Разрешение изображения — 1280×720
FPS = 30 кадров/сек
Битрейт аудио: 320 kbps

Настройки Android
Разрешение изображения — 640×360
FPS — 15 кадров/сек
Битрейт аудио: 400 kbps.

Такие настройки объясняются тем, что на том этапе, на котором мы работали, требовалось выставить
средние из доступных.
Можно стримить компьютерные
и настольные игры
Можно стримить компьютерные
и настольные игры
Можно стримить компьютерные
и настольные игры
Сложности разработки — авторизация на YouTube
Сперва запрашивается канал пользователя, из которого мы получаем имя пользователя. Затем запрашивается broadcast по умолчанию, откуда мы получаем id live стрима, привязанного к этому broadcast. Наконец, запрашивается live stream, из которого мы получаем необходимые ссылки для стрима* . Такое количество запросов вынуждает писать много кода.
Но нам пришли на помощь:
— инструмент от YouTube под названием API explorer — своеобразная песочница, позволяющая протестировать все запросы с веб-страницы;
— фреймворк RxJava — красиво обработал огромную цепочку запросов, которые нужны для получения ссылки на стрим.

*Это отличает YouTube от других платформ: если на Twitch и Hitbox у пользователя есть один канал для одного стрима, то на YouTube есть канал, а стримов гипотетически может быть несколько.
Дмитрий Алексеенков
Android-разработчик
Команда
Аккаунт-менеджер
Влад Коробов
Менеджер проекта
Павел Разуваев
iOS-разработчик
Павел Разуваев
Android-разработчик
Дмитрий Алексеенков