[FFmpeg-user] Connecting to NVR RTSP streams

Mike ffmpeg at norgie.net
Wed Dec 20 21:04:54 EET 2023


Folks,

I have been playing around trying to find a better way to access a NVR
which I own.  The official method is a web page with some shonkly
JAVAscript and a UX that was desigend by someone who, presumably, had a
sideline in BDSM.  The video is accessed over RTSP via a shonky client
written in M$ Silverlight.

I am attempting to write my own client to avoid having to keep an
ancient version of Internet Exploder running and because I enjoy
<s>pain</> a challenge.

From what I can see, the video works over something that looks like but
isn't entirely RTSP.  Here's a packet trace:

DESCRIBE rtsp://192.168.0.87/live.001 RTSP/1.0
CSeq: 1
Accept: application/sdp, application/rtsl
Authorization: 0805459323-01-16

.RTSP/1.0 200 OK
CSeq: 1
Date: 03/25/21 10:54:18
Content-Length: 88
Content-Type: text/parameters

v=0
i=camera_name:CAM 01
i=ptz_protocol:NONE
m=video 0 TCP RTP/AVP 95 H.264 704_480

.SETUP rtsp://192.168.0.87/live.001 RTSP/1.0
CSeq: 2
Transport: RTP/AVP/TCP;unicast
Authorization: 0805459323-01-16

.RTSP/1.0 200 OK
CSeq: 2
Date: 03/25/21 10:54:18
Session: 337
Transport: RTP/AVP/TCP;unicast;server_port=4522
.PLAY rtsp://192.168.0.87/live.001 RTSP/1.0
CSeq: 3
Session: 337
Range: clock=20210325T105405-
Speed: +1.0
Bandwidth: 2048
Authorization: 0805459323-01-16

.RTSP/1.0 200 OK
CSeq: 3
Date: 03/25/21 10:54:18

.TEARDOWN rtsp://192.168.0.87/live.001 RTSP/1.0
CSeq: 4
Session: 337
Authorization: 0805459323-01-16

.RTSP/1.0 200 OK
CSeq: 4
Date: 03/25/21 10:54:25

The first issue appears to be dealing with the Authorization header.
The "0805459323-01-16" auth string is something given to the broswer
over a seperate command and control service.  Giving rise to my first
question:

If I have the string, can I somehow configure FFMPEG to send the auth
header?  A google suggested that -header can be used but this did not
work for me.

Question two is similar: can one configurate FFMPEG to send the RANGE
header?  Google seems to suggest not but I thought I'd ask if anyone
knew something Google didn't.

Question three: If not, can one write my own RTSP client to handle the
command and control and then point FFMPEG to the RTP port to handle
playing the video?

Question 4: If I sound completely nuts, is there a more sensible way to
be going about this?

Thanks in advance,
Mike.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <https://ffmpeg.org/pipermail/ffmpeg-user/attachments/20231220/abf38ee9/attachment.sig>


More information about the ffmpeg-user mailing list