Захват RTSP-interleaved потока из файла дампа¶
Описание¶
В целях отладки, в состав WCS сервера входит утилита, предназначеннаядля захвата RTSP-потока из файла, полученного при помощи tcpdump или любого другого инструмента сбора дампа IP-пакетов. Захваченный поток раздается по RTSP, имитируя IP-камеру. В свою очередь, WCS может захватывать поток с этой "камеры". Такая возможность полезна в случае, когда нет доступа непосредственно к RTSP-источнику, но есть файлы дампа потока с этого источника. Утилита работает только с файлами, в которых содержатся rtsp interleaved сессии.
Attention
Эта возможность не должна использоваться в промышленной эксплуатации, только для тестирования!
Чтение потока из файла дампа¶
При запуске утилиты необходимо указать следующие параметры:
- каталог, в котором располагаются файлы дампов
- порт, на котором будут прослушиваться входящие RTSP-соединения
- порт, на котором находился источник потока для дампа
- признак обработки отброшенных пакетов
Пример запуска:
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, необходимо порт, на котором будет имитироваться IP-камера, не должен входить в диапазоны, используемые 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.
В данном примере, получить поток можно по адресу
здесь hostname
- имя сервера, на котором запущена утилита.
Если в каталоге содержится несколько файлов дампов, потоки в них не должны иметь одинаковых имен, из нескольких таких потоков будет захвачен только один.
Задание имени для потоков, захваченных из дампов¶
В сборке 5.2.1794 добавлена настройка, позволяющая задать префикс имени потока, захваченного из дампа
К этому префиксу добавляется порядковый номер, начиная с 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
здесь hostname
- имя сервера, на котором запущена утилита.
Тестирование перенаправления RTSP соединения¶
Для тестирования перенаправления RTSP соединения с использованием файла дампа, необходимо указать метод, при ответе на который будет возвращено 302 Moved Temporarily
, при помощи следующего параметра в файле настроек flashphoner.properties
и адрес камеры, куда будет перенаправлено RTSP соединение, например
После этого необходимо запустить утилиту захвата 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'
Здесь
login
- имя пользователяpassword
- парольSHA-256,MD5
- список алгоритмов авторизации
В этом случае все потоки, отдаваемые утилитой, нужно играть по URI