Pull to refresh

Открыли API для прямых трансляций ВКонтакте всем сторонним разработчикам

Reading time2 min
Views4.3K

С помощью публичного API ВКонтакте теперь можно создавать прямые трансляции и автоматизировать работу с ними. В API для всех разработчиков стал доступен метод video.startStreaming, который получает RTMP-адрес для трансляции видео. По ссылке можно в дальнейшем передать поток, например собранный в студийном ПО, а в нужный момент завершить трансляцию — stopStreaming, естественно, тоже есть :)

Кроме того, API даёт большой набор готовых методов для работы видео и позволяет загружать видеозаписи, создавать и редактировать плейлисты на странице пользователя или сообщества, корректировать данные видео, добавлять комментарии и собирать статистику.

👉 Смотрите подробнее в документации по работе с видеозаписями.

Читать далее
Total votes 10: ↑10 and ↓0+10
Comments1

Доставка видеоконтента пользователям

Reading time7 min
Views11K
[ Часть I. Доставка видеоконтента ] [ Часть II. CDN своими руками ]

Что такое «контент» для видеохостинга? Во-первых, контент видеохостинга – это просто видео, которое представляет собой набор файлов в различных форматах, в частности, в формате FLV для просмотра пользователем через Flash Player. Эти файлы статичны, видеохостинг при загрузке пользователем видеоролика осуществляет конвертацию во все требуемые форматы с необходимым битрейтом. Хранение такого контента — это хранение обычных файлов, только довольно большого размера. Отдача контента — это, по сути, организация скачивания файлов.
Во-вторых, контент видеохостинга — это «живые» потоки или вещания. Вещания не записываются на диск, не происходит их конвертация, потоки раздаются клиентам с учетом пропускной способности каналов (происходит пропуск пакетов, если канал клиента недостаточен для получения потока вещания в полном качестве). Отдача контента в данной ситуации — это раздача потока на большое количество подключенных пользователей (тысячи смотрящих).
Читать дальше →
Total votes 44: ↑44 and ↓0+44
Comments79

Adobe откроет RTMP

Reading time1 min
Views4.9K
Adobe объявила о планах открыть в I пол. 2009 года спецификации протокола Real-Time Messaging Protocol (RTMP), который используется в веб-разработке (например, см. подробное руководство на Хабре по организации сервера вещаний).

Несмотря на своё изначальное предназначение, иногда RTMP используют не только для видеовещания. Например, на нём работает система Adobe LiveCycle Data Services ES. По мнению некоторых специалистов, после открытия RTMP он может сильно потеснить с рынка свободный протокол Comet.

Спецификации RTMP будут выложены здесь.
Читать дальше →
Total votes 6: ↑5 and ↓1+4
Comments0

FMSPy, релиз Alpha (0.1)

Reading time2 min
Views2.2K
FMSPy Flash Media Server written in Python (FMSPy) — это еще один RTMP-сервер для приложений на Adobe Flash/Flex/Air. FMSPy является аналогом Adobe Flash Media Server, с гораздо меньшими возможностями, однако FMSPy — совершенно бесплатный проект с открытым исходным кодом. Проект находится на ранней стадии развития, но в активной разработке.

Итак, что есть на сегодняшний день:
  • Реализация RTMP-протокола: кодирование/декодирование пакетов, разрезание и склеивание из chunks и т.п.
  • Поддержка базового RPC (Invoke) клиент-сервер и сервер-клиент. То есть из Flash-приложения можно вызывать с помощью класса NetConnection методы приложения на стороне сервера, и наоборот со стороны сервера вызывать методы приложения.
  • Инфраструктура для написания приложений (в качестве плагинов к FMSPy) со своим API на Python.

Читать дальше →
Total votes 39: ↑34 and ↓5+29
Comments26

Вещание онлайн-видео с помощью nginx

Reading time3 min
Views87K

Что такое онлайн-видео?


Под термином онлайн-видео я понимаю длительное вещание какого-то живого видеосигнала (к примеру, из телестудии). Традиционные средства отдачи видео (flv- и mp4-стриминг) в данном случае не работают, просто потому что файла, содержащего весь видеопоток, не существует.

В этой статье речь будет идти не об организации видеохостинга, а об организации видеовещания в прямом эфире. Это две принципиально разные задачи, и обычно способы их решения существенно отличаются друг от друга.
Читать дальше →
Total votes 89: ↑88 and ↓1+87
Comments61

Реализация простого видеочата на ASP.NET MVC

Reading time7 min
Views35K

Доброго времени суток, господа хабраюзеры!
В данном топике я расскажу, как можно сделать простой видео-чат на ASP.NET MVC.

Но для начала предыстория. Мы запускаем сервис видеоконсультаций с врачом через интернет. О нём обязательно будет отдельная статья, а сейчас хотим выяснить, насколько большую нагрузку смогут выдержать сервера и каналы.
Для этого мы написали небольшое веб-приложение, исходным кодами и описанием которого рад с вами поделиться.
Основная идея позаимствована у чатрулетки: заходишь в общий чат, выбираешь любого собеседника и общаешься по видео.
Исходный код проекта опубликован на codeplex.com под свободной лицензией, буду рад комментариям/замечаниям/предложениям.
Читать дальше →
Total votes 32: ↑27 and ↓5+22
Comments21

Альтернатива HLS для iOS Safari — потоковое видео через Websocket

Reading time8 min
Views25K
image

Apple HTTP Live Streaming — широко распространенная технология для доставки видео на мобильные устройства, которая делает ставку на простоту, универсальность и проходимость. В качестве протокола доставки используется самый простой, доступный и проверенный протокол Интернета HTTP, что позволяет доставить видео практически на любое устройство или ПО в сети.

Ниже под катом рассматривается альтернатива — Websocket Streaming для iOS Safari и подробно описывается процесс тестирования.
Читать дальше →
Total votes 17: ↑16 and ↓1+15
Comments15

Переключение звуковых дорожек в Flash с помощью RTMP сервера Wowza2

Reading time5 min
Views4.5K
В данной статье описана древняя история о том, как мне удалось реализовать переключение звуковых дорожек для Flash-плеера с помощью RTMP сервера Wowza Media Server 2.

В далеком 2011 году я занимался исследованием возможностей стриминговых серверов для Adobe Flash Player'а. Передо мной стояла задача найти способ воспроизведения видео файлов с несколькими звуковыми дорожками. При этом было необходимо, чтобы переключение происходило без скачков по воспроизводящемуся видео. Поиск готовых решений в интернете никаких результатов тогда не дал. Более того, выяснилось, что сам Adobe Flash Player переключать дорожки не умеет и использует только первую попавшуюся…
Читать дальше →
Total votes 10: ↑7 and ↓3+4
Comments0

Запускаем свой RTMP сервер для стриминга

Reading time4 min
Views74K


Иногда YouTube или Twitch не подходят как стриминговая платформа — скажем, если вы пилите портал с вебинарами или контентом 18+, нарушаете авторские права или хотите максимально отгородить свою трансляцию от остального интернета. У них есть много альтернатив как в виде сервисов (те же минусы, недостаток контроля и непредсказуемая политика), так и в виде self-hosted решений. Проблема опенсорсных стриминговых проектов в том, что все они начинаются с крохотной связки из пары технологий, а затем отчаянно пытаются вырасти в сервис, добавляя сложные веб-интерфейсы, чаты, библиотеки стримов и в конечном счёте отдаляясь от исходной цели: дать миру инструмент, который по понятному мануалу позволит запустить свой сервер трансляций. Что с ним будет дальше, в какие системы будет встроена эта картинка — это только ваше личное дело, а самописный аналог твича с лагающими и отваливающимися сервисами и периодически валящимся билдом не нужен никому, кроме его разработчиков. Поэтому в этой статье мы разберём минимальную цепочку действий для запуска своего RTMP-сервера с плеером.
Читать дальше →
Total votes 41: ↑39 and ↓2+37
Comments14

Dynamic CDN for Low Latency WebRTC Streaming

Reading time5 min
Views2.3K


Having analyzed earlier the capacity of standard server configurations in Digital Ocean in terms of WebRTC streaming, we have noticed that one server can cover up to 2000 viewers. In real life, cases when one server is insufficient are not uncommon.


Assume gambling amateurs in Germany are watching real-time horse races in Australia. Given that horse races are not only a sports game but also imply big gains on condition that field bets are made at the right time, the video has to be delivered with lowest possible latency.


Another example: A global corporation, one of FCMG market leaders with subsidiaries in Europe, Russia and Southeast Asia, is organizing sales manager training webinars with live streaming from the headquarters in the Mediterranean. The viewers must be able to see and hear the presenter in real time.

Read more →
Total votes 2: ↑1 and ↓10
Comments0

Динамическая CDN для WebRTC стриминга с низкой задержкой

Reading time5 min
Views3.4K


Ранее, анализируя возможности стандартных конфигураций серверов в Digital Ocean с точки зрения WebRTC стриминга, мы отмечали, что один сервер может обслужить до 2000 зрителей. В реальной жизни часто встречаются случаи, когда одного сервера недостаточно.


Допустим, любители азарта в Германии смотрят в реальном времени скачки в Австралии. Поскольку скачки — это не только конный спорт, но и большие выигрыши, при вовремя сделанных ставках, то видео должно быть доставлено с минимально возможными задержками.

Читать дальше →
Total votes 7: ↑7 and ↓0+7
Comments0

Динамическая CDN для WebRTC стриминга с низкой задержкой и контролем доступа к потокам

Reading time4 min
Views1.6K


В первой части мы развернули простую динамическую CDN для трансляции WebRTC потоков на два континента и убедились в том, что задержки в такой CDN действительно низкие, на примере таймера обратного отсчета.


Во второй части мы добавили в CDN выделенные серверы для задач транскодирования, чтобы обеспечить нашим зрителям качество трансляции в зависимости от используемых ими устройств и качества канала. Таким образом, все публикуемые потоки в нашей CDN доступны всем зрителям.


Теперь допустим, что предприятие выходит на этап монетизации и часть потоков должны быть доступны бесплатно, часть — по подписке. Или, например, вебинары для внутреннего обучения сотрудников транслируются одновременно, но для разных филиалов потоки разные, и открывать техники продаж, применяемые в Юго-Восточной Азии, для менеджеров из СНГ нежелательно.

Читать дальше →
Total votes 4: ↑4 and ↓0+4
Comments2

Dynamic CDN for Low Latency WebRTC Streaming with Stream Access Control

Reading time4 min
Views1.3K


In the first part, we have deployed a simple dynamic CDN for broadcasting WebRTC streams to two continents and have proved on the example of a countdown timer that the latency in this type of CDN is actually low.


In the second part, we have incorporated dedicated servers into the CDN for performing the task of transcoding in order to provide good broadcast quality to our viewers based on the devices they use and the channel quality. In this manner, all published streams in our CDN are available to all the viewers.


Now, assume that a company is starting to introduce its monetization strategy where a number of streams should be available for free and the rest on a subscription basis. Or, for example, webinars for in-house staff training are broadcasted simultaneously, but each subsidiary has a separate stream, and disclosing the sales techniques used in Southeast Asia to the managers from CIS countries is undesirable.

Read more →
Total votes 1: ↑1 and ↓0+1
Comments0

WebRTC стриминг в виртуальной реальности и вокруг нее

Reading time7 min
Views9.5K


Виртуальная реальность нынче на пике моды. Оборудование, что во времена "Газонокосильщика" было уделом сумасшедших ученых гиков с большими деньгами от Минобороны, сейчас и простому человеку по карману, а те, у кого карман совсем пуст, могут собрать VR-гарнитуру из картона и смартфона по множеству рецептов.

Читать дальше →
Total votes 9: ↑9 and ↓0+9
Comments5

WebRTC streaming in and around virtual reality

Reading time6 min
Views3.7K


Virtual reality is on the rise these days. The equipment that was previously the exclusive preserve of crazy scientists geeks with big money from the Ministry of Defense back in the The Lawnmower Man days, is currently affordable for ordinary people; those whose pockets are empty, can assemble a VR headset from cardboard and a smartphone according to many recipes.

Read more →
Total votes 5: ↑5 and ↓0+5
Comments0

Review of WCS 5.2 — WebRTC Server for Webcast and Webcam Developers

Reading time13 min
Views2.6K


Alice is an experienced full stack developer, who is capable of writing a SAAS project framework on her favorite framework using php in a week. As for frontend, she prefers Vue.js. 


A client contacts you via Telegram, asking you to develop website that will be the meeting place for the employer and the employee to conduct an in-person interview. In-person means face-to-face, a direct video contact in real time with video and voice. «Why not use Skype?» some may ask. It just so happened that serious projects – and each startup undoubtedly considers itself a serious project – are trying to offer an internal communications service for a variety of reasons, including:

Read more →
Total votes 3: ↑2 and ↓1+1
Comments0

Обзор WCS 5.2 — WebRTC сервера для веб-разработчиков онлайн трансляций и видеочатов

Reading time13 min
Views11K


Алиса — опытный фулл-стек разработчик и способна за неделю написать каркас SAAS проекта на своем любимом фреймворке с использованием php. На фронтенде предпочитает Vue.js.


В телеграмм стучится заказчик, которому во что бы то ни стало надо разработать веб-сайт, который будет местом встречи работодателя и сотрудника для проведения очного интервью. Очного — означает глаза в глаза, прямого видео контакта в реальном времени с видео и голосом.
«Почему не скайп?» — спросите вы. Так уж повелось, что серьезные проекты, а каждый стартап, несомненно, себя таковым считает, стараются предложить внутренний сервис коммуникаций по самым разным причинам, среди которых:

Читать дальше →
Total votes 11: ↑7 and ↓4+3
Comments0

Стримим Новый год в реальном времени: какой протокол выбрать (HESP, WebRTC, RTMP, HLS)

Reading time4 min
Views4.5K

Наш клиент планирует стримить видео празднования Нового года на всех своих пользователей. Транслировать контент предстоит на сотни тысяч человек с минимальными задержками — так, чтобы зрители встретили 2022 год не позже соседей. Мы сравнили решения для быстрой доставки видео и делимся результатами: рассказываем, как организовать дешёвый стриминг медиаданных на большую аудиторию.

Поехали!
Total votes 7: ↑5 and ↓2+3
Comments0

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

Reading time12 min
Views5.5K

Привет, Хабр. В этой статье я хочу поделиться своим опытом создания приложения на фреймворке Laravel по трансляции видеоконтента. Итак начнём.

Проект опубликован как свободное ПО

Читать далее
Total votes 13: ↑11 and ↓2+9
Comments4

Как сделать ретрансляцию через «Multiple RTMP outputs plugin» в OBS?

Level of difficultyEasy
Reading time5 min
Views24K

Если вы проводите онлайн трансляции, наверняка перед вами стоял вопрос о возможности передачи видео и аудио потока не только на основную площадку, но и на другие сервисы.

В данной статье я покажу как ретранслировать видео и аудио поток из вебинарной комнаты Pruffme через «Multiple RTMP outputs plugin» (вы можете использовать любую другую платформу). Рекомендуем прочитать, если:

У вас имеется аудитория на разных площадках;

Хотели бы привлечь аудиторию с других площадок;

Вы недавно сменили основную площадку для проведения онлайн мероприятий;

Просто хотите

Есть множество способов ретранслировать видео и аудио поток. Вы наверняка слышали о таких сервисах как Restream, Switchboard. Я решил остановиться на ретрансляции через OBS с помощью RTMP плагина, так как этот способ позволяет делать ретрансляцию на другие сервисы бесплатно, имеет несложный интерфейс и возможность предварительной настройки.

Итак, перейдём теперь к скачиванию и настройке данного плагина.

Читать далее
Total votes 5: ↑4 and ↓1+3
Comments1