В целях отладки, в состав WCS сервера входит утилита, предназначенная для захвата RTSP-потока из файла, полученного при помощи tcpdump или любого другого инструмента сбора дампа IP-пакетов. Захваченный поток раздается по RTSP, имитируя IP-камеру. В свою очередь, WCS может захватывать поток с этой "камеры". Такая возможность полезна в случае, когда нет доступа непосредственно к RTSP-источнику, но есть файлы дампа потока с этого источника. Утилита работает только с файлами, в которых содержатся rtsp interleaved сессии.

При запуске необходимо указать следующие параметры:

Пример запуска:

java -Dcom.flashphoner.fms.AppHome=/usr/local/FlashphonerWebCallServer -cp /usr/local/FlashphonerWebCallServer/lib/wcs-core.jar:/usr/local/FlashphonerWebCallServer/lib/* com.flashphoner.tools.rtsp.RtspPcapServer /usr/local/FlashphonerWebCallServer/pcaps 3554 2554 true

Здесь

/usr/local/FlashphonerWebCallServer/pcaps - каталог на сервере
3554 - порт, на котором будет имитироваться IP-камера
2554 - порт, на котором находился источник потока для дампа (реальная камера)
true - пропускать пакеты, отброшенные при сборе дампа.

Если на этом же сервере запущен WCS, необходимо вторым параметром указать порт, не входящий в диапазоны, используемые WCS.

Если указать порт источника 0

java -Dcom.flashphoner.fms.AppHome=/usr/local/FlashphonerWebCallServer -cp /usr/local/FlashphonerWebCallServer/lib/wcs-core.jar:/usr/local/FlashphonerWebCallServer/lib/* com.flashphoner.tools.rtsp.RtspPcapServer /usr/local/FlashphonerWebCallServer/pcaps 3554 0 true

то утилита автоматически попытается определить все RTSP источники во всех найденных дампах, и выведет их список на стандартное устройство вывода (см ниже).

Информация о работе утилиты выводится в стандартное устройство вывода. Например, если в каталоге /usr/local/FlashphonerWebCallServer/pcaps находится один файл log.pcap, содержащий один поток, будет выведено следующее:

04:35:20,721 INFO        RtspPcapServer - Starting
04:35:22,244 INFO        RtspPcapServer - Available sources:
04:35:22,245 INFO        RtspPcapServer - Source{path=/usr/local/FlashphonerWebCallServer/pcaps/log.pcap, pcap=io.pkts.Pcap@5a39699c, stream=RTSPStream{config=8, data=22052, streamName='live1.sdp'}}
04:35:22,245 INFO        RtspPcapServer - Starting PCAP RTSP server
04:35:22,407 INFO        RtspPcapServer - Listening PCAP RTSP on address /0.0.0.0 port 3554

Имя RTSP потока, отдаваемого утилитой, будет присвоено в соответствии с именем потока в файле дампа, либо в соответствии с URI потока, закодированного в base 64.

В данном примере, получить поток можно по адресу

rtsp://hostname:3554/live1.sdp

здесь hostname - имя сервера, на котором запущена утилита.

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

Задание имени для потоков, захваченных из дампов

В сборке 5.2.1794 добавлена настройка, позволяющая задать префикс имени потока, захваченного из дампа

rtsp_pcap_server_custom_stream_name=source

К этому префиксу добавляется порядковый номер, начиная с 0. В этом случае потоки, захваченные из дампов командой

java -Dcom.flashphoner.fms.AppHome=/usr/local/FlashphonerWebCallServer -cp /usr/local/FlashphonerWebCallServer/lib/wcs-core.jar:/usr/local/FlashphonerWebCallServer/lib/* com.flashphoner.tools.rtsp.RtspPcapServer /usr/local/FlashphonerWebCallServer/pcaps 3554 0 true

будут доступны по URL

rtsp://hostname:3554/source0
rtsp://hostname:3554/source1
...

здесь hostname - имя сервера, на котором запущена утилита.

Тестирование перенаправления RTSP соединения

Для тестирования перенаправления RTSP соединения с использованием файла дампа, необходимо в файле настроек flashphoner.properties указать метод, при ответе на который будет возвращено 302 Moved Temporarily, например

rtsp_pcap_server_redirect_method=OPTIONS

и адрес камеры, куда будет перенаправлено RTSP соединение, например

rtsp_pcap_server_handler_redirect_url=rtsp://yourcamera:1935/live/sys3.stream

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

Тестирование RTSP авторизации

В сборке 5.2.1002 добавлена возможность тестирования RTSP digest авторизации. Для этого необходимо указать дополнительный параметр при запуске утилиты:

java -Dcom.flashphoner.fms.AppHome=/usr/local/FlashphonerWebCallServer -cp /usr/local/FlashphonerWebCallServer/lib/wcs-core.jar:/usr/local/FlashphonerWebCallServer/lib/* com.flashphoner.tools.rtsp.RtspPcapServer /usr/local/FlashphonerWebCallServer/pcaps 3554 0 true 'login:password:SHA-256,MD5'

Здесь

В этом случае все потоки, отдаваемые утилитой, нужно играть по URI

rtsp://login:password@hostname:3554/streamName