Проблемы с рестимингом rtsp потока

Ramil

New Member
Здравствуйте, делаю все по инструкции как описано тут http://habrahabr.ru/post/229243/
Flashphoner и клиентская часть запущена на локальной машине. Локальные и внешние ip-адреса прописаны.
В браузере открываю пример с гитхаба
wcs_media_client/index.html?id=rtsp://media3.yburlan.ru:1935/vod/sample.mp4
Соединение устанавливается (видно это в консоли браузера и сервера), но вместо видео появляется черный экран.
Фаервол отключен.
Логи прилагаю
 
Last edited:

Alex

Administrator
Staff member
Скорее всего проблемы с передачей RTP пакетов с Wowza - сервера на Flashphoner-сервер, который установлен у вас локально.
Вот демка, которая успешно забирает видео с вашей Wowza: http://webrtc_demo.flashphoner.com/?id=rtsp://media3.yburlan.ru:1935/vod/sample.mp4
Это билд 981. Скачать можно здесь.
Firewall скорее всего не виноват. Скорее это NAT за которым вы находитесь.
Попробуйте на роутере диапазон UDP портов [30000-32000] перенаправить на Flashphoner-сервер. Должно заработать.
 

Ramil

New Member
Спасибо! Все получилось. Только почему-то звука нет (в вашем примере тоже), хотя в исходном файле со звуком все нормально.
Для проверки можно в vlc плере открыть rtsp://media3.yburlan.ru:1935/vod/sample.mp4
 

Ramil

New Member
1. Так же хотелось бы иметь возможность не палить адрес огиниального стрима в клиенте (id=rtsp://...)
Понятно, что это можно засунуть посредственно в js, но при желании все равно может быть обнаружено.
Я вижу следующее решение. Через server-side API я регистрирую мой rtsp поток во Flashphoner, в ответ получаю некий идентификатор. И уже этот идентификатор использую в клиенте.

2. Интересует передача с клиента дополнительных параметров (id сессии или логин) на сервер Flashphoner. С него через java-модуль дергать наш сервис для проверка прав доступа на просмотр. Сейчас такой механизм у нас реализован в Wowza.
 

Alex

Administrator
Staff member
Спасибо! Все получилось. Только почему-то звука нет (в вашем примере тоже), хотя в исходном файле со звуком все нормально.
Для проверки можно в vlc плере открыть rtsp://media3.yburlan.ru:1935/vod/sample.mp4
Звука нет потому что аудио кодек в этом файле скорее всего mp3 или какой-то другой не поддерживаемый в настоящий момент кодек. Для WebRTC нужны кодеки: Opus, G.711.
WCS может так же транскодировать Speex в WebRTC кодеки.
Т.е. если бы вы этот поток запустили с веб-камеры с аудио кодеком g.711 или Speex, то звук бы был. Если же это файл с mp3 или другим несовместимым кодеком, то звука не будет.
Если все же планируете работать именно с файлом, можете попробовать транскодировать звук средствами Wowza в G.711.
Пока в планах поддержки mp3 кодека у нас нет.
 

Alex

Administrator
Staff member
1. Так же хотелось бы иметь возможность не палить адрес огиниального стрима в клиенте (id=rtsp://...)
Понятно, что это можно засунуть посредственно в js, но при желании все равно может быть обнаружено.
Я вижу следующее решение. Через server-side API я регистрирую мой rtsp поток во Flashphoner, в ответ получаю некий идентификатор. И уже этот идентификатор использую в клиенте.
Для работы с клиентом используется класс MediaHandler.java (в аттаче)
В методах prepareRtspSession и subscribe вы можете подменить rtspUri и замапить его на обычные идентификаторы.

2. Интересует передача с клиента дополнительных параметров (id сессии или логин) на сервер Flashphoner. С него через java-модуль дергать наш сервис для проверка прав доступа на просмотр. Сейчас такой механизм у нас реализован в Wowza.
Для работы с клиентом используется класс MediaHandler.java (в аттаче)
В server.properties конфиге его можно прописать как
client_handler =com.mypackage.MediaHandler
В этом случае все вызовы с клиента пойдут через этот handler.
Здесь в методе connect можно произвести аутентификацию и авторизацию клиента.

В настоящий момент мы работаем над версией Web Call Server 4 с новым API. Там чтобы сделать эти две вещи не потребуется писать Java код.
Наш handler будет дублировать все обращения по HTTP/REST.
Хотя вариант с изменением Java кода так же должен работать.
 

Attachments

Top