Как я писал в предыдущих постах, основная деятельность нашего стартапа — создание OSX-софта для видео-стриминга.
Основной посыл — сделать удобное средство для проведения бизнес-трансляций (вебинары, презентации проектов, митапы и т.д ) с Mac.


Изначальная концепция проекта была в единой идеальной связке: свой бродкастер и свой стрим-сервис. Для идеальности добавили ещё свой протокол.


Сделали, запустили. В статусе беты проект провёл чуть более двух месяцев. Собрали фидбек. Стало понятно, что стрим-сервис, то есть серверную часть, нужно отстреливать от нашей ракеты. Фокусироваться решили только на бродкастере.


Соответственно вот наш первый продукт после пивота: Mac Broadcaster for YouTube


image


Помимо удобного видео-микшера, в котором мы используем слот-концепцию, мы сделали интеграцию с YouTube и максимально упростили процесс публикации трансляции.


Возможности самого бродкастера по прежнему включают в себя:


  • захват экрана/окон приложений, трекинг курсора;
  • захват камер
  • захват iOS-девайсов по Ligting-кабелю
  • много-сценовость

Учтена специфика YouTube


  • если основной сервер недоступен, то бродкастер автоматически использует запасной YouTube-сервер
  • используется относительно новый флаг “enableLowLatency” для уменьшения задержки.

Вот краткое (37сек) видео старта трансляции:



Ну и некоторые моменты….


Про деньги


Основная модель — “платный софт с бесплатным пробным сроком”. Бродкастер, скачанный с нашего сайта MacBroadcaster.com, является полноценной версией с ограничением по времени. После этого нужно будет ввести ключ активации. Стоимость — $10.


Про Mac App Store


Конечно же залили версию на MAS. Тут, увы, никакого триала. Это особенность MAS — сперва бабки, потом софт.
Ждали худшего, учитывая рассказы про сроки ревью. Оказалось всё быстро, все новые версии проверялись в течении примерно 12 часов и даже по субботам.


Технический момент: про запуск браузера


Как видно из видео при нажатии на кнопку "On Air" запускается браузер, в котором идёт "общение" с YouTube. Изначально мы сделали встроенный браузер, но стало понятно, что тогда все логины-пароли для входа в YouTube пользователю придётся вводить заново. Лично я не смог это сделать быстро. В тоже время в обычном браузере уже всё как правило введено, и есть возможность использовать автозаполнение. Тем более пользователь всё равно будет открывать его, хотя бы чтобы убедиться что видео отображается на YouTube. Поэтому мы открываем браузер в котором наше js-приложение общается с YouTube и получает от него все данные, в частности rtmp-параметры. Встал вопрос как эти данные передать в бродкастер.
Ответ прост — WebSocket. Бродкастер поднимает локальный WebSocket-сервер, благодаря чему и общается с браузером.


Про YouTube API


Несколько обрадовал относительно новый флаг который можно поставить на трансляцию, называется “enableLowLatency”. Конечно же наш бродкастер использует его. На практике имеем вместо задержки в ~60 секунд задержку в ~10секунд, как это можно назвать low latency незнаю, но и на том спасибо.


Про планы


Конечно будем добавлять новые фичи как плане видео-микшера (эффекты и т.п.) так и в плане интеграции с YouTube.
Планируем выпустить бродкастер для Facebook. Думали про Перископ, но увы, API закрыто.
Из российских сервисов промелькнула мысль сделать версию для Ok, у них хотя бы API для этого есть.


Если у вас Mac, то скачать Mac Broadcaster for YouTube можно с нашего сайта или по прямой ссылке


Чуть не забыл слоган: Качественный стриминг с качественного железа. Доступно каждому, кто любит Mac.

Поделиться с друзьями
-->

Комментарии (3)


  1. dabar347
    27.05.2016 01:14

    Есть идеи почему у меня не подцепляется звук системы? Музыка в стрим не идет. Микрофон в стрим идет таки.


    1. IamG
      27.05.2016 07:48

      Сейчас звук можно захватывать с микрофона, с камер, и с подключённых iPad/iPhone, то есть только с входных устройств.
      Если не сложно опишите что Вы хотите в результате сделать, подумаем. Можно на email: michael [at] macbroadcaster.com


      1. IamG
        27.05.2016 23:13

        Я думаю самое правильное решение это поставить Soundflower (отсюда: https://github.com/mattingalls/Soundflower/releases)
        Занимает <5 минут. При этом каждый компонент делает свою работу и все счастливы. Кстати Soundflower развили в уже платный LoopBack который может делать такие вещи как превращать аудио-выход любого приложения в аудио-вход другого.

        Ещё момент: технически перехват «выходного» звука делается путём создания виртуального audio-input девайса, это требует
        установки kernel extension (что и делает Soundflower), а это насколько я понимаю накладывает ограничение на распространение в App Store.