Не работает в демо RTSP видео

Max

Administrator
Staff member
SSH доступ не подходит. Скорее всего другой пароль. Проверьте пожалуйста логин пароль и пришлите снова.
 

Max

Administrator
Staff member
У вас некорректно установлен сервер.
Вам нужно удалить текущие файлы и выполнить установку заново.
Если в папке /usr/local/FlashphonerWebCallServer есть что-то важное, сделайте бэкап.
После этого
1. Остановите WCS сервер и убейте все серверные процессы если они остались.
Code:
service webcallserver stop
ps aux | grep java
kill -9 PID
PID - id оставшегося процесса
2. Полностью удалите все папки и файлы FlashphonerWebCallServer из /usr/local
3. Скачайте последнюю версию сервера со страницы https://flashphoner.com/download, установите, активируйте и запустите:
Code:
wget --no-check-certificate https://flashphoner.com/download-wcs5-server.tar.gz
tar -xzf download-wcs5-server.tar.gz
cd FlashphonerWebCallServer-5.0.2175
./install.sh
cd /usr/local/FlashphonerWebCallServer/bin
./activation.sh
service webcallserver start
4. После установки и перед запуском сервера поставьте кодек VP8 в приоритет, чтобы работало с первой камерой.
Code:
codecs =opus,alaw,ulaw,g729,speex16,g722,mpeg4-generic,telephone-event,vp8,h264,flv,mpv

Важно!

В будущем, не скачивайте дистрибутив WCS в папку /usr/local/FlashphonerWebCallServer
Скачайте его в /tmp, /home или любую другую папку, отличную от /usr/local.
В /usr/local находится уже установленный сервер и распаковывая скачанные файлы прямо там, можно повредить его настройки.

Если после переустановки не заработает - сообщите. Проверим.
 
Последняя проблема осталась. Возможно сможете помочь?
По поводу того, что iphone не может проигрывать несколько потоков одновременно. Решили не пробовать проигрывать в разных фреймах, а просто перед Стартом новой камеры останавливать автоматически предыдущую. И под windows/android тестировали - код работает, переключение работает. Однако под iphone переключение не работает. Происходит остановка предыдущего видео, у нового (кликнутого) видео кнопка меняется на Стоп (то есть фактически запуск произошел), но при этом видео не проигрывается.
Как тестировали:
Нажали на кнопку Старт у первого видео, подождали пока пойдет видеопоток, далее нажали на кнопку Старт у второго видео.
Самое интересное, что если вручную нажать Старт у первого видео, потом нажать кнопку Стоп у первого видео и запустить второе видео - второе заработает. И заработает любое другое. Но это если только вручную остановить видео. Если же автоматически остановить, то следующее видео не проигрывается. И только на iphone оно не проигрывается, на других платформах проигрывается.

Код простой и незамысловатый:
HTML:
<script>function onStopped(index) {
   
    $("#playBtn" + index).text("Старт").off('click').click(function(){
        if (validateForm("form" + index)) {
            $('#streamName' + index).prop('disabled', true);
            $(this).prop('disabled', true);
           
            if (device.ios() || device.windows())
            {
                $(".stop_link").click();
            }
           
            playStream(index);
        }
    });
   
    //alert(Flashphoner.getSessions()[0].status());
   
    if (Flashphoner.getSessions()[0] && Flashphoner.getSessions()[0].status() == SESSION_STATUS.ESTABLISHED) {
        $("#playBtn" + index).prop('disabled', false);
        $('#streamName' + index).prop('disabled', false);
    } else {
        $("#playBtn" + index).prop('disabled', true);
        $('#streamName' + index).prop('disabled', true);
    }
}</script>
Конкретно этот код стопает все запущенные видео.
if (device.ios() || device.windows())
{
$(".stop_link").click();
}
Функции device.ios() и device.windows() проверяли, они отдают true, если соответственно устройство на iOS или Windows, работает 100% везде.

Можете сообщить, почему при автоматической остановке предыдущих видео новое на iphone не запускается? Если нужно, могу предоставить любые нужные логи.
Тестировать можно здесь: http://71elki.ru/camera/
 

Max

Administrator
Staff member
Проверим у себя этот кейс. По результатам отпишу.
 

Max

Administrator
Staff member
У нас работает.
Правда, появление картинки занимает некоторое время. Около 12 секунд. Поэтому таймер переключения ставим на 15 секунд и с ним работает.

IMG_0406.PNG


В аттаче код, который переключается каждые 15 секунд между окнами.
Тестовая страница временно доступна здесь:
https://wcs5-eu.flashphoner.com/client2/examples/demo/streaming/2players/2players2.html
https://wcs5-eu.flashphoner.com/client2/examples/demo/streaming/2players/2players2.js
Тестировали на iOS 10.1.1 iPhone 6 и на iPad3 iOS 9.3.5
Код примера был сделан на основе стандартного примера 2players
https://wcs5-eu.flashphoner.com/demo2/2players
 

Attachments

Доброй ночи.

С iphone решили не мучаться, а просто для них выводить по одному видео на отдельной странице. Спасибо.

Решили перенести flashphoner на отдельный сервер. Установили его как в прошлый раз. Новый сервер работает за NAT-ом. Пробросили порты 1935, 8080, 8888, 8443, 30000-33000, открыли их же в iptables. В конфиге в ip указали внешний ip сервера, в ip_local указали ip, который выдает ifconfig (внутренний). Активировали лицензию.
1) По урлам https://host:8888 и https://host:8443 ничего не открывается. На прошлом сервере все было нормально.
2) Попробовали невзирая на демо в своем web-приложении заменить ip со старого сервера на новый и посмотреть результат. Сессия flashphoner устанавливается нормально, видео вроде как стартует без ошибок (в консоли никаких проблем нет, в логах указан статус playing), но при этом картинки нет никакой.

В чем может быть проблема? Логи выслал.
 

Max

Administrator
Staff member
При такой установке нужно добавить настройку
Code:
rtc_ice_add_local_component=true
в flashphoner.properties
и перезагрузить wcs-сервер
Code:
service webcallserver restart
Либо обновиться до последней сборки. Начиная с билда 2189, эта настройка включена по-умолчанию.
 
Добрый день. Добавил настройку, перезагрузил - ничего не изменилось.

Новые логи с новым файлом настроек выслал на почту.
 

Max

Administrator
Staff member
В логах видно проблемы с лицензией.
Попробуйте остановить сервер, деактивировать лицензию скиптом ./deactivation.sh, потом активировать ее заново скриптом ./activation.sh и запустить WCS сервер.
Здесь более подробно:
http://forum.flashphoner.com/threads/troubleshooting.10768/#post-11474
Если не поможет, пришлите еще раз логи и всю папку conf
 
Почему-то демо на порту 8888 и 8443 так и не заработали, но в приложении видео заработало, поэтому все нормально. Спасибо!
 

Max

Administrator
Staff member
Почему-то демо на порту 8888 и 8443 так и не заработали
Возможно проблемы с SSL-сертификатом, если его конечно импортировали.
Или же порты 8888 и 8443 закрыты.
Проверьте их телнетом:
Code:
telnet host 8888
telnet host 8443
Или порты 9091 и 8080 через http
Code:
http://host:9091
wss://host:8080
 
Добрый день.
Еще один баг на iphone всплыл, который изначально не заметили.
Как мы сейчас сделали:
Для iphone работает другая схема, нежели на android. Пользователь заходит на страницу со списком ссылок на страницы камер. При переходе на любую страницу камеры, она автоматически включается. На странице только одно видео + ссылка Назад.
Так вот выяснилось, что если пройтись так Камера 1 - Назад - Камера 2 - Назад и т.д. несколько раз, то на 4й камере возникнет ошибка. Удалось выяснить, что это ошибка "None of MediaProviders available" в строке:
Code:
function init_page() {
    //init api
    try {
        Flashphoner.init({
            flashMediaProviderSwfLocation: 'media-provider.swf',
            receiverLocation: 'dependencies/websocket-player/WSReceiver2.js',
            decoderLocation: 'dependencies/websocket-player/video-worker2.js',
            preferredMediaProvider: mediaProvider
        });
    } catch(e) {
        alert('Ошибка ' + e.name + ":" + e.message + "\n" + e.stack);
        alert("Your browser doesn't support Flash or WebRTC technology necessary for work of an example");
        return;
    }
   
    //$("h2#info").html("device ios? " + device.ios() + "<br/>iphone? " + device.iphone() + "<br/>mobile? " + device.mobile());

    //$("#url").val(setURL());
    onDisconnected();
}
Flashphoner.init вот здесь ошибка.
При этом все пути правильные, везде одинаковые.
1. Проверили сами камеры, думали, что может быть именно какая-то конкретная камера косячит. Это не так, от камеры не зависит, только от количества пройденных (после 3й или 4й примерно начинается проблема и уже ни одно видео нельзя посмотреть). Это только на iphone.
2. Была идея, что мы не останавливаем видео и не удаляем соединения, и iphone в силу отсутствия WebRTC просто не может больше N-ного количества соединения поддерживать. Добавили код в функцию connect() {} перед созданием новой сессии:
Code:
// disconnect previous sessions
    var all_sessions = Flashphoner.getSessions();
    for (var i=0; i < all_sessions.length; i++)
        all_sessions[i].disconnect();
Проверили. Сессии отключаются, всегда только одна сессия идет. Но это не помогло и проблема повторяется. Что может быть не так? Повторюсь, первые 3 камеры (любые) работают нормально без каких-либо ошибок. А потом полностью все перестают работать и не включаются.
 

Max

Administrator
Staff member
Попробуем у себя сделать страничку с похожим тестом. По результатам отпишу.
 

Max

Administrator
Staff member
В аттаче файл cameras.html - страница со ссылками на player.html с включенным autoplay и передачей номера камеры в параметре camera.
В player.js номер камеры подставляется в RTSP URL потока.
Тест: выбор камеры и возврат со страницы плеера на страницу со списком камер - проход по всему списку из 9ти камер 4 раза.
iPad 3, iOS 9.3.5: потоки воспроизводятся.
Тестировали с последними сборками сервера 2239, 2243.
 

Attachments

Top