djwackey / dorsvr Goto Github PK
View Code? Open in Web Editor NEWGo RTSP Streaming Server
License: GNU Lesser General Public License v2.1
Go RTSP Streaming Server
License: GNU Lesser General Public License v2.1
I find the all doc, but not found this information,
please tell me how to do?
../github.com/djwackey/dorsvr/livemedia/stream_state.go:14: undefined: RTCPInstance
make test
ok vendor/github.com/djwackey/dorsvr/groupsock 0.008s
# vendor/github.com/djwackey/dorsvr/livemedia
livemedia/ByteStreamFileSource.go:70: invalid operation: s.presentationTime.Usec + int64(s.lastPlayTime) (mismatched types int32 and int64)
livemedia/H264VideoStreamFramer.go:197: invalid operation: nextPT.Usec / 1e+06 + 1 / int64(p.UsingSource().frameRate) (mismatched types int32 and int64)
livemedia/MPEGVideoStreamFramer.go:71: invalid operation: f.FramedFilter.FramedSource.presentationTime.Usec += int64(pictureFractionOfSecond * 1e+06) (mismatched types int32 and int64)
livemedia/MultiFramedRTPSink.go:124: invalid operation: s.nextSendTime.Usec += int64(durationInMicroseconds) (mismatched types int32 and int64)
livemedia/MultiFramedRTPSink.go:125: invalid operation: s.nextSendTime.Sec += s.nextSendTime.Usec / 1000000 (mismatched types int64 and int32)
livemedia/MultiFramedRTPSink.go:190: invalid operation: secsDiff * 1000000 + (s.nextSendTime.Usec - timeNow.Usec) (mismatched types int64 and int32)
livemedia/MultiFramedRTPSource.go:332: invalid operation: packet.presentationTime.Usec += int64(frameDurationInMicroseconds) (mismatched types int32 and int64)
livemedia/MultiFramedRTPSource.go:334: invalid operation: packet.presentationTime.Sec += packet.presentationTime.Usec / 1000000 (mismatched types int64 and int32)
livemedia/MultiFramedRTPSource.go:504: invalid operation: (timeNow.Sec - timeReceived.Sec) * 1000000 + (timeNow.Usec - timeReceived.Usec) (mismatched types int64 and int32)
livemedia/RTCP.go:81: invalid operation: timeNow.Sec + timeNow.Usec / 1e+06 (mismatched types int64 and int32)
livemedia/RTCP.go:81: too many errors
FAIL vendor/github.com/djwackey/dorsvr/livemedia [build failed]
# vendor/github.com/djwackey/dorsvr/livemedia
livemedia/ByteStreamFileSource.go:70: invalid operation: s.presentationTime.Usec + int64(s.lastPlayTime) (mismatched types int32 and int64)
livemedia/H264VideoStreamFramer.go:197: invalid operation: nextPT.Usec / 1e+06 + 1 / int64(p.UsingSource().frameRate) (mismatched types int32 and int64)
livemedia/MPEGVideoStreamFramer.go:71: invalid operation: f.FramedFilter.FramedSource.presentationTime.Usec += int64(pictureFractionOfSecond * 1e+06) (mismatched types int32 and int64)
livemedia/MultiFramedRTPSink.go:124: invalid operation: s.nextSendTime.Usec += int64(durationInMicroseconds) (mismatched types int32 and int64)
livemedia/MultiFramedRTPSink.go:125: invalid operation: s.nextSendTime.Sec += s.nextSendTime.Usec / 1000000 (mismatched types int64 and int32)
livemedia/MultiFramedRTPSink.go:190: invalid operation: secsDiff * 1000000 + (s.nextSendTime.Usec - timeNow.Usec) (mismatched types int64 and int32)
livemedia/MultiFramedRTPSource.go:332: invalid operation: packet.presentationTime.Usec += int64(frameDurationInMicroseconds) (mismatched types int32 and int64)
livemedia/MultiFramedRTPSource.go:334: invalid operation: packet.presentationTime.Sec += packet.presentationTime.Usec / 1000000 (mismatched types int64 and int32)
livemedia/MultiFramedRTPSource.go:504: invalid operation: (timeNow.Sec - timeReceived.Sec) * 1000000 + (timeNow.Usec - timeReceived.Usec) (mismatched types int64 and int32)
livemedia/RTCP.go:81: invalid operation: timeNow.Sec + timeNow.Usec / 1e+06 (mismatched types int64 and int32)
livemedia/RTCP.go:81: too many errors
# vendor/github.com/djwackey/dorsvr/livemedia
livemedia/ByteStreamFileSource.go:70: invalid operation: s.presentationTime.Usec + int64(s.lastPlayTime) (mismatched types int32 and int64)
livemedia/H264VideoStreamFramer.go:197: invalid operation: nextPT.Usec / 1e+06 + 1 / int64(p.UsingSource().frameRate) (mismatched types int32 and int64)
livemedia/MPEGVideoStreamFramer.go:71: invalid operation: f.FramedFilter.FramedSource.presentationTime.Usec += int64(pictureFractionOfSecond * 1e+06) (mismatched types int32 and int64)
livemedia/MultiFramedRTPSink.go:124: invalid operation: s.nextSendTime.Usec += int64(durationInMicroseconds) (mismatched types int32 and int64)
livemedia/MultiFramedRTPSink.go:125: invalid operation: s.nextSendTime.Sec += s.nextSendTime.Usec / 1000000 (mismatched types int64 and int32)
livemedia/MultiFramedRTPSink.go:190: invalid operation: secsDiff * 1000000 + (s.nextSendTime.Usec - timeNow.Usec) (mismatched types int64 and int32)
livemedia/MultiFramedRTPSource.go:332: invalid operation: packet.presentationTime.Usec += int64(frameDurationInMicroseconds) (mismatched types int32 and int64)
livemedia/MultiFramedRTPSource.go:334: invalid operation: packet.presentationTime.Sec += packet.presentationTime.Usec / 1000000 (mismatched types int64 and int32)
livemedia/MultiFramedRTPSource.go:504: invalid operation: (timeNow.Sec - timeReceived.Sec) * 1000000 + (timeNow.Usec - timeReceived.Usec) (mismatched types int64 and int32)
livemedia/RTCP.go:81: invalid operation: timeNow.Sec + timeNow.Usec / 1e+06 (mismatched types int64 and int32)
livemedia/RTCP.go:81: too many errors
make: *** [test] Error 2
首先项目很赞,只是好奇,难道作者运行make test不会报错吗?
Since project github.com/go-xorm/core
has already updated (and the origin repository has been archived by the owner), we are required to update dependency of github.com/djwackey/gitea
from github.com/go-xorm/core
to xorm.io/core
, otherwise we may meet an error :
module declares its path as: xorm.io/core
but was required as: github.com/go-xorm/core
And here is the pr in the upstream: djwackey/gitea#2
Besides, it would be great to add a go.mod file to this project.
ANNOUNCE Method Not Allowed
···
a=Media_header:MEDIAINFO=4856414701010000C000C00000000000000000000000000064616875610000000000000000000000;
a=appversion:1.0
Failed to create read source.
No RTSP session is currently in progress
····
Everytime,run a rtsp Client , It just can run the RTSP DESCRIBE method! rtsp 的客服端能和其他类型的rtsp 服务器使用么?
Currently, rtspclient doesn't seem to support www authentication.
/root/go/src/github.com/djwackey/dorsvr/livemedia/rtcp_linux_amd64.go:97: undefined: EVENT_REPORT
/root/go/src/github.com/djwackey/dorsvr/livemedia/rtcp_linux_amd64.go:236: r.Sink.SSRC undefined (type IMediaSink has no field or method SSRC, but does have ssrc)
/root/go/src/github.com/djwackey/dorsvr/livemedia/rtcp_linux_amd64.go:386: r.Sink.SSRC undefined (type IMediaSink has no field or method SSRC, but does have ssrc)
/root/go/src/github.com/djwackey/dorsvr/livemedia/rtcp_linux_amd64.go:391: r.Sink.SSRC undefined (type IMediaSink has no field or method SSRC, but does have ssrc)
/root/go/src/github.com/djwackey/dorsvr/livemedia/rtp_interface.go:78: i.gs.TTL undefined (type *groupsock.GroupSock has no field or method TTL)
/root/go/src/github.com/djwackey/dorsvr/livemedia/rtp_interface.go:78: too many arguments in call to i.gs.Output
have ([]byte, uint, )
want ([]byte, uint)
/root/go/src/github.com/djwackey/dorsvr/livemedia/server_media_session.go:11: undefined: MEDIA_SERVER_VERSION
Hi,
I have multiple network interfaces (mainly due to Docker bridge interfaces).
When I run the example to connect to my ip cam, it creates a RTP UDP socket from the wrong interface and therefore I do not receive any of the UDP packet from the camera.
Am I missing something?
Shouldn't the local side of the UDP socket be in the same host as the RTSP host at least or shouldn't we offer the possible to select a Network Interface?
Eric
Hello guys, I was looking at the server, I haven't installed yet, I would like to use an IP camera which streams in RSTP and restream it to other options, the thing is, I want to push the RSTP directly from the source (the camera) into dorsvr, not the opposite way (dorsvr connect to the camera) because the camera is behind a VPN so, it doesn't have a public IP address.
Thanx!
When running the example on a live camera.
I got the following:
panic: interface conversion: interface {} is func([]uint8, uint) uint32, not func([]uint8, uint32) uint32
goroutine 18 [running]:
github.com/djwackey/dorsvr/livemedia.(*BufferedPacket).nextEnclosedFrameSize(0xc420174000, 0xc42013b00c, 0x4e14, 0x4e14, 0xc40000002a, 0xc420037de8)
/home/eric/go/src/github.com/djwackey/dorsvr/livemedia/multi_framed_rtp_source_linux_amd64.go:392 +0x95
github.com/djwackey/dorsvr/livemedia.(*BufferedPacket).getNextEnclosedFrameParameters(0xc420174000, 0xc42013b00c, 0x4e14, 0x4e14, 0x2a, 0x79aee0)
/home/eric/go/src/github.com/djwackey/dorsvr/livemedia/multi_framed_rtp_source_linux_amd64.go:399 +0x51
github.com/djwackey/dorsvr/livemedia.(*BufferedPacket).use(0xc420174000, 0xc42014e000, 0x186a0, 0x186a0, 0x186a0, 0x0)
/home/eric/go/src/github.com/djwackey/dorsvr/livemedia/multi_framed_rtp_source_linux_amd64.go:310 +0x79
github.com/djwackey/dorsvr/livemedia.(*MultiFramedRTPSource).doGetNextFrame1(0xc42011e700)
/home/eric/go/src/github.com/djwackey/dorsvr/livemedia/multi_framed_rtp_source_linux_amd64.go:91 +0x112
github.com/djwackey/dorsvr/livemedia.(*MultiFramedRTPSource).networkReadHandler(0xc42011e700)
/home/eric/go/src/github.com/djwackey/dorsvr/livemedia/multi_framed_rtp_source_linux_amd64.go:240 +0x45
github.com/djwackey/dorsvr/livemedia.(*MultiFramedRTPSource).(github.com/djwackey/dorsvr/livemedia.networkReadHandler)-fm()
/home/eric/go/src/github.com/djwackey/dorsvr/livemedia/multi_framed_rtp_source_linux_amd64.go:43 +0x2a
created by github.com/djwackey/dorsvr/livemedia.(*RTPInterface).startNetworkReading
/home/eric/go/src/github.com/djwackey/dorsvr/livemedia/rtp_interface.go:30 +0x44
It seems related to the commit 765284e wackey, 11 months ago (April 14th, 2017 10:29am) using uint32 replace uint.
When tested locally via vlc player, i get only a few frames per second.. Is there something im missing?
the same video works flawlessly when vlc streams from here https://www.wowza.com/demo/rtsp and it seems to me that the stream should be faster when no network overhead.
2018/03/13 15:12:05 [I] send response:
RTSP/1.0 200 OK
CSeq: 1
Date: 2018-03-13 15:12:05.295121783 +0800 CST m=+7.931249137
Public: [OPTIONS DESCRIBE SETUP TEARDOWN PLAY PAUSE RECORD GET_PARAMETER SET_PARAMETER]
2018/03/13 15:12:05 [I] Received 144 new bytes of request data.
panic: runtime error: slice bounds out of range
goroutine 34 [running]:
github.com/djwackey/dorsvr/livemedia.ParseRTSPRequestString(0xc420182240, 0x90, 0x90, 0x1, 0x1)
/md/gows/src/github.com/djwackey/dorsvr/livemedia/common.go:161 +0xc27
github.com/djwackey/dorsvr/rtspserver.(*RTSPClientConnection).handleRequestBytes(0xc420154100, 0xc420170000, 0x2710, 0x2710, 0x90, 0x0, 0x0)
/md/gows/src/github.com/djwackey/dorsvr/rtspserver/connection.go:88 +0x148
github.com/djwackey/dorsvr/rtspserver.(*RTSPClientConnection).incomingRequestHandler(0xc420154100)
/md/gows/src/github.com/djwackey/dorsvr/rtspserver/connection.go:57 +0x2e0
github.com/djwackey/dorsvr/rtspserver.(*RTSPServer).newClientConnection(0xc42013c100, 0xaa2e20, 0xc420158010)
/md/gows/src/github.com/djwackey/dorsvr/rtspserver/server.go:131 +0x5c
created by github.com/djwackey/dorsvr/rtspserver.(*RTSPServer).incomingConnectionHandler
/md/gows/src/github.com/djwackey/dorsvr/rtspserver/server.go:124 +0x139
ray@TF:/md/gows/src/github.com/djwackey/dorsvr$
RTSP server doesn't work with VLC or GStreamer players; full detailed information follows:
$ lsb_release -d
Description: Linux Mint 18.3 Sylvia
# (This is same as Ubuntu 16.04 Xenial)
$ vlc --version
VLC media player 2.2.2 Weatherwax (revision 2.2.2-0-g6259d80)
VLC version 2.2.2 Weatherwax (2.2.2-0-g6259d80)
Compiled by buildd on lgw01-09.buildd (Aug 8 2017 18:59:52)
Compiler: gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4)
$ gst-launch-1.0 --version
gst-launch-1.0 version 1.8.3
GStreamer 1.8.3
TERMINAL 1
# In case the required tools are not installed
sudo apt-get update
sudo apt-get install ffmpeg vlc
go get github.com/djwackey/dorsvr
cd "${GOPATH}/bin"
ffmpeg -i ~/Some_Video.mp4 -c:v h264 -c:a mp3 ./H264_MP3.ts
$ ./dorsvr
We use port 80 for optional RTSP-over-HTTP tunneling, or for HTTP live streaming (for indexed Transport Stream files only).
This server's URL: rtsp://192.168.1.19:8554/<filename>.
# (Launch the player on Terminal 2 ...)
2018/11/16 19:56:56 [I] Received 130 new bytes of request data.
2018/11/16 19:56:56 [I] Received a complete OPTIONS request:
OPTIONS rtsp://192.168.1.19:8554/H264_MP3.ts RTSP/1.0
CSeq: 2
User-Agent: LibVLC/2.2.2 (LIVE555 Streaming Media v2016.02.09)
2018/11/16 19:56:56 [I] send response:
RTSP/1.0 200 OK
CSeq: 2
Date: 2018-11-16 19:56:56.813855307 +0100 CET
Public: [OPTIONS DESCRIBE SETUP TEARDOWN PLAY PAUSE RECORD GET_PARAMETER SET_PARAMETER]
2018/11/16 19:56:56 [I] Received 156 new bytes of request data.
2018/11/16 19:56:56 [I] Received a complete DESCRIBE request:
DESCRIBE rtsp://192.168.1.19:8554/H264_MP3.ts RTSP/1.0
CSeq: 3
User-Agent: LibVLC/2.2.2 (LIVE555 Streaming Media v2016.02.09)
Accept: application/sdp
2018/11/16 19:56:56 [I] send response:
RTSP/1.0 200 OK
CSeq: 3
Date: 2018-11-16 19:56:56.814263358 +0100 CET
Content-Base: rtsp://192.168.1.19:8554/H264_MP3.ts/
Content-Type: application/sdp
Content-Length: 383
v=0
o=- 1542394616814064 1 IN IP4 192.168.1.19
s=MPEG Transport Stream, streamed by the Dor Media Server
i=H264_MP3.ts
t=0 0
a=tool:Dor Streaming Media v1.0.0.3
a=type:broadcast
a=control:*
a=range:npt=0-
a=x-qt-text-nam:MPEG Transport Stream, streamed by the Dor Media Server
a=x-qt-text-inf:H264_MP3.ts
m=data 0 RTP/AVP 33
c=IN IP4 0.0.0.0
b=AS:500
a=control:track1
2018/11/16 19:56:56 [I] default: EOF
2018/11/16 19:56:56 [I] disconnected the connection[192.168.1.19:43266].
2018/11/16 19:56:56 [I] Received 325 new bytes of request data.
2018/11/16 19:56:56 [I] Received a complete OPTIONS request:
OPTIONS rtsp://192.168.1.19:8554 RTSP/1.0
CSeq: 1
User-Agent: RealMedia Player Version 6.0.9.1235 (linux-2.0-libc6-i386-gcc2.95)
ClientChallenge: 9e26d33f2984236010ef6253fb1887f7
PlayerStarttime: [28/03/2003:22:50:23 00:00]
CompanyID: KnKV4M4I/B2FjJ1TToLycw==
GUID: 00000000-0000-0000-0000-000000000000
RegionData: 0
2018/11/16 19:56:56 [I] send response:
RTSP/1.0 200 OK
CSeq: 1
Date: 2018-11-16 19:56:56.815203618 +0100 CET
Public: [OPTIONS DESCRIBE SETUP TEARDOWN PLAY PAUSE RECORD GET_PARAMETER SET_PARAMETER]
2018/11/16 19:56:56 [I] Received 53 new bytes of request data.
2018/11/16 19:56:56 [I] Received a complete ClientID: request:
ClientID: Linux_2.4_6.0.9.1235_play32_RN01_EN_586
2018/11/16 19:56:56 [I] send response:
RTSP/1.0 405 Method Not Allowed
CSeq:
Date: 2018-11-16 19:56:56.815276157 +0100 CET
Allow: [OPTIONS DESCRIBE SETUP TEARDOWN PLAY PAUSE RECORD GET_PARAMETER SET_PARAMETER]
2018/11/16 19:56:56 [I] default: read tcp 192.168.1.19:8554->192.168.1.19:43268: read: connection reset by peer
2018/11/16 19:56:56 [I] default: EOF
2018/11/16 19:56:56 [I] disconnected the connection[192.168.1.19:43268].
TERMINAL 2
$ cvlc "rtsp://192.168.1.19:8554/H264_MP3.ts"
VLC media player 2.2.2 Weatherwax (revision 2.2.2-0-g6259d80)
[000000000126dff8] dummy interface: using the dummy interface module...
[00007fa9f8000e58] live555 demux error: Nothing to play for rtsp://192.168.1.19:8554/H264_MP3.ts
[00007fa9fc0009b8] core input error: open of `rtsp://192.168.1.19:8554/H264_MP3.ts' failed
[00007fa9fc0009b8] core input error: Your input can't be opened
[00007fa9fc0009b8] core input error: VLC is unable to open the MRL 'rtsp://192.168.1.19:8554/H264_MP3.ts'. Check the log for details.
TERMINAL 1
# In case the required tools are not installed
sudo apt-get update
sudo apt-get install ffmpeg \
gstreamer1.0-{tools,libav} \
gstreamer1.0-plugins-{base,good,bad,ugly}
go get github.com/djwackey/dorsvr
cd "${GOPATH}/bin"
ffmpeg -i ~/Some_Video.mp4 -c:v h264 -c:a mp3 ./H264_MP3.ts
$ ./dorsvr
We use port 80 for optional RTSP-over-HTTP tunneling, or for HTTP live streaming (for indexed Transport Stream files only).
This server's URL: rtsp://192.168.1.19:8554/<filename>.
# (Launch the player on Terminal 2 ...)
2018/11/16 19:59:20 [I] Received 456 new bytes of request data.
2018/11/16 19:59:20 [I] Received a complete OPTIONS request:
OPTIONS rtsp://192.168.1.19:8554/H264_MP3.ts RTSP/1.0
CSeq: 1
User-Agent: GStreamer/1.8.3
User-Agent: RealMedia Player Version 6.0.9.1235 (linux-2.0-libc6-i386-gcc2.95)
ClientChallenge: 9e26d33f2984236010ef6253fb1887f7
CompanyID: KnKV4M4I/B2FjJ1TToLycw==
GUID: 00000000-0000-0000-0000-000000000000
RegionData: 0
PlayerStarttime: [28/03/2003:22:50:23 00:00]
ClientID: Linux_2.4_6.0.9.1235_play32_RN01_EN_586
Date: Fri, 16 Nov 2018 18:59:20 GMT
2018/11/16 19:59:20 [I] send response:
RTSP/1.0 200 OK
CSeq: 1
Date: 2018-11-16 19:59:20.256054777 +0100 CET
Public: [OPTIONS DESCRIBE SETUP TEARDOWN PLAY PAUSE RECORD GET_PARAMETER SET_PARAMETER]
2018/11/16 19:59:20 [I] Received 158 new bytes of request data.
2018/11/16 19:59:20 [I] Received a complete DESCRIBE request:
DESCRIBE rtsp://192.168.1.19:8554/H264_MP3.ts RTSP/1.0
CSeq: 2
User-Agent: GStreamer/1.8.3
Accept: application/sdp
Date: Fri, 16 Nov 2018 18:59:20 GMT
2018/11/16 19:59:20 [I] send response:
RTSP/1.0 200 OK
CSeq: 2
Date: 2018-11-16 19:59:20.256627031 +0100 CET
Content-Base: rtsp://192.168.1.19:8554/H264_MP3.ts/
Content-Type: application/sdp
Content-Length: 383
v=0
o=- 1542394760256422 1 IN IP4 192.168.1.19
s=MPEG Transport Stream, streamed by the Dor Media Server
i=H264_MP3.ts
t=0 0
a=tool:Dor Streaming Media v1.0.0.3
a=type:broadcast
a=control:*
a=range:npt=0-
a=x-qt-text-nam:MPEG Transport Stream, streamed by the Dor Media Server
a=x-qt-text-inf:H264_MP3.ts
m=data 0 RTP/AVP 33
c=IN IP4 0.0.0.0
b=AS:500
a=control:track1
2018/11/16 19:59:20 [I] Received 189 new bytes of request data.
2018/11/16 19:59:20 [I] Received a complete SETUP request:
SETUP rtsp://192.168.1.19:8554/H264_MP3.ts/track1 RTSP/1.0
CSeq: 3
User-Agent: GStreamer/1.8.3
Transport: RTP/AVP;unicast;client_port=33166-33167
Date: Fri, 16 Nov 2018 18:59:20 GMT
2018/11/16 19:59:20 [I] send response:
RTSP/1.0 200 OK
CSeq: 3
Date: 2018-11-16 19:59:20.25785711 +0100 CET
Transport: RTP/AVP;unicast;destination=192.168.1.19;source=192.168.1.19;client_port=33166-33167;server_port=6970-6971
Session: 6A3461B6
2018/11/16 19:59:20 [I] Received 164 new bytes of request data.
2018/11/16 19:59:20 [I] Received a complete PLAY request:
PLAY rtsp://192.168.1.19:8554/H264_MP3.ts/ RTSP/1.0
CSeq: 4
User-Agent: GStreamer/1.8.3
Range: npt=0-
Session: 6A3461B6
Date: Fri, 16 Nov 2018 18:59:20 GMT
2018/11/16 19:59:20 [I] send response:
RTSP/1.0 200 OK
CSeq: 4
Date: 2018-11-16 19:59:20.25993928 +0100 CET
Range: npt=0.000-
Session: 6A3461B6
RTP-INFO: url=rtsp://192.168.1.19:8554/H264_MP3.ts/track1;seq=7144;rtptime=471198779
2018/11/16 19:59:20 [I] sendReport
2018/11/16 19:59:21 [W] pt: 201
2018/11/16 19:59:21 [I] RTCP_PT_RR
2018/11/16 19:59:21 [W] pt: 202
2018/11/16 19:59:21 [I] validated entire RTCP packet
2018/11/16 19:59:25 [I] Received 153 new bytes of request data.
2018/11/16 19:59:25 [I] Received a complete TEARDOWN request:
TEARDOWN rtsp://192.168.1.19:8554/H264_MP3.ts/ RTSP/1.0
CSeq: 5
User-Agent: GStreamer/1.8.3
Session: 6A3461B6
Date: Fri, 16 Nov 2018 18:59:25 GMT
2018/11/16 19:59:25 [I] send response:
RTSP/1.0 200 OK
CSeq: 5
Date: 2018-11-16 19:59:25.267010016 +0100 CET
2018/11/16 19:59:25 [.../rtcp_linux_amd64.go:119 incomingReportHandler)-fm()] [E] failed to read.read udp [::]:6971: use of closed network connection
2018/11/16 19:59:25 [I] incomingReportHandler ending.
2018/11/16 19:59:25 [I] default: EOF
2018/11/16 19:59:25 [I] disconnected the connection[192.168.1.19:43276].
2018/11/16 19:59:25 [I] Received 456 new bytes of request data.
2018/11/16 19:59:25 [I] Received a complete OPTIONS request:
OPTIONS rtsp://192.168.1.19:8554/H264_MP3.ts RTSP/1.0
CSeq: 1
User-Agent: GStreamer/1.8.3
User-Agent: RealMedia Player Version 6.0.9.1235 (linux-2.0-libc6-i386-gcc2.95)
ClientChallenge: 9e26d33f2984236010ef6253fb1887f7
CompanyID: KnKV4M4I/B2FjJ1TToLycw==
GUID: 00000000-0000-0000-0000-000000000000
RegionData: 0
PlayerStarttime: [28/03/2003:22:50:23 00:00]
ClientID: Linux_2.4_6.0.9.1235_play32_RN01_EN_586
Date: Fri, 16 Nov 2018 18:59:25 GMT
2018/11/16 19:59:25 [I] send response:
RTSP/1.0 200 OK
CSeq: 1
Date: 2018-11-16 19:59:25.268685086 +0100 CET
Public: [OPTIONS DESCRIBE SETUP TEARDOWN PLAY PAUSE RECORD GET_PARAMETER SET_PARAMETER]
2018/11/16 19:59:25 [I] Received 158 new bytes of request data.
2018/11/16 19:59:25 [I] Received a complete DESCRIBE request:
DESCRIBE rtsp://192.168.1.19:8554/H264_MP3.ts RTSP/1.0
CSeq: 2
User-Agent: GStreamer/1.8.3
Accept: application/sdp
Date: Fri, 16 Nov 2018 18:59:25 GMT
2018/11/16 19:59:25 [I] send response:
RTSP/1.0 200 OK
CSeq: 2
Date: 2018-11-16 19:59:25.272600609 +0100 CET
Content-Base: rtsp://192.168.1.19:8554/H264_MP3.ts/
Content-Type: application/sdp
Content-Length: 383
v=0
o=- 1542394765269642 1 IN IP4 192.168.1.19
s=MPEG Transport Stream, streamed by the Dor Media Server
i=H264_MP3.ts
t=0 0
a=tool:Dor Streaming Media v1.0.0.3
a=type:broadcast
a=control:*
a=range:npt=0-
a=x-qt-text-nam:MPEG Transport Stream, streamed by the Dor Media Server
a=x-qt-text-inf:H264_MP3.ts
m=data 0 RTP/AVP 33
c=IN IP4 0.0.0.0
b=AS:500
a=control:track1
2018/11/16 19:59:25 [I] Received 185 new bytes of request data.
2018/11/16 19:59:25 [I] Received a complete SETUP request:
SETUP rtsp://192.168.1.19:8554/H264_MP3.ts/track1 RTSP/1.0
CSeq: 3
User-Agent: GStreamer/1.8.3
Transport: RTP/AVP/TCP;unicast;interleaved=0-1
Date: Fri, 16 Nov 2018 18:59:25 GMT
Failed to listen UDP address. listen udp :6970: bind: address already in use
2018/11/16 19:59:25 [I] send response:
RTSP/1.0 200 OK
CSeq: 3
Date: 2018-11-16 19:59:25.275709929 +0100 CET
Transport: RTP/AVP/TCP;unicast;destination=192.168.1.19;source=192.168.1.19;interleaved=0-2
Session: 0C231EBC
2018/11/16 19:59:25 [I] Received 164 new bytes of request data.
2018/11/16 19:59:25 [I] Received a complete PLAY request:
PLAY rtsp://192.168.1.19:8554/H264_MP3.ts/ RTSP/1.0
CSeq: 4
User-Agent: GStreamer/1.8.3
Range: npt=0-
Session: 0C231EBC
Date: Fri, 16 Nov 2018 18:59:25 GMT
2018/11/16 19:59:25 [I] send response:
RTSP/1.0 200 OK
CSeq: 4
Date: 2018-11-16 19:59:25.276985632 +0100 CET
Range: npt=0.000-
Session: 0C231EBC
RTP-INFO: url=rtsp://192.168.1.19:8554/H264_MP3.ts/track1;seq=22048;rtptime=2443915851
2018/11/16 19:59:25 [I] sendReport
2018/11/16 19:59:26 [I] Received 60 new bytes of request data.
2018/11/16 19:59:26 [I] Received a complete $�8�É�g��ï�Ê
g���user27863378@host-4de0957� request:
$�8���g�����
g�����user27863378@host-4de0957� GStreamer
2018/11/16 19:59:26 [I] send response:
RTSP/1.0 405 Method Not Allowed
CSeq:
Date: 2018-11-16 19:59:26.955664338 +0100 CET
Allow: [OPTIONS DESCRIBE SETUP TEARDOWN PLAY PAUSE RECORD GET_PARAMETER SET_PARAMETER]
2018/11/16 19:59:48 [I] Received 17 new bytes of request data.
2018/11/16 19:59:48 [I] Received a complete 0957� request:
0957� GStreamer
2018/11/16 19:59:48 [I] send response:
RTSP/1.0 405 Method Not Allowed
CSeq:
Date: 2018-11-16 19:59:48.271079383 +0100 CET
Allow: [OPTIONS DESCRIBE SETUP TEARDOWN PLAY PAUSE RECORD GET_PARAMETER SET_PARAMETER]
2018/11/16 19:59:57 [I] Received 14 new bytes of request data.
2018/11/16 19:59:57 [I] Received a complete 7� request:
7� GStreamer
2018/11/16 19:59:57 [I] send response:
RTSP/1.0 405 Method Not Allowed
CSeq:
Date: 2018-11-16 19:59:57.280054054 +0100 CET
Allow: [OPTIONS DESCRIBE SETUP TEARDOWN PLAY PAUSE RECORD GET_PARAMETER SET_PARAMETER]
TERMINAL 2
export GST_DEBUG=3
$ gst-launch-1.0 playbin uri="rtsp://192.168.1.19:8554/H264_MP3.ts"
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Progress: (open) Opening Stream
Progress: (connect) Connecting to rtsp://192.168.1.19:8554/H264_MP3.ts
Progress: (open) Retrieving server options
Progress: (open) Retrieving media info
Progress: (request) SETUP stream 0
Progress: (open) Opened Stream
Setting pipeline to PLAYING ...
New clock: GstSystemClock
Progress: (request) Sending PLAY request
Progress: (request) Sending PLAY request
0:00:00.021431603 27621 0x7f06c0058800 FIXME default gstutils.c:3766:gst_pad_create_stream_id_internal:<fakesrc0:src> Creating random stream-id, consider implementing a deterministic way of creating a stream-id
Progress: (request) Sent PLAY request
0:00:05.029553566 27621 0x174ad90 WARN rtspsrc gstrtspsrc.c:4879:gst_rtspsrc_reconnect:<source> warning: Could not receive any UDP packets for 5.0000 seconds, maybe your firewall is blocking it. Retrying using a tcp connection.
WARNING: from element /GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0/GstRTSPSrc:source: Could not read from resource.
Additional debug info:
gstrtspsrc.c(4879): gst_rtspsrc_reconnect (): /GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0/GstRTSPSrc:source:
Could not receive any UDP packets for 5.0000 seconds, maybe your firewall is blocking it. Retrying using a tcp connection.
In summary, neither VLC nor GStreamer (via the GstRTSPSrc element) are able to play the RTSP stream. README doesn't show expected usage, either. Is this publishing the given <filename>
?
root@StreamEdge01:~/go/src/github.com/djwackey/dorsvr# make test
ok github.com/djwackey/dorsvr/groupsock 0.006s
livemedia/stream_state.go:116: s.rtcpInstance.destroy undefined (type *RTCPInstance has no field or method destroy)
FAIL github.com/djwackey/dorsvr/livemedia [build failed]
livemedia/stream_state.go:116: s.rtcpInstance.destroy undefined (type *RTCPInstance has no field or method destroy)
livemedia/stream_state.go:116: s.rtcpInstance.destroy undefined (type *RTCPInstance has no field or method destroy)
makefile:5: recipe for target 'test' failed
make: *** [test] Error 2
Using version 1.6 also not support.
any idea?
thanks
make test
ok _/home/ec2-user/rtsp/dorsvr/groupsock 0.002s
livemedia/rtcp_from_spec.go:12:9: undefined: groupsock.OurRandom
FAIL _/home/ec2-user/rtsp/dorsvr/livemedia [build failed]
../../go/src/github.com/djwackey/dorsvr/livemedia/rtcp_from_spec.go:12:9: undefined: groupsock.OurRandom
../../go/src/github.com/djwackey/dorsvr/livemedia/rtcp_from_spec.go:12:9: undefined: groupsock.OurRandom
make: *** [test] Error 2
当客户端(VLC)关闭以后,server会一直存在use of closed network connection
=====================
2017/06/02 18:49:49 [I] default: read tcp xxx.xx.76.37:8554->xxx.xx.125.66:9468: use of closed network connection
2017/06/02 18:49:49 [I] default: read tcp xxx.xx.76.37:8554->xxx.xx.125.66:9468: use of closed network connection
2017/06/02 18:49:49 [I] default: read tcp xxx.xx.76.37:8554->xxx.xx.125.66:18547: use of closed network connection
2017/06/02 18:49:49 [I] default: read tcp xxx.xx.76.37:8554->xxx.xx.125.66:9468: use of closed network connection
2017/06/02 18:49:49 [I] default: read tcp xxx.xx.76.37:8554->xxx.xx.125.66:18547: use of closed network connection
2017/06/02 18:49:49 [I] default: read tcp xxx.xx.76.37:8554->xxx.xx.125.66:18547: use of closed network connection
2017/06/02 18:49:49 [I] default: read tcp xxx.xx.76.37:8554->xxx.xx.125.66:18547: use of closed network connection
2017/06/02 18:49:49 [I] default: read tcp xxx.xx.76.37:8554->xxx.xx.125.66:18547: use of closed network connection
2017/06/02 18:49:49 [I] default: read tcp xxx.xx.76.37:8554->xxx.xx.125.66:18547: use of closed network connection
2017/06/02 18:49:49 [I] default: read tcp xxx.xx.76.37:8554->xxx.xx.125.66:18547: use of closed network connection
2017/06/02 18:49:49 [I] default: read tcp xxx.xx.76.37:8554->xxx.xx.125.66:18547: use of closed network connection
2017/06/02 18:49:49 [I] default: read tcp xxx.xx.76.37:8554->xxx.xx.125.66:9468: use of closed network connection
2017/06/02 18:49:49 [I] default: read tcp xxx.xx.76.37:8554->xxx.xx.125.66:9468: use of closed network connection
2017/06/02 18:49:49 [I] default: read tcp xxx.xx.76.37:8554->xxx.xx.125.66:9468: use of closed network connection
2017/06/02 18:49:49 [I] default: read tcp xxx.xx.76.37:8554->xxx.xx.125.66:9468: use of closed network connection
2017/06/02 18:49:49 [I] default: read tcp xxx.xx.76.37:8554->xxx.xx.125.66:9468: use of closed network connection
2017/06/02 18:49:49 [I] default: read tcp xxx.xx.76.37:8554->xxx.xx.125.66:9468: use of closed network connection
2017/06/02 18:49:49 [I] default: read tcp xxx.xx.76.37:8554->xxx.xx.125.66:9468: use of closed network connection
C:\Users\User> go get github.com/djwackey/dorsvR/
C:\mygo\src\github.com\djwackey\dorsvr\livemedia\stream_state.go:14:23: undefined: RTCPInstance
it just like live555 at first glance.
Hi, my goal is to serve an rtsp stream from a file. I'm not sure I understand how the whole thing works but when I start the server of course it's expecting an authentication. I did this:
authDB := auth.NewAuthDatabase("")
authDB.InsertUserRecord("admin", "password")
but I get:
panic: assignment to entry in nil map
Looking at the code
Line 8 in b5cdb8e
It'd be nice to have some example code for a basic server which serves mp4 files for instance.
Thanks
I tried to push video steams to dorsvr server but the server refused the ANNOUNCE requests and returned a 405 Method Not Allowed
error.
I was using a streamer(encoder) called Larix Broadcaster
v1.0.31 on my Android device. It tried to push camera clips to the server, but failed due to a unknown connection failure
.
On the other hand, VLC player cannot open the rtsp link.
These logs are printed
We use port 80 for optional RTSP-over-HTTP tunneling, or for HTTP live streaming (for indexed Transport Stream files only).
This server's URL: rtsp://172.17.0.1:8554/<filename>.
2017/08/23 14:33:38 [I] Received 88 new bytes of request data.
2017/08/23 14:33:38 [I] Received a complete OPTIONS request:
OPTIONS rtsp://192.168.10.187:8554/hwcam RTSP/1.0
CSeq: 1
User-Agent: Larix/1.0.31
2017/08/23 14:33:38 [I] send response:
RTSP/1.0 200 OK
CSeq: 1
Date: 2017-08-23 14:33:38.390808291 +0800 CST
Public: [OPTIONS DESCRIBE SETUP TEARDOWN PLAY PAUSE RECORD GET_PARAMETER SET_PARAMETER]
2017/08/23 14:33:38 [I] Received 536 new bytes of request data.
2017/08/23 14:33:38 [I] Received a complete ANNOUNCE request:
ANNOUNCE rtsp://192.168.10.187:8554/hwcam RTSP/1.0
Content-Type: application/sdp
CSeq: 2
User-Agent: Larix/1.0.31
Content-Length: 395
v=0
m=video 0 RTP/AVP/TCP 96
a=rtpmap:96 H264/90000
a=fmtp:96 packetization-mode=1; sprop-parameter-sets=Z0LgHqtAUB7QgAAAAwCAAAAecCAAPQkAAehJaxsDxQqo,KM48gA==; profile-level-id=42e01e
a=control:streamid=0
m=audio 0 RTP/AVP/TCP 97
a=rtpmap:97 mpeg4-generic/44100/1
a=fmtp:97 profile-level-id=1;mode=AAC-hbr;sizelength=13;indexlength=3;indexdeltalength=3;config=1208
a=control:streamid=1
2017/08/23 14:33:38 [I] send response:
RTSP/1.0 405 Method Not Allowed
CSeq: 2
Date: 2017-08-23 14:33:38.39978622 +0800 CST
Allow: [OPTIONS DESCRIBE SETUP TEARDOWN PLAY PAUSE RECORD GET_PARAMETER SET_PARAMETER]
2017/08/23 14:33:38 [I] default: EOF
2017/08/23 14:33:38 [I] end connection[192.168.10.139:42475].
Has anyone ever got a similar error? How can I do with it? Many thanks.
Opening connection to 192.168.88.253, port 554...
...remote connection opened
Sending request:
DESCRIBE rtsp://192.168.88.253:554/user=admin&password=&channel=1&stream=0 RTSP/1.0
CSeq: 2
User-Agent: dorcli (Dor Streaming Media v1.0.0.3)
Accept: application/sdp
Received 449 new bytes of response data.
Received a complete DESCRIBE response:
RTSP/1.0 200 OK
CSeq: 2
Content-Base: rtsp://192.168.88.253:554/user=admin&password=&channel=1&stream=0/
Content-Type: application/sdp
Content-Length: 287
v=0
o=- 2208990726 2208990736 IN IP4 127.0.0.1
s=Video Server Session
c=IN IP4 0.0.0.0
t=0 0
a=control:*
a=range:npt=0-
m=video 0 RTP/AVP 26
c=IN IP4 0.0.0.0
a=control:trackID=1
m=audio 0 RTP/AVP 97
a=rtpmap:97 G726-32/8000
a=fmtp:97
c=IN IP4 0.0.0.0
a=control:trackID=2
Failed to create read source.
No RTSP session is currently in progress
No RTSP session is currently in progress
^Csignal: interrupt
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.