sergio | 22 May 19:31 2015
Picon

live555ProxyServer closes source when last client disconnect (timeout)

Hi;

I am trying to use live555ProxyServer with an IP CAMERA, but when the last client(testRTSPClient) disconnects, after timeout the server closes the stream and when I connect the client again, it shows the message "Started playing session..." and nothing else happens.

Is there a way to detect the stream is not available anymore. This way I could restart the stream or this should be done by the proxyServer itself.

 

live555ProxyServer LOG:

ProxyServerMediaSubsession["H264"]::closeStreamSource()

ProxyServerMediaSubsession["H264"]::createNewRTPSink()

ProxyServerMediaSubsession["PCMU"]::createNewStreamSource(session id 929659699)
ProxyServerMediaSubsession["PCMU"]::createNewRTPSink()
Received 57 new bytes of response data.
Received a complete PLAY response:
RTSP/1.0 455 Method Not Valid In This State

 

testRTSPClient LOG:

[URL:"rtsp://192.168.1.128:8554/proxyStream/"]: Started playing session...

 

Thank you very much

 
_______________________________________________
live-devel mailing list
live-devel <at> lists.live555.com
http://lists.live555.com/mailman/listinfo/live-devel
Kevin Chen | 21 May 01:58 2015
Picon

mulitcast slow down network.

Hi all,

I basically have two problems on my RTSP server, I implement my RTSP server based on "testH264Vdieostreamer" example, so it is multicast both audio and video, one problem we found was that multicast will slow down the whole local network, especially for the wireless device, we noticed a lot of package loss, and the wireless device even stop play stream quite often, I know this maybe the defect of using multicast, it there have any way to improve this, especially for the wireless device.

The other problem is that the rtsp streaming address is remain the same even the host machine changed to a different IP, it is work fine at first when rtsp server was started, then I stopped the rtsp server( Medium::close( rtspServer ) ), and change host ip to a different one, then started the RTSPserver again, and the server was still broadcasting the old ip address, and client cannot receive any data, I compiled the live555 with enabling "ALLOW_RTSP_SERVER_PORT_RESUSE",
becuase if not do that, TIME-WAIT problem on socket will come out when restart the rtsp server, it that possible some of resource that was not released when close the Server, and cause the problem when the server started again? 

Thank you so much.

Kevin
--

_______________________________________________
live-devel mailing list
live-devel <at> lists.live555.com
http://lists.live555.com/mailman/listinfo/live-devel
Stas Tsymbalov | 19 May 17:08 2015
Picon

[PATCH] Groupsock: fix error reporting


Groupsock uses result of UsageEnvironment::getResultMsg as argument to
UsageEnvironment::setResultMsg which results in corrupted message
(original message is getting lost).
---
 groupsock/Groupsock.cpp | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

--

-- 
Stas Tsymbalov
TrueConf LLC
http://trueconf.com/
_______________________________________________
live-devel mailing list
live-devel <at> lists.live555.com
http://lists.live555.com/mailman/listinfo/live-devel
Stas Tsymbalov | 19 May 17:08 2015
Picon

[PATCH] GroupsockHelper: include errno in error message in case of send error

---
 groupsock/GroupsockHelper.cpp | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

--

-- 
Stas Tsymbalov
TrueConf LLC
http://trueconf.com/
_______________________________________________
live-devel mailing list
live-devel <at> lists.live555.com
http://lists.live555.com/mailman/listinfo/live-devel
Stas Tsymbalov | 19 May 17:08 2015
Picon

[PATCH 2/2] MPEG, H264, H265: add option to preserve presentation time from source


Sometimes it is desired to use presentation time already stored with
input frames. For example when data comes already split into frames (but
not NUL units) and if frame rate can't be determined from stream itself
or frames appear with irregular intervals or even skipped entirely.
This patch add option to copy presentation time from input source to
MPEG, H264, H265 stream framers.
---
 liveMedia/H264VideoStreamFramer.cpp            |  8 ++++----
 liveMedia/H264or5VideoStreamDiscreteFramer.cpp |  2 +-
 liveMedia/H264or5VideoStreamFramer.cpp         |  4 ++--
 liveMedia/H265VideoStreamFramer.cpp            |  8 ++++----
 liveMedia/MPEG1or2VideoStreamFramer.cpp        | 10 ++++++----
 liveMedia/MPEG4VideoStreamFramer.cpp           | 10 ++++++----
 liveMedia/MPEGVideoStreamFramer.cpp            |  6 +++++-
 liveMedia/StreamParser.hh                      |  2 ++
 liveMedia/include/H264VideoStreamFramer.hh     |  4 ++--
 liveMedia/include/H264or5VideoStreamFramer.hh  |  3 ++-
 liveMedia/include/H265VideoStreamFramer.hh     |  4 ++--
 liveMedia/include/MPEG1or2VideoStreamFramer.hh |  8 +++++---
 liveMedia/include/MPEG4VideoStreamFramer.hh    |  5 +++--
 liveMedia/include/MPEGVideoStreamFramer.hh     |  3 ++-
 14 files changed, 46 insertions(+), 31 deletions(-)

--

-- 
Stas Tsymbalov
TrueConf LLC
http://trueconf.com/
_______________________________________________
live-devel mailing list
live-devel <at> lists.live555.com
http://lists.live555.com/mailman/listinfo/live-devel
Stas Tsymbalov | 19 May 17:08 2015
Picon

[PATCH 1/2] H264or5VideoStreamFramer: fix parsing logic


Right now H264or5VideoStreamParser can return 0 from parse() without
requesting more data from input source which leads to frame
delivery process becomes stalled (as MPEGVideoStreamFramer::continueReadProcessing()
does not call afterGetting() in this case either).
This can happen for several reasons:
  1. Simply if input stream contains 2 or more consecutive start codes (AFAIK this
should never happen in valid byte stream, but parser should not break if
it happens).
  2. As a result of following sequence of events:
    a. Parser reads all bytes prior to next start code, then gets
interrupted because there is no more data available.
    b. stopGettingFrames() gets called on framer and next frame is requested
via getNextFrame(). This discards parsed data from previous frame and
parser now assumes that it is reading new frame and thus already read
start code.
    c. Parser receives next bytes from input source which are the start
code.

This patch moves start code parsing (and discarding) to the beginning of
parsing current frame. Additionaly multiple start codes in row are
treated like one.
---
 liveMedia/H264or5VideoStreamFramer.cpp | 36 ++++++++++++++++++++++------------
 1 file changed, 24 insertions(+), 12 deletions(-)

--

-- 
Stas Tsymbalov
TrueConf LLC
http://trueconf.com/
_______________________________________________
live-devel mailing list
live-devel <at> lists.live555.com
http://lists.live555.com/mailman/listinfo/live-devel
Stas Tsymbalov | 19 May 17:07 2015
Picon

[PATCH 4/4] StreamReplicator: add frame delivery timeout


Right now if for some reason one replica stops requesting frames from
replicator but dows not deactivates whole delivery process stops as
replicator patiently waits for this replica to request frames.

This patch adds optional frame delivery timeout to StreamReplicator
which functions as follows:
  After master replica receives frame, callback is scheduled to be
called after frameDeliveryTimeout microseconds. This callback
deactivates all replicas that didn't manage to request current frame in
time and advances replicator to next frame. Using 0 as frameDeliveryTimeout
disables this feature. Using this feature will allow other replicas to
operate mostly unaffected (other then onetime slowdown in delivery) by
such misbehaving replica.
  As a side effect this patch arranges all replicas created by
replicator in a list, which may be good for debugging purposes (right
now replicator does not hold are references to replicas that does not
request anything).
---
 liveMedia/StreamReplicator.cpp        | 53 +++++++++++++++++++++++++++++------
 liveMedia/include/StreamReplicator.hh | 10 +++++--
 2 files changed, 53 insertions(+), 10 deletions(-)

--

-- 
Stas Tsymbalov
TrueConf LLC
http://trueconf.com/
_______________________________________________
live-devel mailing list
live-devel <at> lists.live555.com
http://lists.live555.com/mailman/listinfo/live-devel
Stas Tsymbalov | 19 May 17:07 2015
Picon

[PATCH 3/4] StreamReplicator: try to deliver frame to master replica after replica is deactivated


Right now if replica that than has not requested current frame gets
deactivated and by that moment all other replicas received current
frame replicator never completes delivery to master replica (which it
should now) and whole delivery process gets stuck until some other
replica requests current frame.
---
 liveMedia/StreamReplicator.cpp | 4 ++++
 1 file changed, 4 insertions(+)

--

-- 
Stas Tsymbalov
TrueConf LLC
http://trueconf.com/
_______________________________________________
live-devel mailing list
live-devel <at> lists.live555.com
http://lists.live555.com/mailman/listinfo/live-devel
Stas Tsymbalov | 19 May 17:07 2015
Picon

[PATCH 2/4] StreamReplicator: correctly deactivate replicas received current frame


Right now if replica receives current frame and then deactivated before
replicator is advanced to next frame, logic which deceides when to
advance to the next frame gets broken (assertion on StreamReplicator.cpp:265
triggers and frame advances early).
This patch fixes this by decrementing fNumDeliveriesMadeSoFar when
deactivating replicas that received current frame (and hence fNumDeliveriesMadeSoFar
was incremented because of that). This also eliminates need in fDeliveryInProgress.
---
 liveMedia/StreamReplicator.cpp | 30 ++++++++++++++----------------
 1 file changed, 14 insertions(+), 16 deletions(-)

--

-- 
Stas Tsymbalov
TrueConf LLC
http://trueconf.com/
_______________________________________________
live-devel mailing list
live-devel <at> lists.live555.com
http://lists.live555.com/mailman/listinfo/live-devel
Stas Tsymbalov | 19 May 17:05 2015
Picon

[PATCH 1/4] StreamReplicator: deactivate replicas before removing them


Right now removing last replica triggers (wrongly) assertion on
StreamReplicator.cpp:108, because fNumPerlicas gets decremented before
deactivating.
Also if replicator is created with deleteWhenLastReplicaDies flag set
removing last replica triggers self deletion of replicator and later
deactivateStreamReplica() is called on already destroyed class,
potentially leading to crash.
---
  liveMedia/StreamReplicator.cpp | 10 +++++-----
  1 file changed, 5 insertions(+), 5 deletions(-)

--

-- 
Stas Tsymbalov
TrueConf LLC
http://trueconf.com/
_______________________________________________
live-devel mailing list
live-devel <at> lists.live555.com
http://lists.live555.com/mailman/listinfo/live-devel
basanth kumar varma | 19 May 15:22 2015

Convert .h264 into MP4 in iOS

Hi Team,

I am so happy after looking into you website http://www.live555.com/liveMedia/.
I need your team help to convert .h264 files into MP4 in iOS. 

I have a bunch of .h264 files in amazon s3 cloud. When i call an api i get the list of all the amazon s3 links into the app. I need to play those files when i click play button.

Here is the sample amazon link

I hope to get the solution from your team.


-- 
Warm Regards,
Basanth Kumar Varma Alluri.
_______________________________________________
live-devel mailing list
live-devel <at> lists.live555.com
http://lists.live555.com/mailman/listinfo/live-devel

Gmane