Захват UDP аудио и видеотраффика из файла дампа
WCS может автоматически при старте воспроизводить поток из указанного файла, полученного при помощи tcpdump или любого другого инструмента сбора дампов в формате Pcap. Эта возможность полезна прежде всего в целях отладки при разработке приложений.
Имя файла задается в формате audioPort-videoPort-name.pcap, например
pull_streams=pcap://31070-31072-test.pcap
где 31070 - порт для аудио пакетов, 31072 - порт для видео пакетов.
К каждому pcap файлу должен быть приложен файл с SDP, имя которого задается аналогично
31070-31072-test.pcap.sdp
Пример содержимого файла SDP:
v=0 o=Gateway-0.0.0.666 0 0 IN IP[local_ip_type] [local_ip] s=- c=IN IP[local_ip_type] [local_ip] t=0 0 m=audio 0 RTP/AVP 0 101 a=rtpmap:0 PCMU/8000 a=rtpmap:101 telephone-event/8000 a=sendrecv m=video 0 RTP/AVP 112 a=rtpmap:112 H264/90000 a=fmtp:112 profile-level-id=42e01f; packetization-mode=1 a=content:main a=rtcp-fb:* ccm fir a=rtcp-fb:* nack pli a=sendrecv
Файл дампа и соответствующий файл SDP должны быть помещены в каталог /usr/local/FlashphonerWebCallServer/media
Захват RTSP-interleaved потока из файла дампа
В целях отладки, в состав WCS сервера входит утилита, предназначенная для захвата RTSP-потока из файла, полученного при помощи tcpdump или любого другого инструмента сбора дампа IP-пакетов. Захваченный поток раздается по RTSP, имитируя IP-камеру. В свою очередь, WCS может захватывать поток с этой "камеры". Такая возможность полезна в случае, когда нет доступа непосредственно к RTSP-источнику, но есть файлы дампа потока с этого источника. Утилита работает только с файлами, в которых содержатся rtsp interleaved сессии.
При запуске необходимо указать следующие параметры:
- каталог, в котором располагаются файлы дампов
- порт, на котором будут прослушиваться входящие RTSP-соединения
- порт, на котором находился источник потока для дампа
- признак обработки отброшенных пакетов
Пример запуска:
java -Dcom.flashphoner.fms.AppHome=/usr/local/FlashphonerWebCallServer -cp /usr/local/FlashphonerWebCallServer/lib/tbs-flashphoner.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. Имя потока, отдаваемого на данному порту, будет соответствовать имени потока в файле дампа.
Информация о работе утилиты выводится в стандартное устройство вывода. Например, если в каталоге /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 554
В данном примере, получить поток можно по адресу
rtsp://hostname/live.sdp
здесь hostname - имя сервера, на котором запущена утилита.
Если в каталоге содержится несколько файлов дампов, потоки в них не должны иметь одинаковых имен, из нескольких таких потоков будет захвачен только один.