Comments (6)
Was able to solve it.
from yellowstone.
Great catch! I'll take a closer look and add this to the repo soon.
from yellowstone.
Could you uncomment any log lines and post the entire log up till that point? This may be a feature we don't support right now--not sure yet.
Thanks!
Michael
from yellowstone.
Sure, the full log:
zooly@dev18:~/yellowstone/examples$ node wowza.js
C->S: OPTIONS rtsp://192.168.0.248:8554/stream RTSP/1.0
CSeq: 1
User-Agent: yellowstone/3.xS->C: RTSP/1.0 200 OK
CSeq: 1
Public: OPTIONS, DESCRIBE, ANNOUNCE, GET_PARAMETER, PAUSE, PLAY, RECORD, SETUP, SET_PARAMETER, TEARDOWN
Server: GStreamer RTSP server
Date: Wed, 28 Aug 2019 17:59:47 GMTC->S: DESCRIBE rtsp://192.168.0.248:8554/stream RTSP/1.0
CSeq: 2
User-Agent: yellowstone/3.x
Accept: application/sdpS->C: v=0
o=- 2264366194808406837 1 IN IP4 192.168.0.248
s=Session streamed with GStreamer
i=rtsp-server
t=0 0
a=tool:GStreamer
a=type:broadcast
a=control:*
a=range:npt=now-
m=video 0 RTP/AVP 96
c=IN IP4 0.0.0.0
a=rtpmap:96 H264/90000
a=framerate:60
a=fmtp:96 packetization-mode=1;profile-level-id=424015;sprop-parameter-sets=Z0JAKJWgFAFuQA==,aM48gA==
a=control:stream=0
a=ts-refclk:local
a=mediaclk:sender
v=0
o=- 2264366194808406837 1 IN IP4 192.168.0.248
s=Session streamed with GStreamer
i=rtsp-server
t=0 0
a=tool:GStreamer
a=type:broadcast
a=control:*
a=range:npt=now-
m=video 0 RTP/AVP 96
c=IN IP4 0.0.0.0
a=rtpmap:96 H264/90000
a=framerate:60
a=fmtp:96 packetization-mode=1;profile-level-id=424015;sprop-parameter-sets=Z0JAKJWgFAFuQA==,aM48gA==
a=control:stream=0
a=ts-refclk:local
a=mediaclk:senderC->S: SETUP rtsp://192.168.0.248:8554/stream/stream=0 RTSP/1.0
CSeq: 3
User-Agent: yellowstone/3.x
Transport: RTP/AVP/TCP;interleaved=0-1S->C: RTSP/1.0 200 OK
CSeq: 3
Transport: RTP/AVP/TCP;unicast;interleaved=0-1;ssrc=CF588B1E;mode="PLAY"
Server: GStreamer RTSP server
Session: Bwai+coDnS-txpdu
Date: Wed, 28 Aug 2019 17:59:48 GMTConnected. Video format is H264
C->S: PLAY rtsp://192.168.0.248:8554/stream/stream=0 RTSP/1.0
CSeq: 4
User-Agent: yellowstone/3.x
Session: Bwai+coDnS-txpduS->C: RTSP/1.0 460 Only aggregate operation allowed
CSeq: 4
Server: GStreamer RTSP server
Date: Wed, 28 Aug 2019 17:59:48 GMT(node:7119) UnhandledPromiseRejectionWarning: Error: Bad RTSP status code 460!
at RTSPClient.responseHandler (/home/zooly/yellowstone/dist/RTSPClient.js:256:28)
at emitThree (events.js:141:20)
at RTSPClient.emit (events.js:217:7)
at RTSPClient._onData (/home/zooly/yellowstone/dist/RTSPClient.js:403:30)
at emitOne (events.js:116:13)
at Socket.emit (events.js:211:7)
at addChunk (_stream_readable.js:263:12)
at readableAddChunk (_stream_readable.js:250:11)
at Socket.Readable.push (_stream_readable.js:208:10)
at TCP.onread (net.js:607:20)
(node:7119) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:7119) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
^C
Thank you.
from yellowstone.
Just found this related topic: https://stackoverflow.com/questions/8699027/extract-audio-from-rtsp-link-for-android
So maybe (in the above case) it should send SETUP and PLAY for simply "/stream" insted of "/stream/stream=0" - if thats the way to request an aggregated stream?
In my understanding appending that control variable to the URL means that you want a specific part (audio/video/etc.) of a stream - which is a non-aggregated call.
from yellowstone.
The root cause of the problem is now fixed in commit 2028c2a so you should not need the new aggregate
flag. However your workaround correctly identified that the problem was Yellowstone mixed up Aggregate URLs and Media Stream URLS.
EG
Aggregate URL = rtsp://1.2.3.4/cats
Video Stream Media URL = rtsp://1.2.3.4/cats/streamID=0
Audio Stream Media URL = rtsp://1.2.3.4/cats/streamID=1
Meta data Media URL = rtsp://1.2.3.4/cats/streamID=2
Normally we use Aggregate in DESCRIBE, PLAY, TEARDOWN and the media stream URLs in SETUP
from yellowstone.
Related Issues (20)
- RTSP over Http? HOT 1
- KeepAlive not working on Axis IP camera HOT 2
- issues with url parsing if Axis camera HOT 1
- Keep alive not working with Live555 RTSP Proxy Server HOT 1
- UDP streaming not working from clients behind NAT HOT 3
- capturing data stream HOT 3
- Not getting any data HOT 8
- 使用海康摄像头的 推流延迟6秒左右 translation... The push stream delay of using Hikvision camera is about 6 seconds HOT 3
- Exception has occurred: Error: Bug in RTSP data framing, please file an issue with the author with stacktrace HOT 4
- application HOT 2
- Onvif backchannel HOT 4
- Seems like the client forgets to use use credentials? HOT 26
- The value of "offset" is out of range. It must be >= 0 and <= 4. Received 16 HOT 3
- TCP Issue HOT 4
- Playback Issue HOT 4
- how to close client HOT 6
- Most recent version available on NPM HOT 2
- RTSP server crashing causes node to crash as well
- Unable to play multiple streams HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from yellowstone.