Как я писал в предыдущих постах, основная деятельность нашего стартапа — создание OSX-софта для видео-стриминга.
Основной посыл — сделать удобное средство для проведения бизнес-трансляций (вебинары, презентации проектов, митапы и т.д ) с Mac.
Изначальная концепция проекта была в единой идеальной связке: свой бродкастер и свой стрим-сервис. Для идеальности добавили ещё свой протокол.
Сделали, запустили. В статусе беты проект провёл чуть более двух месяцев. Собрали фидбек. Стало понятно, что стрим-сервис, то есть серверную часть, нужно отстреливать от нашей ракеты. Фокусироваться решили только на бродкастере.
Соответственно вот наш первый продукт после пивота: Mac Broadcaster for YouTube
Помимо удобного видео-микшера, в котором мы используем слот-концепцию, мы сделали интеграцию с 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.
dabar347
Есть идеи почему у меня не подцепляется звук системы? Музыка в стрим не идет. Микрофон в стрим идет таки.
IamG
Сейчас звук можно захватывать с микрофона, с камер, и с подключённых iPad/iPhone, то есть только с входных устройств.
Если не сложно опишите что Вы хотите в результате сделать, подумаем. Можно на email: michael [at] macbroadcaster.com
IamG
Я думаю самое правильное решение это поставить Soundflower (отсюда: https://github.com/mattingalls/Soundflower/releases)
Занимает <5 минут. При этом каждый компонент делает свою работу и все счастливы. Кстати Soundflower развили в уже платный LoopBack который может делать такие вещи как превращать аудио-выход любого приложения в аудио-вход другого.
Ещё момент: технически перехват «выходного» звука делается путём создания виртуального audio-input девайса, это требует
установки kernel extension (что и делает Soundflower), а это насколько я понимаю накладывает ограничение на распространение в App Store.