RFC(rtsp、rtp、sdp)とtutorialを使用して、NodeJsでRTSPサーバを実装しています。なぜVLCはサーバーにrtsp PLAYリクエストを送信しませんか?
VLCを使用して実装をテストしていますが、この例ではうまくいきますが(チュートリアルの最後のリンク)、サーバーの途中で停止します。 私はいくつかのRFC準拠の問題を疑っていますが、私はそれを見つけることができず、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メッセージ:WiresharkのとC++サーバの実装を実行し、それに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応答で空行が見つからなかったことが判明しました。その結果、私は様々な量の改行、ids、異なる日付を追加しようとしましたが、異なる場所にはないものの、サイコロはありません。
詳細情報が必要な場合はお知らせください。
SETUP回答の最後に '\ r \ n 'を追加しようとしましたか? HTTPの場合と同様に、ヘッダと本文の間の分離は空の行です。 – mpromonet