Потоковое вещание RTSP

saVIor4815162342 nginx-forum at nginx.us
Mon Apr 14 12:24:51 UTC 2014


Доброго времени суток!
Пытаюсь организовать удаленный доступ к web-интерфейсу видеорегистратора с
помощью реверс-прокси nginx`а, при этом возникли трудности с отображением
потокового видео, передаваемого по протоколу RTSP. В ответ на запрос потока
выдает ошибку "Отображение невозможно".
Пакеты, перехваченные Wireshark`ом при корректном воспроизведении
видеопотока (без прокси):
10.100.0.5 10.100.0.2 TCP 66 50771 > rtsp [SYN] Seq=0 Win=8192 Len=0
MSS=1460 WS=256 SACK_PERM=1
10.100.0.5 10.100.0.2 TCP 54 50771 > rtsp [ACK] Seq=1 Ack=1 Win=65536 Len=0
10.100.0.5 10.100.0.2 TCP 54 [TCP Window Update] 50771 > rtsp [ACK] Seq=1
Ack=1 Win=524288 Len=0
10.100.0.5 10.100.0.2 RTSP 231 DESCRIBE
rtsp://10.100.0.2:554/PSIA/streaming/channels/201 RTSP/1.0
10.100.0.5 10.100.0.2 RTSP 268 SETUP
rtsp://10.100.0.2:554/PSIA/streaming/channels/201/trackID=1 RTSP/1.0
10.100.0.5 10.100.0.2 RTSP 253 PLAY
rtsp://10.100.0.2:554/PSIA/streaming/channels/201 RTSP/1.0
10.100.0.5 10.100.0.2 TCP 66 50772 > http [SYN] Seq=0 Win=8192 Len=0
MSS=1460 WS=256 SACK_PERM=1
10.100.0.5 10.100.0.2 TCP 54 50772 > http [ACK] Seq=1 Ack=1 Win=65536 Len=0
10.100.0.5 10.100.0.2 HTTP 740 GET
/PSIA/System/Video/inputs/channels/2/capabilities HTTP/1.1
10.100.0.5 10.100.0.2 TCP 54 50772 > http [ACK] Seq=687 Ack=867 Win=64768
Len=0
10.100.0.5 10.100.0.2 TCP 54 50772 > http [FIN, ACK] Seq=687 Ack=867
Win=64768 Len=0
10.100.0.5 10.100.0.2 TCP 54 50771 > rtsp [ACK] Seq=591 Ack=893 Win=523264
Len=0 //далее те же пакеты - непосредственно вещание видеопотока
10.100.0.2 - регистратор, 10.100.0.5 - локальный ПК
Пакеты, перехваченные Wireshark`ом при работе через прокси:
10.100.0.5 185.44.хх.хх TCP 66 50853 > rtsp [SYN] Seq=0 Win=8192 Len=0
MSS=1460 WS=256 SACK_PERM=1
185.44.хх.хх 10.100.0.5 TCP 60 rtsp > 50853 [RST, ACK] Seq=1 Ack=1 Win=0
Len=0
10.100.0.5 185.44.хх.хх TCP 66 [TCP Retransmission] 50853 > rtsp [SYN] Seq=0
Win=8192 Len=0 MSS=1460 WS=256 SACK_PERM=1
185.44.хх.хх 10.100.0.5 TCP 60 rtsp > 50853 [RST, ACK] Seq=1 Ack=1 Win=0
Len=0
10.100.0.5 185.44.хх.хх TCP 62 [TCP Retransmission] 50853 > rtsp [SYN] Seq=0
Win=8192 Len=0 MSS=1460 SACK_PERM=1
10.100.0.1 10.100.0.5 ICMP 90 Redirect (Redirect for host)
185.44.хх.хх 10.100.0.5 TCP 60 rtsp > 50853 [RST, ACK] Seq=1 Ack=1 Win=0
Len=0
10.100.0.5 - тот же локальный ПК, 10.100.0.1 - шлюз, 185.44.хх.хх - белый ip
сервера с nginx.
Как я понимаю, nginx просто не пропускает rtsp пакеты.
Существует ли схема передачи rtsp-запросов в одну сторону и видеопотока в
другую через nginx?
З.Ы. Судя по всему, преобразование rtsp в rtmp (nginx-rtmp-module) не
подойдет для данной ситуации, т.к. веб-страница выполняет запрос именно по
rtsp.

Posted at Nginx Forum: http://forum.nginx.org/read.php?21,249275,249275#msg-249275



Подробная информация о списке рассылки nginx-ru