Re: [Live-devel] BUGS in rtsp interleaved

2020-01-23 Thread Cihan Kömeçoğlu

Hi Ross,

Thanks for help and I solved the problem. The reason of problem is that 
RTPINTERFACE_BLOCKING_WRITE_TIMEOUT_MS value is not high enough and it 
causes failure send function in sendDataOverTCP.  Probably the root 
reason is poor network quality.


Thanks again

Sincerely.

On 22.01.2020 13:39, Ross Finlayson wrote:

Cihan,

Note that the ‘interleaving’ (RTP/RTCP-over-RTSP) is happening only for your 
‘front-end’ stream, which you are accessing using the VLC RTSP client 
application.  Unfortunately we can’t help you specifically with problems with 
VLC, as that is not our software.

Instead, for testing, I suggest that you use our “openRTSP” command-line RTSP 
client application as your ‘front-end’ RTSP client; see
http://www.live555.com/openRTSP/

However, I suspect that your problem, in reality, has nothing to do with 
‘interleaving’.  You can test this by first running
openRTSP rtsp://192.168.1.100:555/proxyStream
and then running
openRTSP -t rtsp://192.168.1.100:555/proxyStream

I suspect that you will end up with the same result in each case.

If the “LIVE555 Proxy Server” stops "sending RTP packets after several seconds”, 
then it most likely means that the ‘back end’ server (in your case, the "Hanua IP 
Cam”) has stopped streaming to the proxy server.  (Again, this would have nothing to do 
with ‘interleaving’, which is happening only with the ‘front end’ stream.)  The only way 
we could figure out what is happening with the ‘back end’ stream is for you to show us 
the diagnostic output from the proxy server (which you are giving “live555ProxyServer” 
the “-V” argument).


Ross Finlayson
Live Networks, Inc.
http://www.live555.com/


___
live-devel mailing list
live-devel@lists.live555.com
http://lists.live555.com/mailman/listinfo/live-devel
___
live-devel mailing list
live-devel@lists.live555.com
http://lists.live555.com/mailman/listinfo/live-devel


Re: [Live-devel] BUGS in rtsp interleaved

2020-01-23 Thread Ross Finlayson


> On Jan 23, 2020, at 1:32 AM, Cihan Kömeçoğlu  wrote:
> 
> Hi Ross,
> 
> Thanks for help and I solved the problem. The reason of problem is that 
> RTPINTERFACE_BLOCKING_WRITE_TIMEOUT_MS value is not high enough and it causes 
> failure send function in sendDataOverTCP.  Probably the root reason is poor 
> network quality.

Sigh…  By your own admission, your front-end stream’s output rate is exceeding 
the capacity of your network.  Then WHY, OH WHY are you trying to stream 
RTP-over-TCP on your front-end connection??

Once again:
If a RTP-over-TCP connection is so slow that it is eventually filling up the 
sender OS’s buffer, then that means that it’s exceeding the capacity of the TCP 
connection (which is based in part on the packet loss rate of the connection 
between the server and client; it can be *much* less than the nominal speed of 
your server’s network interface).  In this case it’s more efficient to stream 
over UDP instead.  Either way, you’ll get data loss, but the overall data loss 
rate will be less than it will be over the TCP connection.  Over TCP, the data 
loss will be clumped together (at the time(s) when the sender OS’s buffer keeps 
filling up), and the overall end-to-end latency (between sender and client) 
will be higher.

Also, if you get to a situation where your OS’s output buffer is filling up, 
the LIVE555 code is forced to start using blocking I/O for many of its network 
packet writes.  This will cause the server to stall everything else that it 
might be doing.  In your case, you are experiencing stalls of up to ***500 
ms***, which is crazy.

As I have explained many times, one should stream over TCP *only if* you have a 
firewall - between the server and client - that blocks UDP packets. You should 
never stream over TCP just because you want to avoid data loss.  If your 
stream’s data rate exceeds the capacity of the network connection 
(server->client), then you *will* lose data, no matter how you choose to stream 
it.  But it’s much better to stream over UDP.  However, if you really want to 
avoid all data loss, then you should be copying your data using something like 
HTTP, rather than streaming it.


Ross Finlayson
Live Networks, Inc.
http://www.live555.com/


___
live-devel mailing list
live-devel@lists.live555.com
http://lists.live555.com/mailman/listinfo/live-devel


Re: [Live-devel] BUGS in rtsp interleaved

2020-01-23 Thread Cihan Kömeçoğlu

Hi Ross,

Yes as you said , there is a firewall and nat between client and server. 
thats why I have to use TCP.


I will increase send buffer size also and thinking to change sendTCP 
function to not fail even sendbuffer is full.



On 23.01.2020 16:29, Ross Finlayson wrote:



On Jan 23, 2020, at 1:32 AM, Cihan Kömeçoğlu  wrote:

Hi Ross,

Thanks for help and I solved the problem. The reason of problem is that 
RTPINTERFACE_BLOCKING_WRITE_TIMEOUT_MS value is not high enough and it causes 
failure send function in sendDataOverTCP.  Probably the root reason is poor 
network quality.

Sigh…  By your own admission, your front-end stream’s output rate is exceeding 
the capacity of your network.  Then WHY, OH WHY are you trying to stream 
RTP-over-TCP on your front-end connection??

Once again:
If a RTP-over-TCP connection is so slow that it is eventually filling up the 
sender OS’s buffer, then that means that it’s exceeding the capacity of the TCP 
connection (which is based in part on the packet loss rate of the connection 
between the server and client; it can be *much* less than the nominal speed of 
your server’s network interface).  In this case it’s more efficient to stream 
over UDP instead.  Either way, you’ll get data loss, but the overall data loss 
rate will be less than it will be over the TCP connection.  Over TCP, the data 
loss will be clumped together (at the time(s) when the sender OS’s buffer keeps 
filling up), and the overall end-to-end latency (between sender and client) 
will be higher.

Also, if you get to a situation where your OS’s output buffer is filling up, 
the LIVE555 code is forced to start using blocking I/O for many of its network 
packet writes.  This will cause the server to stall everything else that it 
might be doing.  In your case, you are experiencing stalls of up to ***500 
ms***, which is crazy.

As I have explained many times, one should stream over TCP *only if* you have a 
firewall - between the server and client - that blocks UDP packets. You should 
never stream over TCP just because you want to avoid data loss.  If your stream’s 
data rate exceeds the capacity of the network connection (server->client), then 
you *will* lose data, no matter how you choose to stream it.  But it’s much better 
to stream over UDP.  However, if you really want to avoid all data loss, then you 
should be copying your data using something like HTTP, rather than streaming it.


Ross Finlayson
Live Networks, Inc.
http://www.live555.com/


___
live-devel mailing list
live-devel@lists.live555.com
http://lists.live555.com/mailman/listinfo/live-devel

___
live-devel mailing list
live-devel@lists.live555.com
http://lists.live555.com/mailman/listinfo/live-devel


Re: [Live-devel] BUGS in rtsp interleaved

2020-01-23 Thread Ross Finlayson


> On Jan 23, 2020, at 6:58 AM, Cihan Kömeçoğlu  wrote:
> 
> Hi Ross,
> 
> Yes as you said , there is a firewall and nat between client and server. 
> thats why I have to use TCP.
> 
> I will increase send buffer size also and thinking to change sendTCP function 
> to not fail even sendbuffer is full.

You still don’t get it.  If your stream is exceeding the capacity of your 
network, you *will* eventually get data loss, no matter how much buffering you 
add.  Your only solution is to reduce the data rate of your stream (e.g., by 
changing your encoding parameters).

(And if you modify the supplied code, you can expect no support on this mailing 
list.)


Ross Finlayson
Live Networks, Inc.
http://www.live555.com/


___
live-devel mailing list
live-devel@lists.live555.com
http://lists.live555.com/mailman/listinfo/live-devel


[Live-devel] Broken RTSP source sometime lead to handler not being called

2020-01-23 Thread Alexander Tumarov
I meet some problem with detecting that stream is broken.
The path it takes is like this:
It may be the case that connection is pending or while in connected state the 
command is send (write in sendRequest succeed) but reply is never arrived 
(RTSP source is overloaded for example). 
Is there any way to set or add timeout for commands being set so that a 
handler will be called upon timeout expiration?

Best regards,
Alexander.


___
live-devel mailing list
live-devel@lists.live555.com
http://lists.live555.com/mailman/listinfo/live-devel


Re: [Live-devel] Broken RTSP source sometime lead to handler not being called

2020-01-23 Thread Ross Finlayson
You’re going to have to be a lot more specific.

How are you using our software?  Are you using it as a RTSP client, a RTSP 
server, a RTSP proxy server, or in some other way?

And are you using one of our suppled applications, or are you referring to an 
application that you have written yourself (using our libraries)?

And what specifically is happening that is causing an issue for you?


Ross Finlayson
Live Networks, Inc.
http://www.live555.com/


___
live-devel mailing list
live-devel@lists.live555.com
http://lists.live555.com/mailman/listinfo/live-devel


Re: [Live-devel] BUGS in rtsp interleaved

2020-01-23 Thread Cihan Kömeçoğlu

I understand you no problem. I will handle it.

Maybe I could not clarify myself enough.

Thanks for your help.


On 23.01.2020 18:07, Ross Finlayson wrote:



On Jan 23, 2020, at 6:58 AM, Cihan Kömeçoğlu  wrote:

Hi Ross,

Yes as you said , there is a firewall and nat between client and server. thats 
why I have to use TCP.

I will increase send buffer size also and thinking to change sendTCP function 
to not fail even sendbuffer is full.

You still don’t get it.  If your stream is exceeding the capacity of your 
network, you *will* eventually get data loss, no matter how much buffering you 
add.  Your only solution is to reduce the data rate of your stream (e.g., by 
changing your encoding parameters).

(And if you modify the supplied code, you can expect no support on this mailing 
list.)


Ross Finlayson
Live Networks, Inc.
http://www.live555.com/


___
live-devel mailing list
live-devel@lists.live555.com
http://lists.live555.com/mailman/listinfo/live-devel

___
live-devel mailing list
live-devel@lists.live555.com
http://lists.live555.com/mailman/listinfo/live-devel