[Live-devel] Need advice on best way to proceed.
Frederik De Ruyck
frederik.deruyck at vsk.be
Fri Jun 3 01:07:13 PDT 2016
If you look at the ONVIF Device Test Tool (which you can only acquire if
your company has a paying Onvif membership) there is a test for
backchannel using rtp/rtsp/tcp and udp. You can find it under
diagnostics tab > real time streaming > audio backchannel > unicast >
backchannel - g711 (rtp/rtsp/tcp ||udp).
The test sets up everything required to be able to send and then plays a
10 second audio file. This tool is almost mandatory if you plan on
integrating a backchannel into your code. Not only because you can see
which soap data is send to the camera but also because so many camera's
don't work properly that you need to check support up front to be able
to rule out glitches on the camera side.
On my 2 camera's, I can play backchannel audio with UDP but not with
TCP, no audio is coming through the speaker even though it is send over
the network. I wonder that if what you say is true, then why did they
implement a TCP test for backchannel? You could say that when using UDP
it's on a separate socket so that's different, but for TCP? Onvif is the
standard, defining the soap messages etc, the protocol for communication
is still RTSP.
Note that onvif backchannel uses the RTSP require tag to check for
backchannel support on the camera side. Unfortunately, some camera's
deny the require tag so you need a workaround for that too. Try sending
require=someRandomString, if you get an Ok reply the camera is not
checking the require field.
Op 02-Jun-16 om 11:45 PM schreef Ross Finlayson:
> There’s really nothing in the RTSP specification (note, btw, that ‘ONVIF’ is not the RTSP specification) that provides for a RTSP server receiving media at the same time that it sends it. And as people have noted, there’s no support in our RTSP server implementation for this. So I suggest that you don’t use RTSP (and/or our RTSP server or client implementation) at all.
>
> However, it’s possible (and quite easy) to use the “LIVE555 Streaming Media” code to implement ‘full-duplex’ media (and by ‘full-duplex’, I presume you mean using the same socket for both sending and receiving media). To do this, just create a single “Groupsock” object for the socket, but use this *one* “Groupsock” object when creating both a “RTPSink” (subclass) object (for transmitting), and a “RTPSource” (subclass) object (for receiving).
>
> Similarly, for RTCP, you can either create a new socket (on even port #+1) and “Groupsock”, and create a single “RTCPInstance” for this, or else have this (single) “RTCPInstance” use the same socket and “Groupsock” that you used for RTP.
>
>
> Ross Finlayson
> Live Networks, Inc.
> http://www.live555.com/
>
>
> _______________________________________________
> live-devel mailing list
> live-devel at lists.live555.com
> http://lists.live555.com/mailman/listinfo/live-devel
More information about the live-devel
mailing list