Меню Рубрики

Rtmp сервер windows бесплатный

Rtmp сервер windows бесплатный

Nimble Streamer берёт опубликованные и принимаемые потоки RTMP, чтобы предоставить исходящие RTMP потоки для воспроизведения, повторной публикации и дальнейшего использования другими программными продуктами. Это делает Nimble эффективным решением полного цикла вещания RTMP. Доступна компенсация чередования (interleaving) для случаев, когда видео и аудио в потоках рассинхронизированы.

Nimble Streamer поддерживает RTMP по SSL (RTMPS) для безопасной передачи во всех четырех режимах.

Контент можно также брать на вход по протоколам RTSP, SRT, NDI, MPEG2TS, Icecast и SHOUTcast. Можно даже преобразовать HLS в RTMP с помощью того же механизма транзмаксинга.

Отказ от Flash

Прежде чем рассматривать возможности Nimble Streamer по RTMP, прочитайте статью Get ready for Flash farewell and RTMP decline о будущем отказе от поддержки Adobe технологии Flash в 2020.
В ней мы описываем необходимость перехода от RTMP к другим технологиям для проигрывания и предлагаем SLDP в качестве альтернативы.

Тем не менее, RTMP по прежнему является прекрасной технологией для многих сценариев и ниже вы сможете ознакомиться с возможностями Nimble Streamer.

Кодеки

  • H.264 на вход и выход поддерживается для всех протоколов
  • HEVC/H.265 на вход и выход. Это нестандартная экспериментальная функциональность.
  • VP6 на вход и выход по RTMP
  • AAC на вход и выход поддерживается для всех протоколов
  • MP3 на вход и выход для всех протоколов
  • Speex на вход и выход для RTMP

Воспроизведение

Nimble обеспечивает воспроизведение RTMP из любых входящих RTMP потоков.
Выходной поток может приниматься для повторного использования и воспроизведения любым плеером, энкодером или серверным программным обеспечением.
Детальное описание установки и использования описано в статье воcпроизведения RTMP.

Запись

Nimble Streamer поддерживает функциональность DVR, которая позволяет записывать входящие потоки RTMP для последующего воспроизведения через HLS и MPEG-DASH.

Создание HLS и MPEG-DASH

  • Перепаковка опубликованного RTMP в HLSпоток.
  • Приём (pull) RTMP от origin-сервераили энкодера для дальнейшей обработки.
  • Nimble поддерживает несколько запасных pulled RTMP источников для обеспечения надёжности.
  • Переключение на запасные публикованные потоки RTMP поддерживается через технологию hot-swap.
  • Тот же источник при перепаковке RTMP можно использовать для живого вещания в MPEG-DASH.
  • Можно совмещать перепакованные потоки с разным битрейтом впотоки с адаптивным битрейтом (ABR).
  • Посмотрите пример настройки энкодера Teradek VidiU для обработки RTMP через Nimble Streamer.
  • Поддерживается авторизация по URL для таких сценариев, как публикации из Open Broadcaster Software.

Взятие произвольных потоков по запросу

Nimble может брать RTMP поток для создания потоков RTMP и HLS по запросу, в случае, если вы не хотите круглосуточно передавать данные в каких-либо источников.
Подобное поведение выгодно, когда у вас много потоков, которые смотрят не всё время. Также это выгодно в случае, если есть множество камер, просмотр которых происходит лишь время от времени.

Повторная публикация

Для входящих опубликованных и принимаемых потоков можно установить повторную публикацию RTMP.
При таком сценарии можно перебросить живую трансляцию на edge-сервера для дальнейшей перепаковки. Можно строить сети живого вещания, состоящих из любого числа серверов, соединённых по RTMP или другим поддерживаемым протоколам. Можно добавлять и удалять правила повторной публикации как через WMSPanel API, так и через Nimble Streamer native API в дополнение к веб-интерфейсу WMSPanel.
Публикации RTMP используется во множестве сценариев.

Перепаковка в другие протоколы вещания

Применяемый механизм позволяет перепаковать контент RTMP в следующие протоколы.

Серверная вставка рекламы для RTMP

Nimble Advertizer поддерживает вставку рекламы в живые потоки RTMP на стороне сервера.
Advertizer позволяет реализовывать произвольную бизнес-логику для pre-roll и mid-roll со вставкой рекламы для каждого пользователя индиавидуально, с поддержкой маркеров SCTE-35.
Посмотрите страницу Advertizer, чтобы посмотреть технические спецификации и другие подробности.

«Горячее» переключение

Возможности по переключению потоков позволяют заменять исходный поток без заиканий и артефактов:

  • Переключение на пришедший поток для покрытия таких требований как U.S. Emergency Alert System.
  • Переключение на запасной поток, если основной вышел из строя — можно показать настроечную таблицу или другой активный канал.

API и управление

Вещание по RTMP можно контролировать несколькими способами помимо веб-интерфейса WMSPanel.

  • Функциональность контроля за публикацией RTSP позволяет обезопасить точки, принимающие вещание из внешних источников. В неё включены несколько уровней управления, включая внешний обработчик в виде веб-приложения, который вы можете применить к процессу вещания на основе вашей бизнес-логики. Эта функциональность очень полезна решений, связанных с вещанием с мобильных устройств.
    Ознакомьтесь с обзорной статьёй, чтобы узнать больше о преимуществах этого решения, а также с детальным описанием настройки с примерами работы.
  • Нотификации доступности потоков через push API для publish/unpublish потоков RTMP.
  • Набор методов API WMSPanel позволяет управлять всеми возможностями RTMP.
  • Набор методов API Nimble Streamer позволяет узнать статус вещания RTMP и управлять частью операций.

Псевдонимы (aliasing)

Для организации гибких настроек безопасности и статистики доступны псевдонимы исходящих потоков.

Пример использования

Пример использования показывает совместную работу продуктов Софтвелум, включая функции обработки входа с камеры.

Qosifire: мониторинг качества потоков RTMP

Qosifire — это сервис контроля качества живых потоков. Он позволяет проверять потоки RTMP и выявлять ошибки передачи.
Ознакомьтесь с возможностями проверки RTMP на сайте проекта.
Зарегистрируйтесь на 14-дневный пробный период или запустите 30-секундную бесплатную проверку, чтобы проверить свои потоки.

Легкая процедура установки и обновления

Nimble Streamer ставится в несколько простых шагов и может быть обновлен до последней версии с помощью двух-трех простых команд в консоли.

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

Источник

Онлайн вещание через Nginx-RTMP: несколько готовых рецептов

Недавно я наткнулся на топик «Сервер онлайн-вещаний на базе nginx» о замечательном модуле Романа Арутюняна (@rarutyunyan) для nginx: nginx-rtmp-module. Модуль очень прост в настройке и позволяет на основе nginx создать сервер публикации видеозаписей и живого вещания.

Про сам модуль можно прочитать на его странице на GitHub, я же хочу привести несколько простых примеров использования. Надеюсь, топик поможет новичкам в видеоделах (таким как я).

Коротко об RTMP

RTMP (Real Time Messaging Protocol) — проприетарный протокол вещания от Adobe. В качестве транспорта по умолчанию используется TCP (порт 1935). Также можно инкапсулировать RTMP в HTTP (RTMPT). Клиент RTMP — это в первую очередь Adobe Flash Player.
Кодек видео — H.264, кодек аудио AAC, nellymoser или MP3, контейнеры MP4 или FLV.

Публикация видеозаписи

Иначе говоря, видео по запросу (VOD). Просто добавьте в nginx.conf в секцию rtmp < server <… >>.

(Прим.: конечно, секцию не обязательно называть vod)
Теперь можно положить в папку /var/videos видеофайл в правильном формате и «скормить» плееру источник, например rtmp://server/vod/file.flv. Насколько я понял, MP4 нативно поддерживает перемотку видео, а FLV придется индексировать отдельно.

Все приведенные далее примеры будут уже про «живую» трансляцию с помощью ffmpeg под Windows. Впрочем, эта информация будет полезна и для пользователей Linux.

Онлайн-трансляция

Мы можем отправить поток видео и аудио на сервер используя все тот же протокол RTMP для публикации. А наши клиенты смогут трансляцию смотреть. Для этого на сервере надо добавить секцию:

Рекомендую сразу закрыть доступ на публикацию всем, кроме доверенных IP, как показано в примере.

На машине, с которой мы будем вещать, для начала надо получить список устройств DirectShow. Пуск — Выполнить — cmd, переходим в папку ffmpeg/bin и запускаем:

Если в названии вашего источника есть русские буквы, то они могут отобразиться кракозябрами. ТруЪ админы заюзают iconv, а простые парни вроде меня раскодируют бяку на сайте Лебедева. FFmpeg’у нужно скормить читабельную надпись.

Теперь, зная имя видео и аудио источника, можно захватить его при помощи ffmpeg и отправить на сервер.

Веб-камера

Как минимум нужно указать источник видео, кодек и сервер:

Вместо «Webcam C170» нужно подставить название вашей камеры из списка.
Ключ -an говорит о том, что мы не передаем аудио поток. Если аудио поток нужен, то строка запуска будет выглядеть примерно так:

Здесь мы использует кодек libfaac, частота дискретизации 44100, 2 канала (стерео). Можно вместо AAC использовать MP3 (кодек libmp3lame).

Аналоговая камера

Если у вашей камеры аналоговый выход, то ее можно подключить к компьютеру с помощью устройства захвата. Я использую дешевую PAL камеру и USB плату захвата с Dealextreme.

Захват экрана

Тут есть два варианта: установить FFSplit или использовать screen-capture-recorder с FFmpeg.
FFSplit использовать проще, т.к. у него есть удобный GUI, но он не работает под XP/2003.

Если вы решили выбрать второй способ, то строка запуска FFmpeg будет выглядеть примерно так:

Аудио-поток можно захватить с virtual-audio-capturer.


Пример захвата экрана в приложении

Ретрансляция

Естественно, вы можете ретранслировать видео или аудио файл (или поток) FFmpeg на сервер. В примере ниже мы передаем MJPEG видео с удаленной камеры:

Но для таких целей более разумно использовать опцию push на самом RTMP-сервере, чтобы исключить промежуточное звено и вытягивать поток на самом сервере.


Какая-то веб-камера в Японии

Тюнинг, решение проблем

-preset имя У H.264 есть несколько наборов настроек соотношения компрессия/скорость: ultrafast, superfast, veryfast, faster, fast, medium, slow, slower, veryslow. Поэтому если вы хотите повысить производительность, стоит использовать:

-crf число непосредственно влияет на битрейт и качество. Принимает значения от 0 до 51 — чем больше, тем ниже качество картинки. По умолчанию 23, 18 — losless качество. Битрейт примерно удваивается при уменьшении CRF на 6.

-r число задает входной и выходной FPS. Для источников, с которых вы захватываете картинку, можно установить вместо -r -re, чтобы использовать «родной» FPS.

-rtbufsize число размер буфера реального времени. Если у вас постоянно появляются сообщения о переполнении буфера и отбрасывании кадров, вы можете поставить большой буфер (например, 100000k), однако это может увеличить задержку передачи.

-pix_fmt задает цветовую модель. Если у вас вместо картинки показывается черный квадрат, а звук работает, попробуйте поставить yuv420p или yuv422p.

-s ширинаxвысота входной и выходной размер картинки.

-g число насколько я понял, это максимальное число кадров между ключевыми. Если у вас FPS очень маленький, то можно поставить это значение поменьше, чтобы уменьшить задержку начала трансляции.

-keyint_min число минимальное число кадров между ключевыми.

-vf «crop=w:h:x:y» обрезать видео

-tune zerolatency «волшебная» опция уменьшения задержки трансляции. Что она конкретно делает я так и не нашел (-:

-analyzeduration 0 отключает анализ длительности, что помогает снизить задержку трансляции

Помимо рассмотренных выше параметров аудио вам может понадобиться -acodec copy в том случае, если ваш аудио поток не требует дополнительной перекодировки в MP3/AAC.

Пример: вещаем с веб-камеры с низкой задержкой без звука, рисуем в верхней части картинки текущее время

Плеер на сайте

Тут все просто. Поставьте на свой сайт один из популярных плееров, например Flowplayer или JW Player.

Пример подключения JW Player вы можете посмотреть на странице демо трансляции.

Что дальше?

С помощью модуля rtmp можно создать не только видеотрансляцию, но и видеочат, интернет-радио, простую платформу для вебинаров. Дерзайте!

Я рассмотрел лишь базовую функциональность nginx-rtmp-module и ffmpeg. Возможности у них гораздо шире, поэтому обратите внимание на документацию:
Блог nginx-rtmp-module
Wiki nginx-rtmp-module
Документация FFmpeg
Streaming Guide
x264 Encoding Guide
Filtering Guide

Источник

Rtmp видео стример для трансляции видео с IP камеры на несколько плееров

Необходимо подготовить компьютер, который будет являться стримером rtmp потока на плееры.

Для трансляции видео с одной камеры подойдет практически любой компьютер, например с мы использовали компьютер со следующие конфигурацией:

Intel Dual-Core Processor J1800

HDD или SDD — можно использовать любой HDD или SDD диск на который можно установить OS linux Ubuntu

Компьютер должен быть подключен к сети в которой есть работающий DHCP сервер(или если такого сервера нет, то нужно настроить сетевой адрес, прописать маску и шлюз), сеть к которой подключен компьютер имеет доступ в Интернет

1) Устанавливаем OS Ubuntu на компьютер

Мы установили Ubuntu 16.04, также можно установить Ubuntu 14.04, с другими версиями установка и работа стримера не проверялась.
Как установить Ubuntu — пожалуйста посмотрите процесс установки в интернет.

Дальнейшую установку можно проводить открыв программу «Terminal» на компьютере или удаленно, например, по ssh с помощью программы putty.
для этого нужно установить службу ssh на компьютер с OS Ubuntu выполнив команду

2) Установка необходимых пакетов для Nginx

Предполагается что ранее ngnix на компьютер не устанавливался, иначе его нужно удалить
Устанавливаем пакеты

3) Скачиваем Nginx и Nginx-RTMP

Нужно проверить какая последняя версия Nginx существует сейчас, открываем в браузере ссылку
http://nginx.org/download/ и смотрим в самом низу, на момент написания статьи последняя версия была «nginx-1.14.0»

Создаем папку куда будут загружаться пакеты и переходим в нее

Скачиваем необходимые пакеты

Теперь необходимо распаковать
Если у вас установлен unzip, надо его установить командой

4) Устанавливаем Nginx

Переходим в папку с разархивированным Nginx

добавляем к Nginx модуль RTMP

Компилируем и устанавливаем

5) Устанавливаем скрипты инициализации Nginx

Последняя команда добавляет nginx в автозапуск

6) Можно выполнить проверку — попробовать запустить Nginx

И выключить сервис

Если при запуске выводится сообщение что порт 80 занят, то скорее всего у вас стоит Apache, его надо остановить и убрать из авто запуска или в настройках Nginx сделать что бы он не слушал данный порт.

Редактируем файл конфигурации

Открывшейся файл выглядит примерно так

Все что начинается с символа # — комментарии и эти строки можно удалять Если были проблемы с запуском из за уже используемого 80 порта, то можно так же «закомментировать» строку «listen 80;» или поменять на другой порт, например 81.

rtsp://admin:admin@192.168.0.12:554/Streaming/Channels/1/ — это пример rtsp потока с камеры — его нужно заменить на rtsp поток с вышей камеры, например для камеры Axis этот поток может выглядеть так:
rtsp://192.168.117.105:554/axis-media/media.amp?streamprofile=Bandwidth

8) Установка FFmpeg и проверка его работы

Для того, чтобы мы смогли конвертировать поток rtsp в fvl, понадобится ffmpeg.
Подключаем репозитории FFmpeg и ставим его:

9) Пробуем перезапустить сервер, после перезагрузки все должно работать

Если ошибок не было и все сделали правильно, то открыв в VLC поток

rtmp://ip_adress_servera/cam1/stream
Мы увидим картинку с нашей ip камеры

Если не работает, то читаем ошибки или лезем в логи «/usr/local/nginx/logs/error.log»

10) Загрузка процессора компьютера

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

11) Если нужно показывать картинку с нескольких камер, то
открываем файл

и находим строчку с «worker_process» и исправляем

В корень конфигурационного файла добавляем

теперь в конец файла нужно добавить,

где
rtsp://admin:admin@192.168.0.12:554/Streaming/Channels/1/ — поток с одной из камер
rtsp://admin:admin@192.168.0.13:554/Streaming/Channels/1/ — поток с другой камеры

Если нужно сделать вещание на сайт с помощью видеосервера nginx, то для этого нужно
установить на вашем сайте плеер, например, jw player.
Как это сделать посмотрите открыв ссылку ниже.

После этого вставьте код на страницу вашего сайта.
Пример нашего кода ниже.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

  • Rtmp player windows media player
  • Rtl8812au windows 10 driver
  • Rtl8723ae bluetooth driver windows 7
  • Rtl8192se driver windows 10
  • Rtl8192eu драйвер windows 7