Primary Youtube ingest server legacy rtmp что это значит

Содержание

В некоторых случаях, при попытке перейти на нужный интернет-ресурс, браузер выдает системное сообщение (статус) с кодом «500», о котором свидетельствует надпись «500 Internal Server Error» («500 внутренняя ошибка сервера»).

ошибка 500

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

В случае подобной ошибки не обязательно сразу писать в техническую поддержку. Можно попробовать решить эту проблему самостоятельно.

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

Что способствует возникновению ошибки 500

  • Неверные права на объекты файловой системы
  • Ошибочный код или неподдерживаемые директивы файла .htaccess
  • Долгое выполнение скриптов
  • Ошибка в коде CGI-скрипта
  • Превышение лимита памяти
  • Некорректная работа CMS

Как диагностировать ошибку 500

Для диагностики внутренней ошибки сервера с кодом 500 необходимо проверить содержимое файла « error.log », находящийся в корне сайта или в каком-либо другом месте, которое зависит от настроек сервера.

What is RTMP?

Способ доступа к файлу зависит от того, находится ли сайт на веб-хостинге или размещён на выделенном/физическом сервере.

Ошибка 500

  1. На веб-хостинге можно найти « error.log » в панели управления веб-хостингом. Например, в ISPmanager файл с ошибками расположен в разделе «WWW» → «Журнал».
  2. На VPS файл « error.log » можно посмотреть через консоль, либо предварительно скачать его на локальный компьютер при помощи клиента FileZilla.

Этот метод позволяет выяснить причину возникновения ошибки и за короткий промежуток времени устранить ее. После проведения диагностики можно воспользоваться одним из нижеописанных способов решения проблемы.

Права доступа к директориям и файлам

Отсутствие необходимых прав доступа к объектам файловой системы (директориям и файлам) довольно часто приводит к ошибке со статусом «500». При переносе сайта на другой хостинг или изменении его структуры (добавлении новых элементов) пользователь забывает изменить права доступа.

Решение № 1 — изменение прав

Для доступа к файловой системе сервера можно использовать бесплатный клиент FileZilla. Его необходимо установить, а затем запустить.

Алгоритм изменения атрибута файла (папки)

  1. Выполнить вход в корневую директорию сервера, введя параметры аутентификации — IP-адрес сервера, логин пользователя, пароль, а также порт (если необходимо).
  2. Нажать на кнопку «Быстрое соединение». Слева отобразится список объектов файловой системы локального компьютера, а справа — файлы и директории сервера.
    подключение к VDS
  3. Следующий шаг, о котором часто забывают при загрузке сайта на хостинг, — активация пункта меню для отображения скрытых файлов («Сервер → Принудительно отображать скрытые файлы»).
    настройка скрытых файлов
  4. Загрузить необходимые файлы и папки на сервер посредством перетаскивания или используя контекстное меню «Загрузить на сервер».
    загрузка на сервер
  5. После загрузки перейти на правую панель, выделить интересующие объекты и через контекстное меню исправить соответствующие права доступа.
    установка прав

Primary you tube ingest server legacy RTMP

Рекомендуемые числовые значения для файлов — « 644 » и директорий — « 755 ». Необходимо пересматривать и изменять права отдельно для каждого объекта файловой системы. Этот подход позволит избежать ошибок.

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

Решение № 2 — перезагрузка сервера

При размещении ресурса на базе физического или виртуального выделенного сервера (VPS) может иногда возникать ошибка 500. Если страница временно недоступна и браузер выдает ошибку с кодом «500», а изменения прав доступа были испробованы, то нужно просто перезагрузить сервер.

Некорректный .htaccess

Для файла .htaccess существует определенный синтаксис, который нельзя нарушать. Если в нем неверно указаны директивы, то при обращении к сайту будет возникать ошибка «500». Кроме того, не все директивы поддерживаются на хостинге.

Решение № 1 — исправление кода

Для определения причины ошибки «500», связанного с некорректным файлом .htaccess, последний необходимо сохранить в другом месте, а исходник удалить. Если сайт заработал, то в сохраненном файле .htaccess следует искать неверный код.

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

Методика выявления неверного кода

  1. Закомментировать все строки при помощи символа решетки «#».
    Методика выявления неверного кода
  2. Убрать «#» с первой строки.
    Методика выявления неверного кода
  3. Сохранить изменения и загрузить нужные файлы на сервер через перетаскивание или с помощью функции «Загрузить на сервер» в контекстном меню. Процедура аналогична тому, как это делается в описанном выше случае с изменением атрибута файла.
  4. Проверить web-приложение (сайт).
  5. При отсутствии сообщения с кодом «500» нужно выполнить пункт «2» для других строк.
  6. Если возникла ошибка, то требуется проверить правильность написания директивы и ее поддержку хостингом.

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

Решение № 2 — замена символов

Замена символов — распространенная ошибка при написании директив самостоятельно или копировании частей .htaccess c недостоверных источников. В коде директив присутствуют русские символы, которые очень сложно отличить от английских. Процедуру следует делать в специальных редакторах или через сервис антиплагиата «text.ru». Последний позволяет выявлять символы замены в массиве текста.

Еще по теме:  Ютуб будь как червяк

Алгоритм нахождения

  1. Запустить сервис проверки уникальности текста «text.ru».
  2. Скачать .htaccess на локальный компьютер.
  3. Сделать его копию и отредактировать ее, оставив только английские символы.
    Алгоритм нахождения неверных символов
  4. Скопировать содержимое файла и вставить в поле для текста.
  5. Нажать на кнопку «Проверить уникальность» и дождаться результатов проверки.
    Алгоритм нахождения неверных символов
  6. Исправить символ в исходнике.
  7. Сохранить файл и закачать его на сервер.
  8. Выполнить переход на сайт.

Долгое выполнение скриптов

В настройках PHP выставляется ограничение времени, которое дается скрипту на его выполнение. Многие об этом забывают, выставляя только параметр в файле « php.ini » , находящийся в папке web-сервера Apache.

Решение № 1 — оптимизация PHP-скрипта

Чтобы оптимизировать PHP-скрипт, необходимо его переписать без лишнего кода. В интернете существует несколько сервисов для выявления избыточного кода.

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

Решение № 2 — увеличение времени обработки

Клиенту, пользующемуся услугой VPS, следует увеличить время ожидания сервера. Для этого нужно в « php.ini » найти параметр « set_time_limit » и установить его значение как « 0 », т. е. set_time_limit = 0 .

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

Ошибка в коде CGI-скрипта

Скрипт CGI-типа используется для создания интерактивных страниц, контент которых зависит от действий пользователя. Довольно часто при неверной работе со скриптами этого типа на сайте возникает внутренняя ошибка сервера с кодом «500».

Решение № 1 — проверка формата окончания строк

Для проверки символа, содержащегося в конце каждой строки, используется специальный редактор (например, Notepad++ или любой другой с поддержкой отображения символов табуляции).

  • Если сервер работает под управлением Unix-систем, то окончание каждой строки должно соответствовать символу « n ».
  • При использовании Windows-платформы — « rn ».

Решение № 2 — установка прав доступа

Одной из причин неправильной работы CGI-скриптов является некорректное разрешение прав доступа. Для директории, в которой хранятся CGI-файлы, должны стоять права с числовым значением « 755 ».

Решение № 3 — неверные HTTP-заголовки

В некоторых случаях ошибка возникает из-за некорректных HTTP-заголовков. Для ее диагностики следует проверить файл « error.log ».

Превышение лимита выделенной памяти

Некоторые хостинг-компании, чтобы избежать перегрузки сервера, устанавливают определенный лимит памяти, используемой скриптами. В результате превышения этого ограничения возникает внутренняя ошибка сервера с кодом состояния «500».

Решение № 1 — проверка PHP-скриптов

Чтобы проверить PHP-скрипты, следует скачать на локальный компьютер исходник сайта, а затем протестировать его на работоспособность.

Затем требуется проверить описание функций (структуру и код) и включить опцию показа ошибок в « php.ini ».

Опции для тестирования

  • error_reporting = E_ALL
  • display_errors = On
  • display_startup_errors = On

В файле конфигурации нужно указать вышеописанные параметры без точек.

Если проблем в файле нет, а сообщение об ошибке «500» выводится на экране, необходимо перейти ко второму способу решения проблемы.

Решение № 2 — изменение настроек

Настройка лимита памяти выставляется в файле конфигурации « php.ini ». За этот параметр отвечает опция « memory_limit ».

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

Решение № 3 — связаться с технической поддержкой

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

Некорректная работа CMS

Причиной появления ошибки «500» могут стать неверные настройки CMS. Наиболее часто используются WordPress и Joomla. Следовательно, на их примере и нужно разобрать причины возникновения проблемы, а также решения по ее устранению.

Ошибка «500» в WordPress

При работе сайта на движке WordPress методика диагностики появления ошибки с кодом «500» немного отличается от остальных CMS. Проблема может быть связана с .htaccess, установленной темой, плагином или ядром WordPress.

Решение № 1 — файл .htaccess

Файл используется при изменении структуры ссылок и работе плагинов. Кроме того, в него могут вносить изменения ядро CMS, темы и плагины.

Выполнение диагностики
  1. Скопировать .htaccess на диск, а затем удалить его на сервере.
  2. Обновить страницу.
  3. Если сайт заработал, то нужно искать причину в файле.
  4. Если при обновлении страницы ошибка не исчезнет, то рекомендуется изменить атрибуты файла .htaccess. Для этого нужно запретить запись в файл, задав в правах доступа числовое значение « 644 ».

Последний пункт влияет на активацию плагинов. Его рекомендуется рассматривать как временную меру.

Решение № 2 — смена текущей темы

Для устранения ошибки «500» рекомендуется поменять тему на другую, а затем обновить страницу. Если сайт заработал, то причина в ней. В противном случае нужно перейти к третьему варианту решения проблемы.

Решение № 3 — перебор плагинов

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

Порядок деактивации плагина

Порядок деактивации плагина
  1. Выбрать плагин (стрелка № 1).
  2. В выпадающем списке указать опцию «Деактивировать» (стрелка № 2).
  3. Нажать на кнопку «Применить» (стрелка № 3).
  4. Обновить веб-страницу.
  5. Перебор плагинов продолжать до возобновления работы интернет-ресурса.

Если деактивация плагинов не привела к положительному эффекту, и сайт по-прежнему не работает, то нужно перейти к четвертому методу.

Решение № 4 — модификация конфигурационного файла

Устранить проблему внутренней ошибки сервера поможет увеличение объема памяти.

Алгоритм модификации
  1. В корневой директории хостинга необходимо найти файл « wp.config.php ».
  2. Открыть его в редакторе.
  3. Перейти в конец файла.
  4. Добавить код « define(‘WP_MEMORY_LIMIT’, ’64M’) ».
  5. Сохранить и перезагрузить страницу.

Решение № 5 — обновление CMS

Если ни один из методов не помог, то причина заключается в ядре движка CMS. Для устранения ошибки его нужно обновить до последней версии или переустановить.

Ошибка «500» в CMS Joomla

Ошибка с кодом «500» иногда возникает при попытке зайти в административную панель CMS Joomla. При этом сайт и все его функции работают корректно.

Ошибку нужно искать самостоятельно, перебирая каждый из вариантов. В файле « error.php », который расположен в директории « logs », находится описание всех проблем при работе с CMS.

Решение № 1 — установка прав на «logs»

Чтобы устранить проблему, нужно установить права доступа на папки « logs » и « tmp », которые должны соответствовать числовому значению « 777 ».

Решение № 2 — корректность путей к директориям «logs» и «tmp»

Пути к директориям хранятся в файле « configuration.php ». Необходимо проверить их правильность, указав при необходимости полные пути.

Еще по теме:  Как открыть Ютуб на Яндекс модуле

Решение № 3 — проверка .htaccess

При ошибке «500» в административной панели нужно открыть файл .htaccess» и поочередно комментировать строки. После каждого изменения файл нужно сохранять и проверять работоспособность админ-панели.

Если, после реализации предложенных методов исправления ошибки «500», сайт на хостинге по-прежнему не работает, необходимо обращаться к техподдержке хостинг-провайдера.

Надежный хостинг для сайта. 14 дней — бесплатно!

Источник: eternalhost.net

Использование VLC Media Player как сервера для трансляции видео

Использование VLC Media Player как сервера для трансляции видео

В широком перечне функций VideoLAN Client достойное место занимает возможность превратить компьютер, на котором установлен проигрыватель в сервер потокового вещания мультимедиа в сеть. Настроить VLC сервер совсем несложно, а получаемый при этом результат может удовлетворить потребности пользователей крупной локальной сети.

Потоковое вещание в VLC

В качестве источников потоковой трансляции с помощью сервера, созданного по инструкции ниже, могут быть видеофайлы различных форматов, DVD-Video, а также видео в реальном времени. В качестве приемника вещания можно использовать компьютеры, работающие под управлением практически любой современной операционной системы, а также мобильные устройства в основе функционирования которых лежит Android либо iOS.

Настройка сервера потокового вещания

Единственным условием для того чтобы нижеизложенное принесло положительные результаты является тот фактор, что на всех устройствах в сети, которые планируются к использованию в качестве принимающей поток стороны, как и на ПК-сервере должен быть установлен VLC-проигрыватель актуальной версии.

  1. Запускаем плеер, открываем меню «Медиа» и заходим в пункт «Передавать». Жмём Передавать
  2. Добавляем файл-источник в соответствующее поле на вкладке «Файл». В том случае, если в качестве основы трансляции будет использоваться не локальное видео или аудио, а физический диск-носитель, источник в Интернете или устройство видеозахвата, воспользуемся соответствующими вкладками в верхней части окна. Добавление файла-источника
  3. После того как источник определен, нажимаем кнопку «Поток», которая запустит Мастер «Вывод потока». Первый шаг работы мастера завершаем нажатием кнопки «Следующий». Вывод потока
  4. Параметры, определяемые в окне «Настройка вывода», являются важнейшими для правильной настройки проигрывателя в качестве сервера. Нажимаем «+» и добавляем из раскрывающегося списка протокол, возможности которого будут использованы при будущей передаче медиапотока. Настройка потока
  5. Можно добавлять несколько протоколов для большей «универсальности» трансляции в отношении устройств-приемников. Простейшим методом осуществления передачи медиаданных на устройства в локальной сети является использование протокола «HTTP». Создаем трансляцию на его основе, нажав кнопку «Добавить». Выбор http
  6. Значения полей «Порт» и «Путь» не меняем, сразу нажимаем кнопку «Следующий». Порт и путь остаются без изменений
  7. Выбираем профиль, определяющий формат передаваемых видео и аудио данных из раскрывающегося списка. Если есть сомнения в правильности определения, можно оставить профиль по умолчанию. Выбор профиля
  8. Открывается финальное окно Мастера «Вывод потока», предлагающее возможности по настройке дополнительных параметров. В большинстве случаев менять значения в этом окне нет необходимости, нажимаем кнопку «Поток». Поток
  9. Создание сервера окончено, а передача стартует автоматически. Автоматическое начало передачи

Смотрим IP

Для того чтобы принимать созданную трансляцию на других устройствах, понадобится сетевой адрес компьютера-сервера. Определить значение этого параметра можно обратившись к окну свойств сетевого подключения. В рассматриваемом примере значение 192.168.0.104.

Прием потока

Для просмотра трансляции с VLC-сервера, созданного по инструкции выше, на устройствах, подключенных к локальной сети необходимо осуществить несколько простых шагов. В качестве примера используем Андроид-версию проигрывателя. В других ОС настройка приема осуществляется аналогично.

  1. Открываем плеер, а в меню выбора источника воспроизведения выбираем пункт «Открыть MRL…». Открываем MRL
  2. В поле «Сетевой адрес MRL» вводим IP-адрес устройства-сервера и порт. Вводим данные в сетевой адрес MRL
  3. Нажимаем на добавленный пункт, в результате чего будет открыто окно проигрывания видео. Добавить пункт

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

Как смотреть RTSP поток в VLC плеере

Многофункциональность медиакомбайна VLC превращает данный продукт в практически универсальное решение для просмотра видео в независимости от источника. Примечательной возможностью, которую предоставляет проигрыватель является воспроизведение RTSP-потока. О том, как работает данный функционал пойдет речь ниже.

Проигрывание в плеере VLC RTSP, а также возможность захвата потока – весьма востребованные функции среди пользователей систем видеонаблюдения, в составе которых присутствуют IP-камеры.

Как смотреть RTSP поток в VLC плеере

Применение

Большинство современных моделей камер видеонаблюдения, а также видеорегистраторов оснащены поддержкой описываемого протокола. Добавив к этим аппаратным составляющим такой надежный программный инструмент, как VideoLAN Client можно осуществить организацию системы для просмотра и сохранения видеоинформации без привлечения профессионалов в этой сфере.

Real Time Streaming Protocol – это прикладной потоковый протокол, описывающий команды, которые служат, чтобы управлять видеопотоком. Команды могут указать IP-камере либо серверу совершать различные действия, к примеру, начать транслировать поток, либо остановить передачу видеоданных.

В параметрах IP-камер может встречаться различное обозначение потокового варианта передачи информации. RTSP, как было сказано выше, является, по сути набором команд, с помощью которого осуществляется управление потоком.

Аббревиатуры UDP и RTP указывают на транспортный механизм, применяемый при передаче видео.

Открытие RTSP-потока в VLC.

Чтобы поток с камеры отображался в окне проигрывателя, требуется предварительная настройка ВЛЦ. Выполняем ниже перечисленные пункты инструкции.

  1. Запускаем VLC и заходим в меню «Инструменты», а затем выбираем «Настройки». Переходим в настройки VLC
  2. Переходим на вкладку «Ввод/кодеки», кликнув по соответствующему значку. Вкладка Ввод-Кодеки
  3. Переводим переключатель «Транспорт потока Live 555» раздела «Сеть» в положение «Использовать RTP поверх RTSP (TCP)» и нажимаем кнопку «Сохранить». Сохранить
  4. Открываем меню «Медиа» и заходим в пункт «Открыть URL…». В открывшемся окне добавляем ссылку на поток в поле «Введите сетевой адрес». IP-адресацию и другие параметры, из которых состоит адрес можно выяснить, обратившись к документации IP-камеры или видеорегистратора. Настройка сетевого протокола
  5. Воспроизведение RTSP-потока начнется вслед за нажатием на кнопку «Воспроизвести».

Обратите внимание! Интернет должен быть максимально быстрым для того, чтобы не получить ошибку «VLC не может соединиться с сетью».

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

Источник: media-player-s.ru

Стриминг видеозвонков по RTMP

Сегодня стриминг-платформы на пике популярности, так как миллионы талантливых людей регулярно делятся своими знаниями – читай, используют стриминг на всю катушку. Так как этот рынок растет, то существует и масса приложений, которые могут стримить видео в реальном времени, используя камеру смартфона или ноутбука. Возможно, вы тоже хотите внедрить в ваше приложение такую функциональность; если так, то спешим обрадовать – теперь Voximplant позволяет прокидывать видеозвонки по RTMP в любой CDN, который поддерживает этот протокол.

Эта функциональность стала возможна благодаря новому модулю Voxengine – StreamingAgent. Под катом вас ждут 5 шагов по настройке этой интеграции, добро пожаловать!

Схема

Видеозвонок из мобильного/веб-приложения или SIP приходит в наше облако, которое направляет его в стриминговый CDN. В свою очередь, CDN отправляет аудио- и видеопотоки конечным пользователям – как он обычно и делает. Обратите внимание, что RTMP поддерживает только H.264, поэтому очень важно явно указывать этот кодек при стриминге.

Еще по теме:  Верификация это что такое Youtube

Вам понадобятся

  • аккаунт на стриминговом сервисе, например, Twitch или Youtube;
  • аккаунт Voximplant. Если у вас его нет, то регистрация живет здесь;
  • приложение Voximplant, а также сценарий, правило и один пользователь. Все это мы создадим в этом туториале;
  • веб-клиент для захвата видео и аудио – воспользуемся нашей демкой videochat

1. Настройки стриминга

Первым делом вам нужно будет получить значения двух параметров, который мы используем в облачном сценарии – stream name/key и server URL. Ниже показано, как получить эти значения на примере Twitch и YouTube.

Twitch

Зайдите в аккаунт, нажмите на аватарку в правом верхнем углу и выберите Video Producer.

В разделе Settings выберите Channel, а затем нажмите Copy в верху страницы – так вы получите ваш Primary Stream Key. Обратите внимание, что ключ доступен только при активированной двухфакторной аутентификации. Вставьте это значение в ваш текстовый редактор или просто оставьте эту страницу открытой, чтобы скопипастить значение позже.

Чтобы найти server url, зайдите на страницу stream.twitch.tv/ingests, выберите один из рекомендованных серверов и скопируйте его без последнего слэша, например: rtmp://live-sfo.twitch.tv/app

YouTube

Войдите в аккаунт, нажмите на аватарку в правом верхнем углу и выберите YouTube Studio (beta).

Если у вас нет канала на YouTube, то появится диалог о создании канала. Нажмите Create channel и вы увидите дашборд созданного канала с уведомлением, что стриминг будет возможен в течение 24 часов.

Находясь в YouTube Studio, через меню слева зайдите в Other features —> Live stream now. Откроется новая страница, внизу которого будет блок Encoder setup. Отсюда необходимо взять значения Server URL и Stream name/key (либо оставить страницу открытой).

2. Настройки VOXIMPLANT

Теперь надо сделать настройки со стороны Voximplant. Сначала войдите в свой аккаунт: https://manage.voximplant.com/auth. В меню слева нажмите «Приложения», затем «Новое приложение» и создайте приложение с именем streaming. Зайдите в новое приложение, переключитесь на вкладку «Сценарии», чтобы создать сценарий startStream с таким кодом (не забудьте подставить значения из предыдущего шага в строках 8 и 9):

require(Modules.StreamingAgent); VoxEngine.setVideoCodec(«H264»); VoxEngine.addEventListener(AppEvents.CallAlerting, function (e) < const streaming = VoxImplant.createStreamingAgent(< protocol: «RTMP», url: «rtmp://live-sfo.twitch.tv/app», streamName: «live_********************», keyframeInterval: 4 >); e.call.sendMediaTo(streaming); streaming.addEventListener(StreamingAgentEvents.Connected, function (e) < Logger.write(«LOG: StreamingAgentEvents.Connected: » + e.reason); >); streaming.addEventListener(StreamingAgentEvents.Disconnected, function (e) < Logger.write(«LOG: StreamingAgentEvents.Disconnected: » + e.reason); >); streaming.addEventListener(StreamingAgentEvents.ConnectionFailed, function (e) < Logger.write(«LOG: StreamingAgentEvents.ConnectionFailed: » + e.reason); >); streaming.addEventListener(StreamingAgentEvents.Error, function (e) < Logger.write(«LOG: StreamingAgentEvents.Error: » + e.reason); >); streaming.addEventListener(StreamingAgentEvents.StreamStarted, function (e) < Logger.write(«LOG: StreamingAgentEvents.StreamStarted: » + e.reason); >); streaming.addEventListener(StreamingAgentEvents.StreamError, function (e) < Logger.write(«LOG: StreamingAgentEvents.StreamError: » + e.reason); >); streaming.addEventListener(StreamingAgentEvents.StreamStopped, function (e) < Logger.write(«LOG: StreamingAgentEvents.StreamStopped: » + e.reason); >); e.call.answer(); e.call.addEventListener(CallEvents.Disconnected, function (e) < Logger.write(«LOG: terminating in 6 secs»); setTimeout(VoxEngine.terminate, 6000); >); >);

Это простой сценарий, который инициирует стрим, а также отслеживает все его возможные состояния, как то: Connected, Connection failed, StreamStarted и т.д. – подробности работы сценарии будут чуть ниже. Сейчас же вам надо перейти на вкладку «Роутинг» вашего приложения и нажать «Новое правило». Назовите его streamRule, укажите сценарий startStream и оставьте маску по умолчанию (.*).

Последнее, что надо сделать на этом этапе – создать пользователя. Перейдите на вкладку «Пользователи», нажмите «Создать пользователя», укажите имя (например, user1) и пароль, затем кликните «Создать». Эта пара логин-пароль понадобятся нам для аутентификации в веб-клиенте.

Конфигурация Voximplant закончена, но прежде чем мы перейдем к веб-клиенту, предлагаю разобраться, как работает модуль StreamingAgent в нашем сценарии.

3. Сценарий

Модуль StreamingAgent позволяет разработчикам запускать стримы по RTMP на популярные стиминговые платформы. Чтобы использовать функциональность модуля, мы должны подключить его в самом начале сценария:

require(Modules.StreamingAgent);

Далее необходимо явным образом указать кодек, который будет использоваться при стриминге. Так как многие платформы (Twitch и YouTube в том числе) используют RTMP, который, в свою очередь, поддерживает H.264, именно его мы и укажем:

VoxEngine.setVideoCodec(«H264»);

Если кодек не указан, то может быть вызвано событие StreamingAgentEvents.StreamError, содержащее текст об ошибке:

«Video codec mismatch. » + codecName + » granted, but should be H.264″

Затем мы добавляем обработчик для события CallAlerting, чтобы обработать видеозвонок из веб-клиента (да-да, скоро мы до него дойдем). Первым делом мы добавим в обработчик вызов метода createStreamingAgent. У метода есть следующие параметры, большинство из них – обязательные, опциональные отмечены отдельно:

  • protocol – пока поддерживается только RTMP;
  • url – server URL, см. шаг 1;
  • streamName – stream name/key, см. шаг 1;
  • applicationName (опциональный) – часть streamName, например, live2. Используйте этот параметр, если этого требует выбранная платформа;
  • keyframeInterval (опциональный, секунды) – как часто будет создаваться ключевой кадр в стриме. Если не указан, то по умолчанию стоит значение 2.

VoxEngine.addEventListener(AppEvents.CallAlerting, function (e) < const streaming = VoxImplant.createStreamingAgent(< protocol: «RTMP», url: «rtmp://live-sfo.twitch.tv/app», streamName: «live_********************», keyframeInterval: 4 >);

Но мы можем опустить keyframeInterval и использовать applicationName, вот так:

VoxEngine.addEventListener(AppEvents.CallAlerting, function (e) < const streaming = VoxImplant.createStreamingAgent(< protocol: «RTMP», url: «rtmp://a.rtmp.youtube.com/», applicationName: «live2», streamName: «somename» >);

После того как создан объект стриминга, сценарий продолжает обрабатывать звонок внутри обработчика. Следующий шаг – направить входящий видеопоток из веб-клиента в созданный объект стриминга:

e.call.sendMediaTo(streaming);

Затем мы используем все возможные стриминговые события для отладки: обработчики ничего не делают, кроме отправки сведений в лог Voximplant-сессии. Вы можете не использовать этот кусок кода, если хотите.

После обработки событий сценарий отвечает на входящий звонок:

e.call.answer();

Наконец, мы должны корректно обработать окончание стриминга, когда веб-клиент прекращает отправку видео. Формально, мы можем не использовать и этот обработчик тоже, но при этом сессия закончится только по спустя 60 секунд после прекращения отправки видео. В этом ожидании нет смысла, поэтому лучше завершать сессию, отталкиваясь от событий Disconnected:

e.call.addEventListener(CallEvents.Disconnected, function (e) < Logger.write(«LOG: terminating in 6 secs»); setTimeout(VoxEngine.terminate, 6000); >);

Понимая логику сценария, мы готовы приступить к последней – но не по значению – части нашей конфигурации.

4. Веб-клиент

Клонируйте или скачайте наше демо videochat. Затем перейдите в папку репозитория и откройте файл WebApp/JS/app.js в текстовом редакторе/IDE. Измените имя приложения на 5 строке и сохраните файл:

5. Запускаем стриминг

Вам нужно запустить папку WebApp локально или на вашем веб-сервере. Для локального запуска можете воспользоваться утилитой live-server или приложением Web Server for Chrome. При запуске веб-клиента вы должны передать ему имя вашего аккаунта Voximplant, например:

http://127.0.0.1:8080/index.html#accname=johngalt

Запустив клиент, введите пару логин-пароль из пункта 2:

Источник: temofeev.ru

Рейтинг
( Пока оценок нет )
Загрузка ...