2016-09-09 3 views
0

Я внедряю RTSP-сервер в NodeJs, используя RFC (rtsp, rtp, sdp) и этот tutorial.Почему VLC не отправляет запрос rtsp PLAY на мой сервер?

Я использую VLC для проверки моей реализации, и он отлично подходит для примера (ссылка внизу учебника), но останавливается на полпути для моего сервера. Я подозреваю, что проблема с соблюдением RFC, но я не могу ее найти, и VLC действительно не предоставляет никакой полезной информации о том, что она делает.

Запуск Wireshark и реализацию сервера C++, и указывая VLC к ней показаны все этапы:

OPTIONS rtsp://192.168.10.151:8554/mjpeg/1 RTSP/1.0 
CSeq: 2 
User-Agent: LibVLC/2.2.1 (LIVE555 Streaming Media v2014.07.25) 

RTSP/1.0 200 OK 
CSeq: 2 
Public: DESCRIBE, SETUP, TEARDOWN, PLAY, PAUSE 

DESCRIBE rtsp://192.168.10.151:8554/mjpeg/1 RTSP/1.0 
CSeq: 3 
User-Agent: LibVLC/2.2.1 (LIVE555 Streaming Media v2014.07.25) 
Accept: application/sdp 

RTSP/1.0 200 OK 
CSeq: 3 
This should be date 
Content-Base: rtsp://192.168.10.151:8554/mjpeg/1/ 
Content-Type: application/sdp 
Content-Length: 90 

v=0 
o=- 6334 1 IN IP4 192.168.10.151 
s= 
t=0 0 
m=video 0 RTP/AVP 26 
c=IN IP4 0.0.0.0 
SETUP rtsp://192.168.10.151:8554/mjpeg/1/ RTSP/1.0 
CSeq: 4 
User-Agent: LibVLC/2.2.1 (LIVE555 Streaming Media v2014.07.25) 
Transport: RTP/AVP/TCP;unicast;interleaved=0-1 

RTSP/1.0 200 OK 
CSeq: 4 
This should be date 
Transport: RTP/AVP/TCP;unicast;interleaved=0-1 
Session: -2144778205 

PLAY rtsp://192.168.10.151:8554/mjpeg/1/ RTSP/1.0 
CSeq: 5 
User-Agent: LibVLC/2.2.1 (LIVE555 Streaming Media v2014.07.25) 
Session: -2144778205 
Range: npt=0.000- 

RTSP/1.0 200 OK 
CSeq: 5 
This should be date 
Range: npt=0.000- 
Session: -2144778205 
RTP-Info: url=rtsp://127.0.0.1:8554/mjpeg/1/track1 

И сообщения VLC:

... 
live555 debug: RTP subsession 'video/JPEG' 
core debug: selecting program id=0 
live555 debug: setup start: 0.000000 stop:0.000000 
live555 debug: play start: 0.000000 stop:0.000000 
core debug: using access_demux module "live555" 
core debug: looking for decoder module matching "any": 43 candidates 
... 

Когда я запускаю свой собственный сервер, он никогда посылает запрос на воспроизведение:

OPTIONS rtsp://rasmus.axit.local:8554/mjpeg/1 RTSP/1.0 
CSeq: 2 
User-Agent: LibVLC/2.2.1 (LIVE555 Streaming Media v2014.07.25) 

RTSP/1.0 200 OK 
CSeq: 2 
Public: DESCRIBE, SETUP, TEARDOWN, PLAY, PAUSE 

DESCRIBE rtsp://rasmus.axit.local:8554/mjpeg/1 RTSP/1.0 
CSeq: 3 
User-Agent: LibVLC/2.2.1 (LIVE555 Streaming Media v2014.07.25) 
Accept: application/sdp 

RTSP/1.0 200 OK 
CSeq: 3 
Date: Fri, 09 Sep 2016 09:36:29 GMT 
Content-Base: rtsp://rasmus.axit.local:8554/mjpeg/1 
Content-Type: application/sdp 
Content-Length: 91 

v=0 
o=- -12345678 1 IN IP4 192.168.10.71 
s= 
t=0 0 
m=video 0 RTP/AVP 26 
c=IN IP4 0.0.0.0 

SETUP rtsp://rasmus.axit.local:8554/mjpeg/1/ RTSP/1.0 
CSeq: 4 
User-Agent: LibVLC/2.2.1 (LIVE555 Streaming Media v2014.07.25) 
Transport: RTP/AVP/TCP;unicast;interleaved=0-1 

RTSP/1.0 200 OK 
CSeq: 4 
Date: Fri, 09 Sep 2016 09:36:29 GMT 
Transport: RTP/AVP/TCP;unicast;interleaved=0-1 
Session: -12345678 

И VLC:

... 
live555 debug: RTP subsession 'video/JPEG' 

Оттуда оно не продолжается.

Я не могу понять, чего не хватает. Раньше он не отправлял SETUP, и это оказалось отсутствующей пустой строкой в ​​ответе DESCRIBE. Следовательно, я попытался добавить несколько новых строк, идентификаторов, разных дат и того, что не в разных местах, но без кубиков.

Пожалуйста, дайте мне знать, если вам нужна дополнительная информация.

+0

Вы пытались добавить '\ r \ n' в конце ответа SETUP? Как и в HTTP, разделение между header & body - это пустая строка. – mpromonet

ответ

0

Ваш ответ на команды DESCRIBE кажется недействительным - вы ответите 96 символами, в то время как заголовок заголовка Content-Length содержит 91. Не уверен, что это влияет на результат, но я предполагаю, что VLC может выйти из строя из-за этого (может быть, это он не может разобрать строку данных соединения). Также, как представляется, в конце данных SDP в конце последней строки появляется ненужная дополнительная строка новой строки.

Смежные вопросы