From tayeb at tmxvoip.com Fri Jun 1 00:34:59 2012 From: tayeb at tmxvoip.com (Meftah Tayeb) Date: Fri, 1 Jun 2012 10:34:59 +0300 Subject: [Live-devel] MPEG2 to H.264 References: <4FC7FE38.3060407@etr-usa.com> Message-ID: <260B8212ECFF4A388DA5620A2C970321@work> true, that's off toppic i hope ross won mind ;) ffmpeg was failing for me always. tested using FFServer in 2 mode, let it auto fetch the stream or let FFMpeg push the stream to the server but all is failing. VLC fail for me too. i'm a newby seeking for help ;) thank you al ----- Original Message ----- From: "Warren Young" To: "LIVE555 Streaming Media - development & use" Sent: Friday, June 01, 2012 2:26 AM Subject: Re: [Live-devel] MPEG2 to H.264 > On 5/31/2012 1:07 PM, Meftah Tayeb wrote: >> any good apropriate tool to use? > > Perhaps ffmpeg. But that wouldn't be on topic here, would it? > _______________________________________________ > live-devel mailing list > live-devel at lists.live555.com > http://lists.live555.com/mailman/listinfo/live-devel > > > __________ Information from ESET NOD32 Antivirus, version of virus > signature database 6830 (20120126) __________ > > The message was checked by ESET NOD32 Antivirus. > > http://www.eset.com > > > __________ Information from ESET NOD32 Antivirus, version of virus signature database 6830 (20120126) __________ The message was checked by ESET NOD32 Antivirus. http://www.eset.com From finlayson at live555.com Fri Jun 1 23:55:58 2012 From: finlayson at live555.com (Ross Finlayson) Date: Sat, 2 Jun 2012 09:55:58 +0300 Subject: [Live-devel] liveMedia/FreeBSD : compilation fails on ar command In-Reply-To: <4FC2245A.4060802@gmail.com> References: <4FB5D902.5040501@gmail.com> <4FB5D963.1050805@gmail.com> <20F8EC52-CCAC-471E-A9B8-9FFC3C9D1690@live555.com> <4FC2245A.4060802@gmail.com> Message-ID: <88670586-6DE8-4315-85AC-065ECE6BDC87@live555.com> > I've just tried to complie the latest (2012-05-17) live555 streaming server on FreeBSD 7.0 (32bits) (this compilation fails also on Fr'eeBSD 9.0 64bits fresh installed). > It failed with the same "ar" issue. The only "ar issue" when building the code for FreeBSD is that there is a space character after "ar cr" in the "LIBRARY_LINK" line in the "config.freebsd" file. It's important that this space character make its way into the resulting Makefiles. However, the command genMakefiles freebsd should be putting this space character in the Makefiles OK. As far as I can tell, nothing here has changed in any recent version of the LIVE555 code (or FreeBSD) that could be changing this. Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From pnovak at koukaam.se Fri Jun 1 02:07:47 2012 From: pnovak at koukaam.se (=?UTF-8?B?UGV0ciBOb3bDoWs=?=) Date: Fri, 01 Jun 2012 11:07:47 +0200 Subject: [Live-devel] Matroska parsing issues Message-ID: <4FC88663.1050400@koukaam.se> Hi all, I've been playing a bit with live555MediaServer, and it appears to me that it's not able to properly parse tracks of some Matroska files, for example this one: http://vvv.mokrakocicka.cz/gang/20120601-live555-example.mkv I've tried to look into the issue and it looks like the parser does not support 8-byte floats, which are allowed in Matroska spec. The video above (made by FFmpeg) has an 8-byte Duration element, which throws off the parser so it does not find track records that follow. My attempt to fix this issue can be seen at https://github.com/che0/live555/commit/6e817737b3267288985d2bec37fb7a9f0e5ffb98 -- I would appreciate if you could incorporate this to live555 in some way or other. Additionally, I've encountered media server crash after playing back Matroska file, which I traced to track list cleanup. Again, patch which worked for me can be found at GitHub at https://github.com/che0/live555/commit/fea6dad7c705e8a83ab93745d47d3b1262f97ed0 My suspicion is that the original code in effect supplies unsigned int* to function that expects char**, which subsequently overwrites other parts of the stack on platforms where sizeof(char*) > sizeof(unsigned). I hope you find this helpful, and many thanks for live555! Petr Novak From albert.staubin at baesystems.com Fri Jun 1 06:51:31 2012 From: albert.staubin at baesystems.com (St. Aubin, Albert (US SSA)) Date: Fri, 1 Jun 2012 09:51:31 -0400 Subject: [Live-devel] KLV Message-ID: <201206011352.q51Dqk4T097981@ns.live555.com> Will Live555 be able to handle KLV data being streamed in a MPEG-TS stream to the server over UDP and then sending it out over RTSP? Would it be able to pass the KLV along or will it not handle it at all? Thank you, AJ -------------- next part -------------- An HTML attachment was scrubbed... URL: From albert.staubin at baesystems.com Fri Jun 1 08:57:53 2012 From: albert.staubin at baesystems.com (St. Aubin, Albert (US SSA)) Date: Fri, 1 Jun 2012 11:57:53 -0400 Subject: [Live-devel] Discontinuity errors in VLC when connecting to Live555 RTSP Server Message-ID: <201206011558.q51Fw5OR084055@ns.live555.com> I am using a Live555 server built using the dynamic rtsp server example. I have an encoder sending frames over UDP to the dynamicServer and then the server is serving those frames to clients who request them. I am receiving a lot of errors similar to the ones shown below in the VLC debugger. Has anyone seen this before and do you have any suggestions to fix it? libdvbpsi error (PSI decoder): TS discontinuity (received 13, expected 5) for PI D 4096 libdvbpsi error (PSI decoder): TS discontinuity (received 3, expected 12) for PI D 17 libdvbpsi error (PSI decoder): TS discontinuity (received 9, expected 4) for PID 17 libdvbpsi error (PSI decoder): TS discontinuity (received 13, expected 3) for PI D 0 libdvbpsi error (PSI decoder): TS discontinuity (received 13, expected 3) for PI D 4096 libdvbpsi error (PSI decoder): TS duplicate (received 13, expected 14) for PID 0 libdvbpsi error (PSI decoder): TS duplicate (received 13, expected 14) for PID 4 096 libdvbpsi error (PSI decoder): TS discontinuity (received 0, expected 10) for PI D 17 libdvbpsi error (PSI decoder): TS discontinuity (received 5, expected 1) for PID 17 libdvbpsi error (PSI decoder): TS discontinuity (received 9, expected 2) for PID 0 libdvbpsi error (PSI decoder): TS discontinuity (received 9, expected 2) for PID 4096 libdvbpsi error (PSI decoder): TS discontinuity (received 12, expected 6) for PI D 17 libdvbpsi error (PSI decoder): TS discontinuity (received 12, expected 10) for P ID 0 libdvbpsi error (PSI decoder): TS discontinuity (received 12, expected 10) for P ID 4096 libdvbpsi error (PSI decoder): TS discontinuity (received 0, expected 13) for PI D 17 Thank you, Albert -------------- next part -------------- An HTML attachment was scrubbed... URL: From brado at bighillsoftware.com Sat Jun 2 20:56:25 2012 From: brado at bighillsoftware.com (Brad O'Hearne) Date: Sat, 2 Jun 2012 20:56:25 -0700 Subject: [Live-devel] Using LIVE555 to publish to Wowza streaming server Message-ID: Hello, My use case: I need to capture video from a Mac's builtin video camera and publish that video to Wowza streaming server (clients talk to Wowza). I would like to use LIVE555 to transport the captured video from the camera to the Wowza server. A few notes on this: - I am aware that LIVE555 can stream the video directly, without using Wowza. For reasons that are non-negotiable (I cannot do anything about them), this video has to be published to Wowza for streaming. - Wowza supports the encoders based on the following: RTSP/RTP, RTMP, MPEG-TS. I have searched both the live-devel list archives, the LIVE555 FAQ, and various places on the Internet for information on how this can be done, and here's what I can make of it: - It can be done (somehow). - There are various references including the FAQ suggesting to look at the testOnDemandRTSPServer and adapt it. I have read this source code and I do not readily see the ability to define a remote endpoint (the Wowza server) to which the LIVE555 RTSP server will push data to. I also do not readily see a way to define a built-in camera as an input source to the RTSP server. - I have found other references which point to using the test*Streamer examples as models for accomplishing my use case. However, opening these (testH264Streamer, for instance) has comments in the code such as: // Note: This is a multicast address. If you wish instead to stream // using unicast, then you should use the "testOnDemandRTSPServer" // test program - not this test program - as a model. So I'm kind of spinning in a circle here. Can someone assist me in how to: 1) Define streaming camera input as an input source to the LIVE555 library I'm supposed to use, and 2.) Take this live video stream and publish (push) it to the Wowza server. Thanks in advance! Your help is appreciated. Brad Brad O'Hearne Founder / Lead Developer Big Hill Software LLC http://www.bighillsoftware.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From finlayson at live555.com Sun Jun 3 06:50:41 2012 From: finlayson at live555.com (Ross Finlayson) Date: Sun, 3 Jun 2012 16:50:41 +0300 Subject: [Live-devel] Android device don't accept my own OnDemandLiveStream In-Reply-To: <4FC38E9D.2080707@gmx.de> References: <4FC38E9D.2080707@gmx.de> Message-ID: > The lines > 05-28 16:00:34.540: I/ASessionDescription(24294): a=fmtp:96 packetization-mode=1;profile-level-id=4D4033;sprop-parameter-sets=Z01AM5JUDAS0IAAAAwBAAAAM0eMGVA==,aO48gA== > 05-28 16:00:34.540: I/ASessionDescription(24294): a=control:track1 > existing only in the mediaServer-Log - this may be the problem but i dont what it means! Yes, that seems to be (at least part of) the problem. It means that the code was unable to find SPS and PPS NAL units in your input H.264 stream. To overcome this (assuming that your input H.264 stream really doesn't contain SPS and PPS NAL units), you need to - in your "createNewRTPSink()" implementation - create your "H264VideoRTPSink" object using one of the alternative variants of "createNew()" described in "liveMedia/include/H264VideoRTPSink.hh". I.e., you'll need to either pass in the SPS and PPS NAL units directly, or else (if you have it) pass a "sprop-parameter-sets" string. Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From matt at schuckmannacres.com Mon Jun 4 11:13:48 2012 From: matt at schuckmannacres.com (Matt Schuckmann) Date: Mon, 04 Jun 2012 11:13:48 -0700 Subject: [Live-devel] KLV In-Reply-To: <201206011352.q51Dqk4T097981@ns.live555.com> References: <201206011352.q51Dqk4T097981@ns.live555.com> Message-ID: <4FCCFADC.4070307@schuckmannacres.com> I believe the answer is it won't handle it at all. Last time I checked the KLV profile for RTP (IETF draft status) had not been accepted as a standard and I don't think it's all that interesting outside of the MISB standards body so no effort has been made to make it a part of this library. You could write your own extension to this library to make it happen though, it shouldn't be all that hard to do. Matt S. On Friday, June 01, 2012 6:51:31 AM, St. Aubin, Albert (US SSA) wrote: > Will Live555 be able to handle KLV data being streamed in a MPEG-TS > stream to the server over UDP and then sending it out over RTSP? Would > it be able to pass the KLV along or will it not handle it at all? > > Thank you, > > AJ > > > > _______________________________________________ > live-devel mailing list > live-devel at lists.live555.com > http://lists.live555.com/mailman/listinfo/live-devel From finlayson at live555.com Mon Jun 4 08:54:14 2012 From: finlayson at live555.com (Ross Finlayson) Date: Mon, 4 Jun 2012 18:54:14 +0300 Subject: [Live-devel] Problem with a=x-dimensions LIVE555 Proxy Server In-Reply-To: References: Message-ID: > After the RTSP connection IP-based cameras to send a reply with the > line "a=x-dimensions:640,480", but when you connect to LIVE555 Proxy > Server, this line is missing. For some decoders need to know the width > and height, and this is a problem. A camera should not depend upon its server including an "a=x-dimensions..." SDP line, because this attribute is optional (and not even a standard). All decoders should be able to infer the video width and height from the encoded input stream, or from other "a=fmtp:..." configuration parameters (which *are* standards). However, in the spirit of "be liberal in what you accept", I agree that the "LIVE555 Proxy Server" should pass on this attribute if it sees it. So, a fix for this will be included in a future release of the software. (Be warned, however, that requests like this by hobbyists are considered low priority.) Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From finlayson at live555.com Mon Jun 4 11:48:20 2012 From: finlayson at live555.com (Ross Finlayson) Date: Mon, 4 Jun 2012 21:48:20 +0300 Subject: [Live-devel] best way on server side for detect new client connection In-Reply-To: References: Message-ID: <0004DCED-9F96-423B-AB86-1311B47B1690@live555.com> > I work with live555 and stream H264 coded video via RTP. I need force IDR frame on encoder when each new client connected to my RTSP server. > > Please let me know how I can to do it ? what is best way (on server side) in live555 to detect client connection / disconnection to my RTSP server? > The easiest way to do this is to subclass "RTSPServer" and - in your subclass - redefine the virtual functions "handleCmd_PLAY" and "handleCmd_TEARDOWN" to first do whatever it is you want to do, and then call the corresponding function in the parent class. Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From albert.staubin at baesystems.com Mon Jun 4 11:51:40 2012 From: albert.staubin at baesystems.com (St. Aubin, Albert (US SSA)) Date: Mon, 4 Jun 2012 14:51:40 -0400 Subject: [Live-devel] KLV In-Reply-To: <4FCCFADC.4070307@schuckmannacres.com> Message-ID: <201206041852.q54IqWob062952@ns.live555.com> My limited understanding of KLV is that it is muxed into the Transport Stream. So if I understand it correctly would it not just be passed along as part of the stream with the rest of the TS video information through the Live555 Dynamic RTSP server and onto the client to handle Demuxing the KLV? Thank you for your help, AJ -----Original Message----- From: Matt Schuckmann [mailto:matt at schuckmannacres.com] Sent: Monday, June 04, 2012 2:14 PM To: LIVE555 Streaming Media - development & use Cc: St. Aubin, Albert (US SSA) Subject: Re: [Live-devel] KLV I believe the answer is it won't handle it at all. Last time I checked the KLV profile for RTP (IETF draft status) had not been accepted as a standard and I don't think it's all that interesting outside of the MISB standards body so no effort has been made to make it a part of this library. You could write your own extension to this library to make it happen though, it shouldn't be all that hard to do. Matt S. On Friday, June 01, 2012 6:51:31 AM, St. Aubin, Albert (US SSA) wrote: > Will Live555 be able to handle KLV data being streamed in a MPEG-TS > stream to the server over UDP and then sending it out over RTSP? Would > it be able to pass the KLV along or will it not handle it at all? > > Thank you, > > AJ > > > > _______________________________________________ > live-devel mailing list > live-devel at lists.live555.com > http://lists.live555.com/mailman/listinfo/live-devel From matt at schuckmannacres.com Mon Jun 4 15:16:37 2012 From: matt at schuckmannacres.com (Matt Schuckmann) Date: Mon, 04 Jun 2012 15:16:37 -0700 Subject: [Live-devel] KLV In-Reply-To: References: <4FCCFADC.4070307@schuckmannacres.com> Message-ID: <4FCD33C5.3020307@schuckmannacres.com> I suppose that if you did TS over RTP that might work, it's a pretty inefficent way of streaming. Typically RTSP splits each stream of data into it's own RTP stream, however I had forgotten that people do stream TS directly over RTP without demuxing it first. I don't know what the status of Live555's support for this is, it might just work. Matt S. On Monday, June 04, 2012 11:51:40 AM, St. Aubin, Albert (US SSA) wrote: > My limited understanding of KLV is that it is muxed into the Transport Stream. So if I understand it correctly would it not just be passed along as part of the stream with the rest of the TS video information through the Live555 Dynamic RTSP server and onto the client to handle Demuxing the KLV? > > Thank you for your help, > AJ > > -----Original Message----- > From: Matt Schuckmann [mailto:matt at schuckmannacres.com] > Sent: Monday, June 04, 2012 2:14 PM > To: LIVE555 Streaming Media - development& use > Cc: St. Aubin, Albert (US SSA) > Subject: Re: [Live-devel] KLV > > I believe the answer is it won't handle it at all. > > Last time I checked the KLV profile for RTP (IETF draft status) had not been accepted as a standard and I don't think it's all that interesting outside of the MISB standards body so no effort has been made to make it a part of this library. > You could write your own extension to this library to make it happen though, it shouldn't be all that hard to do. > > Matt S. > > On Friday, June 01, 2012 6:51:31 AM, St. Aubin, Albert (US SSA) wrote: >> Will Live555 be able to handle KLV data being streamed in a MPEG-TS >> stream to the server over UDP and then sending it out over RTSP? Would >> it be able to pass the KLV along or will it not handle it at all? >> >> Thank you, >> >> AJ >> >> >> >> _______________________________________________ >> live-devel mailing list >> live-devel at lists.live555.com >> http://lists.live555.com/mailman/listinfo/live-devel From yuri.timenkov at itv.ru Mon Jun 4 20:10:14 2012 From: yuri.timenkov at itv.ru (Yuri Timenkov) Date: Tue, 05 Jun 2012 07:10:14 +0400 Subject: [Live-devel] Problem with a=x-dimensions LIVE555 Proxy Server In-Reply-To: References: Message-ID: <4FCD7896.8010704@itv.ru> Hi Ross, x-dimensions header is required to work with resolutions > 2048. I saw some devices which relied on it for megapixel streaming (IIRC they just sent lower bits in standard JPEG over RTP header) and liveMedia handled this correctly if the header present. Regards, Yuri On 04.06.2012 19:54, Ross Finlayson wrote: >> After the RTSP connection IP-based cameras to send a reply with the >> line "a=x-dimensions:640,480", but when you connect to LIVE555 Proxy >> Server, this line is missing. For some decoders need to know the width >> and height, and this is a problem. > > A camera should not depend upon its server including an > "a=x-dimensions..." SDP line, because this attribute is optional (and > not even a standard). All decoders should be able to infer the video > width and height from the encoded input stream, or from other > "a=fmtp:..." configuration parameters (which *are* standards). > > However, in the spirit of "be liberal in what you accept", I agree > that the "LIVE555 Proxy Server" should pass on this attribute if it > sees it. So, a fix for this will be included in a future release of > the software. (Be warned, however, that requests like this by > hobbyists are considered low priority.) > > > 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 -------------- next part -------------- An HTML attachment was scrubbed... URL: From warren at etr-usa.com Mon Jun 4 21:24:44 2012 From: warren at etr-usa.com (Warren Young) Date: Mon, 04 Jun 2012 22:24:44 -0600 Subject: [Live-devel] liveMedia/FreeBSD : compilation fails on ar command In-Reply-To: <88670586-6DE8-4315-85AC-065ECE6BDC87@live555.com> References: <4FB5D902.5040501@gmail.com> <4FB5D963.1050805@gmail.com> <20F8EC52-CCAC-471E-A9B8-9FFC3C9D1690@live555.com> <4FC2245A.4060802@gmail.com> <88670586-6DE8-4315-85AC-065ECE6BDC87@live555.com> Message-ID: <4FCD8A0C.7090705@etr-usa.com> On 6/2/2012 12:55 AM, Ross Finlayson wrote: > > the command > genMakefiles freebsd > should be putting this space character in the Makefiles OK. Sure, but that doesn't fix the fact that BSD make will strip them right back out. I think that's what the OP has run into. I said it before in this thread, but you didn't reply, so I'll repeat it in case you missed it: by expecting make(1) to retain trailing spaces in a variable assignment, you have made an implicit dependency on GNU make, which isn't a safe assumption on FreeBSD. From finlayson at live555.com Mon Jun 4 23:39:25 2012 From: finlayson at live555.com (Ross Finlayson) Date: Tue, 5 Jun 2012 09:39:25 +0300 Subject: [Live-devel] Integrating live555 RTSP client In-Reply-To: <4FC746CC.7050408@embedded-sol.com> References: <4FC746CC.7050408@embedded-sol.com> Message-ID: > I have to integrate live555 RTSP client into an existing application > that decodes H.264 video and sends it to display. The application > is multithreaded, with separate threads for decoding and display > tasks. > > I was thinking of using testRTSPClient code as a base, putting > it into separate thread, and notifying decoding thread when next > frame is ready. My idea was to use condition variable embedded into > DummySink object and waiting on condvar in another thread. Does that > sound reasonable ? Yes, it does, provided that no LIVE555 library code is called from the decoding/display thread. You should also try to ensure that the LIVE555 thread never blocks. In particular, that means that if your 'sink' object finds that the the decoding/display thread is not currently ready to decode its frame, then it should enqueue the frame for later decoding, rather than blocking to wait until the decoding/display thread is ready. (Note that because of network jitter, incoming frames can't be expected to always arrive evenly-paced.) Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From scott.taylor at abaslabs.com Tue Jun 5 01:39:25 2012 From: scott.taylor at abaslabs.com (Scott Taylor) Date: Tue, 05 Jun 2012 18:39:25 +1000 Subject: [Live-devel] VS2010 build fails to connect (EWOULDBLOCK vs WSAEWOULDBLOCK) Message-ID: <4FCDC5BD.6030200@abaslabs.com> Hi there, I've just upgraded our live555 version (from 2011.06.12 to 2012.05.17) and RTSPClient::connectToServer is failing on Windows. The following check fails: __int const err = envir().getErrno(); if (err == EINPROGRESS || err == EWOULDBLOCK) { ... } I read Ross Finlayson's response to a previous post by Jeff Shanab, where he added EWOULDBLOCK as a platform-independent solution. However, it turns out EWOULDBLOCK != WSAEWOULDBLOCK. _winerror.h_ #define WSAEWOULDBLOCK 10035L _errno.h_ #define EWOULDBLOCK 140 _winsock.h / winsock2.h_ #if 0 #define EWOULDBLOCK WSAEWOULDBLOCK See this feedback entry and MSDN Error Codes . Seems like in VS2010 they broke compatibility with Berkeley? The #if 0 is a bit of a lol. :) There used to be a workaround in NetCommon.h ln 38, however it is now commented out in 2012.05.17: //#define EWOULDBLOCK WSAEWOULDBLOCK This results in Windows builds being unable to connect.As a temporary workaround, I've changed my NetCommon.h to read: #undef EWOULDBLOCK #define EWOULDBLOCK WSAEWOULDBLOCK #undef EINPROGRESS #define EINPROGRESS WSAEWOULDBLOCK #undef EAGAIN #define EAGAIN WSAEWOULDBLOCK #undef EINTR #define EINTR WSAEINTR This appears to work again. Is this solution correct? Thanks for your help, Scott Taylor immersaview.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From finlayson at live555.com Tue Jun 5 09:11:38 2012 From: finlayson at live555.com (Ross Finlayson) Date: Tue, 5 Jun 2012 19:11:38 +0300 Subject: [Live-devel] testMpeg2videostreamer In-Reply-To: References: Message-ID: > I am using your testmpeg2videostreamer application to stream my ts file to a particular ip and using your test on demand rtsp server to catch the streaming,is there any way in testmpeg2videostreamer to stream the ts file at faster rate.? No. The Transport Stream file will be read, and streamed, at its 'natural rate' - i.e., at the rate at which it would be read if it were being played by a media player. It doesn't make any sense to talk about wanting to stream it at a faster rate. Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From finlayson at live555.com Wed Jun 6 02:25:31 2012 From: finlayson at live555.com (Ross Finlayson) Date: Wed, 6 Jun 2012 12:25:31 +0300 Subject: [Live-devel] Byte rate of live media server In-Reply-To: <4FC7F9D5.6050903@etr-usa.com> References: <4FC7F9D5.6050903@etr-usa.com> Message-ID: <2024C732-039A-4D9E-B358-2D06ABDED2EC@live555.com> >> i was wondering how to >> find out the bit/byte rate of streaming of live media server,that i can >> print on the console??? > > If you're streaming using an RTPSink object, call its octetCount() method at two known times. Then: > > double mbits_sent = (o2 - o1) / 1024.0 / 1024.0 / (s2 - s1); > > where o2 and o1 are the octetCount() values at time_t s2 and s1. > > Ross, could you please lift this method up a level, to MediaSink? No, because the field ("fOctetCount") is updated only by the "RTPSink" subclass, so it's specific to that class. If people want to count bytes for some other subclass of "MediaSink", then they'll need to do so themselves (via subclassing). Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From finlayson at live555.com Wed Jun 6 02:42:30 2012 From: finlayson at live555.com (Ross Finlayson) Date: Wed, 6 Jun 2012 12:42:30 +0300 Subject: [Live-devel] Streaming a WAV file In-Reply-To: <020a01cd3f8c$7d762b00$78628100$@softtools.com> References: <020a01cd3f8c$7d762b00$78628100$@softtools.com> Message-ID: > I am running the OnDemandRTSPServer test application with WAV files and it seems that the WAV file processing expects the first SubChunk of the file to always be the ?fmt ? SubChunk. This is not the case for the files I am using, they have other SubChunks, e.g. ?LIST?. > > What is the best way to get this into the library? Should I implement and submit my changes to you? Yes, if you can. (The change will most likely be to the file "liveMedia/WAVAudioFileSource.cpp".) For future reference, it would also be useful to get an example of a WAV file like this. Could you please put one on a web server, and send us the URL, so we can download it? Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From michel.promonet at thalesgroup.com Thu Jun 7 07:09:55 2012 From: michel.promonet at thalesgroup.com (PROMONET Michel) Date: Thu, 7 Jun 2012 16:09:55 +0200 Subject: [Live-devel] uninitialised value in liveMedia/RTPSink.cpp ? Message-ID: <16557_1339078259_4FD0B673_16557_18089_1_1BE8971B6CFF3A4F97AF4011882AA2550155FD7CB35B@THSONEA01CMS01P.one.grp> Hi Ross, It seems that RTPTransmissionStats::fOldValid is not initialized, it is set in the second call of RTPTransmissionStats::noteIncomingRR (when fFirstPacket becomes false). Do you think it is possible to initialize it in the constructor ? Best Regards, Michel. [@@THALES GROUP RESTRICTED@@] -------------- next part -------------- An HTML attachment was scrubbed... URL: From rahul_pandey21 at yahoo.in Fri Jun 1 03:48:17 2012 From: rahul_pandey21 at yahoo.in (Rahul kumar Pandey) Date: Fri, 1 Jun 2012 18:48:17 +0800 (SGT) Subject: [Live-devel] Metadata Message-ID: <1338547697.15356.YahooMailNeo@web193004.mail.sg3.yahoo.com> Hi Ross, ??? ??? I am using RTSP for transmitting video from server to client. At some points during the transmission I need the server to "send" metadata to the client. Could you please share how can I do this? Thanks Rahul -------------- next part -------------- An HTML attachment was scrubbed... URL: From isambhav at gmail.com Fri Jun 1 07:33:54 2012 From: isambhav at gmail.com (Sambhav) Date: Fri, 1 Jun 2012 20:03:54 +0530 Subject: [Live-devel] AV Sync for live input Message-ID: Hi, I have RTSP ServerMediaSession with one audio subsession and one video subsession. The sources for audio and video are live and coming as RTP streams whose timestamps are derived from same source. ( I subclassed OnDemandServerMediaSubsession to take live RTP input) The RTSP client is able to receive both audio and video data , but there is no AV-Sync. When i checked, the RTP source timestamps and timestamps of packets sent to client are different. How are timestamps handled for a session with RTP Source as input and RTP Sink as output? Is there anything to be considered to maintain AV sync ? Regards, Sambhav -------------- next part -------------- An HTML attachment was scrubbed... URL: From sum_agg at yahoo.com Sat Jun 2 05:42:35 2012 From: sum_agg at yahoo.com (Sumit Aggarwal) Date: Sat, 2 Jun 2012 05:42:35 -0700 (PDT) Subject: [Live-devel] Fw: duplicate stream from 2 cameras In-Reply-To: References: Message-ID: <1338640955.9859.YahooMailNeo@web130104.mail.mud.yahoo.com> Hi, We are using multiple cameras stream using live555 in a single system. We observe that suddenly(at run time) a camera starts taking stream of other, so we start getting duplicate streams, although IPs and cameras are different. Is this because of ephemeral port issue on live555 rtsp client? Thanks Dear Renato Mauro, We are using multiple sony camera streams in our application using live555. We observe that suddenly(at run time) a camera starts taking stream of other, so we start getting duplicate streams, though IPs and cameras are different. Is this because of ephemeral port issue on live555 rtsp client? Please help. Thanks Regards, Sumit -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- An embedded message was scrubbed... From: Sumit Aggarwal Subject: Fw: duplicate stream from 2 cameras Date: Sat, 2 Jun 2012 02:54:45 -0700 (PDT) Size: 8274 URL: -------------- next part -------------- An embedded message was scrubbed... From: Sumit Aggarwal Subject: duplicate stream from 2 cameras Date: Sat, 2 Jun 2012 02:50:39 -0700 (PDT) Size: 3734 URL: From finlayson at live555.com Thu Jun 7 08:22:27 2012 From: finlayson at live555.com (Ross Finlayson) Date: Thu, 7 Jun 2012 18:22:27 +0300 Subject: [Live-devel] Matroska parsing issues In-Reply-To: <4FC88663.1050400@koukaam.se> References: <4FC88663.1050400@koukaam.se> Message-ID: > I've been playing a bit with live555MediaServer, and it appears to me that it's not able to properly parse tracks of some Matroska files, for example this one: > > http://vvv.mokrakocicka.cz/gang/20120601-live555-example.mkv vvv.mokrakocicka.cz : No such host. > I've tried to look into the issue and it looks like the parser does not support 8-byte floats, which are allowed in Matroska spec. The video above (made by FFmpeg) has an 8-byte Duration element, which throws off the parser so it does not find track records that follow. > > My attempt to fix this issue can be seen at https://github.com/che0/live555/commit/6e817737b3267288985d2bec37fb7a9f0e5ffb98 -- I would appreciate if you could incorporate this to live555 in some way or other. Yes, thanks. This will be included in the next release of the software. > Additionally, I've encountered media server crash after playing back Matroska file, which I traced to track list cleanup. Again, patch which worked for me can be found at GitHub at https://github.com/che0/live555/commit/fea6dad7c705e8a83ab93745d47d3b1262f97ed0 Yes, that is a bug. Your fix will also be included in the next release of the software. Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From ashfaque at iwavesystems.com Fri Jun 8 05:16:14 2012 From: ashfaque at iwavesystems.com (Ashfaque) Date: Fri, 8 Jun 2012 17:46:14 +0530 Subject: [Live-devel] Clarification on Live555 Message-ID: Hi Ross, We are streaming (over Wifi ) H264 encoded frames from a live source using the reference of testH264VideoStreamer class. Camera frame rate is 30 fps. Receiver is an iOS application referenced from testRTSPClient class. We are able to stream with Initial propagation delay around 200ms but after a duration of 20 minutes we are observing a scenario in which we are not receiving any frames (afterGettingFrame is not getting called) in the receiver side for some very small duration(200-250 ms), and then a large propagation delay (more than 1 sec) is being observed in streaming. This scenario is being repeated every time. We are trying to analyze the Live555 Source code to any solution for above and came across following unclear sections. 1. As per our understanding RTP streaming will be done on UDP, then why in In RTPInterface::sendPacket method Data is being sent on TCP? // Normal case: Send as a UDP packet: if (!fGS->output(envir(), fGS->ttl(), packet, packetSize)) success = False; // Also, send over each of our TCP sockets: for (tcpStreamRecord* streams = fTCPStreams; streams != NULL; streams = streams->fNext) { if (!sendRTPOverTCP(packet, packetSize, streams->fStreamSocketNum, streams->fStreamChannelId)) { success = False; } } 2. In MultiFramedRTPSink::sendPacketIfNecessary() method as fNoFramesLeft is false always, a delay of some amount is been added. What is the exact reason for this? if (fNoFramesLeft) { // We're done: onSourceClosure(this); } else { // We have more frames left to send. Figure out when the next frame // is due to start playing, then make sure that we wait this long before // sending the next packet. struct timeval timeNow; gettimeofday(&timeNow, NULL); int secsDiff = fNextSendTime.tv_sec - timeNow.tv_sec; int64_t uSecondsToGo = secsDiff*1000000 + (fNextSendTime.tv_usec - timeNow.tv_usec); if (uSecondsToGo < 0 || secsDiff < 0) { // sanity check: Make sure that the time-to-delay is non-negative: uSecondsToGo = 0; } // Delay this amount of time: nextTask() = envir().taskScheduler().scheduleDelayedTask(uSecondsToGo, (TaskFunc*)sendNext, this); } 3. In Receiver application, in MultiFramedRTPSource::networkReadHandler1 function ReorderBufferPacket object is used, That?s calling storepacket function. What is the actual use of ReoderBufferPacket here? Whether this class is queueing the packets? In ReorderBufferPacket class what's the use of fThresholdTime? 4. In void RTPReceptionStats::noteIncomingPacket() Why Initially presentation time of the packet is same as wall-clock time and then later it is been changed to time stamp of SR?s. // Return the 'presentation time' that corresponds to "rtpTimestamp": if (fSyncTime.tv_sec == 0 && fSyncTime.tv_usec == 0) { // This is the first timestamp that we've seen, so use the current // 'wall clock' time as the synchronization time. (This will be // corrected later when we receive RTCP SRs.) fSyncTimestamp = rtpTimestamp; fSyncTime = timeNow; } Thanks & Regards, Ashfaque -------------- next part -------------- An HTML attachment was scrubbed... URL: From jesus.lc at vaelsys.com Fri Jun 8 00:04:01 2012 From: jesus.lc at vaelsys.com (=?ISO-8859-1?Q?Jes=FAs_Legan=E9s?=) Date: Fri, 8 Jun 2012 09:04:01 +0200 Subject: [Live-devel] Get connections on ProxyServerMediaSession Message-ID: How can i be able to detect incomming connections on ProxyServerMediaSession? I'm developing a RTSP proxy manager to broadcast video got from remote cameras over 3G and i would like to check when i have a client connection for logging and also mainly so i can be able to close the connection to the camera and (re)open it only when i got a new client connection (here at Spain 3G data lines are too much expensive and data quota is very restrictive). I have been looking at the ProxyServerMediaSession API ( http://www.live555.com/liveMedia/doxygen/html/classProxyServerMediaSession.html) but i didn't find a callback function that could notify me when a new client connection is done or is closed or lost (this would be ideally the best option). and also i didn't find any function to get a list or at least the number of current open client connections. How could i be able to do it? Greetings, Jes?s Legan?s Combarro. -------------- next part -------------- An HTML attachment was scrubbed... URL: From vivekr at ti.com Fri Jun 8 01:37:58 2012 From: vivekr at ti.com (Ravindran, Vivek) Date: Fri, 8 Jun 2012 08:37:58 +0000 Subject: [Live-devel] doubts with wis-streamer data flow and H264VideoRTPSink Message-ID: Hi Ross and community, I'm a student intern at my company and have been assigned to a project working with a slightly modified version of wis-streamer. I was assigned the task of finding out what the exact data flow of my program was from the live camera input up till it finally gets sent across the network to the client program. I've been going through the code for quite a while but I my understanding of the data flow still seems incomplete. I wanted to ask a few questions here, which may help me get a better picture of how things work. 1. I'm first trying to figure out streaming H.264 Video. From my understanding, H264VideoRTPSink is the final point in the source-sink chain, and with the help of H264FUAFragmenter, it is responsible for sending the packets to the clients over the network. Where exactly in the code does the sending of packets happen? 2. What are the source(filter) objects that it goes through before it reaches H264VideoRTPSink. >From my understanding only H264VideoStreamFramer comes before this sink. Am I missing anything? Thanks in advance for your help. -------------- next part -------------- An HTML attachment was scrubbed... URL: From finlayson at live555.com Fri Jun 8 13:48:02 2012 From: finlayson at live555.com (Ross Finlayson) Date: Fri, 8 Jun 2012 23:48:02 +0300 Subject: [Live-devel] KLV In-Reply-To: <201206011352.q51Dqk4T097981@ns.live555.com> References: <201206011352.q51Dqk4T097981@ns.live555.com> Message-ID: <8DB6B1D1-7556-43A1-BEC1-7156506A1EEC@live555.com> > Will Live555 be able to handle KLV data being streamed in a MPEG-TS stream [...] Our software doesn't demultiplex Transport Streams, so is agnostic about its contents. As long as the Transport Stream data is valid, our software should be able to stream (send or receive) it. Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From vivekr at ti.com Fri Jun 8 21:11:30 2012 From: vivekr at ti.com (Ravindran, Vivek) Date: Sat, 9 Jun 2012 04:11:30 +0000 Subject: [Live-devel] doubts with wis-streamer data flow and H264VideoRTPSink In-Reply-To: References: Message-ID: Hi again, I'm sorry for asking the 1st question, I figured out that the sending happens at MultiFramedRTPSink::sendPacketIfNecessary(). It invokes fRTPInterface.sendPacket(fOutBuf->packet(), fOutBuf->curPacketSize()); Can anyone please clarify my doubt about the 2nd one. Thanks and Regards, Vivek From: live-devel-bounces at ns.live555.com [mailto:live-devel-bounces at ns.live555.com] On Behalf Of Ravindran, Vivek Sent: Friday, June 08, 2012 2:08 PM To: live-devel at lists.live555.com Subject: [Live-devel] doubts with wis-streamer data flow and H264VideoRTPSink Hi Ross and community, I'm a student intern at my company and have been assigned to a project working with a slightly modified version of wis-streamer. I was assigned the task of finding out what the exact data flow of my program was from the live camera input up till it finally gets sent across the network to the client program. I've been going through the code for quite a while but I my understanding of the data flow still seems incomplete. I wanted to ask a few questions here, which may help me get a better picture of how things work. 1. I'm first trying to figure out streaming H.264 Video. From my understanding, H264VideoRTPSink is the final point in the source-sink chain, and with the help of H264FUAFragmenter, it is responsible for sending the packets to the clients over the network. Where exactly in the code does the sending of packets happen? 2. What are the source(filter) objects that it goes through before it reaches H264VideoRTPSink. >From my understanding only H264VideoStreamFramer comes before this sink. Am I missing anything? Thanks in advance for your help. -------------- next part -------------- An HTML attachment was scrubbed... URL: From finlayson at live555.com Fri Jun 8 23:47:41 2012 From: finlayson at live555.com (Ross Finlayson) Date: Sat, 9 Jun 2012 09:47:41 +0300 Subject: [Live-devel] liveMedia/FreeBSD : compilation fails on ar command In-Reply-To: <4FCD8A0C.7090705@etr-usa.com> References: <4FB5D902.5040501@gmail.com> <4FB5D963.1050805@gmail.com> <20F8EC52-CCAC-471E-A9B8-9FFC3C9D1690@live555.com> <4FC2245A.4060802@gmail.com> <88670586-6DE8-4315-85AC-065ECE6BDC87@live555.com> <4FCD8A0C.7090705@etr-usa.com> Message-ID: Finally getting back to this thread... Thanks to the people who correctly identified the issue as being caused by inconsistent behavior between GNU make ("gmake") and BSD make. Unfortunately there are many environments for which linking won't work if the space character is present; that's why I can't just put it in the "Makefile.tail" files, as someone suggested. Instead, I want to keep the space character in the "config." file (at the end of the "LIBRARY_LINK =" line), for those s that need it. So the question is now: How can I correctly define "LIBRARY_LINK" in the appropriate "config." files so that the space character will be seen by BSD make, as well as GNU make ("gmake")? Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From vivekr at ti.com Sat Jun 9 02:52:55 2012 From: vivekr at ti.com (Ravindran, Vivek) Date: Sat, 9 Jun 2012 09:52:55 +0000 Subject: [Live-devel] doubts with wis-streamer data flow and H264VideoRTPSink In-Reply-To: References: Message-ID: Ok, I figured out the answer to my 2nd question as well. My understanding was incorrect. There's the fragmenter in between too. So its something like: Camera Input -> Framer -> Fragmenter -> RTPSink - send packets Is this correct?? From: live-devel-bounces at ns.live555.com [mailto:live-devel-bounces at ns.live555.com] On Behalf Of Ravindran, Vivek Sent: Saturday, June 09, 2012 9:42 AM To: LIVE555 Streaming Media - development & use Subject: Re: [Live-devel] doubts with wis-streamer data flow and H264VideoRTPSink Hi again, I'm sorry for asking the 1st question, I figured out that the sending happens at MultiFramedRTPSink::sendPacketIfNecessary(). It invokes fRTPInterface.sendPacket(fOutBuf->packet(), fOutBuf->curPacketSize()); Can anyone please clarify my doubt about the 2nd one. Thanks and Regards, Vivek From: live-devel-bounces at ns.live555.com [mailto:live-devel-bounces at ns.live555.com] On Behalf Of Ravindran, Vivek Sent: Friday, June 08, 2012 2:08 PM To: live-devel at lists.live555.com Subject: [Live-devel] doubts with wis-streamer data flow and H264VideoRTPSink Hi Ross and community, I'm a student intern at my company and have been assigned to a project working with a slightly modified version of wis-streamer. I was assigned the task of finding out what the exact data flow of my program was from the live camera input up till it finally gets sent across the network to the client program. I've been going through the code for quite a while but I my understanding of the data flow still seems incomplete. I wanted to ask a few questions here, which may help me get a better picture of how things work. 1. I'm first trying to figure out streaming H.264 Video. From my understanding, H264VideoRTPSink is the final point in the source-sink chain, and with the help of H264FUAFragmenter, it is responsible for sending the packets to the clients over the network. Where exactly in the code does the sending of packets happen? 2. What are the source(filter) objects that it goes through before it reaches H264VideoRTPSink. >From my understanding only H264VideoStreamFramer comes before this sink. Am I missing anything? Thanks in advance for your help. -------------- next part -------------- An HTML attachment was scrubbed... URL: From qrundong at gmail.com Mon Jun 4 21:30:45 2012 From: qrundong at gmail.com (rundong qiu) Date: Tue, 5 Jun 2012 12:30:45 +0800 Subject: [Live-devel] Still failed in receiving data via multicast Message-ID: Hello everyone, I still cannot find my wrong in receiving date using the "openRTSP" command-line client via multicast. I have tried to apply for streams from the DM368IPNC, the TMDXIPCAM8127J3, and the "testH264VideoStreamer", but all failed. The RTSP protocol exchange works OK, but then the client cannot receive stream. With the help of the "Wireshark", I am sure that the stream from a camera does arrive the specified port, and the vlc player can play the streams from all the three servers. My OS is Windows7, there is still a wireless network card on my PC(even if I uninstall my wireless network card, the client still cannot get stream). The PC and the camera are connected via a switch. As the two replies of my last letter,I have tried to add the "-I" option with the ip-address of my PC, but it does not work. And I cannot add the "-t" option because it is not supported by the servers. Could anyone give me any advice? Thank you! -------------- next part -------------- An HTML attachment was scrubbed... URL: From finlayson at live555.com Sat Jun 9 08:05:21 2012 From: finlayson at live555.com (Ross Finlayson) Date: Sat, 9 Jun 2012 18:05:21 +0300 Subject: [Live-devel] VS2010 build fails to connect (EWOULDBLOCK vs WSAEWOULDBLOCK) In-Reply-To: <4FCDC5BD.6030200@abaslabs.com> References: <4FCDC5BD.6030200@abaslabs.com> Message-ID: <467EEB8A-BE84-4412-A789-3B3BA0F6C8A1@live555.com> > There used to be a workaround in NetCommon.h ln 38, however it is now commented out in 2012.05.17: > //#define EWOULDBLOCK WSAEWOULDBLOCK No, it's not commented out. You must have commented it out yourself, by mistake. The *released* version of "NetCommon.h" contains the following definitions (for Windows systems): #define EWOULDBLOCK WSAEWOULDBLOCK #define EINPROGRESS WSAEWOULDBLOCK #define EAGAIN WSAEWOULDBLOCK #define EINTR WSAEINTR You should not modify the released source code, unless you can't avoid it. If you find a problem with the released source code, please let us know. Otherwise I'll assume it's OK. Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From sachinkharude10 at gmail.com Wed Jun 6 03:21:21 2012 From: sachinkharude10 at gmail.com (sachin kharude) Date: Wed, 6 Jun 2012 15:51:21 +0530 Subject: [Live-devel] live555 media server SRTP support Message-ID: Dear all, I am using live555 media server on ubuntu 11.10 for streaming video and audio files. mkv and mp3 respectively, but i want to add srtp protocol to it so that it will become secure. 1. how to add srtp support to live555media server source code ? for this do i need to write new code for srtp or is there any source code available with srtp support for live555 media server. thanks in advance regards, sachin kharude -------------- next part -------------- An HTML attachment was scrubbed... URL: From ajax.chai at alcatel-lucent.com Sat Jun 9 19:34:26 2012 From: ajax.chai at alcatel-lucent.com (Chai, Zheng (Ajax)) Date: Sun, 10 Jun 2012 04:34:26 +0200 Subject: [Live-devel] Pls give suggestion and example In-Reply-To: References: Message-ID: <79D8B3BF3F11934E8EE32BBAD9F77B9C615F1C34A6@FRMRSSXCHMBSA1X.dc-m.alcatel-lucent.com> All, I used the LIVE555 to accepted a TS stream Source over RTP and then broadcast the TS/RTP Source to the RTP Sink, and now the vlc player can play this live source. However, I also need to store/save this live TS stream source on the live555 server into a stream file, how can I reach this? Can I add two Sinks to a single source? e.g. one acts as the RTP Sink, another one is FileSink to store the Source into file? Pls give some suggestions, or one example will be appreciated. BR Ajax Chai -----Original Message----- From: live-devel-bounces at ns.live555.com [mailto:live-devel-bounces at ns.live555.com] On Behalf Of live-devel-request at ns.live555.com Sent: Sunday, June 10, 2012 10:28 AM To: Chai, Zheng (Ajax) Subject: Welcome to the "live-devel" mailing list (Digest mode) Welcome to the live-devel at lists.live555.com mailing list! Please read the FAQ, before you post a question to the mailing list. To post to this list, send your message to: live-devel at lists.live555.com General information about the mailing list is at: http://lists.live555.com/mailman/listinfo/live-devel If you ever want to unsubscribe or change your options (eg, switch to or from digest mode, change your password, etc.), visit your subscription page at: http://lists.live555.com/mailman/options/live-devel/ajax.chai%40alcatel-lucent.com You can also make such adjustments via email by sending a message to: live-devel-request at lists.live555.com with the word `help' in the subject or body (don't include the quotes), and you will get back a message with instructions. You must know your password to change your options (including changing the password, itself) or to unsubscribe without confirmation. It is: 8421gyh Normally, Mailman will remind you of your lists.live555.com mailing list passwords once every month, although you can disable this if you prefer. This reminder will also include instructions on how to unsubscribe or change your account options. There is also a button on your options page that will email your current password to you. From finlayson at live555.com Sun Jun 10 18:53:37 2012 From: finlayson at live555.com (Ross Finlayson) Date: Mon, 11 Jun 2012 04:53:37 +0300 Subject: [Live-devel] Pls give suggestion and example In-Reply-To: <79D8B3BF3F11934E8EE32BBAD9F77B9C615F1C34A6@FRMRSSXCHMBSA1X.dc-m.alcatel-lucent.com> References: <79D8B3BF3F11934E8EE32BBAD9F77B9C615F1C34A6@FRMRSSXCHMBSA1X.dc-m.alcatel-lucent.com> Message-ID: <9A05F01E-DEA8-47EF-9FE1-168686989153@live555.com> > I used the LIVE555 to accepted a TS stream Source over RTP and then broadcast the TS/RTP Source to the RTP Sink, and now the vlc player can play this live source. > However, I also need to store/save this live TS stream source on the live555 server into a stream file, how can I reach this? Can I add two Sinks to a single source? > e.g. one acts as the RTP Sink, another one is FileSink to store the Source into file? Pls give some suggestions, or one example will be appreciated. You can use the "StreamReplicator" class for this - to create two separate streams from a single input, and then feeding each stream into its own sink. Note an example of its use in the "testReplicator" demo application. Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From vivek256 at gmail.com Wed Jun 6 04:11:00 2012 From: vivek256 at gmail.com (vivek) Date: Wed, 6 Jun 2012 16:41:00 +0530 Subject: [Live-devel] Doubt about H264VideoRTPSink and wis streamer Message-ID: Hi, I'm currently working on a modified version of wis-streamer which uses a Davinci D365IPNC Camera to stream H264 video. I have trouble understanding the flow of data from my camera which provides live video input, till the final RTPsink where it is being sent through the network to be received by the client application. I've been looking at the code for a week or 2 now but I still don't seem to understand the dataflow fully. Could you please tell me what are the various sources/sinks that the input stream passes through before it is finally sent through the last RTPSink? Thanks in advance for your help. Regards, Vivek Ravindran -------------- next part -------------- An HTML attachment was scrubbed... URL: From finlayson at live555.com Mon Jun 11 04:03:59 2012 From: finlayson at live555.com (Ross Finlayson) Date: Mon, 11 Jun 2012 13:03:59 +0200 Subject: [Live-devel] Doubt about H264VideoRTPSink and wis streamer In-Reply-To: References: Message-ID: <5884AC41-F2CB-4D61-BC77-3AB45926EEBD@live555.com> > I'm currently working on a modified version of wis-streamer which uses a Davinci D365IPNC Camera to stream H264 video. > I have trouble understanding the flow of data from my camera which provides live video input, till the final RTPsink where it is being sent through the network to be received by the client application. > > I've been looking at the code for a week or 2 now but I still don't seem to understand the dataflow fully. > Could you please tell me what are the various sources/sinks that the input stream passes through before it is finally sent through the last RTPSink? Because you've modified the original code to stream H.264 video (something that it didn't do originally), how can we possibly answer your question? You're on your own here, I'm afraid... Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From finlayson at live555.com Mon Jun 11 13:10:43 2012 From: finlayson at live555.com (Ross Finlayson) Date: Mon, 11 Jun 2012 22:10:43 +0200 Subject: [Live-devel] Metadata In-Reply-To: <1338547697.15356.YahooMailNeo@web193004.mail.sg3.yahoo.com> References: <1338547697.15356.YahooMailNeo@web193004.mail.sg3.yahoo.com> Message-ID: > I am using RTSP for transmitting video from server to client. At some points during the transmission I need the server to "send" metadata to the client. Could you please share how can I do this? Your first step is to decide what RTP payload format you want to use for this 'metadata'... Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From finlayson at live555.com Mon Jun 11 13:18:33 2012 From: finlayson at live555.com (Ross Finlayson) Date: Mon, 11 Jun 2012 22:18:33 +0200 Subject: [Live-devel] AV Sync for live input In-Reply-To: References: Message-ID: <3FF26D5A-337C-4172-8AA3-D397BE65F678@live555.com> > I have RTSP ServerMediaSession with one audio subsession and one video subsession. > The sources for audio and video are live and coming as RTP streams whose timestamps are derived from same source. > ( I subclassed OnDemandServerMediaSubsession to take live RTP input) > > The RTSP client is able to receive both audio and video data , but there is no AV-Sync. > When i checked, the RTP source timestamps and timestamps of packets sent to client are different. You should not concern yourself with RTP timestamps at all. They are used only internally, by the RTP/RTCP implementation. Instead, the only values that you need to concern yourself with are "presentation times" (which are computed automatically to/from RTP timestamps by our code). In summary, to get proper audio/video synchronization, all of the following must be true: 1/ Each media source (audio and video) needs to have proper presentation times for each frame, and these presentation times need to be aligned with 'wall clock' time (i.e., the time that you would get by calling "gettimeofday()"). 2/ Each "RTPSource" (subclass) object needs to have an associated "RTCPInstance" object. (Because you are using a subclass of "OnDemandServerMediaSubsession", then this happens automatically for you.) 3/ RTCP "SR" packets from the server need to be received by the client, and the client needs to properly use these to compute the presentation times (and thereby do a/v sync). If you are using our RTSP/RTP client code (including VLC or MPlayer, which uses our client code), then this should happen automatically. Therefore, I would focus on point 1/. Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From finlayson at live555.com Mon Jun 11 15:32:01 2012 From: finlayson at live555.com (Ross Finlayson) Date: Mon, 11 Jun 2012 15:32:01 -0700 Subject: [Live-devel] Clarification on Live555 In-Reply-To: References: Message-ID: > We are streaming (over Wifi ) H264 encoded frames from a live source using the reference of testH264VideoStreamer class. Camera frame rate is 30 fps. > Receiver is an iOS application referenced from testRTSPClient class. > > We are able to stream with Initial propagation delay around 200ms but after a duration of 20 minutes we are observing a scenario in which we are not receiving any frames (afterGettingFrame is not getting called) in the receiver side for some very small duration(200-250 ms), and then a large propagation delay (more than 1 sec) is being observed in streaming. This scenario is being repeated every time. > > We are trying to analyze the Live555 Source code to any solution for above You are almost certainly on a "wild goose chase" here. Delays like this are almost always due to buffering inside the operating system (and/or its device drivers). It's important to understand that the LIVE555 code does not include any buffering of outgoing packets. Nor does it delay the processing of incoming packets (except for a delay of 100 ms (by default) whenever a lost packet is detected, to allow for the possibility of the 'missing' packet arriving later, out-of-order; this is the "fThresholdTime" code). It is especially noteworthy that you are streaming IP multicast over WiFi. By default, WiFi networks use a lower bit rate for multicast traffic. (Depending upon your network, it may be possible to increase this, though.) (As always, you are assumed to be using the latest version of the LIVE555 code...) Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From finlayson at live555.com Mon Jun 11 17:59:51 2012 From: finlayson at live555.com (Ross Finlayson) Date: Mon, 11 Jun 2012 17:59:51 -0700 Subject: [Live-devel] uninitialised value in liveMedia/RTPSink.cpp ? In-Reply-To: <16557_1339078259_4FD0B673_16557_18089_1_1BE8971B6CFF3A4F97AF4011882AA2550155FD7CB35B@THSONEA01CMS01P.one.grp> References: <16557_1339078259_4FD0B673_16557_18089_1_1BE8971B6CFF3A4F97AF4011882AA2550155FD7CB35B@THSONEA01CMS01P.one.grp> Message-ID: <66D4E284-72CE-40AF-8443-3FF436E48051@live555.com> > It seems that RTPTransmissionStats::fOldValid is not initialized, it is set in the second call of RTPTransmissionStats::noteIncomingRR (when fFirstPacket becomes false). > > Do you think it is possible to initialize it in the constructor ? Yes, this was an oversight. It will be fixed in the next release of the software. Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From ketangholap1990 at gmail.com Thu Jun 7 06:50:13 2012 From: ketangholap1990 at gmail.com (Ketan Gholap) Date: Thu, 7 Jun 2012 19:20:13 +0530 Subject: [Live-devel] Is there any way in testMPEG2TransportStreamer.cpp to know the frame rate of the file it is streaming In-Reply-To: <4FC7FDDF.6090106@etr-usa.com> References: <4FC7FDDF.6090106@etr-usa.com> Message-ID: *sir * *In one of mine application i am using testMPEG2TransportStreamer.cpp for streaming the video captured from live source and in one of mine header file i am using "Mpeg4videostreamdiscreteframer" can this file be used to calculate the frame rate???* Thanks On Fri, Jun 1, 2012 at 4:55 AM, Warren Young wrote: > On 5/29/2012 5:34 AM, Tarun Batra wrote: > >> >> Is there any way in testMPEG2TransportStreamer.cpp to know the frame >> rate of the file it is streaming???? >> > > Try subclassing MPEG2TransportStreamFramer, and keeping track when its > getNextFrame() method is called. Between that and gettimeofday(), you > should be able to calculate this. > ______________________________**_________________ > live-devel mailing list > live-devel at lists.live555.com > http://lists.live555.com/**mailman/listinfo/live-devel > -------------- next part -------------- An HTML attachment was scrubbed... URL: From finlayson at live555.com Mon Jun 11 21:29:16 2012 From: finlayson at live555.com (Ross Finlayson) Date: Mon, 11 Jun 2012 21:29:16 -0700 Subject: [Live-devel] Get connections on ProxyServerMediaSession In-Reply-To: References: Message-ID: Jesus, The "ProxyServerMediaSession" class was intended to be a self-contained, fully-featured class that could be used 'as is' to build RTSP proxy servers. For now at least, it is not intended to be customizable. (This may change in the future, depending on how the code ends up being used, but right now the intention is that the code be used 'as is'.) In particular, the proxy is implemented using a (single) "RTSPClient" object for each 'back end' stream (e.g., a network camera), and therefore keeps open a (single) RTSP connection to the 'back-end' server. However, as you noted, we don't want the 'back-end' server to be streaming data when it's not needed. Our implementation accomplishes this not by closing the connection when the last client leaves, but instead by automatically sending a RTSP "PAUSE" command to stop the stream. (Later, if a new client arrives, the proxy will automatically resume the streaming by sending another RTSP "PLAY" command.) Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From jesus.lc at vaelsys.com Tue Jun 12 00:20:35 2012 From: jesus.lc at vaelsys.com (=?ISO-8859-1?Q?Jes=FAs_Legan=E9s?=) Date: Tue, 12 Jun 2012 09:20:35 +0200 Subject: [Live-devel] Get connections on ProxyServerMediaSession In-Reply-To: References: Message-ID: Hi Ross, > The "ProxyServerMediaSession" class was intended to be a self-contained, > fully-featured class that could be used 'as is' to build RTSP proxy > servers. For now at least, it is not intended to be customizable. (This > may change in the future, depending on how the code ends up being used, but > right now the intention is that the code be used 'as is'.) > > In particular, the proxy is implemented using a (single) "RTSPClient" > object for each 'back end' stream (e.g., a network camera), and therefore > keeps open a (single) RTSP connection to the 'back-end' server. > > Thanks for your explication :-) I have been reading the code and the headers this last days and found and alternative design, that i believe is closest to how Live555 design was intended for according to what have you say: * instead of clients connect directly to ProxyServerMediaSession, they connect to RTSPServer, and this creates new RTSPServer::RTSPClientSession objects, one for each new client connection, and later this ones are being given to the ProxyServerMediaSession to be processed by the proxy. * So, what i have done are two new RTSPServer and RTSPServer::RTSPClientSession child classes so i can be able to catch when new connections are created (RTSPServer::RTSPClientSession constructor) or deleted (RTSPServer::RTSPClientSession destructor). At least until this moment it seems to work... :-D Is this the correct way to do it? There's another better, more direct way to be notified so i don't need to create the two new child classes? However, as you noted, we don't want the 'back-end' server to be streaming > data when it's not needed. Our implementation accomplishes this not by > closing the connection when the last client leaves, but instead by > automatically sending a RTSP "PAUSE" command to stop the stream. (Later, > if a new client arrives, the proxy will automatically resume the streaming > by sending another RTSP "PLAY" command.) > This are REALLY great news! :-D I was thinking about to close the connection checking the ProxyServerMediaSession referenceCount, but if this is done internally by the proxy and in a better way (pause the stream instead of close the connection) i think is a great improve :-) Thanks! :-D P.D.: As a side note, to put just a single line on the Doxygen explain what each method is intended for would be a huge imprevent... ;-) -- Jes?s Legan?s Combarro Software developer at Vaelsys -------------- next part -------------- An HTML attachment was scrubbed... URL: From sachinkharude10 at gmail.com Sun Jun 10 02:07:30 2012 From: sachinkharude10 at gmail.com (sachin kharude) Date: Sun, 10 Jun 2012 14:37:30 +0530 Subject: [Live-devel] live555 srtp support for vlc player Message-ID: Dear all, Does live555 support SRTP ? if it supports SRTP then how to use it to receive stream on vlc player ? thnx in advance -------------- next part -------------- An HTML attachment was scrubbed... URL: From finlayson at live555.com Tue Jun 12 00:42:42 2012 From: finlayson at live555.com (Ross Finlayson) Date: Tue, 12 Jun 2012 00:42:42 -0700 Subject: [Live-devel] live555 srtp support for vlc player In-Reply-To: References: Message-ID: <020744AB-C302-4434-A558-C59357734AA8@live555.com> > Does live555 support SRTP ? No. Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From mailme_vinaytyagi at yahoo.com Sat Jun 9 03:43:10 2012 From: mailme_vinaytyagi at yahoo.com (Vinay Tyagi) Date: Sat, 9 Jun 2012 03:43:10 -0700 (PDT) Subject: [Live-devel] Stream m4e file In-Reply-To: <1338977562.98729.YahooMailNeo@web113416.mail.gq1.yahoo.com> References: <1333970463.50831.YahooMailNeo@web113408.mail.gq1.yahoo.com> <1334122388.94963.YahooMailNeo@web113403.mail.gq1.yahoo.com> <1335869908.84179.YahooMailNeo@web113401.mail.gq1.yahoo.com> <1338977562.98729.YahooMailNeo@web113416.mail.gq1.yahoo.com> Message-ID: <1339238590.61929.YahooMailNeo@web113409.mail.gq1.yahoo.com> Hi, ? I am using LIVE555MediaServer to generate anstream of test.m4e file. While I am playing generated stram in VLC it is not playing properly. Picture qlity is bad and sound not coming. The following errors are flushing continuously on console -?? Please advice. ? C:\Documents and Settings\B00777\Desktop\live\mediaServer>live555MediaServer LIVE555 Media Server ??????? version 0.74 (LIVE555 Streaming Media library version 2012.01.26). Play streams from this server using the URL ??????? rtsp://172.19.80.132:8554/ where is a file present in the current directory. Each file's type is inferred from its name suffix: ??????? ".264" => a H.264 Video Elementary Stream file ??????? ".aac" => an AAC Audio (ADTS format) file ??????? ".ac3" => an AC-3 Audio file ??????? ".amr" => an AMR Audio file ??????? ".dv" => a DV Video file ??????? ".m4e" => a MPEG-4 Video Elementary Stream file ??????? ".mkv" => a Matroska audio+video+(optional)subtitles file ??????? ".mp3" => a MPEG-1 or 2 Audio file ??????? ".mpg" => a MPEG-1 or 2 Program Stream (audio+video) file ??????? ".ts" => a MPEG Transport Stream file ??????????????? (a ".tsx" index file - if present - provides server 'trick play' ?support) ??????? ".wav" => a WAV Audio file ??????? ".webm" => a WebM audio(Vorbis)+video(VP8) file See http://www.live555.com/mediaServer/ for additional documentation. (We use port 80 for optional RTSP-over-HTTP tunneling, or for HTTP live streamin g (for indexed Transport Stream files only).) MPEG4VideoStreamParser::parseVideoObjectPlane(): Saw unexpected code 00000150 MPEG4VideoStreamParser::parseVideoObjectPlane(): marker bit not set! MPEG4VideoStreamParser::parseVideoObjectPlane(): Saw unexpected code 0000016B MPEG4VideoStreamParser::parseVideoObjectPlane(): marker bit not set! MPEG4VideoStreamParser::parseVideoObjectPlane(): Saw unexpected code 00000140 MPEG4VideoStreamParser::parseVideoObjectPlane(): marker bit not set! MPEG4VideoStreamParser::parseVideoObjectPlane(): Saw unexpected code 00000186 MPEG4VideoStreamParser::parseVideoObjectPlane(): Saw unexpected code 00000186 MPEG4VideoStreamParser::parseVideoObjectPlane(): marker bit not set! MPEG4VideoStreamParser::parseVideoObjectPlane(): Saw unexpected code 00000140 MPEG4VideoStreamParser::parseVideoObjectPlane(): marker bit not set! MPEG4VideoStreamParser::parseVideoObjectLayer(): This appears to be a 'short vid eo header', which we current don't support MPEG4VideoStreamParser::analyzeVOLHeader(): marker_bit 1 not set! MPEG4VideoStreamParser::parseVideoObjectPlane(): Saw unexpected code 000001EE MPEG4VideoStreamParser::parseVideoObjectPlane(): marker bit not set! MPEG4VideoStreamParser::parseVideoObjectPlane(): Saw unexpected code 00000151 MPEG4VideoStreamParser::parseVideoObjectPlane(): marker bit not set! MPEG4VideoStreamParser::parseVideoObjectLayer(): This appears to be a 'short vid eo header', which we current don't support MPEG4VideoStreamParser::analyzeVOLHeader(): marker_bit 2 not set! MPEG4VideoStreamParser::parseVideoObjectPlane(): Saw unexpected code 000001A0 MPEG4VideoStreamParser::parseVideoObjectPlane(): Saw unexpected code 00000181 MPEG4VideoStreamParser::parseVideoObjectPlane(): marker bit not set! MPEG4VideoStreamParser::parseVideoObjectLayer(): This appears to be a 'short vid eo header', which we current don't support MPEG4VideoStreamParser::analyzeVOLHeader(): marker_bit 2 not set! MPEG4VideoStreamParser::parseVideoObjectPlane(): Saw unexpected code 00000156 MPEG4VideoStreamParser::parseVideoObjectPlane(): marker bit not set! MPEG4VideoStreamParser::parseVideoObjectPlane(): Saw unexpected code 00000140 MPEG4VideoStreamParser::parseVideoObjectPlane(): Saw unexpected code 00000144 MPEG4VideoStreamParser::parseVideoObjectPlane(): marker bit not set! MPEG4VideoStreamParser::parseVideoObjectPlane(): Saw unexpected code 000001EC MPEG4VideoStreamParser::parseVideoObjectPlane(): marker bit not set! MPEG4VideoStreamParser::parseVideoObjectPlane(): Saw unexpected code 00000140 MPEG4VideoStreamParser::parseVideoObjectPlane(): marker bit not set! MPEG4VideoStreamParser::parseVideoObjectPlane(): Saw unexpected code 00000153 MPEG4VideoStreamParser::parseVideoObjectPlane(): marker bit not set! MPEG4VideoStreamParser::parseVideoObjectPlane(): marker bit not set! MPEG4VideoStreamParser::parseVideoObjectLayer(): This appears to be a 'short vid eo header', which we current don't support MPEG4VideoStreamParser::analyzeVOLHeader(): marker_bit 1 not set! MPEG4VideoStreamParser::parseVideoObjectLayer(): This appears to be a 'short vid eo header', which we current don't support MPEG4VideoStreamParser::analyzeVOLHeader(): marker_bit 1 not set! MPEG4VideoStreamParser::parseVideoObjectPlane(): Saw unexpected code 000001D7 MPEG4VideoStreamParser::parseVideoObjectPlane(): marker bit not set! MPEG4VideoStreamParser::parseVideoObjectLayer(): This appears to be a 'short vid eo header', which we current don't support MPEG4VideoStreamParser::analyzeVOLHeader(): marker_bit 1 not set! MPEG4VideoStreamParser::parseVideoObjectPlane(): Saw unexpected code 00000152 MPEG4VideoStreamParser::parseVideoObjectPlane(): Saw unexpected code 00000174 MPEG4VideoStreamParser::parseVideoObjectPlane(): Saw unexpected code 00000130 MPEG4VideoStreamParser::parseVideoObjectPlane(): Saw unexpected code 000001C1 MPEG4VideoStreamParser::parseVideoObjectPlane(): marker bit not set! MPEG4VideoStreamParser::parseVideoObjectPlane(): Saw unexpected code 00000151 MPEG4VideoStreamParser::parseVideoObjectLayer(): This appears to be a 'short vid eo header', which we current don't support MPEG4VideoStreamParser::parseVideoObjectPlane(): Saw unexpected code 00000147 MPEG4VideoStreamParser::parseVideoObjectPlane(): Saw unexpected code 000001D2 MPEG4VideoStreamParser::parseVideoObjectPlane(): marker bit not set! MPEG4VideoStreamParser::parseVideoObjectPlane(): Saw unexpected code 00000160 MPEG4VideoStreamParser::parseVideoObjectPlane(): marker bit not set! MPEG4VideoStreamParser::parseVideoObjectPlane(): Saw unexpected code 00000150 MPEG4VideoStreamParser::parseVideoObjectPlane(): Saw unexpected code 00000182 MPEG4VideoStreamParser::parseVideoObjectPlane(): marker bit not set! MPEG4VideoStreamParser::parseVideoObjectPlane(): Saw unexpected code 000001D8 MPEG4VideoStreamParser::parseVideoObjectPlane(): marker bit not set! MPEG4VideoStreamParser::parseVideoObjectPlane(): Saw unexpected code 00000132 MPEG4VideoStreamParser::parseVideoObjectPlane(): marker bit not set! MPEG4VideoStreamParser::parseVideoObjectPlane(): Saw unexpected code 00000180 MPEG4VideoStreamParser::parseVideoObjectLayer(): This appears to be a 'short vid eo header', which we current don't support MPEG4VideoStreamParser::analyzeVOLHeader(): marker_bit 1 not set! MPEG4VideoStreamParser::parseVideoObjectPlane(): Saw unexpected code 00000140 ? Regards, Vinay -------------- next part -------------- An HTML attachment was scrubbed... URL: From finlayson at live555.com Tue Jun 12 15:00:06 2012 From: finlayson at live555.com (Ross Finlayson) Date: Tue, 12 Jun 2012 15:00:06 -0700 Subject: [Live-devel] Stream m4e file In-Reply-To: <1339238590.61929.YahooMailNeo@web113409.mail.gq1.yahoo.com> References: <1333970463.50831.YahooMailNeo@web113408.mail.gq1.yahoo.com> <1334122388.94963.YahooMailNeo@web113403.mail.gq1.yahoo.com> <1335869908.84179.YahooMailNeo@web113401.mail.gq1.yahoo.com> <1338977562.98729.YahooMailNeo@web113416.mail.gq1.yahoo.com> <1339238590.61929.YahooMailNeo@web113409.mail.gq1.yahoo.com> Message-ID: > I am using LIVE555MediaServer to generate anstream of test.m4e file. > While I am playing generated stram in VLC it is not playing properly. > Picture qlity is bad and sound not coming. Note that ".m4e" files *must* be "MPEG-4 Video Elementary Stream" files - i.e., MPEG-4 video-only files (with no audio or anything else). Your problem is almost certainly that your file is not valid. (I suspect that you tried to rename a ".mp4" or ".mpg" as ".m4e" - you can't do this!) For examples of valid ".m4e" files that you can use, see the URL mentioned in the FAQ. Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From finlayson at live555.com Tue Jun 12 21:26:12 2012 From: finlayson at live555.com (Ross Finlayson) Date: Tue, 12 Jun 2012 21:26:12 -0700 Subject: [Live-devel] Still failed in receiving data via multicast In-Reply-To: References: Message-ID: > I still cannot find my wrong in receiving date using the "openRTSP" command-line client via multicast. > I have tried to apply for streams from the DM368IPNC, the TMDXIPCAM8127J3, and the "testH264VideoStreamer", but all failed. > The RTSP protocol exchange works OK, but then the client cannot receive stream. > With the help of the "Wireshark", I am sure that the stream from a camera does arrive the specified port, and the vlc player can play the streams from all the three servers. Are you sure that your stream is multicast? Because I can't see how all three of the following could be true: 1/ Your stream is a multicast stream, initiated using RTSP. 2/ VLC plays the stream OK. 3/ "openRTSP" run with the same "rtsp://" URL does not receive any data. (BTW, I suggest that you also try running the "testRTSPClient" demo application.) Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From renatomauro at libero.it Mon Jun 11 05:10:51 2012 From: renatomauro at libero.it (Renato MAURO (Libero)) Date: Mon, 11 Jun 2012 14:10:51 +0200 Subject: [Live-devel] Fw: duplicate stream from 2 cameras References: <1338640955.9859.YahooMailNeo@web130104.mail.mud.yahoo.com> Message-ID: Hello Sumit. >We are using multiple sony camera streams in our application using live555. We observe that suddenly(at run time) a camera starts taking stream of other, >so we start getting duplicate streams, though IPs and cameras are different. I'm not sure I understand the words "a camera starts taking stream of other", but, if you mean that, at the receiver side, a stream suddenly starts to receive some frames of another *just started* stream, then it seems that you are dealing with the same issue I described at http://lists.live555.com/pipermail/live-devel/2012-May/015169.html and that Ross fixed promptly. So I suggest to use the latest version of the software. >Is this because of ephemeral port issue on live555 rtsp client? No. Renato MAURO ----- Original Message ----- From: Sumit Aggarwal To: live-devel at lists.live555.com Sent: Saturday, June 02, 2012 2:42 PM Subject: [Live-devel] Fw: duplicate stream from 2 cameras Hi, We are using multiple cameras stream using live555 in a single system. We observe that suddenly(at run time) a camera starts taking stream of other, so we start getting duplicate streams, although IPs and cameras are different. Is this because of ephemeral port issue on live555 rtsp client? Thanks Dear Renato Mauro, We are using multiple sony camera streams in our application using live555. We observe that suddenly(at run time) a camera starts taking stream of other, so we start getting duplicate streams, though IPs and cameras are different. Is this because of ephemeral port issue on live555 rtsp client? Please help. Thanks Regards,Sumit ------------------------------------------------------------------------------ _______________________________________________ live-devel mailing list live-devel at lists.live555.com http://lists.live555.com/mailman/listinfo/live-devel -------------- next part -------------- An HTML attachment was scrubbed... URL: From allbabel at gmail.com Mon Jun 11 05:46:26 2012 From: allbabel at gmail.com (Andy Bell) Date: Mon, 11 Jun 2012 14:46:26 +0200 Subject: [Live-devel] RTP TCP problems Message-ID: Hi All, I have created a RTSPServer which I am using to stream a live VP8 video stream to several clients. I have created my own FramedSource and I am using this to write the VP8 stream. This works fine when the client uses UDP, when I change the client to use TCP for less reliable networks I seem to 'lose' frames of video and the result is a broken video stream on the client. This is quite surprising as I would have thought if I was to have problems I would have had them when using UDP as opposed to TCP. Can anyone explain why I would have this problem and how I would go about fixing it? Thanks in advance, Andy -------------- next part -------------- An HTML attachment was scrubbed... URL: From finlayson at live555.com Wed Jun 13 01:29:15 2012 From: finlayson at live555.com (Ross Finlayson) Date: Wed, 13 Jun 2012 01:29:15 -0700 Subject: [Live-devel] duplicate stream from 2 cameras In-Reply-To: References: <1338640955.9859.YahooMailNeo@web130104.mail.mud.yahoo.com> Message-ID: > >We are using multiple sony camera streams in our application using live555. We observe that suddenly(at run time) a camera starts taking stream of other, > >so we start getting duplicate streams, though IPs and cameras are different. > I'm not sure I understand the words "a camera starts taking stream of other", but, if you mean that, at the receiver side, a stream suddenly starts to receive some frames of another *just started* stream, then it seems that you are dealing with the same issue I described at http://lists.live555.com/pipermail/live-devel/2012-May/015169.html and that Ross fixed promptly. So I suggest to use the latest version of the software. Specifically, try using the latest version - 2012.06.12 - that was released yesterday. Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From finlayson at live555.com Wed Jun 13 01:47:36 2012 From: finlayson at live555.com (Ross Finlayson) Date: Wed, 13 Jun 2012 01:47:36 -0700 Subject: [Live-devel] RTP TCP problems In-Reply-To: References: Message-ID: > I have created a RTSPServer which I am using to stream a live VP8 video stream to several clients. I have created my own FramedSource and I am using this to write the VP8 stream. This works fine when the client uses UDP, when I change the client to use TCP for less reliable networks I seem to 'lose' frames of video and the result is a broken video stream on the client. This is quite surprising as I would have thought if I was to have problems I would have had them when using UDP as opposed to TCP. Your stream is exceeding the bandwidth of your network. Therefore, you are going to lose data, no matter how you transmit your stream. Note that - in this case - RTP-over-TCP streaming cannot save you. If you try to stream over a too-low-bandwidth network using TCP, you'll still get data loss, but it'll occur at the sender (because of its OS buffer overflowing), rather than at the receiver. This is the important distinction between live media streaming, and on-demand streaming (e.g., using the World-Wide Web). If you use our software, it's important to understand this distinction. Or, to put it more bluntly, if you do not understand the paragraph above, you should not be using our software. In fact, if - as appears to be the case for you - your network is bandwidth-constrained, it is actually better (or at least, 'less bad') to stream using RTP/UDP rather than RTP/TCP. If you stream over RTP/UDP, the data loss will occur on RTP packet boundaries, which is much better for your decoder. (You are probably getting data loss even with RTP/UDP streaming, but you're just not realizing it.) Your only solution is to reduce the bitrate of your stream (by reducing its frame rate and/or video complexity). Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From sjh431 at gmail.com Tue Jun 12 21:54:17 2012 From: sjh431 at gmail.com (jhseo) Date: Wed, 13 Jun 2012 13:54:17 +0900 Subject: [Live-devel] Can I connect with multiple Live555 ? Message-ID: <1ebd01cd4920$98b4cfa0$ca1e6ee0$@gmail.com> Hi. I'm wondering if Live555 media server can connect with another Live555 media server using RTSP. Thanks for your interest. -------------- next part -------------- An HTML attachment was scrubbed... URL: From qrundong at gmail.com Wed Jun 13 03:58:21 2012 From: qrundong at gmail.com (rundong qiu) Date: Wed, 13 Jun 2012 18:58:21 +0800 Subject: [Live-devel] =?utf-8?q?=5BLive-deve=E2=80=8Bl=5DStill_failed_in_r?= =?utf-8?q?eceiving_data_via_multicast?= Message-ID: Dear Ross, Yes, this case looks unbelievable. I am new to LIVE555, so maybe there is anything wrong in my operation? As your advise, I tried the "testRTSPClient" with the IP camera "TMDXIPCAM8127J3". It can get data in the case of unicast, but also failed in the case of multicast. When using the "openRTSP", I use the command line like this "-b 300000 -I 192.168.1.2 rtsp:// 192.168.1.16:8557/PSIA/Streaming/channels/2?videoCodecType=H.264". If you have any thought about it, please tell me, thanks! Ryan. -------------- next part -------------- An HTML attachment was scrubbed... URL: From finlayson at live555.com Wed Jun 13 06:01:34 2012 From: finlayson at live555.com (Ross Finlayson) Date: Wed, 13 Jun 2012 06:01:34 -0700 Subject: [Live-devel] Can I connect with multiple Live555 ? In-Reply-To: <1ebd01cd4920$98b4cfa0$ca1e6ee0$@gmail.com> References: <1ebd01cd4920$98b4cfa0$ca1e6ee0$@gmail.com> Message-ID: > I?m wondering if Live555 media server can connect with another Live555 media server using RTSP. No, the "LIVE555 Media Server" product cannot do this, but the "LIVE555 Proxy Server" can. This is probably what you want. See http://www.live555.com/proxyServer/ Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From finlayson at live555.com Wed Jun 13 06:26:17 2012 From: finlayson at live555.com (Ross Finlayson) Date: Wed, 13 Jun 2012 06:26:17 -0700 Subject: [Live-devel] =?utf-8?q?=5BLive-deve=E2=80=8Bl=5DStill_failed_in_r?= =?utf-8?q?eceiving_data_via_multicast?= In-Reply-To: References: Message-ID: > Yes, this case looks unbelievable. I am new to LIVE555, so maybe there is anything wrong in my operation? > As your advise, I tried the "testRTSPClient" with the IP camera "TMDXIPCAM8127J3". It can get data in the case of unicast, but also failed in the case of multicast. OK, that's different from what you said before. Before, you said that VLC was able to receive and play your *multicast* stream. Now, you're apparently saying that you can receive a unicast stream, but not a multicast stream. So, your problem is apparently that you do not have IP multicast connectivity between your server and client. In that case, forget about trying to receive a multicast stream; you won't be able to do it. Instead, you will only be able to receive unicast streams. If you try to receive a unicast stream using "openRTSP", but find that the resulting data files are empty, then see this FAQ entry: http://www.live555.com/liveMedia/faq.html#openRTSP-empty-files Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From warren at etr-usa.com Wed Jun 13 16:09:26 2012 From: warren at etr-usa.com (Warren Young) Date: Wed, 13 Jun 2012 17:09:26 -0600 Subject: [Live-devel] liveMedia/FreeBSD : compilation fails on ar command In-Reply-To: References: <4FB5D902.5040501@gmail.com> <4FB5D963.1050805@gmail.com> <20F8EC52-CCAC-471E-A9B8-9FFC3C9D1690@live555.com> <4FC2245A.4060802@gmail.com> <88670586-6DE8-4315-85AC-065ECE6BDC87@live555.com> <4FCD8A0C.7090705@etr-usa.com> Message-ID: <4FD91DA6.3070008@etr-usa.com> On 6/9/2012 12:47 AM, Ross Finlayson wrote: > > Unfortunately there are many environments for which linking won't work > if the space character is present; Which ones? I'll be more able to help you find a workable fix if I can set up a VM for one or more of them. From finlayson at live555.com Wed Jun 13 16:58:16 2012 From: finlayson at live555.com (Ross Finlayson) Date: Wed, 13 Jun 2012 16:58:16 -0700 Subject: [Live-devel] liveMedia/FreeBSD : compilation fails on ar command In-Reply-To: <4FD91DA6.3070008@etr-usa.com> References: <4FB5D902.5040501@gmail.com> <4FB5D963.1050805@gmail.com> <20F8EC52-CCAC-471E-A9B8-9FFC3C9D1690@live555.com> <4FC2245A.4060802@gmail.com> <88670586-6DE8-4315-85AC-065ECE6BDC87@live555.com> <4FCD8A0C.7090705@etr-usa.com> <4FD91DA6.3070008@etr-usa.com> Message-ID: <6F407FAB-FAFB-4FFB-BC38-707074FB9231@live555.com> >> Unfortunately there are many environments for which linking won't work >> if the space character is present; > > Which ones? For starters, Windows. There can't be a space after "lib -out:" Also, if you look at the various "config.*" files, you'll see several with no space character at the end of the "LIBRARY_LINK =" line. Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From matthias.doering at geutebrueck.com Thu Jun 14 09:28:02 2012 From: matthias.doering at geutebrueck.com (=?Windows-1252?Q?D=F6ring_Dr=2E_Matthias?=) Date: Thu, 14 Jun 2012 18:28:02 +0200 Subject: [Live-devel] live555 event trigger behaviour Message-ID: <93EFDEE1DA56194B961841BD859539EE0B1273E4D0@de-ex-1> Hello Ross, because I am new here let me first express my thankfulness for that great library which will probably save a huge amount of development time for the project I am about to evaluate currently. I read your FAQ and the mailing lists multiple times to not bother you with trivial questions. Nevertheless I came now to a vulnerability in the design in the event trigger approach where I would like to ask you for your opinion. The general statement for triggering the Live555 event loop from external devices is: ?TriggerEvent is the only Live555 function that you?re permitted to call from a non LIVE555 thread? In my opinion the event trigger approach is not thread safe and causes thread racing effects of different severity depending on the usage scenario. To illustrate that a rough description of my destination. - Multiple sources (based on the DeviceSource sample) with different codecs (MJPEG, H264, MPEG-2) are to create triggers for Live555 based on the triggerEvent procedure. The source streams are live video from different hardware grabbers. The source implementations work already quite well. - Each source has registered its individual event trigger. - Each source runs in its own thread which produces a trigger when a frame is available - The result is that multiple producer threads have simultaneous write access to the 4 following global live555 variables and one consumer thread (live555) has read access. The critical shared variables are: fTriggeredEventClientDatas, fLastUsedTriggerMask, fLastUsedTriggerNum and fTriggersAwaitHandling. - Because the access to the shared variables is not protected with locks one gets racing conditions which may even lead to a crash of the application because of access violations (what happened in my tests). For example let?s assume we have an JPEG source class and an H264 source class ? for simpliciy just one instance of each. They call the trigger Event function simultaneously: void CGscTaskScheduler::triggerEvent(EventTriggerId eventTriggerId, void * clientData) { if (eventTriggerId == fLastUsedTriggerMask) { >> Thread 1: JPEG source runs that code ======================================= fTriggeredEventClientDatas[fLastUsedTriggerNum] = clientData; } else { EventTriggerId mask = 0x80000000; for (unsigned i = 0; i < MAX_NUM_EVENT_TRIGGERS; ++i) { if ((eventTriggerId&mask) != 0) { fTriggeredEventClientDatas[i] = clientData; fLastUsedTriggerMask = mask; >> Thread 2: H264 source runs that code ======================================= fLastUsedTriggerNum = i; } mask >>= 1; } } fTriggersAwaitingHandling |= eventTriggerId; } If thread 2 changes the value of the fLastUsedTriggerNum shared variable before thread 1 wrote its clientData then the source pointer is written to the wrong index in the ClientDatas array. One result could be that the callback deliverFrame0 of the JPEG source gets a pointer to a H264 source instance (and vice versa). That produces undefined behaviour and will normally cause an access violation. There are other racing effects imaginable (lost frames, frames are written to a wrong RTP channel). Such effects may happen in all code parts which have access to the shared variables (for example the live555 SingleStep procedure modifies these values as well which could lead to race effects with the source threads). My only solution without modifying the live555 sources to solve that problem was to implement my own TaskScheduler which is derived from BasicTaskScheduler and which overwrites the 4 virtual functions triggerEvent, createEventTrigger, deleteEventTrigger, SingleStep. The only change in the reimplemented virtual functions of the base classes was the introduction of a mutex which synchronizes the simultaneous accesses for the critical code parts. With that I got rid of the different racing effects I had before. Do I see anything wrong or did I misunderstand the design basics of the Event trigger mechanism? I appreciate the general intention to have platform independent code. But in favor of the plagued Windows users which want to stream live sources could you please consider to introduce some conditional define based thread Windows synchronization in the task scheduler event trigger mechanism to avoid the described problems? Without that I do not see a way to use the event trigger mechanism in a reliable way. Best regards Matthias GEUTEBR?CK GmbH Tel: +49 2645 137-680 Im Nassen 7-9 Mobil: 53578 Windhagen Fax: +49 2645 137-999 http://www.geutebrueck.de E-Mail: matthias.doering at geutebrueck.com Gesch?ftsf?hrer: Katharina Geutebr?ck, Christoph Hoffmann; UST-Ident-Nr.: DE813443473; Handelsregister: HRB 14475 Montabaur [cid:topline_geu_logo.jpg] Diese E-Mail enth?lt vertrauliche und/oder rechtlich gesch?tzte Informationen. Wenn Sie nicht der richtige Adressat sind oder diese E-Mail irrt?mlich erhalten haben, informieren Sie bitte sofort den Absender und vernichten Sie diese Mail. Das unerlaubte Kopieren sowie die unbefugte Weitergabe dieser Mail ist nicht gestattet. This e-mail contains confidential and/or privileged information. If you are not the intended recipient (or have received this e-mail in error) please notify the sender immediately and destroy this e-mail. Any unauthorised copying, disclosure or distribution of the material in this e-mail is strictly forbidden. Weder die GEUTEBR?CK GmbH noch der Absender (Matthias D?ring) ?bernehmen die Haftung f?r Viren; es obliegt Ihrer Verantwortung, die E-Mail und deren Anh?nge auf Viren zu pr?fen. Anh?nge: Versand am 14.06.2012 18:28 von D?ring Matthias -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: topline_geu_logo.jpg Type: application/octet-stream Size: 6449 bytes Desc: topline_geu_logo.jpg URL: From rafael.antoniello at gmail.com Wed Jun 13 07:36:04 2012 From: rafael.antoniello at gmail.com (Rafael Antoniello) Date: Wed, 13 Jun 2012 11:36:04 -0300 Subject: [Live-devel] testOnDemandRTSPServer app takes 100% cpu when disconnecting and connecting external client (e.g. VLC) Message-ID: Hi, I have tested "testOnDemandRTSPServer" as follows (using source code live.2012.06.12.tar.gz): 1- Stream MPEG2-TS stream over raw UDP locally (let's say to udp://127.0.0.1:1234). I am using FFmpeg for this task. 2- Changed some lines in the application to take the UDP stream in raw mode; this is: $ char const* inputAddressStr = "127.0.0.1"; $ Boolean const inputStreamIsRawUDP = True; 3- Launched "testOnDemandRTSPServer" application; to serve correspondent RTSP stream (rtsp://...) 4- Connect to RTSP source using another client; VLC in my case. Observations: - Connect VLC to rtsp source: opens and perfectly plays the UDP source without problems. CPU consumption keeps nearly to zero. - Disconnect the client (stop VLC). - Connect again the client (just press play button of VLC). The second time CPU consumptions raises 100%, and the video does not play well. Method "void BasicTaskScheduler0::doEventLoop(char* watchVariable)" seems to be related to this problem. Nevertheless, It might exist some socket connection/disconnection problem, as if some object(s) in the related code are not properly used/released. If you schedule "BasicTaskScheduler0::doEventLoop", adding for example a "usleep(0)" within the loop, CPU consumption decreases, but this does not solve the problem: in a second connection the video does not play well. Thanks in advance. Rafa. -------------- next part -------------- An HTML attachment was scrubbed... URL: From tayeb at tmxvoip.com Thu Jun 14 12:16:29 2012 From: tayeb at tmxvoip.com (Meftah Tayeb) Date: Thu, 14 Jun 2012 22:16:29 +0300 Subject: [Live-devel] RTMP Streaming Message-ID: <014CCAC3776C4012B873D62CF8F3A229@work> hello, do Live555 support RTMP? thank you Meftah Tayeb IT Consulting http://www.tmvoip.com/ phone: +21321656139 Mobile: +213660347746 __________ Information from ESET NOD32 Antivirus, version of virus signature database 6830 (20120126) __________ The message was checked by ESET NOD32 Antivirus. http://www.eset.com From finlayson at live555.com Thu Jun 14 15:38:16 2012 From: finlayson at live555.com (Ross Finlayson) Date: Thu, 14 Jun 2012 15:38:16 -0700 Subject: [Live-devel] RTMP Streaming In-Reply-To: <014CCAC3776C4012B873D62CF8F3A229@work> References: <014CCAC3776C4012B873D62CF8F3A229@work> Message-ID: > do Live555 support RTMP? No. Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From dw at norpix.com Thu Jun 14 12:51:32 2012 From: dw at norpix.com (daniel) Date: Thu, 14 Jun 2012 15:51:32 -0400 Subject: [Live-devel] Crash for Http live Streaming In-Reply-To: References: Message-ID: <000101cd4a67$1beb1310$53c13930$@com> I'm working on HLS based on Live555. I test mediaServer for HLS.it's crashed try to get a playlist. The problem is in the function RTSPServerSupportingHTTPStreaming::RTSPClientSessionSupportingHTTPStreaming( ) { ..... fPlaylistSource = ByteStreamMemoryBufferSource::createNew(envir(), (u_int8_t*)playlist, playlistLen); if (fTCPSink == NULL) fTCPSink = TCPStreamSink::createNew(envir(), fClientOutputSocket); fTCPSink->startPlaying(*fPlaylistSource, afterStreaming, this); } fTCPSink->startPlaying(...) will call afterStreaming() when sending is done. void RTSPServerSupportingHTTPStreaming::RTSPClientSessionSupportingHTTPStreaming: :afterStreaming(void* clientData) { RTSPServerSupportingHTTPStreaming::RTSPClientSessionSupportingHTTPStreaming* clientSession = (RTSPServerSupportingHTTPStreaming::RTSPClientSessionSupportingHTTPStreaming *)clientData; delete clientSession; } In the afterStreaming() function will delete himself. RTSPServer::RTSPClientSession::handleRequestBytes(int newBytesRead) { ... handleHTTPCmd_StreamingGET(urlSuffix, (char const*)fRequestBuffer); ... /****Crash here **/ /***Since this pointer is invalid this time. It has been delete in handleHTTPCmd_StreamingGET(...)**/ send(fClientOutputSocket, (char const*)fResponseBuffer, strlen((char*)fResponseBuffer), 0); if (strcmp(cmdName, "SETUP") == 0 && fStreamAfterSETUP) { // The client has asked for streaming to commence now, rather than after a // subsequent "PLAY" command. So, simulate the effect of a "PLAY" command: handleCmd_withinSession("PLAY", urlPreSuffix, urlSuffix, cseq, (char const*)fRequestBuffer); } resetRequestBuffer(); // to prepare for any subsequent request } while (0); } Do you any idea? I use VS2010. Thank very much. Daniel From qrundong at gmail.com Thu Jun 14 10:26:10 2012 From: qrundong at gmail.com (rundong qiu) Date: Fri, 15 Jun 2012 01:26:10 +0800 Subject: [Live-devel] =?utf-8?b?W0xpdmUtZGV2ZeKAi+KAi2xdU3RpbGwgZmFpbGVk?= =?utf-8?q?_in_receiving_data_via_multicast?= Message-ID: Dear Ross, It seems that you have misunderstood what I said. My stream comes from a IP camera ("TMDXIPCAM8127J3"."DM368"), which can be chosen to send its stream via unicast or multicast. When the stream is send via unicast, all the "testRTSPClient", the "openRTSP", and the VLC Player can receive it. But in the case that the stream is send via multicast, the VLC Player still works well, but the "testRTSPClient" and the "openRTSP" both failed. So, what I mean is, the VLC player can receive data in both the cases of unicast and multicast, but the "testRTSPClient" and the "openRTSP" can only receive data via unicast. I am sure that my question is about multicast, because the monitor of the "wireshark", and the content of the RTSP protocol exchange can prove that, what cause the resulting data files are empty is a multicast stream. Ryan, -------------- next part -------------- An HTML attachment was scrubbed... URL: From finlayson at live555.com Thu Jun 14 22:33:06 2012 From: finlayson at live555.com (Ross Finlayson) Date: Thu, 14 Jun 2012 22:33:06 -0700 Subject: [Live-devel] testOnDemandRTSPServer app takes 100% cpu when disconnecting and connecting external client (e.g. VLC) In-Reply-To: References: Message-ID: Unfortunately I can't explain your problem. However, if your intention is to use our RTSP server implementation to stream a live Transport Stream, then I suggest that you have the server access the Transport Stream data directly (as an input source), rather than having the Transport Stream data streamed to the server. See http://www.live555.com/liveMedia/faq.html#liveInput-unicast Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From finlayson at live555.com Thu Jun 14 22:54:41 2012 From: finlayson at live555.com (Ross Finlayson) Date: Thu, 14 Jun 2012 22:54:41 -0700 Subject: [Live-devel] =?utf-8?b?W0xpdmUtZGV2ZeKAi+KAi2xdU3RpbGwgZmFpbGVk?= =?utf-8?q?_in_receiving_data_via_multicast?= In-Reply-To: References: Message-ID: > When the stream is send via unicast, all the "testRTSPClient", the "openRTSP", and the VLC Player can receive it. > But in the case that the stream is send via multicast, the VLC Player still works well, but the "testRTSPClient" and the "openRTSP" both failed. Then I can't explain why this might be happening. Sorry. Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From finlayson at live555.com Fri Jun 15 02:11:03 2012 From: finlayson at live555.com (Ross Finlayson) Date: Fri, 15 Jun 2012 02:11:03 -0700 Subject: [Live-devel] Crash for Http live Streaming In-Reply-To: <000101cd4a67$1beb1310$53c13930$@com> References: <000101cd4a67$1beb1310$53c13930$@com> Message-ID: <8E17E85E-BC53-4518-A792-03296B084056@live555.com> Thanks for the report. Unfortunately, at first glance I don't see how the function "RTSPServer::RTSPClientSession::handleRequestBytes()" can be called after the "RTSPServerSupportingHTTPStreaming::RTSPClientSessionSupportingHTTPStreaming" object is deleted, because the destructor of the parent class - "RTSPServer::RTSPClientSession" - should be turning off the handling of incoming data on its socket. I.e., once a "RTSPServer::RTSPClientSession" object is deleted, no more incoming data for this session should attempt to be handled. So, if you can find out specifically how the "RTSPServer::RTSPClientSession::handleRequestBytes()" function is getting called (i.e., the call stack at the point of the crash), then this might help me figure out what's going wrong. Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From jstafford at ampltd.com Fri Jun 15 06:08:29 2012 From: jstafford at ampltd.com (James Stafford) Date: Fri, 15 Jun 2012 14:08:29 +0100 Subject: [Live-devel] =?windows-1252?q?Still_failed_in_receiving_data_via_?= =?windows-1252?q?multicast?= In-Reply-To: References: Message-ID: <4FDB33CD.5070500@ampltd.com> > It seems that you have misunderstood what I said. > My stream comes from a IP camera ("TMDXIPCAM8127J3"."DM368"), which > can be chosen to send its stream via unicast or multicast. When the > stream is send via unicast, all the "testRTSPClient", the "openRTSP", > and the VLC Player can receive it. > But in the case that the stream is send via multicast, the VLC Player > still works well, but the "testRTSPClient" and the "openRTSP" both failed. > So, what I mean is, the VLC player can receive data in both the cases > of unicast and multicast, but the "testRTSPClient" and the "openRTSP" > can only receive data via unicast. > I am sure that my question is about multicast, because the monitor of > the "wireshark", and the content of the RTSP protocol exchange can > prove that, what cause the resulting data files are empty is a > multicast stream. Are testRTSPClient and openRTSP linking against ws2_32.lib or wsock32.lib? In the past I have had problems with multicast when using ws2_32.lib, changing to use wsock32.lib fixed it. I don't know why and didn't have time to try to work it out either. This was several years ago so the problem might not exist anymore. -- James Stafford mailto:jstafford at ampltd.com Advanced Micro Peripherals Ltd Unit 1 Harrier House Sedgeway Business Park Witchford Cambridge CB6 2HY Fax:+44 1353 659 600 From dw at norpix.com Fri Jun 15 06:46:11 2012 From: dw at norpix.com (daniel) Date: Fri, 15 Jun 2012 09:46:11 -0400 Subject: [Live-devel] Crash for Http live Streaming In-Reply-To: <8E17E85E-BC53-4518-A792-03296B084056@live555.com> References: <000101cd4a67$1beb1310$53c13930$@com> <8E17E85E-BC53-4518-A792-03296B084056@live555.com> Message-ID: <000501cd4afd$3f7c6270$be752750$@com> Thank you for your response so quickly. Please see followed screenshot: RTSPServer::RTSPClientSession::handleRequestBytes() Call first. handleRequestBytes() try to call RTSPServerSupportingHTTPStreaming::RTSPClientSessionSupportingHTTPStreamin:: handleHTTPCmd_StreamingGET(). handleHTTPCmd_StreamingGET() delete himself and return to handleRequestBytes() . Then handleRequestBytes() try to send data to client : send(fClientOutputSocket, (char const*)fResponseBuffer, strlen((char*)fResponseBuffer), 0) crash here. Best regards, Daniel wang Software Developer Norpix Inc. From: live-devel-bounces at ns.live555.com [mailto:live-devel-bounces at ns.live555.com] On Behalf Of Ross Finlayson Sent: Friday, June 15, 2012 5:11 AM To: LIVE555 Streaming Media - development & use Subject: Re: [Live-devel] Crash for Http live Streaming Thanks for the report. Unfortunately, at first glance I don't see how the function "RTSPServer::RTSPClientSession::handleRequestBytes()" can be called after the "RTSPServerSupportingHTTPStreaming::RTSPClientSessionSupportingHTTPStreaming " object is deleted, because the destructor of the parent class - "RTSPServer::RTSPClientSession" - should be turning off the handling of incoming data on its socket. I.e., once a "RTSPServer::RTSPClientSession" object is deleted, no more incoming data for this session should attempt to be handled. So, if you can find out specifically how the "RTSPServer::RTSPClientSession::handleRequestBytes()" function is getting called (i.e., the call stack at the point of the crash), then this might help me figure out what's going wrong. Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: image/png Size: 26021 bytes Desc: not available URL: From finlayson at live555.com Fri Jun 15 07:48:58 2012 From: finlayson at live555.com (Ross Finlayson) Date: Fri, 15 Jun 2012 07:48:58 -0700 Subject: [Live-devel] Crash for Http live Streaming In-Reply-To: <000501cd4afd$3f7c6270$be752750$@com> References: <000101cd4a67$1beb1310$53c13930$@com> <8E17E85E-BC53-4518-A792-03296B084056@live555.com> <000501cd4afd$3f7c6270$be752750$@com> Message-ID: <476E5213-1F57-4F97-BE16-D2D367AC23F3@live555.com> OK, thanks. Now I understand what's happening. I'll try to come up with a fix soon, and will let you know. Stay tuned... Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From finlayson at live555.com Fri Jun 15 11:33:17 2012 From: finlayson at live555.com (Ross Finlayson) Date: Fri, 15 Jun 2012 11:33:17 -0700 Subject: [Live-devel] Crash for Http live Streaming In-Reply-To: <000501cd4afd$3f7c6270$be752750$@com> References: <000101cd4a67$1beb1310$53c13930$@com> <8E17E85E-BC53-4518-A792-03296B084056@live555.com> <000501cd4afd$3f7c6270$be752750$@com> Message-ID: <28A11A9A-72B1-4049-B8B2-5DA0F55B660D@live555.com> Daniel, I think I have a solution. At the end of "RTSPServerSupportingHTTPStreaming.cpp", in the "afterStreaming()" function, replace the statement delete clientSession; with: if (clientSession->fRecursionCount > 0) { clientSession->fSessionIsActive = False; } else { delete clientSession; } Please let us know if this now works OK for you. (If so, I'll include it in the next release of the software.) Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From dw at norpix.com Fri Jun 15 12:06:29 2012 From: dw at norpix.com (daniel) Date: Fri, 15 Jun 2012 15:06:29 -0400 Subject: [Live-devel] Crash for Http live Streaming In-Reply-To: <28A11A9A-72B1-4049-B8B2-5DA0F55B660D@live555.com> References: <000101cd4a67$1beb1310$53c13930$@com> <8E17E85E-BC53-4518-A792-03296B084056@live555.com> <000501cd4afd$3f7c6270$be752750$@com> <28A11A9A-72B1-4049-B8B2-5DA0F55B660D@live555.com> Message-ID: <000201cd4b29$fc2d1e10$f4875a30$@com> Hello, It works now but "delete clientSession" never called. it's destoryed in the function: RTSPServer::RTSPClientSession::handleRequestBytes(int newBytesRead) { . if (fRecursionCount > 0) closeSockets(); else delete this; } Thanks. Best regards, Daniel wang Software Developer Norpix Inc. From: live-devel-bounces at ns.live555.com [mailto:live-devel-bounces at ns.live555.com] On Behalf Of Ross Finlayson Sent: Friday, June 15, 2012 2:33 PM To: LIVE555 Streaming Media - development & use Subject: Re: [Live-devel] Crash for Http live Streaming Daniel, I think I have a solution. At the end of "RTSPServerSupportingHTTPStreaming.cpp", in the "afterStreaming()" function, replace the statement delete clientSession; with: if (clientSession->fRecursionCount > 0) { clientSession->fSessionIsActive = False; } else { delete clientSession; } Please let us know if this now works OK for you. (If so, I'll include it in the next release of the software.) Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From tayeb at tmxvoip.com Fri Jun 15 10:22:44 2012 From: tayeb at tmxvoip.com (Meftah Tayeb) Date: Fri, 15 Jun 2012 20:22:44 +0300 Subject: [Live-devel] Live555 RTSP Server how to: Live Streaming Message-ID: hello people, please can someone show me how to use existing RTSP server to fetch an existing stream from any kind of source, Uni or Multicast and make it RTSP Unicast ? i want to make it mobile compatible thank you Meftah Tayeb IT Consulting http://www.tmvoip.com/ phone: +21321656139 Mobile: +213660347746 __________ Information from ESET NOD32 Antivirus, version of virus signature database 6830 (20120126) __________ The message was checked by ESET NOD32 Antivirus. http://www.eset.com From finlayson at live555.com Fri Jun 15 12:15:57 2012 From: finlayson at live555.com (Ross Finlayson) Date: Fri, 15 Jun 2012 12:15:57 -0700 Subject: [Live-devel] Crash for Http live Streaming In-Reply-To: <000201cd4b29$fc2d1e10$f4875a30$@com> References: <000101cd4a67$1beb1310$53c13930$@com> <8E17E85E-BC53-4518-A792-03296B084056@live555.com> <000501cd4afd$3f7c6270$be752750$@com> <28A11A9A-72B1-4049-B8B2-5DA0F55B660D@live555.com> <000201cd4b29$fc2d1e10$f4875a30$@com> Message-ID: <586E0F5F-B7E0-43D5-AD63-8C7B1C83285C@live555.com> > It works now but "delete clientSession" never called. Yes, the "delete clientSession" statement will get called if "afterStreaming()" gets called (i.e., streaming ends) after we've already returned from the "handleRequestBytes()" call. It just turns out that you're not encountering this situation (yet). Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From finlayson at live555.com Fri Jun 15 12:21:58 2012 From: finlayson at live555.com (Ross Finlayson) Date: Fri, 15 Jun 2012 12:21:58 -0700 Subject: [Live-devel] Live555 RTSP Server how to: Live Streaming In-Reply-To: References: Message-ID: > please can someone show me how to use existing RTSP server to fetch an existing stream from any kind of source, Uni or Multicast and make it RTSP Unicast ? Is the "existing stream" also accessible via RTSP? If so, then you can simply use the "LIVE555 Proxy Server": http://www.live555.com/proxyServer/ Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From tayeb at tmxvoip.com Fri Jun 15 10:49:34 2012 From: tayeb at tmxvoip.com (Meftah Tayeb) Date: Fri, 15 Jun 2012 20:49:34 +0300 Subject: [Live-devel] Crash for Http live Streaming References: <000101cd4a67$1beb1310$53c13930$@com> <8E17E85E-BC53-4518-A792-03296B084056@live555.com> <000501cd4afd$3f7c6270$be752750$@com><28A11A9A-72B1-4049-B8B2-5DA0F55B660D@live555.com><000201cd4b29$fc2d1e10$f4875a30$@com> <586E0F5F-B7E0-43D5-AD63-8C7B1C83285C@live555.com> Message-ID: no, is not is a multicast udp and unicast http thank you ----- Original Message ----- From: "Ross Finlayson" To: "LIVE555 Streaming Media - development & use" Sent: Friday, June 15, 2012 10:15 PM Subject: Re: [Live-devel] Crash for Http live Streaming > It works now but "delete clientSession" never called. Yes, the "delete clientSession" statement will get called if "afterStreaming()" gets called (i.e., streaming ends) after we've already returned from the "handleRequestBytes()" call. It just turns out that you're not encountering this situation (yet). Ross Finlayson Live Networks, Inc. http://www.live555.com/ __________ Information from ESET NOD32 Antivirus, version of virus signature database 6830 (20120126) __________ The message was checked by ESET NOD32 Antivirus. http://www.eset.com -------------------------------------------------------------------------------- > _______________________________________________ > live-devel mailing list > live-devel at lists.live555.com > http://lists.live555.com/mailman/listinfo/live-devel > > > > __________ Information from ESET NOD32 Antivirus, version of virus > signature database 6830 (20120126) __________ > > The message was checked by ESET NOD32 Antivirus. > > http://www.eset.com > > __________ Information from ESET NOD32 Antivirus, version of virus signature database 6830 (20120126) __________ The message was checked by ESET NOD32 Antivirus. http://www.eset.com From tayeb at tmxvoip.com Fri Jun 15 10:58:38 2012 From: tayeb at tmxvoip.com (Meftah Tayeb) Date: Fri, 15 Jun 2012 20:58:38 +0300 Subject: [Live-devel] Live555 RTSP Server how to: Live Streaming References: Message-ID: <1CC311847BE945D881B67282635A9614@work> let me explain my topology: i have a IPTV streams in Multicast streaming format (UDP MPEG2TS i use FFMpeg to Transcode it to a mobile Compatible E.G: 3GP/AMR, MPEG4/AAC or something compatible with the worldwide mobile manufacturers but i want the mobile clients to use RTSP url's cause nokia mobiles require it. thank youformat ----- Original Message ----- From: "Ross Finlayson" To: "LIVE555 Streaming Media - development & use" Sent: Friday, June 15, 2012 10:21 PM Subject: Re: [Live-devel] Live555 RTSP Server how to: Live Streaming > please can someone show me how to use existing RTSP server to fetch an > existing stream from any kind of source, Uni or Multicast and make it RTSP > Unicast ? Is the "existing stream" also accessible via RTSP? If so, then you can simply use the "LIVE555 Proxy Server": http://www.live555.com/proxyServer/ Ross Finlayson Live Networks, Inc. http://www.live555.com/ __________ Information from ESET NOD32 Antivirus, version of virus signature database 6830 (20120126) __________ The message was checked by ESET NOD32 Antivirus. http://www.eset.com -------------------------------------------------------------------------------- > _______________________________________________ > live-devel mailing list > live-devel at lists.live555.com > http://lists.live555.com/mailman/listinfo/live-devel > > > > __________ Information from ESET NOD32 Antivirus, version of virus > signature database 6830 (20120126) __________ > > The message was checked by ESET NOD32 Antivirus. > > http://www.eset.com > > __________ Information from ESET NOD32 Antivirus, version of virus signature database 6830 (20120126) __________ The message was checked by ESET NOD32 Antivirus. http://www.eset.com From dw at norpix.com Fri Jun 15 13:00:23 2012 From: dw at norpix.com (daniel) Date: Fri, 15 Jun 2012 16:00:23 -0400 Subject: [Live-devel] Http live Streaming References: Message-ID: <000c01cd4b31$834acad0$89e06070$@com> Hello, I want to stream live vdieo(HTTP live streaming) from camera to iPad using live555. I would like to I need to create .tsx file or just ts file? Any suggestion is welcome. Best regards, Daniel wang Software Developer Norpix Inc. From finlayson at live555.com Fri Jun 15 13:57:35 2012 From: finlayson at live555.com (Ross Finlayson) Date: Fri, 15 Jun 2012 13:57:35 -0700 Subject: [Live-devel] Http live Streaming In-Reply-To: <000c01cd4b31$834acad0$89e06070$@com> References: <000c01cd4b31$834acad0$89e06070$@com> Message-ID: > I want to stream live vdieo(HTTP live streaming) from camera to iPad using > live555. Right now this isn't possible. We currently support HTTP Live Streaming only for static Transport Stream files (that have a corresponding index file). Sorry. Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From finlayson at live555.com Fri Jun 15 14:05:15 2012 From: finlayson at live555.com (Ross Finlayson) Date: Fri, 15 Jun 2012 14:05:15 -0700 Subject: [Live-devel] Live555 RTSP Server how to: Live Streaming In-Reply-To: <1CC311847BE945D881B67282635A9614@work> References: <1CC311847BE945D881B67282635A9614@work> Message-ID: <6AE64B39-0FD4-4E7D-BF94-AA39B1BE3CB6@live555.com> > let me explain my topology: > i have a IPTV streams in Multicast streaming format (UDP MPEG2TS Yes, our code supports using this kind of stream as an input to a RTSP server. Note, for example, how the "testOnDemandRTSPServer" demo application does this, using the "MPEG2TransportUDPServerMediaSubsession" class. (See "testProgs/testOnDemandRTSPServer.cpp", near the end. Note however, that in your case, you will want to set the "inputStreamIsRawUDP" variable to True, and, of course, change the multicast address and port variables.) Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From tayeb at tmxvoip.com Fri Jun 15 13:38:09 2012 From: tayeb at tmxvoip.com (Meftah Tayeb) Date: Fri, 15 Jun 2012 23:38:09 +0300 Subject: [Live-devel] Live555 RTSP Server how to: Live Streaming References: <1CC311847BE945D881B67282635A9614@work> <6AE64B39-0FD4-4E7D-BF94-AA39B1BE3CB6@live555.com> Message-ID: so, i would have to use the on demand RTSP server and not the RTSP proxy, right? thank you a lot ----- Original Message ----- From: "Ross Finlayson" To: "LIVE555 Streaming Media - development & use" Sent: Saturday, June 16, 2012 12:05 AM Subject: Re: [Live-devel] Live555 RTSP Server how to: Live Streaming > let me explain my topology: > i have a IPTV streams in Multicast streaming format (UDP MPEG2TS Yes, our code supports using this kind of stream as an input to a RTSP server. Note, for example, how the "testOnDemandRTSPServer" demo application does this, using the "MPEG2TransportUDPServerMediaSubsession" class. (See "testProgs/testOnDemandRTSPServer.cpp", near the end. Note however, that in your case, you will want to set the "inputStreamIsRawUDP" variable to True, and, of course, change the multicast address and port variables.) Ross Finlayson Live Networks, Inc. http://www.live555.com/ __________ Information from ESET NOD32 Antivirus, version of virus signature database 6830 (20120126) __________ The message was checked by ESET NOD32 Antivirus. http://www.eset.com -------------------------------------------------------------------------------- > _______________________________________________ > live-devel mailing list > live-devel at lists.live555.com > http://lists.live555.com/mailman/listinfo/live-devel > > > > __________ Information from ESET NOD32 Antivirus, version of virus > signature database 6830 (20120126) __________ > > The message was checked by ESET NOD32 Antivirus. > > http://www.eset.com > > __________ Information from ESET NOD32 Antivirus, version of virus signature database 6830 (20120126) __________ The message was checked by ESET NOD32 Antivirus. http://www.eset.com From finlayson at live555.com Fri Jun 15 15:28:08 2012 From: finlayson at live555.com (Ross Finlayson) Date: Fri, 15 Jun 2012 15:28:08 -0700 Subject: [Live-devel] Live555 RTSP Server how to: Live Streaming In-Reply-To: References: <1CC311847BE945D881B67282635A9614@work> <6AE64B39-0FD4-4E7D-BF94-AA39B1BE3CB6@live555.com> Message-ID: > so, i would have to use the on demand RTSP server and not the RTSP proxy, right? That's correct. You would build a server application that uses the "testOnDemandRTSPServer" code as a model. The "LIVE555 Proxy Server" is used only when the back-end stream is also accessible via RTSP. Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From tayeb at tmxvoip.com Fri Jun 15 14:09:59 2012 From: tayeb at tmxvoip.com (Meftah Tayeb) Date: Sat, 16 Jun 2012 00:09:59 +0300 Subject: [Live-devel] Live555 RTSP Server how to: Live Streaming References: <1CC311847BE945D881B67282635A9614@work><6AE64B39-0FD4-4E7D-BF94-AA39B1BE3CB6@live555.com> Message-ID: <1F313E85D93D47B5927217CA53B972E6@work> thank you ross, so i'm guessing i would need to declare my group of streams inside of the C code? if yes, i would try to build a xml based stream definition thank you ----- Original Message ----- From: "Ross Finlayson" To: "LIVE555 Streaming Media - development & use" Sent: Saturday, June 16, 2012 1:28 AM Subject: Re: [Live-devel] Live555 RTSP Server how to: Live Streaming > so, i would have to use the on demand RTSP server and not the RTSP proxy, > right? That's correct. You would build a server application that uses the "testOnDemandRTSPServer" code as a model. The "LIVE555 Proxy Server" is used only when the back-end stream is also accessible via RTSP. Ross Finlayson Live Networks, Inc. http://www.live555.com/ __________ Information from ESET NOD32 Antivirus, version of virus signature database 6830 (20120126) __________ The message was checked by ESET NOD32 Antivirus. http://www.eset.com -------------------------------------------------------------------------------- > _______________________________________________ > live-devel mailing list > live-devel at lists.live555.com > http://lists.live555.com/mailman/listinfo/live-devel > > > > __________ Information from ESET NOD32 Antivirus, version of virus > signature database 6830 (20120126) __________ > > The message was checked by ESET NOD32 Antivirus. > > http://www.eset.com > > __________ Information from ESET NOD32 Antivirus, version of virus signature database 6830 (20120126) __________ The message was checked by ESET NOD32 Antivirus. http://www.eset.com From Aashish.Kaushik at hcl.com Sat Jun 16 04:24:21 2012 From: Aashish.Kaushik at hcl.com (Aashish Kaushik) Date: Sat, 16 Jun 2012 16:54:21 +0530 Subject: [Live-devel] Live555Proxy streamimg issue with Audio and Video Message-ID: <8706360947A56E45B1418C635D365964023F2DEB907D@NDA-HCLT-EVS04.HCLT.CORP.HCL.IN> Hi, I am trying to use Live55ProxyServer (version 17-May-2012) for RTSP streaming from a Zavio Camera (Video Codec: MPEG-4, Audio Codec: PCM Mu-law). It streams for few minutes and then no stream is received. Also, whenever a client connects to the Live55ProxyServer it shows ERROR: "RTCPInstance::RTCPInstance error: totSessionBW parameter should not be zero!" I tried using VLC as a client and also using live555 RTSP client. Live555 RTSP client shows that RTSP session gets established, however not data is received after that. However, if I disabled audio on Zavio camera so as to receive only Video stream through Live55ProxyServer, the stream works well and no error is shown on LiveProxy console. Please suggest in this regard. Let me know if some more information required from my side. Thanks & Regards, Aashish Kaushik HCL Technologies Ltd. www.hcltech.com www.hcl.com ::DISCLAIMER:: ---------------------------------------------------------------------------------------------------------------------------------------------------- The contents of this e-mail and any attachment(s) are confidential and intended for the named recipient(s) only. E-mail transmission is not guaranteed to be secure or error-free as information could be intercepted, corrupted, lost, destroyed, arrive late or incomplete, or may contain viruses in transmission. The e mail and its contents (with or without referred errors) shall therefore not attach any liability on the originator or HCL or its affiliates. Views or opinions, if any, presented in this email are solely those of the author and may not necessarily reflect the views or opinions of HCL or its affiliates. Any form of reproduction, dissemination, copying, disclosure, modification, distribution and / or publication of this message without the prior written consent of authorized representative of HCL is strictly prohibited. If you have received this email in error please delete it and notify the sender immediately. Before opening any email and/or attachments, please check them for viruses and other defects. ---------------------------------------------------------------------------------------------------------------------------------------------------- -------------- next part -------------- An HTML attachment was scrubbed... URL: From info at nnuvo.org Sat Jun 16 13:42:34 2012 From: info at nnuvo.org (Johan) Date: Sat, 16 Jun 2012 20:42:34 +0000 (UTC) Subject: [Live-devel] OnDemandMediaSubsession, DeviceSource, SDP Message-ID: Hello, Firstly, Thank you for the library. I have subclassed FramedSource similarly to the DeviceSource example to accept calls from a separate thread using the signalNewFrameData() method. It parses the mdat data coming from an iPhone mp4 hardware encoder, which should be an AVC H264 Stream. This "file stream" parser replaces the NAL Lengths with NAL start codes 0x00000001 (and delivers this modified stream buffer to fTO). OnDemandServerMediaSubsession subclass virtual functions have been moved to public (for passing deviceSource to signalNewFrameData) and implemented as such. createNewStreamSource->DeviceSource->return H264VideoStreamFramer createNewRTPSink->return H264VideoRTPSink. Unfortunately when extracting this data OnDemandServerMediaSubsession fails to produce any SDP description of the stream, I can only assume this is because the SPS PPS are not being sent in-Band the h264 data from the MP4 mdat contents. If i pass the RTPSink to a PassiveServerMediaSubsession, it generates what seems to be a proper SDP Description. So is there any way to utilize this functionality in OnDemand? Or will I have to inject the description in-Band? Client connection (naturally) seems to hang as and eventually times out. Even though the downstream object calls for data and the request is filled. Sending request: DESCRIBE rtsp://***.***.*.***/testStream RTSP/1.0 CSeq: 2 User-Agent: LIVE555 Streaming Media v2012.05.11 Accept: application/sdp From finlayson at live555.com Sun Jun 17 10:53:28 2012 From: finlayson at live555.com (Ross Finlayson) Date: Sun, 17 Jun 2012 10:53:28 -0700 Subject: [Live-devel] live555 event trigger behaviour In-Reply-To: <93EFDEE1DA56194B961841BD859539EE0B1273E4D0@de-ex-1> References: <93EFDEE1DA56194B961841BD859539EE0B1273E4D0@de-ex-1> Message-ID: <909CBD45-946C-420B-92F0-12DC7EC3A6BC@live555.com> Matthias, Thanks for the note. You've correctly identified a potential race condition caused by "triggerEvent()" being called by a non-LIVE555 thread. I've now installed a new version (2012.06.17) that should avoid this problem. The solution was to no longer have the "triggerEvent()" function (the only function that can be called from a non-LIVE555 thread) access (read or write) the "fLastUsedTriggerMask" or "fLastUsedTriggerNum" variables. (The function still accesses (writes) the "fTriggeredEventClientDatas" and "fTriggersAwaitHandling" variables, but not in a way that can cause a race condition. (This is assuming, of course, that different threads never call "triggerEvent()" with the same "eventTriggerId").) Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From finlayson at live555.com Sun Jun 17 10:55:27 2012 From: finlayson at live555.com (Ross Finlayson) Date: Sun, 17 Jun 2012 10:55:27 -0700 Subject: [Live-devel] Live555Proxy streamimg issue with Audio and Video In-Reply-To: <8706360947A56E45B1418C635D365964023F2DEB907D@NDA-HCLT-EVS04.HCLT.CORP.HCL.IN> References: <8706360947A56E45B1418C635D365964023F2DEB907D@NDA-HCLT-EVS04.HCLT.CORP.HCL.IN> Message-ID: <9E232A51-D34D-4C6E-825C-4E7402816B87@live555.com> > I am trying to use Live55ProxyServer (version 17-May-2012) for RTSP streaming from a Zavio Camera (Video Codec: MPEG-4, Audio Codec: PCM Mu-law). It streams for few minutes and then no stream is received. Also, whenever a client connects to the Live55ProxyServer it shows ERROR: ?RTCPInstance::RTCPInstance error: totSessionBW parameter should not be zero!? > I tried using VLC as a client and also using live555 RTSP client. Live555 RTSP client shows that RTSP session gets established, however not data is received after that. Try using the latest version (2012.06.17) of the "LIVE555 Streaming Media" code. Also, if you're having a problem with the "LIVE555 Proxy Server", be sure to use the "-V" (i.e., upper-case V) option, to output detailed debugging information about what the server's doing. Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From finlayson at live555.com Sun Jun 17 12:40:59 2012 From: finlayson at live555.com (Ross Finlayson) Date: Sun, 17 Jun 2012 12:40:59 -0700 Subject: [Live-devel] OnDemandMediaSubsession, DeviceSource, SDP In-Reply-To: References: Message-ID: > I have subclassed FramedSource similarly to the DeviceSource > example to accept calls from a separate thread using the > signalNewFrameData() method. It parses the mdat data coming > from an iPhone mp4 hardware encoder, which should be > an AVC H264 Stream. This "file stream" parser replaces > the NAL Lengths with NAL start codes 0x00000001 > (and delivers this modified stream buffer to fTO). [...] > createNewStreamSource->DeviceSource->return H264VideoStreamFramer Because your input source is delivering discrete NAL units (i.e., one-at-a-time), then it would be better to use a "H264VideoStreamDiscreteFramer", not a "H264VideoStreamFramer". Each 'frame' (really "NAL unit") must be delivered to the "H264VideoStreamDiscreteFramer" *without* a preceding start code. > Unfortunately when extracting this data > OnDemandServerMediaSubsession fails to produce any SDP > description of the stream, I can only assume this is because > the SPS PPS are not being sent in-Band the h264 data from > the MP4 mdat contents. Yes. > createNewRTPSink->return H264VideoRTPSink. This is where you can pass the SPS and PPS NAL units, because they are not present in-band. Note - in "liveMedia/include/H264VideoRTPSink.hh" - the optional variants of the "createNew()" function, which allow you to pass the SPS and PPS NAL units, either directly, or as a comma-separated pair of Base-64-encoded strings. Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From roshanbaliga at yahoo.com Sat Jun 16 11:27:06 2012 From: roshanbaliga at yahoo.com (roshan baliga) Date: Sat, 16 Jun 2012 11:27:06 -0700 (PDT) Subject: [Live-devel] Issue in receiving H264 ES Message-ID: <1339871226.26378.YahooMailNeo@web125403.mail.ne1.yahoo.com> Hi, ? I have been trying to debug an issue with a program I have written by looking at examples from the testProgs folder, where I ?receive a H264 ES over RTP & store it into a file. I have noticed that if I run the program after I start the RTP source, I can successfully receive the stream and dump it into a file. However, if I run my program prior to launching the RTP source, I am unable to receive the stream and dump it into a file. ? ?Any help in debugging the issue will be greatly appreciated. Source follows. Thanks, Roshan --------------------------------------------------------------------- #include #include #include UsageEnvironment* env; char const* outputFileName = "rx_file.264"; const unsigned short inputPortNum = 15000; // A structure to hold the state of the current session. // It is used in the "afterPlaying()" function to clean up the session. struct sessionState_t { ? RTPSource* source; ? H264VideoFileSink* sink; }; struct sessionState_t sessionState; void afterPlaying(void *); int main() { ? // Begin by setting up our usage environment: ? TaskScheduler* scheduler = BasicTaskScheduler::createNew(); ? env = BasicUsageEnvironment::createNew(*scheduler); ? ? ? ? // Create the data sink ? sessionState.sink = H264VideoFileSink::createNew(*env, outputFileName, NULL, 100000); ?? ? char const* sessionAddressStr = "0.0.0.0"; ? const unsigned char ttl = 255; ? struct in_addr sessionAddress; ? sessionAddress.s_addr = our_inet_addr(sessionAddressStr); ? const Port rtpPort(inputPortNum); ? Groupsock* rtpGroupsock = new Groupsock(*env, sessionAddress, rtpPort, ttl); ? OutPacketBuffer::maxSize = 100000; ? // Create the data source ? sessionState.source = H264VideoRTPSource::createNew(*env, rtpGroupsock, 96); ? // Finally, start receiving the stream: ? *env << "Beginning receiving stream...\n"; ? FramedSource* framedSource; ? framedSource = H264VideoStreamDiscreteFramer::createNew(*env, sessionState.source); ? sessionState.sink->startPlaying(*framedSource, afterPlaying, NULL); ? ? env->taskScheduler().doEventLoop(); // does not return ? return 0; // only to prevent compiler warning } void afterPlaying(void *) { ? *env << "...done receiving\n"; ? // End by closing the media: ? Medium::close(sessionState.sink); ? Medium::close(sessionState.source); } -------------- next part -------------- An HTML attachment was scrubbed... URL: From Marlon at scansoft.co.za Sun Jun 17 23:50:15 2012 From: Marlon at scansoft.co.za (Marlon Reid) Date: Mon, 18 Jun 2012 08:50:15 +0200 Subject: [Live-devel] Crash in AdvancedHashTable::keyMatches Message-ID: <002962EA5927BE45B2FFAB0B5B5D67970A8E4F@SSTSVR1.sst.local> Hi Ross, I built a small application based on your testRTSPClient for multiple streams (http://www.live555.com/liveMedia/doxygen/html/testRTSPClient_8cpp-sourc e.html). I am however experiencing a problem that my application crashes in AdvacnedHashTable::keyMatches because key2 is NULL. This happens after trying to create a media sink. I have compared my program with the testRTSPClient and they seem very similar. The major difference is that I am using a FileSink instead of the dummy sink found in the test program. I will appreciate any assistance in tracking down the cause of this problem. I attach the callstack. Thank you msvcr90d.dll!strcmp(unsigned char * str1=0x00000000, unsigned char * str2=0x044ff424) Line 83 Asm minimal.exe!AdvancedHashTable::keyMatches(const char * key1=0x01fba530, const char * key2=0x00000000) Line 145 + 0xd bytes C++ minimal.exe!AdvancedHashTable::lookupKey(const char * key=0x01fba530, unsigned int & index=0) Line 135 + 0x13 bytes C++ minimal.exe!AdvancedHashTable::Add(const char * key=0x01fba530, void * value=0x01fba528) Line 59 + 0x10 bytes C++ minimal.exe!MediaLookupTable::addNew(Medium * medium=0x01fba528, char * mediumName=0x01fba530) Line 160 + 0x1d bytes C++ minimal.exe!Medium::Medium(UsageEnvironment & env={...}) Line 58 C++ minimal.exe!MediaSink::MediaSink(UsageEnvironment & env={...}) Line 28 + 0x1a bytes C++ minimal.exe!FileSink::FileSink(UsageEnvironment & env={...}, _iobuf * fid=0x73f01448, unsigned int bufferSize=20000, const char * perFrameFileNamePrefix=0x00000000) Line 33 + 0x49 bytes C++ minimal.exe!FileSink::createNew(UsageEnvironment & env={...}, const char * fileName=0x01fba23c, unsigned int bufferSize=20000, unsigned int oneFilePerFrame=0) Line 67 + 0x32 bytes C++ > minimal.exe!CStreamReceiver::ContinueAfterSETUP(RTSPClient * rtspClient=0x01fa7e98, int resultCode=0, char * resultString=0x00000000) Line 157 + 0x1c bytes C++ minimal.exe!RTSPClient::handleResponseBytes(int newBytesRead=203) Line 1570 + 0x20 bytes C++ minimal.exe!RTSPClient::incomingDataHandler1() Line 1319 C++ minimal.exe!RTSPClient::incomingDataHandler(void * instance=0x01fa7e98, int __formal=2) Line 1312 C++ minimal.exe!BasicTaskScheduler::SingleStep(unsigned int maxDelayTime=0) Line 146 + 0x1e bytes C++ minimal.exe!BasicTaskScheduler0::doEventLoop(char * watchVariable=0x0072ce70) Line 80 + 0x11 bytes C++ minimal.exe!CStreamReceiver::RunEventLoop(UsageEnvironment * env=0x01fa5fa0, char * watchVariable=0x0072ce70) Line 46 C++ minimal.exe!boost::_mfi::mf2::operator()(CStreamReceiver * p=0x01fa5a10, UsageEnvironment * a1=0x01fa5fa0, char * a2=0x0072ce70) Line 275 C++ minimal.exe!boost::_bi::list3,boost::_bi::value,boost::_bi::value >::operator(),boost::_bi::list0>(boost::_bi::type __formal={...}, boost::_mfi::mf2 & f={...}, boost::_bi::list0 & a={...}, boost::_bi::type __formal={...}) Line 349 C++ minimal.exe!boost::_bi::bind_t,boost::_bi::list3,boost::_bi::value,boost::_bi::value > >::operator()() Line 21 C++ minimal.exe!boost::thread::thread_data,boost::_bi::list3,boost::_bi::value,boost::_bi::value > > >::run() Line 186 C++ minimal.exe!boost::thread::thread_start_function(void * param=0x009299b8) Line 177 C++ msvcr90d.dll!_callthreadstartex() Line 348 + 0xf bytes C msvcr90d.dll!_threadstartex(void * ptd=0x01fadbb0) Line 331 C kernel32.dll!764e339a() [Frames below may be incorrect and/or missing, no symbols loaded for kernel32.dll] ntdll.dll!77519ef2() ntdll.dll!77519ec5() -------------- next part -------------- An HTML attachment was scrubbed... URL: From finlayson at live555.com Mon Jun 18 00:01:16 2012 From: finlayson at live555.com (Ross Finlayson) Date: Mon, 18 Jun 2012 00:01:16 -0700 Subject: [Live-devel] Crash in AdvancedHashTable::keyMatches In-Reply-To: <002962EA5927BE45B2FFAB0B5B5D67970A8E4F@SSTSVR1.sst.local> References: <002962EA5927BE45B2FFAB0B5B5D67970A8E4F@SSTSVR1.sst.local> Message-ID: > I built a small application based on your testRTSPClient for multiple streams (http://www.live555.com/liveMedia/doxygen/html/testRTSPClient_8cpp-source.html). I am however experiencing a problem that my application crashes in AdvacnedHashTable::keyMatches because key2 is NULL. Sorry, but "AdvancedHashTable" is not our class. It must be something that you or someone else wrote, so you're going to have to debug it yourself. Sorry. Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From Marlon at scansoft.co.za Mon Jun 18 00:36:36 2012 From: Marlon at scansoft.co.za (Marlon Reid) Date: Mon, 18 Jun 2012 09:36:36 +0200 Subject: [Live-devel] Crash in AdvancedHashTable::keyMatches In-Reply-To: References: <002962EA5927BE45B2FFAB0B5B5D67970A8E4F@SSTSVR1.sst.local> Message-ID: <002962EA5927BE45B2FFAB0B5B5D67970A8E52@SSTSVR1.sst.local> Hi Ross, Thanks for the reply. I got rid of the "AdvancedHashTable" class and recompiled the live555 libraries. It seems that the same crash still occurs, but only in "BasicHashTable::keyMatches". Again, it crashes because "key2" is NULL. Any suggestions as to why "key2" will be NULL? Thank you for all your assistance ________________________________ From: live-devel-bounces at ns.live555.com [mailto:live-devel-bounces at ns.live555.com] On Behalf Of Ross Finlayson Sent: 18 June 2012 09:01 AM To: LIVE555 Streaming Media - development & use Subject: Re: [Live-devel] Crash in AdvancedHashTable::keyMatches I built a small application based on your testRTSPClient for multiple streams ( http://www.live555.com/liveMedia/doxygen/html/testRTSPClient_8cpp-source .html). I am however experiencing a problem that my application crashes in AdvacnedHashTable::keyMatches because key2 is NULL. Sorry, but "AdvancedHashTable" is not our class. It must be something that you or someone else wrote, so you're going to have to debug it yourself. Sorry. Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: image/jpeg Size: 144777 bytes Desc: Outlook.jpg URL: From finlayson at live555.com Mon Jun 18 01:55:00 2012 From: finlayson at live555.com (Ross Finlayson) Date: Mon, 18 Jun 2012 01:55:00 -0700 Subject: [Live-devel] Crash in AdvancedHashTable::keyMatches In-Reply-To: <002962EA5927BE45B2FFAB0B5B5D67970A8E52@SSTSVR1.sst.local> References: <002962EA5927BE45B2FFAB0B5B5D67970A8E4F@SSTSVR1.sst.local> <002962EA5927BE45B2FFAB0B5B5D67970A8E52@SSTSVR1.sst.local> Message-ID: > I got rid of the "AdvancedHashTable" class and recompiled the live555 libraries. It seems that the same crash still occurs, but only in "BasicHashTable::keyMatches". Again, it crashes because "key2" is NULL. Any suggestions as to why "key2" will be NULL? Sorry, I can't explain this. I suspect, though, that this particular 'error' is a 'red herring', and that some memory smash somewhere else in your application is responsible. Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From dw at norpix.com Mon Jun 18 08:01:21 2012 From: dw at norpix.com (daniel) Date: Mon, 18 Jun 2012 11:01:21 -0400 Subject: [Live-devel] Http live Streaming In-Reply-To: References: <000c01cd4b31$834acad0$89e06070$@com> Message-ID: <000001cd4d63$402eea90$c08cbfb0$@com> Hello, Yes I know. So I want to implement my own RTSPServerSupportingHTTPStreaming class. 1) For now I can create TS Fragments (10s for each) dynamically and playlist. Each TS includes PPS and SPS. I insert start code(0x000001) for each part. It works by VLC player. Is iDevice compatible stanard TS format or there are some special? 2) I would like to ask some suggest to hwo to send to IPad. I think I have to send playlist to iPad using TCPStreamSink first. And then send specified TS Fragment based on IPad request. Do you think it's good? Thanks. Best regards, Daniel wang Software Developer Norpix Inc. From: live-devel-bounces at ns.live555.com [mailto:live-devel-bounces at ns.live555.com] On Behalf Of Ross Finlayson Sent: Friday, June 15, 2012 4:58 PM To: LIVE555 Streaming Media - development & use Subject: Re: [Live-devel] Http live Streaming I want to stream live vdieo(HTTP live streaming) from camera to iPad using live555. Right now this isn't possible. We currently support HTTP Live Streaming only for static Transport Stream files (that have a corresponding index file). Sorry. Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From brocanhu86 at gmail.com Tue Jun 19 00:58:53 2012 From: brocanhu86 at gmail.com (Luis Brocan Broki) Date: Tue, 19 Jun 2012 09:58:53 +0200 Subject: [Live-devel] Receiving H264/MPEG4 over RTP Message-ID: Hi everyone! We are currently trying to make an small video player that receives rtp. We want to receive a streaming incoming from VLC in RTP/MPEG TS format using Live555 and inject the data to ffmpeg. Unfortunately we are not experts in this libs and we are having heavy problems with sps, pps, vols, and so on... Currently we are receiving the data using a SimpleRTPSource, with a MPEG1or2Demux and playing a Demuxer->newVideoStream with a custom Sink (for grabbing frame data) which derives from MediaSink. The result is that is not working at all, ffmpeg complains about PES packet size mismacht, and we think that we are not using the correct classes in Live555. We want to receive H264 (top priority) and MPEG4 using only RTP. We see also a bunch of classes like H264VideoRTPSink, H264VideoRTPSource, but we dont known how to use them (to grab the data for inject it to ffmpeg) or if this classes are for sending or receiving RTP, or if they must be only used with RTCP/RTSP clients :( Any help would be appreciated. Thanks in advance! -------------- next part -------------- An HTML attachment was scrubbed... URL: From finlayson at live555.com Tue Jun 19 01:21:51 2012 From: finlayson at live555.com (Ross Finlayson) Date: Tue, 19 Jun 2012 01:21:51 -0700 Subject: [Live-devel] Receiving H264/MPEG4 over RTP In-Reply-To: References: Message-ID: <1FDAED15-E96F-499E-81D1-15B48D6567CE@live555.com> > We are currently trying to make an small video player that receives rtp. Do 'we' not have our own domain name? :-) > We want to receive a streaming incoming from VLC in RTP/MPEG TS format using Live555 and inject the data to ffmpeg. Unfortunately we are not experts in this libs and we are having heavy problems with sps, pps, vols, and so on... Note that our library does not demultiplex Transport Stream data. Therefore, you must pass this data to your decoder 'as is'; the LIVE555 code will not know anything about the audio/video contents of the Transport Stream > Currently we are receiving the data using a SimpleRTPSource, with a MPEG1or2Demux No, this is completely wrong. A "MPEG1or2Demux" is used only for MPEG Program Streams. Because you're receiving Transport Stream data, you merely use a "SimpleRTPSource", and the feed the resulting (Transport Stream) data into your decoder. After that, no LIVE555 code is involved (because we don't do decoding). For an example, see the code for the "testMPEG2TransportReceiver" demo application. Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From sambhav at saranyu.in Tue Jun 19 06:47:09 2012 From: sambhav at saranyu.in (Kumar Sambhav) Date: Tue, 19 Jun 2012 19:17:09 +0530 Subject: [Live-devel] RTSP Proxy Server Message-ID: <5EA6BC77-93A8-4DF7-9F0C-8BD26691BD7F@saranyu.in> Hi, Is the following RTSP proxy server mode of operation possible ? ProxyServer only acts as proxy only for RTSP commands, but the RTP/RTCP data flows to the client directly from the main RTSP Server Regards, Sambhav From matthias.doering at geutebrueck.com Tue Jun 19 06:45:22 2012 From: matthias.doering at geutebrueck.com (=?Windows-1252?Q?D=F6ring_Dr=2E_Matthias?=) Date: Tue, 19 Jun 2012 15:45:22 +0200 Subject: [Live-devel] live555 event trigger behaviour Message-ID: <93EFDEE1DA56194B961841BD859539EE0B1273E4D1@de-ex-1> Hello Ross, thank you for your answer and the modification of the triggerEvent function. Unfortunately I am not completely convinced whether this will cure all race conditions which are imaginable for the application of the trigger method in a multithreading environment. I will have to run some long term tests with the new eventTrigger method with 32 live sources and send you my findings. One additional point which I would recommend you to change is the implementation of the DeviceSource sample. Currently it uses a static member variable for the eventTriggerId. The intention was of course that all media sources which will be implemented by using that sample share ONE eventTriggerId for all instances of the same class. If that is done one will again have a racing condition similar to that of my first mail ? even if your modification of triggerEvent would work for sources with individual eventTriggerIds. If multiple instances of source threads write to the same fTriggeredEventClientDatas array element then they can overwrite each other before the live555 message loop thread had a chance to handle the triggers. Probably one will miss triggers and henceforth images what can produce quite ugly artifacts especially with H264 or MPEG2 sources. But even access violations are imaginable if the exchange of the instance pointers in the fTriggeredEventClientDatas array is not an atomic operation (what depends on the CPU which is used) and the callback function of the trigger gets corrupted source instance pointers when the live555 thread reads the values back from the array. Best regards Matthias GEUTEBR?CK GmbH Tel: +49 2645 137-680 Im Nassen 7-9 Mobil: 53578 Windhagen Fax: +49 2645 137-999 http://www.geutebrueck.de E-Mail: matthias.doering at geutebrueck.com Gesch?ftsf?hrer: Katharina Geutebr?ck, Christoph Hoffmann; UST-Ident-Nr.: DE813443473; Handelsregister: HRB 14475 Montabaur [cid:topline_geu_logo.jpg] Diese E-Mail enth?lt vertrauliche und/oder rechtlich gesch?tzte Informationen. Wenn Sie nicht der richtige Adressat sind oder diese E-Mail irrt?mlich erhalten haben, informieren Sie bitte sofort den Absender und vernichten Sie diese Mail. Das unerlaubte Kopieren sowie die unbefugte Weitergabe dieser Mail ist nicht gestattet. This e-mail contains confidential and/or privileged information. If you are not the intended recipient (or have received this e-mail in error) please notify the sender immediately and destroy this e-mail. Any unauthorised copying, disclosure or distribution of the material in this e-mail is strictly forbidden. Weder die GEUTEBR?CK GmbH noch der Absender (Matthias D?ring) ?bernehmen die Haftung f?r Viren; es obliegt Ihrer Verantwortung, die E-Mail und deren Anh?nge auf Viren zu pr?fen. Anh?nge: Versand am 19.06.2012 15:45 von D?ring Matthias -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: topline_geu_logo.jpg Type: application/octet-stream Size: 6449 bytes Desc: topline_geu_logo.jpg URL: From finlayson at live555.com Tue Jun 19 07:55:52 2012 From: finlayson at live555.com (Ross Finlayson) Date: Tue, 19 Jun 2012 07:55:52 -0700 Subject: [Live-devel] RTSP Proxy Server In-Reply-To: <5EA6BC77-93A8-4DF7-9F0C-8BD26691BD7F@saranyu.in> References: <5EA6BC77-93A8-4DF7-9F0C-8BD26691BD7F@saranyu.in> Message-ID: > Is the following RTSP proxy server mode of operation possible ? > ProxyServer only acts as proxy only for RTSP commands, but the RTP/RTCP data flows to the client directly from the main RTSP Server No, and for most back-end servers, that would not even be possible. For security reasons (to prevent 'denial of service' attacks), few servers allow a RTSP client (proxy or otherwise) to specify that the stream should have a different destination. Also, I'm curious as to why you think you would even want this behavior. A proxy RTSP server is usually used so that a single stream from a 'back-end' server (e.g., a network camera) can be shared among potentially multiple 'front-end' clients. Why would you want to proxy the RTSP commands, but not the RTP/RTCP data flow? Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From jesus.lc at vaelsys.com Tue Jun 19 08:28:45 2012 From: jesus.lc at vaelsys.com (=?ISO-8859-1?Q?Jes=FAs_Legan=E9s?=) Date: Tue, 19 Jun 2012 17:28:45 +0200 Subject: [Live-devel] Detect proxy name before being proccessed Message-ID: Good afternoon. At this moment i'm needing to be able to detect what is the proxy name a RTSPServer is being asked for, so i could be able to parse the request path and build a RTSPProxyServerMedia on demand with the requested data. The fact is that looking at the documentation and the code, the only ones places i could be able to do this seems to be overwritting RTSPServer::handleRequestBytes() or RTSPServer::RTSPClientSession::handleCmd_SETUP(). The first one seems to me too much low level, since in fact is here where the parse of the request is being done, and the former one don't have any way to capture the not found proxy so i would be able to create it, since when the proxy is not found handleCmd_notFound() is being called and the method is exited without rechecking it. The only way i can be able to think about this is to overwrite one of this two methods and check and create the proxy unconditionally before executing it, but on both places is too much ugly (handleRequestBytes() is too much generic and would need to parse the request twice, one myself and another the one is doing right now, and at handleCmd_notFound() it would be a client connection object doing things related to the server). There's another better way to do it? Greetings, Jes?s Legan?s Combarro. -- Jes?s Legan?s Combarro Software developer at Vaelsys -------------- next part -------------- An HTML attachment was scrubbed... URL: From finlayson at live555.com Tue Jun 19 12:12:20 2012 From: finlayson at live555.com (Ross Finlayson) Date: Tue, 19 Jun 2012 12:12:20 -0700 Subject: [Live-devel] live555 event trigger behaviour In-Reply-To: <93EFDEE1DA56194B961841BD859539EE0B1273E4D1@de-ex-1> References: <93EFDEE1DA56194B961841BD859539EE0B1273E4D1@de-ex-1> Message-ID: <235CDC3D-F74D-4523-AE57-34E961872711@live555.com> > thank you for your answer and the modification of the triggerEvent > function. Unfortunately I am not completely convinced whether this > will cure all race conditions which are imaginable for the application > of the trigger method in a multithreading environment. I believe it's now OK, as long as the statement fTriggersAwaitingHandling |= eventTriggerId; in the implementation of "triggerEvent()" is implemented as an atomic operation. > One additional point which I would recommend you to change is the > implementation of the DeviceSource sample. Currently it uses a static > member variable for the eventTriggerId. The intention was of course that > all media sources which will be implemented by using that sample share ONE > eventTriggerId for all instances of the same class. "eventTriggerId" was made a static member variable of the "DeviceSource" class because this code was intended as an illustration of how to encapsulate a *single* device - not a set of devices. But yes, it could have been a non-static member variable instead. (And in your environment - where are using multiple device threads - you *must* do this, because "triggerEvent()" must not be called with the same 'event trigger id' from different threads.) I have update the comments in "DeviceSource.hh" and "DeviceSource.cpp" - to appear in the next release of the software - to make this clearer. Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From finlayson at live555.com Tue Jun 19 12:31:06 2012 From: finlayson at live555.com (Ross Finlayson) Date: Tue, 19 Jun 2012 12:31:06 -0700 Subject: [Live-devel] Detect proxy name before being proccessed In-Reply-To: References: Message-ID: > Good afternoon. At this moment i'm needing to be able to detect what is the proxy name a RTSPServer is being asked for, so i could be able to parse the request path and build a RTSPProxyServerMedia on demand with the requested data. If I correctly understand your question, what you're asking for is how to build a proxy server that installs, on demand, new "ProxyServerMediaSession" objects, based upon the stream name in the URL that each client requests. The way you would do this is to subclass "RTSPServer" and redefine the virtual function "lookupServerMediaSession()", in almost exactly the same way that this is done for the "DynamicRTSPServer" code that's used to implement the "LIVE555 Media Server" application. See, for illustration, the code in the "mediaServer" directory. You should *not* need to modify the supplied "ProxyServerMediaSession" or "RTSPServer" code to do this. Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From isambhav at gmail.com Tue Jun 19 10:30:23 2012 From: isambhav at gmail.com (Sambhav) Date: Tue, 19 Jun 2012 23:00:23 +0530 Subject: [Live-devel] RTSP Proxy Server In-Reply-To: References: <5EA6BC77-93A8-4DF7-9F0C-8BD26691BD7F@saranyu.in> Message-ID: There is an existing RTSP server for which there is no programatic control and cannot be changed. I need to implement a custom feature at the application level which requires server control. So was thinking on these terms. Regards, Sambhav On Tue, Jun 19, 2012 at 8:25 PM, Ross Finlayson wrote: > Is the following RTSP proxy server mode of operation possible ? > ProxyServer only acts as proxy only for RTSP commands, but the RTP/RTCP > data flows to the client directly from the main RTSP Server > > > No, and for most back-end servers, that would not even be possible. For > security reasons (to prevent 'denial of service' attacks), few servers > allow a RTSP client (proxy or otherwise) to specify that the stream should > have a different destination. > > Also, I'm curious as to why you think you would even want this behavior. > A proxy RTSP server is usually used so that a single stream from a > 'back-end' server (e.g., a network camera) can be shared among potentially > multiple 'front-end' clients. Why would you want to proxy the RTSP > commands, but not the RTP/RTCP data flow? > > > 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 > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jesus.lc at vaelsys.com Wed Jun 20 01:15:31 2012 From: jesus.lc at vaelsys.com (=?ISO-8859-1?Q?Jes=FAs_Legan=E9s?=) Date: Wed, 20 Jun 2012 10:15:31 +0200 Subject: [Live-devel] Detect proxy name before being proccessed In-Reply-To: References: Message-ID: > > If I correctly understand your question, what you're asking for is how to > build a proxy server that installs, on demand, new > "ProxyServerMediaSession" objects, based upon the stream name in the URL > that each client requests. > > Exactly: on our scheme, the proxy names will have embeded the data required to connect to the remote camera, so if you try to access to a camera that don't have been proxied yet, you can parse the required proxy name create a new proxy automatically on demand. > The way you would do this is to subclass "RTSPServer" and redefine the > virtual function "lookupServerMediaSession()", in almost exactly the same > way that this is done for the "DynamicRTSPServer" code that's used to > implement the "LIVE555 Media Server" application. See, for illustration, > the code in the "mediaServer" directory. > > Ok, this seems nicer to me :-) First try to find and return a proxy, and if it doesn't exists, try to create and return a new one. I like it :-) > You should *not* need to modify the supplied "ProxyServerMediaSession" or > "RTSPServer" code to do this. > > Of course, when i was talking about overwrite the methods i was thinking about doing it in a child class... :-D -- Jes?s Legan?s Combarro Software developer at Vaelsys -------------- next part -------------- An HTML attachment was scrubbed... URL: From summerlismile at gmail.com Wed Jun 20 16:58:04 2012 From: summerlismile at gmail.com (Xia Li) Date: Wed, 20 Jun 2012 16:58:04 -0700 Subject: [Live-devel] testH264VideoToTransportStream error Message-ID: I'm tring to use the testH264VideoToTransportStream test application to convert **.264 file to **.ts file, and it turns out to have some problems. The conversion cannot be completed. For example, I use the given sample "tc10.264" and rename it as "in.264" as conversion input, this file is 2.6MB; while the output "out.ts" file is only 120KB. It seems like only one framer is converted. Can anyone fix this problem? Thanks. -------------- next part -------------- An HTML attachment was scrubbed... URL: From finlayson at live555.com Thu Jun 21 07:30:50 2012 From: finlayson at live555.com (Ross Finlayson) Date: Thu, 21 Jun 2012 07:30:50 -0700 Subject: [Live-devel] testH264VideoToTransportStream error In-Reply-To: References: Message-ID: > I'm tring to use the testH264VideoToTransportStream test application to convert **.264 file to **.ts file, and it turns out to have some problems. The conversion cannot be completed. For example, I use the given sample "tc10.264" and rename it as "in.264" as conversion input, this file is 2.6MB; while the output "out.ts" file is only 120KB. It seems like only one framer is converted. That's odd; it works just fine for me: in.264 (copied from tc10.264): 2680806 bytes out.ts: 2798756 bytes Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From Giridhara.Kalkere at Honeywell.com Thu Jun 21 06:19:21 2012 From: Giridhara.Kalkere at Honeywell.com (Kalkere, Giridhara(IE10)) Date: Thu, 21 Jun 2012 13:19:21 +0000 Subject: [Live-devel] Help to understand the rtsp client connection close Message-ID: <955512E27CA4E9478883ACDCA9CA40C610020C@IE1AEX3007.global.ds.honeywell.com> Dear All, I am using the LIVE555 livemedia library for my camera recording development. I have a problem. 1. I started camera recording - recording in progress 2. Camera powered off - the RTSP connection got closed. (monitored through net stat) 3. Program is not come out the play state. Please help me to understand how to get the rtsp connection closed notification. So that I can re-connect. Is there any method to automatically reconnect the rtsp client to the rtsp server (camera). Thanks and Regards, Giri Thanks and Regards, Giri -------------- next part -------------- An HTML attachment was scrubbed... URL: From finlayson at live555.com Thu Jun 21 07:50:39 2012 From: finlayson at live555.com (Ross Finlayson) Date: Thu, 21 Jun 2012 07:50:39 -0700 Subject: [Live-devel] Help to understand the rtsp client connection close In-Reply-To: <955512E27CA4E9478883ACDCA9CA40C610020C@IE1AEX3007.global.ds.honeywell.com> References: <955512E27CA4E9478883ACDCA9CA40C610020C@IE1AEX3007.global.ds.honeywell.com> Message-ID: <6A437CCD-B8D8-4A43-9E72-42597DB195DF@live555.com> > I am using the LIVE555 livemedia library for my camera recording development. > > I have a problem. > > 1. I started camera recording ? recording in progress > 2. Camera powered off ? the RTSP connection got closed. (monitored through net stat) > 3. Program is not come out the play state. > > Please help me to understand how to get the rtsp connection closed notification. So that I can re-connect. > > Is there any method to automatically reconnect the rtsp client to the rtsp server (camera). Sorry, but this question is so ridiculously vague, it's simply impossible to answer. You'll need to say a *lot* more about what your software does, how it uses the "LIVE555 Streaming Media" software (is is a RTSP client, a RTSP server, or are you using one of the supplied demo applications?), and what, if any, additional software you have written to work with the LIVE555 code. Also, you'll need to be a lot more specific about what your problem is. Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From Giridhara.Kalkere at Honeywell.com Thu Jun 21 10:10:50 2012 From: Giridhara.Kalkere at Honeywell.com (Kalkere, Giridhara(IE10)) Date: Thu, 21 Jun 2012 17:10:50 +0000 Subject: [Live-devel] Help required to identify the RTSP connection closed status Message-ID: <955512E27CA4E9478883ACDCA9CA40C610029C@IE1AEX3007.global.ds.honeywell.com> Dear All, Background: I am using the camera which is a RTSP server which streams the MPEG4 video. On the other hand I am using linux based small embedded system which is a RTSP client. The LIVE555 streaming media libraries are used to write a small application which can record the camera video stream. Problem: My RTSP client application connects to the camera the recording is proper. But when I switch off the camera or unplug it from network I couldn't not able to get the connection closed status I mean its not coming out of play call. When monitored using netstat command the port 554 status will be TIME_WAIT and then get closes. Please help me to understand its behaviour Thanks and Regards, Giri -------------- next part -------------- An HTML attachment was scrubbed... URL: From tbatra18 at gmail.com Thu Jun 21 07:38:12 2012 From: tbatra18 at gmail.com (Tarun Batra) Date: Thu, 21 Jun 2012 20:08:12 +0530 Subject: [Live-devel] rtsp over http tunneling Message-ID: Hello Sir I implemented an application(streamer) in which i am streaming data from live source to an ip and port using live media library and on the other side i am receiving it using test on demand rtsp server(my server). A problem that is troubling me is that i send a message from an client to my server START Stream which is send my server to streamer which in turn start streaming and in my server application i start the code written in your test on demand server application under the heading"// A MPEG-2 Transport Stream, coming from a live UDP (raw-UDP or RTP/UDP) source:" when the client send me the start stream message it also send the port for RTSP-over-HTTP tunneling,for the first time i mean for start stream and stop stream message, the port it send for RTSP-over-HTTP tunneling works well but when the client again send the same port for RTSP-over-HTTP tunneling the rtsp server says Tunneling is not available. In stop stream message in server i closes a thread in which the code to receive data from streamer is there also call the function removeservermediasession from rtsp server class. I guess that the port is not closing after the thread is closed,can u tell how to resolve the problem for Tunnelling ??? -------------- next part -------------- An HTML attachment was scrubbed... URL: From finlayson at live555.com Thu Jun 21 13:27:19 2012 From: finlayson at live555.com (Ross Finlayson) Date: Thu, 21 Jun 2012 13:27:19 -0700 Subject: [Live-devel] Help required to identify the RTSP connection closed status In-Reply-To: <955512E27CA4E9478883ACDCA9CA40C610029C@IE1AEX3007.global.ds.honeywell.com> References: <955512E27CA4E9478883ACDCA9CA40C610029C@IE1AEX3007.global.ds.honeywell.com> Message-ID: Rather than trying to detect when the RTSP connection closes (which isn't reliable, and might not happen for a long time after the server disappears), a better solution is to arrange for a timer to expire if no data arrives within a certain period of time (e.g., 1 second). This will also detect situations where the camera server remains alive, but has stopped streaming data for some reason. On way to do this is the create a delayed event - using "TaskScheduler::scheduleDelayedTask()" - for (e.g.) 1 second, after you've received the response to the RTSP "PLAY" command, and then reschedule the event - using "TaskScheduler::rescheduleDelayedTask()" - each time new data arrives. If the delayed event gets called, then you know that no new data has arrived within the delay period (e.g., 1 second). Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From finlayson at live555.com Thu Jun 21 13:38:22 2012 From: finlayson at live555.com (Ross Finlayson) Date: Thu, 21 Jun 2012 13:38:22 -0700 Subject: [Live-devel] rtsp over http tunneling In-Reply-To: References: Message-ID: <67036A7A-3323-4F80-A76D-6A6DC7865105@live555.com> What I think you're complaining about (although I'm not certain, because your message is not very coherent) is the fact that if you terminate (-C) a server, and then try to restart it very shortly thereafter, you will sometimes find that the port number(s) that the server was using are still unavailable. If you find this happening, then just kill the server again, wait a few more seconds, and try again. Eventually you'll find that the operating system will make the port number available once again. Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From johnx.mcnamara at intel.com Fri Jun 22 06:12:43 2012 From: johnx.mcnamara at intel.com (Mcnamara, JohnX) Date: Fri, 22 Jun 2012 13:12:43 +0000 Subject: [Live-devel] testH264VideoToTransportStream error In-Reply-To: References: Message-ID: Ross Finlayson wrote: > That's odd; it works just fine for me: > in.264 (copied from tc10.264): 2680806 bytes > out.ts: 2798756 bytes Hi Ross, I get the same results as you with live.2012.06.17 on Linux: $ ./testH264VideoToTransportStream Beginning to read... Done reading. Wrote output file: "out.ts" $ ls -l in.264 tc10.264 out.ts -rw-r--r-- 1 user user 2680806 2012-06-22 13:09 tc10.264 -rw-r--r-- 1 user user 2680806 2012-06-22 13:10 in.264 -rw-r--r-- 1 user user 2798756 2012-06-22 13:13 out.ts However, while playing with the output TS file I encountered an issue that I've seen before. Specifically, if you try to play the output TS file with VLC it spits out a lot of errors: $ vlc out.ts VLC media player 1.1.9 The Luggage (revision exported) ... corrupted macroblock 23 16 (total_coeff=-1) error while decoding MB 23 16 ... Missing reference picture decode_slice_header error number of reference frames exceeds max (probably corrupt input), discarding one decode_slice_header error ... first_mb_in_slice overflow ... Missing reference picture decode_slice_header error This could be a VLC issue but it doesn't have any problem playing the input H.264 file (apart from requiring a .h264 extension) and it doesn't have any problem playing a MPEG-TS file created with ffmpeg: $ ffmpeg -i in.264 -vcodec copy ffmpeg.ts The ffplay application also has problems playing the out.ts file. I think this is caused by erroneous 0x00000001 start codes being inserted in the TS file by H264VideoStreamParser. You can verify this if you demux the out.ts file and compare it with the original in.264 input: $ ffmpeg -i out.ts -vcodec copy demuxed.h264 $ cmp in.264 demuxed.h264 in.264 demuxed.h264 differ: byte 149998, line 502 If you examine the two files at that location you will see the extra start code: $ xxd -s 149976 -l 32 in.264 00249d8: ba13 9663 cc85 d621 56b2 4afc 4f9a 887f ...c...!V.J.O... 00249e8: 0580 c162 2cff fff7 c637 5056 54eb 740e ...b,....7PVT.t. $ xxd -s 149976 -l 32 demuxed.h264 00249d8: ba13 9663 cc85 d621 56b2 4afc 4f9a 887f ...c...!V.J.O... 00249e8: 0580 c162 2c00 0000 01ff fff7 c637 5056 ...b,........7PV ^^ ^^^^ ^^ Is this an issue? If you think it is then I have some ideas about what might be causing it but I don't want to second guess you. Regards, John. -- -------------------------------------------------------------- Intel Shannon Limited Registered in Ireland Registered Office: Collinstown Industrial Park, Leixlip, County Kildare Registered Number: 308263 Business address: Dromore House, East Park, Shannon, Co. Clare This e-mail and any attachments may contain confidential material for the sole use of the intended recipient(s). Any review or distribution by others is strictly prohibited. If you are not the intended recipient, please contact the sender and delete all copies. -------------- next part -------------- An HTML attachment was scrubbed... URL: From finlayson at live555.com Fri Jun 22 23:30:06 2012 From: finlayson at live555.com (Ross Finlayson) Date: Fri, 22 Jun 2012 23:30:06 -0700 Subject: [Live-devel] testH264VideoToTransportStream error In-Reply-To: References: Message-ID: Thanks for the note. Yes, this looks like a bug in "H264VideoStreamParser". Investigating.... Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From finlayson at live555.com Sat Jun 23 00:22:54 2012 From: finlayson at live555.com (Ross Finlayson) Date: Sat, 23 Jun 2012 00:22:54 -0700 Subject: [Live-devel] testH264VideoToTransportStream error In-Reply-To: References: Message-ID: I've now installed a new version (2012.06.23) of the "LIVE555 Streaming Media" software that fixes the problem (with the "testH264VideoToTransportStream" demo application) that John McNamara reported. Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From summerlismile at gmail.com Fri Jun 22 17:41:03 2012 From: summerlismile at gmail.com (Xia Li) Date: Fri, 22 Jun 2012 17:41:03 -0700 Subject: [Live-devel] testH264VideoToTransportStream error In-Reply-To: References: Message-ID: Hi Ross, Thank you for your quick response. I think the problem is because: I'm debugging the code under Debug Mode with visual studio 2005. When I build the solution under Release Mode, the generated testH264VideoToTransportStream.exe works just fine, there is no problem with the conversion. However, when I build the solution under Debug Mode, the code breaks, with error "Unhandled exception at 0x1024f121 (msvcr80d.dll) in testH264VideoToTransportStream.exe: 0xC00000FD: Stack overflow". It seems like the use of "fflush" in "FileSink::afterGettingFrame" (FileSink.cpp, line:127) has some relationship with this. I'm still trying to figure it out. Any Suggestions? Thanks very much. On Thu, Jun 21, 2012 at 7:30 AM, Ross Finlayson wrote: > I'm tring to use the testH264VideoToTransportStream test application to > convert **.264 file to **.ts file, and it turns out to have some problems. > The conversion cannot be completed. For example, I use the given sample > "tc10.264" and rename it as "in.264" as conversion input, this file is > 2.6MB; while the output "out.ts" file is only 120KB. It seems like only one > framer is converted. > > > That's odd; it works just fine for me: > in.264 (copied from tc10.264): 2680806 bytes > out.ts: 2798756 bytes > > > 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 > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From tbatra18 at gmail.com Sat Jun 23 23:36:46 2012 From: tbatra18 at gmail.com (Tarun Batra) Date: Sun, 24 Jun 2012 12:06:46 +0530 Subject: [Live-devel] Missing sync byte! Message-ID: Hello sir i made an application of streaming data through camera and for streaming purpose(data) i used live media libraries,but the problem that i am getting is that i get the following reply on client side:- MultiFramedRTPSource::doGetNextFrame1(): The total received frame size exceeds the client's buffer size (6). 1310 bytes of trailing data wi ll be dropped! Missing sync byte! Missing sync byte! Missing sync byte! Missing sync byte! Missing sync byte! Missing sync byte! what should i do to remove this error??? Thank you -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- sendRTPOverTCP: 1328 bytes over channel 0 (socket 932) sendRTPOverTCP: completed MultiFramedRTPSource::doGetNextFrame1(): The total received frame size exceeds the client's buffer size (40). 1276 bytes of trailing data w ill be dropped! sendRTPOverTCP: 1328 bytes over channel 0 (socket 932) sendRTPOverTCP: completed MultiFramedRTPSource::doGetNextFrame1(): The total received frame size exceeds the client's buffer size (40). 1276 bytes of trailing data w ill be dropped! sendRTPOverTCP: 1328 bytes over channel 0 (socket 932) sendRTPOverTCP: completed MultiFramedRTPSource::doGetNextFrame1(): The total received frame size exceeds the client's buffer size (40). 1276 bytes of trailing data w ill be dropped! sendRTPOverTCP: 1328 bytes over channel 0 (socket 932) sendRTPOverTCP: completed MultiFramedRTPSource::doGetNextFrame1(): The total received frame size exceeds the client's buffer size (40). 1276 bytes of trailing data w ill be dropped! sendRTPOverTCP: 1328 bytes over channel 0 (socket 932) sendRTPOverTCP: completed MultiFramedRTPSource::doGetNextFrame1(): The total received frame size exceeds the client's buffer size (40). 1276 bytes of trailing data w ill be dropped! sendRTPOverTCP: 1328 bytes over channel 0 (socket 932) sendRTPOverTCP: completed MultiFramedRTPSource::doGetNextFrame1(): The total received frame size exceeds the client's buffer size (40). 1276 bytes of trailing data w ill be dropped! sendRTPOverTCP: 1328 bytes over channel 0 (socket 932) sendRTPOverTCP: completed MultiFramedRTPSource::doGetNextFrame1(): The total received frame size exceeds the client's buffer size (40). 1276 bytes of trailing data w ill be dropped! sendRTPOverTCP: 1328 bytes over channel 0 (socket 932) sendRTPOverTCP: completed MultiFramedRTPSource::doGetNextFrame1(): The total received frame size exceeds the client's buffer size (40). 1276 bytes of trailing data w ill be dropped! sendRTPOverTCP: 1328 bytes over channel 0 (socket 932) sendRTPOverTCP: completed MultiFramedRTPSource::doGetNextFrame1(): The total received frame size exceeds the client's buffer size (40). 1276 bytes of trailing data w ill be dropped! sendRTPOverTCP: 1328 bytes over channel 0 (socket 932) sendRTPOverTCP: completed MultiFramedRTPSource::doGetNextFrame1(): The total received frame size exceeds the client's buffer size (40). 1276 bytes of trailing data w ill be dropped! sendRTPOverTCP: 1328 bytes over channel 0 (socket 932) sendRTPOverTCP: completed MultiFramedRTPSource::doGetNextFrame1(): The total received frame size exceeds the client's buffer size (19). 1297 bytes of trailing data w ill be dropped! Missing sync byte! Missing sync byte! Missing sync byte! Missing sync byte! Missing sync byte! Missing sync byte! sendRTPOverTCP: 1328 bytes over channel 0 (socket 932) sendRTPOverTCP: completed MultiFramedRTPSource::doGetNextFrame1(): The total received frame size exceeds the client's buffer size (40). 1276 bytes of trailing data w ill be dropped! sendRTPOverTCP: 1328 bytes over channel 0 (socket 932) sendRTPOverTCP: completed MultiFramedRTPSource::doGetNextFrame1(): The total received frame size exceeds the client's buffer size (40). 1276 bytes of trailing data w ill be dropped! sendRTPOverTCP: 1328 bytes over channel 0 (socket 932) sendRTPOverTCP: completed MultiFramedRTPSource::doGetNextFrame1(): The total received frame size exceeds the client's buffer size (40). 1276 bytes of trailing data w ill be dropped! sendRTPOverTCP: 1328 bytes over channel 0 (socket 932) sendRTPOverTCP: completed MultiFramedRTPSource::doGetNextFrame1(): The total received frame size exceeds the client's buffer size (40). 1276 bytes of trailing data w ill be dropped! sendRTPOverTCP: 1328 bytes over channel 0 (socket 932) sendRTPOverTCP: completed MultiFramedRTPSource::doGetNextFrame1(): The total received frame size exceeds the client's buffer size (40). 1276 bytes of trailing data w ill be dropped! sendRTPOverTCP: 1328 bytes over channel 0 (socket 932) sendRTPOverTCP: completed MultiFramedRTPSource::doGetNextFrame1(): The total received frame size exceeds the client's buffer size (40). 1276 bytes of trailing data w ill be dropped! sendRTPOverTCP: 1328 bytes over channel 0 (socket 932) sendRTPOverTCP: completed MultiFramedRTPSource::doGetNextFrame1(): The total received frame size exceeds the client's buffer size (40). 1276 bytes of trailing data w ill be dropped! sendRTPOverTCP: 1328 bytes over channel 0 (socket 932) sendRTPOverTCP: completed MultiFramedRTPSource::doGetNextFrame1(): The total received frame size exceeds the client's buffer size (40). 1276 bytes of trailing data w ill be dropped! sendRTPOverTCP: 1328 bytes over channel 0 (socket 932) sendRTPOverTCP: completed MultiFramedRTPSource::doGetNextFrame1(): The total received frame size exceeds the client's buffer size (40). 1276 bytes of trailing data w ill be dropped! sendRTPOverTCP: 1328 bytes over channel 0 (socket 932) sendRTPOverTCP: completed MultiFramedRTPSource::doGetNextFrame1(): The total received frame size exceeds the client's buffer size (40). 1276 bytes of trailing data w ill be dropped! sendRTPOverTCP: 1328 bytes over channel 0 (socket 932) sendRTPOverTCP: completed MultiFramedRTPSource::doGetNextFrame1(): The total received frame size exceeds the client's buffer size (40). 1276 bytes of trailing data w ill be dropped! sendRTPOverTCP: 1328 bytes over channel 0 (socket 932) sendRTPOverTCP: completed MultiFramedRTPSource::doGetNextFrame1(): The total received frame size exceeds the client's buffer size (31). 1285 bytes of trailing data w ill be dropped! Missing sync byte! Missing sync byte! Missing sync byte! Missing sync byte! Missing sync byte! Missing sync byte! sendRTPOverTCP: 1328 bytes over channel 0 (socket 932) sendRTPOverTCP: completed MultiFramedRTPSource::doGetNextFrame1(): The total received frame size exceeds the client's buffer size (40). 1276 bytes of trailing data w ill be dropped! sendRTPOverTCP: 1328 bytes over channel 0 (socket 932) sendRTPOverTCP: completed MultiFramedRTPSource::doGetNextFrame1(): The total received frame size exceeds the client's buffer size (40). 1276 bytes of trailing data w ill be dropped! sendRTPOverTCP: 1328 bytes over channel 0 (socket 932) sendRTPOverTCP: completed MultiFramedRTPSource::doGetNextFrame1(): The total received frame size exceeds the client's buffer size (40). 1276 bytes of trailing data w ill be dropped! sendRTPOverTCP: 1328 bytes over channel 0 (socket 932) sendRTPOverTCP: completed MultiFramedRTPSource::doGetNextFrame1(): The total received frame size exceeds the client's buffer size (40). 1276 bytes of trailing data w ill be dropped! sendRTPOverTCP: 1328 bytes over channel 0 (socket 932) sendRTPOverTCP: completed MultiFramedRTPSource::doGetNextFrame1(): The total received frame size exceeds the client's buffer size (40). 1276 bytes of trailing data w ill be dropped! sendRTPOverTCP: 1328 bytes over channel 0 (socket 932) sendRTPOverTCP: completed MultiFramedRTPSource::doGetNextFrame1(): The total received frame size exceeds the client's buffer size (40). 1276 bytes of trailing data w ill be dropped! sendRTPOverTCP: 1328 bytes over channel 0 (socket 932) sendRTPOverTCP: completed MultiFramedRTPSource::doGetNextFrame1(): The total received frame size exceeds the client's buffer size (22). 1294 bytes of trailing data w ill be dropped! Missing sync byte! Missing sync byte! Missing sync byte! Missing sync byte! Missing sync byte! Missing sync byte! sendRTPOverTCP: 1328 bytes over channel 0 (socket 932) sendRTPOverTCP: completed MultiFramedRTPSource::doGetNextFrame1(): The total received frame size exceeds the client's buffer size (40). 1276 bytes of trailing data w ill be dropped! sendRTPOverTCP: 1328 bytes over channel 0 (socket 932) sendRTPOverTCP: completed MultiFramedRTPSource::doGetNextFrame1(): The total received frame size exceeds the client's buffer size (40). 1276 bytes of trailing data w ill be dropped! sendRTPOverTCP: 1328 bytes over channel 0 (socket 932) sendRTPOverTCP: completed MultiFramedRTPSource::doGetNextFrame1(): The total received frame size exceeds the client's buffer size (6). 1310 bytes of trailing data wi ll be dropped! Missing sync byte! Missing sync byte! Missing sync byte! Missing sync byte! Missing sync byte! Missing sync byte! sendRTPOverTCP: 1328 bytes over channel 0 (socket 932) sendRTPOverTCP: completed MultiFramedRTPSource::doGetNextFrame1(): The total received frame size exceeds the client's buffer size (40). 1276 bytes of trailing data w ill be dropped! sendRTPOverTCP: 1328 bytes over channel 0 (socket 932) sendRTPOverTCP: completed MultiFramedRTPSource::doGetNextFrame1(): The total received frame size exceeds the client's buffer size (40). 1276 bytes of trailing data w ill be dropped! sendRTPOverTCP: 1328 bytes over channel 0 (socket 932) sendRTPOverTCP: completed MultiFramedRTPSource::doGetNextFrame1(): The total received frame size exceeds the client's buffer size (40). 1276 bytes of trailing data w ill be dropped! sendRTPOverTCP: 1328 bytes over channel 0 (socket 932) sendRTPOverTCP: completed MultiFramedRTPSource::doGetNextFrame1(): The total received frame size exceeds the client's buffer size (40). 1276 bytes of trailing data w ill be dropped! sendRTPOverTCP: 1328 bytes over channel 0 (socket 932) sendRTPOverTCP: completed MultiFramedRTPSource::doGetNextFrame1(): The total received frame size exceeds the client's buffer size (40). 1276 bytes of trailing data w ill be dropped! sendRTPOverTCP: 1328 bytes over channel 0 (socket 932) sendRTPOverTCP: completed MultiFramedRTPSource::doGetNextFrame1(): The total received frame size exceeds the client's buffer size (36). 1280 bytes of trailing data w ill be dropped! Missing sync byte! Missing sync byte! Missing sync byte! Missing sync byte! Missing sync byte! Missing sync byte! sendRTPOverTCP: 1328 bytes over channel 0 (socket 932) sendRTPOverTCP: completed MultiFramedRTPSource::doGetNextFrame1(): The total received frame size exceeds the client's buffer size (20). 1296 bytes of trailing data w ill be dropped! Missing sync byte! Missing sync byte! Missing sync byte! Missing sync byte! Missing sync byte! Missing sync byte! sendRTPOverTCP: 1328 bytes over channel 0 (socket 932) sendRTPOverTCP: completed MultiFramedRTPSource::doGetNextFrame1(): The total received frame size exceeds the client's buffer size (40). 1276 bytes of trailing data w ill be dropped! sendRTPOverTCP: 1328 bytes over channel 0 (socket 932) sendRTPOverTCP: completed MultiFramedRTPSource::doGetNextFrame1(): The total received frame size exceeds the client's buffer size (40). 1276 bytes of trailing data w ill be dropped! sendRTPOverTCP: 1328 bytes over channel 0 (socket 932) sendRTPOverTCP: completed MultiFramedRTPSource::doGetNextFrame1(): The total received frame size exceeds the client's buffer size (2). 1314 bytes of trailing data wi ll be dropped! Missing sync byte! Missing sync byte! Missing sync byte! Missing sync byte! Missing sync byte! Missing sync byte! sendRTPOverTCP: 1328 bytes over channel 0 (socket 932) sendRTPOverTCP: completed MultiFramedRTPSource::doGetNextFrame1(): The total received frame size exceeds the client's buffer size (16). 1300 bytes of trailing data w ill be dropped! Missing sync byte! Missing sync byte! Missing sync byte! Missing sync byte! Missing sync byte! Missing sync byte! sendRTPOverTCP: 1328 bytes over channel 0 (socket 932) sendRTPOverTCP: completed MultiFramedRTPSource::doGetNextFrame1(): The total received frame size exceeds the client's buffer size (40). 1276 bytes of trailing data w ill be dropped! sendRTPOverTCP: 1328 bytes over channel 0 (socket 932) sendRTPOverTCP: completed MultiFramedRTPSource::doGetNextFrame1(): The total received frame size exceeds the client's buffer size (40). 1276 bytes of trailing data w ill be dropped! sendRTPOverTCP: 1328 bytes over channel 0 (socket 932) sendRTPOverTCP: completed MultiFramedRTPSource::doGetNextFrame1(): The total received frame size exceeds the client's buffer size (40). 1276 bytes of trailing data w ill be dropped! sendRTPOverTCP: 1328 bytes over channel 0 (socket 932) sendRTPOverTCP: completed MultiFramedRTPSource::doGetNextFrame1(): The total received frame size exceeds the client's buffer size (40). 1276 bytes of trailing data w ill be dropped! sendRTPOverTCP: 1328 bytes over channel 0 (socket 932) sendRTPOverTCP: completed MultiFramedRTPSource::doGetNextFrame1(): The total received frame size exceeds the client's buffer size (17). 1299 bytes of trailing data w ill be dropped! Missing sync byte! Missing sync byte! Missing sync byte! Missing sync byte! Missing sync byte! Missing sync byte! sendRTPOverTCP: 1328 bytes over channel 0 (socket 932) sendRTPOverTCP: completed MultiFramedRTPSource::doGetNextFrame1(): The total received frame size exceeds the client's buffer size (40). 1276 bytes of trailing data w ill be dropped! sendRTPOverTCP: 1328 bytes over channel 0 (socket 932) sendRTPOverTCP: completed MultiFramedRTPSource::doGetNextFrame1(): The total received frame size exceeds the client's buffer size (40). 1276 bytes of trailing data w ill be dropped! sendRTPOverTCP: 1328 bytes over channel 0 (socket 932) sendRTPOverTCP: completed MultiFramedRTPSource::doGetNextFrame1(): The total received frame size exceeds the client's buffer size (40). 1276 bytes of trailing data w ill be dropped! sendRTPOverTCP: 1328 bytes over channel 0 (socket 932) sendRTPOverTCP: completed MultiFramedRTPSource::doGetNextFrame1(): The total received frame size exceeds the client's buffer size (40). 1276 bytes of trailing data w ill be dropped! sendRTPOverTCP: 1328 bytes over channel 0 (socket 932) sendRTPOverTCP: completed MultiFramedRTPSource::doGetNextFrame1(): The total received frame size exceeds the client's buffer size (6). 1310 bytes of trailing data wi ll be dropped! Missing sync byte! Missing sync byte! Missing sync byte! Missing sync byte! Missing sync byte! Missing sync byte! sendRTPOverTCP: 1328 bytes over channel 0 (socket 932) sendRTPOverTCP: completed sending REPORT sending RTCP packet 80c80006 f0226efe d3902438 26832b99 dba9580e 00002292 00b1b688 81ca0004 f0226efe 01064949 53443236 00000000 sendRTPOverTCP: 48 bytes over channel 1 (socket 932) sendRTPOverTCP: completed schedule(3.207893->1340450235.361885) MultiFramedRTPSource::doGetNextFrame1(): The total received frame size exceeds the client's buffer size (40). 1276 bytes of trailing data w ill be dropped! sendRTPOverTCP: 1328 bytes over channel 0 (socket 932) sendRTPOverTCP: completed schedule(2.843404->1340450238.205671) sending REPORT sending RTCP packet 80c80006 f0226efe d390243e 34df6988 dbb1a926 00002293 00b1bbac 81ca0004 f0226efe 01064949 53443236 00000000 sendRTPOverTCP: 48 bytes over channel 1 (socket 932) sendRTPOverTCP: completed schedule(5.373255->1340450243.583182) MultiFramedRTPSource::doGetNextFrame1(): The total received frame size exceeds the client's buffer size (40). 1276 bytes of trailing data w ill be dropped! sendRTPOverTCP: 1328 bytes over channel 0 (socket 932) sendRTPOverTCP: completed From finlayson at live555.com Sun Jun 24 01:56:38 2012 From: finlayson at live555.com (Ross Finlayson) Date: Sun, 24 Jun 2012 01:56:38 -0700 Subject: [Live-devel] Missing sync byte! In-Reply-To: References: Message-ID: <76FA080A-D584-447A-92F5-704CD42C344D@live555.com> You haven't said anything about how your application is constructed, and what it's supposed to do, but this error message is quite specific: > MultiFramedRTPSource::doGetNextFrame1(): The total received frame size exceeds the client's buffer size (6). This means that whatever object you're feeding your "MultiFramedRTPSource" (subclass) object into has a (much) too small buffer size. Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From bstump at codemass.com Sun Jun 24 15:40:20 2012 From: bstump at codemass.com (Barry Stump) Date: Sun, 24 Jun 2012 15:40:20 -0700 Subject: [Live-devel] Ignoring SIGPIPE in RTSPClient Message-ID: I have a similar issue to that reported by Philippe Clavel in April where RTSPClient receives a SIGPIPE from closed socket and terminates the process. In my case, I am not using the RTSPServer class, so the fix implemented in that class does not help me. Instead, I have adapted that fix for the RTSPClient class and have included the patch below for inclusion in an upcoming version of Live555, pending your approval. --- a/src/live555/liveMedia/RTSPClient.cpp +++ b/src/live555/liveMedia/RTSPClient.cpp @@ -374,6 +374,17 @@ int RTSPClient::openConnection() { // We don't yet have a TCP socket (or we used to have one, but it got closed). Set it up now. fInputSocketNum = fOutputSocketNum = setupStreamSocket(envir(), 0); if (fInputSocketNum < 0) break; + +#ifdef USE_SIGNALS + // ignore SIGPIPE so that prematurely closed sockets won't kill our process +#ifdef SO_NOSIGPIPE + int set_option = 1; + setsockopt(fInputSocketNum, SOL_SOCKET, SO_NOSIGPIPE, &set_option, sizeof set_option); + setsockopt(fOutputSocketNum, SOL_SOCKET, SO_NOSIGPIPE, &set_option, sizeof set_option); +#else + signal(SIGPIPE, SIG_IGN); +#endif +#endif // Connect to the remote endpoint: fServerAddress = *(netAddressBits*)(destAddress.data()); -Barry -------------- next part -------------- An HTML attachment was scrubbed... URL: From finlayson at live555.com Sun Jun 24 16:42:15 2012 From: finlayson at live555.com (Ross Finlayson) Date: Sun, 24 Jun 2012 16:42:15 -0700 Subject: [Live-devel] Ignoring SIGPIPE in RTSPClient In-Reply-To: References: Message-ID: OK, this will be done in the next release of the software. Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From tbatra18 at gmail.com Mon Jun 25 02:24:15 2012 From: tbatra18 at gmail.com (Tarun Batra) Date: Mon, 25 Jun 2012 14:54:15 +0530 Subject: [Live-devel] Fwd: Missing sync byte! In-Reply-To: References: Message-ID: Sir I made my application in which i am getting data from a camera to a frame grabber board in which converts the .ts data and give us h264 frames and for the board i have allocated the buffers and i am taking data from the buffers and giving to live media libraries for streaming as shown below:- #define TRANSPORT_PACKET_SIZE 188 #define TRANSPORT_PACKETS_PER_NETWORK_PACKET 7 int main() { TaskScheduler* scheduler = BasicTaskScheduler::createNew(); env = BasicUsageEnvironment::createNew(*scheduler); // Create 'groupsocks' for RTP and RTCP: char const* destinationAddressStr = "192.168.15.196"; struct in_addr destinationAddress; destinationAddress.s_addr = our_inet_addr(destinationAddressStr); //destinationAddress.s_addr = chooseRandomIPv4SSMAddress(*env); // Note: This is a multicast address. const unsigned short rtpPortNum = 18888; const unsigned short rtcpPortNum = rtpPortNum+1; const unsigned char ttl = 7; //255; const Port rtpPort(rtpPortNum); const Port rtcpPort(rtcpPortNum); Groupsock rtpGroupsock(*env, destinationAddress, rtpPort, ttl); rtpGroupsock.multicastSendOnly(); // we're a SSM source Groupsock rtcpGroupsock(*env, destinationAddress, rtcpPort, ttl); rtcpGroupsock.multicastSendOnly(); // we're a SSM source // Create an appropriate 'RTP sink' from the RTP 'groupsock': videoSink = SimpleRTPSink::createNew(*env, &rtpGroupsock, 33, 90000, "video", "MP2T", 1, True, False /*no 'M' bit*/); // Create (and start) a 'RTCP instance' for this RTP sink: const unsigned estimatedSessionBandwidth = 5000; // in kbps; for RTCP b/w share const unsigned maxCNAMElen = 100; unsigned char CNAME[maxCNAMElen+1]; gethostname((char*)CNAME, maxCNAMElen); CNAME[maxCNAMElen] = '\0'; // just in case *void play() {* * // Open the input file as a 'byte-stream file source':* * * * fi_params.nFICardFrameSize = TRANSPORT_PACKETS_PER_NETWORK_PACKET * TRANSPORT_PACKET_SIZE;* * fi_params.p_lm_lock_fn = lm_lock_fn;* * fi_params.p_lm_unlock_fn = lm_unlock_fn;* * * * DeviceParameters temp;* * * * fileSource = DeviceSourceFICard::createNew(*env, fi_params, temp);* * if (fileSource == NULL) {* * *env << "Unable to open file \"" << inputFileName* * << "\" as a byte-stream file source\n";* * exit(1);* * }* * FramedSource* videoES = fileSource;* * * * // Create a framer for the Video Elementary Stream:* * videoSource = MPEG1or2VideoStreamDiscreteFramer::createNew(*env, videoES);* * * * // Finally, start playing:* * *env << "Beginning to read from file...\n";* * videoSink->startPlaying(*videoSource, afterPlaying, videoSink);* * * *}* and on the server side i used your* "test On Demand RTSP Server.cpp" exe *and the code under section "* // A MPEG-2 Transport Stream, coming from a live UDP (raw-UDP or RTP/UDP) source:"* Sir now where should i make changes at streamer side or server side? On Mon, Jun 25, 2012 at 1:34 PM, Ketan Gholap wrote: > * > * > ---------- Forwarded message ---------- > From: Ross Finlayson > Date: Sun, Jun 24, 2012 at 2:26 PM > Subject: Re: [Live-devel] Missing sync byte! > To: LIVE555 Streaming Media - development & use > > > > You haven't said anything about how your application is constructed, and > what it's supposed to do, but this error message is quite specific: > > MultiFramedRTPSource::doGetNextFrame1(): The total received frame size > exceeds the client's buffer size (6). > > > This means that whatever object you're feeding your "MultiFramedRTPSource" > (subclass) object into has a (much) too small buffer size. > > > 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 > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jesus.lc at vaelsys.com Mon Jun 25 04:29:26 2012 From: jesus.lc at vaelsys.com (=?ISO-8859-1?Q?Jes=FAs_Legan=E9s?=) Date: Mon, 25 Jun 2012 13:29:26 +0200 Subject: [Live-devel] Detect proxy name before being proccessed In-Reply-To: References: Message-ID: Hi Ross. I have been trying what you told me about subclass RTSPServer and redefine?lookupServerMediaSession() and it seems to be the way to go, the downside is that it's not fully working: when i try to connect to the server a new auto-generated proxy is created and returned, but the client connection fails, but if i try to connect again now the connection works because the proxy was already created. Looking at the code and doing some traces it seems to me that the fact is that when the ProxyRTSPClient and the connection with the camera is done it is being returned althought it has not finished to configure (it has send the DESCRIBE command to the camera, but haven't received an answer nor configured itself), so the client can't do the connection with an error "live555 demux error: Nothing to play for ..." (i'm using VLC as client for the tests, by the way). The traces and the client error point me to ProxyServerMediaSession::continueAfterDESCRIBE() method, that in fact it seems is creating the RTSP subsessions with the data (that makes sense with the client error because althought the proxy is build, it's streaming an empty stream), but being the method private and also not virtual I can't be able to access to it. So my question is, how can i be able to detect when the proxy has finished with it's configuration and added the camera connection ProxyServerMediaSubsessions? And more explicitly, how can i be able to do that the RTSPServer::lookupServerMediaSession() method return a fully configured and ready to use ProxyServerMediaSession object? Greetings, Jes?s Legan?s Combarro. 2012/6/20 Jes?s Legan?s >> >> If I correctly understand your question, what you're asking for is how to build a proxy server that installs, on demand, new "ProxyServerMediaSession" objects, based upon the stream name in the URL that each client requests. >> > Exactly: on our scheme, the proxy names will have embeded the data required to connect to the remote camera, so if you try to access to a camera that don't have been proxied yet, you can parse the required proxy name create a new proxy automatically on demand. > > >> >> The way you would do this is to subclass "RTSPServer" and redefine the virtual function "lookupServerMediaSession()", in almost exactly the same way that this is done for the "DynamicRTSPServer" code that's used to implement the "LIVE555 Media Server" application. ?See, for illustration, the code in the "mediaServer" directory. >> > Ok, this seems nicer to me :-) First try to find and return a proxy, and if it doesn't exists, try to create and return a new one. I like it :-) > > >> >> You should *not* need to modify the supplied?"ProxyServerMediaSession" or "RTSPServer" code to do this. >> > Of course, when i was talking about overwrite the methods i was thinking about doing it in a child class... :-D > > > > -- > Jes?s Legan?s Combarro > Software developer at Vaelsys > -- Jes?s Legan?s Combarro Software developer at Vaelsys From sidprice at softtools.com Mon Jun 25 15:53:16 2012 From: sidprice at softtools.com (Sid Price) Date: Mon, 25 Jun 2012 16:53:16 -0600 Subject: [Live-devel] ourIPAddress method Message-ID: <00f601cd5325$50008880$f0019980$@softtools.com> I finally have my new hardware platform available and am back working on streaming from our embedded device. Unfortunately the platform I have has two network adaptors active while debugging and I need to be able to select the correct one for the server. It appears the server IP is set up in ourIPAddress, of course it picks the wrong one. Has anyone worked in this area to be able to select the network connection by looking at the name of the adaptor? Thanks, Sid. -------------- next part -------------- An HTML attachment was scrubbed... URL: From finlayson at live555.com Mon Jun 25 16:10:59 2012 From: finlayson at live555.com (Ross Finlayson) Date: Mon, 25 Jun 2012 16:10:59 -0700 Subject: [Live-devel] ourIPAddress method In-Reply-To: <00f601cd5325$50008880$f0019980$@softtools.com> References: <00f601cd5325$50008880$f0019980$@softtools.com> Message-ID: > I finally have my new hardware platform available and am back working on streaming from our embedded device. Unfortunately the platform I have has two network adaptors active while debugging and I need to be able to select the correct one for the server. It appears the server IP is set up in ourIPAddress, of course it picks the wrong one. It doesn't pick the 'wrong' one; it just picks a different one from the one that you wanted :-) The easiest way to ensure that one particular interface is chosen is to make that interface the one for which multicast routing is enabled - i.e., the interface that has a route for 224.0.0.0/4 Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From sidprice at softtools.com Mon Jun 25 16:27:06 2012 From: sidprice at softtools.com (Sid Price) Date: Mon, 25 Jun 2012 17:27:06 -0600 Subject: [Live-devel] ourIPAddress method In-Reply-To: References: <00f601cd5325$50008880$f0019980$@softtools.com> Message-ID: <010701cd532a$097ad870$1c708950$@softtools.com> Thanks Ross, you are of course correct about the interface not being the one I want :o) The interface that gets selected is the one used by ActiveSync for debug and I don't think I can change anything about it. I guess I am just going to have to discover the interface adaptors fitted and choose the one I want. Thanks, Sid. From: live-devel-bounces at ns.live555.com [mailto:live-devel-bounces at ns.live555.com] On Behalf Of Ross Finlayson Sent: Monday, June 25, 2012 5:11 PM To: LIVE555 Streaming Media - development & use Subject: Re: [Live-devel] ourIPAddress method I finally have my new hardware platform available and am back working on streaming from our embedded device. Unfortunately the platform I have has two network adaptors active while debugging and I need to be able to select the correct one for the server. It appears the server IP is set up in ourIPAddress, of course it picks the wrong one. It doesn't pick the 'wrong' one; it just picks a different one from the one that you wanted :-) The easiest way to ensure that one particular interface is chosen is to make that interface the one for which multicast routing is enabled - i.e., the interface that has a route for 224.0.0.0/4 Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From finlayson at live555.com Mon Jun 25 16:38:36 2012 From: finlayson at live555.com (Ross Finlayson) Date: Mon, 25 Jun 2012 16:38:36 -0700 Subject: [Live-devel] ourIPAddress method In-Reply-To: <010701cd532a$097ad870$1c708950$@softtools.com> References: <00f601cd5325$50008880$f0019980$@softtools.com> <010701cd532a$097ad870$1c708950$@softtools.com> Message-ID: <48969FFC-F6CE-4998-ACA7-E709C811A079@live555.com> > The interface that gets selected is the one used by ActiveSync for debug and I don?t think I can change anything about it. You should be able to run (from a command console) the "route" command to change the interface that does IP multicast routing. That should give you what you want... Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From finlayson at live555.com Mon Jun 25 17:14:35 2012 From: finlayson at live555.com (Ross Finlayson) Date: Mon, 25 Jun 2012 17:14:35 -0700 Subject: [Live-devel] Detect proxy name before being proccessed In-Reply-To: References: Message-ID: <96D53843-C833-45EF-958C-B20A39594F2A@live555.com> > So my question is, how can i be able to detect when the proxy has > finished with it's configuration and added the camera connection > ProxyServerMediaSubsessions? First, please add the following - as a public member function - to "liveMedia/include/ProxyServerMediaSession.hh": Boolean hasBeenInitialized() const { return fProxyRTSPClient != NULL; } (I'll include this addition in the next release of the software.) This function will let you check whether the proxy's back-end "DESCRIBE" command has completed yet. Then you'll need to add code like the following to your "lookupServerMediaSession()" implementation, after you've created (or looked up) the "ProxyServerMediaSession" object. This will 'poll' the "ProxyServerMediaSession" object until its initialization has completed: while (!proxyServerMediaSession->hasBeenInitialized()) { int uSecsToDelay = 100000; // 100 ms (polling interval) env->taskScheduler().scheduleDelayedTask(uSecsToDelay, (TaskFunc*)pollProxyServerMediaSession, NULL); env->taskScheduler().doEventLoop(&doneFlag); // where "doneFlag" is a "char" - initialized to 0 } Then define "pollProxyServerMediaSession" to be something like: static void pollProxyServerMediaSession(void* clientData) { // Signal the event loop that we're done: doneFlag = ~0; } Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From finlayson at live555.com Mon Jun 25 17:22:13 2012 From: finlayson at live555.com (Ross Finlayson) Date: Mon, 25 Jun 2012 17:22:13 -0700 Subject: [Live-devel] Missing sync byte! In-Reply-To: References: Message-ID: For starters, you shouldn't use a "MPEG1or2VideoStreamDiscreteFramer"; that's for MPEG-1 or 2 Elementary Stream data. If the data that comes from your "DeviceSourceFICard" object is Transport Stream data, then you should feed it into a "MPEG2TransportStreamFramer", and then a "SimpleRTPSink" to stream it. If the data that comes from your "DeviceSourceFICard" object is sequence of H.264 NAL units (one-at-a-time), then you should feed it into a "H264VideoStreamDiscreteFramer", and then a "H264VideoRTPSink" to stream it. Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From ranshalit at gmail.com Mon Jun 25 03:35:45 2012 From: ranshalit at gmail.com (Ran Shalit) Date: Mon, 25 Jun 2012 13:35:45 +0300 Subject: [Live-devel] Metadata with MPEG-TS Message-ID: Hi, I want to add metadata to audio and video for creation of MPEG-2 Transport stream. I receive metadata information already inside MPEG-TS packets, I would like to ask if it is a live streamer can deal with MPEG-TS place holder for new MPEG-TS packet or should receive the metadata packets without any encapsulation (elementary stream maybe ). What are the options for inserting metadata already encapsulated with MPEG-TS ? Thank you very much, Ran From finlayson at live555.com Mon Jun 25 21:51:31 2012 From: finlayson at live555.com (Ross Finlayson) Date: Mon, 25 Jun 2012 21:51:31 -0700 Subject: [Live-devel] Detect proxy name before being proccessed In-Reply-To: References: Message-ID: <2D600429-0BDB-419B-8BD4-1BDC707BE2B4@live555.com> > So my question is, how can i be able to detect when the proxy has > finished with it's configuration and added the camera connection > ProxyServerMediaSubsessions? On thinking about this some more, I came up with a better solution - one that doesn't require a separate 'polling' delayed task. First, download the latest version - 2012.06.26 - of the "LIVE555 Streaming Media" code. Then, add the following line to your "lookupServerMediaSession()" implementation, after you've created (or looked up) the "ProxyServerMediaSession" object: envir()->taskScheduler().doEventLoop(&(proxyServerMediaSession->describeCompletedFlag)); At this point, you can also check proxyServerMediaSession->describeCompletedSuccessfully() If this is True, then you know that the back-end "DESCRIBE" command completed successfully. If, however, it's False, then you know that the back-end "DESCRIBE" command completed, but unsuccessfully - presumably because the back-end stream does not exist. Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From hugofredericosoares at gmail.com Mon Jun 25 14:39:20 2012 From: hugofredericosoares at gmail.com (Hugo Soares) Date: Mon, 25 Jun 2012 18:39:20 -0300 Subject: [Live-devel] Problems using lib. Message-ID: Hi all, I've just built the live555 lib in a windows 7 machine and now trying to run one of the sample programs, namely testRTSCPCient.exe and openRTSP.exe without success. I'm using Unreal Media Server to stream media locally and trying to run testRTSPClient.exe rtsp://localhost:5119/MediaRoot/test.avi and it says: Opening connection to 127.0.0.1, port 5119... ...remote connection opened Sending request: DESCRIBE rtsp://localhost:5119/MediaRoot/test.avi RTSP/1.0 CSeq: 2 User-Agent: testRTSPClient.exe (LIVE555 Streaming Media v2012.06.23) Accept: application/sdp Received 24 new bytes of response data. [URL:"rtsp://localhost:5119/MediaRoot/test.avi"]: Failed to get a SDP descriptio n: liveMedia0 [URL:"rtsp://localhost:5119/MediaRoot/test.avi"]: Closing the stream. And also noticed that VLC (2.0.1) isn't able to reproduce this url too, but have no clue if the problem is related. I'm running a fresh windows 7 installation. Anyone can help? -- Atenciosamente, Hugo Frederico Soares (81) 9647 4509 -------------- next part -------------- An HTML attachment was scrubbed... URL: From tbatra18 at gmail.com Tue Jun 26 00:27:09 2012 From: tbatra18 at gmail.com (Tarun Batra) Date: Tue, 26 Jun 2012 12:57:09 +0530 Subject: [Live-devel] Missing sync byte! In-Reply-To: References: Message-ID: Hello sir Sir the data that comes from mine "DeviceSourceFICard" object is Transport Stream data, and i used the "MPEG2TransportStreamFramer" instead of "MPEG1or2VideoStreamDiscreteFramer" as u said but still i am getting the "Missing Sync Byte" printed on the console on both the streamer and console side . What might the problem is ??? * > * > ---------- Forwarded message ---------- > From: Ross Finlayson > Date: Tue, Jun 26, 2012 at 5:52 AM > Subject: Re: [Live-devel] Missing sync byte! > To: LIVE555 Streaming Media - development & use > > > > For starters, you shouldn't use a "MPEG1or2VideoStreamDiscreteFramer"; > that's for MPEG-1 or 2 Elementary Stream data. > > If the data that comes from your "DeviceSourceFICard" object is Transport > Stream data, then you should feed it into a "MPEG2TransportStreamFramer", > and then a "SimpleRTPSink" to stream it. > > If the data that comes from your "DeviceSourceFICard" object is sequence > of H.264 NAL units (one-at-a-time), then you should feed it into a > "H264VideoStreamDiscreteFramer", and then a "H264VideoRTPSink" to stream it. > > > 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 > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jesus.lc at vaelsys.com Tue Jun 26 02:27:36 2012 From: jesus.lc at vaelsys.com (=?ISO-8859-1?Q?Jes=FAs_Legan=E9s?=) Date: Tue, 26 Jun 2012 11:27:36 +0200 Subject: [Live-devel] Detect proxy name before being proccessed In-Reply-To: <2D600429-0BDB-419B-8BD4-1BDC707BE2B4@live555.com> References: <2D600429-0BDB-419B-8BD4-1BDC707BE2B4@live555.com> Message-ID: Worked like a charm :-D At first i thought about do some polling too, but i was worried about blocking the event-machine, but this solve it in a nice way :-) 2012/6/26 Ross Finlayson : > So my question is, how can i be able to detect when the proxy has > finished with it's configuration and added the camera connection > ProxyServerMediaSubsessions? > > > On thinking about this some more, I came up with a better solution - one > that doesn't require a separate 'polling' delayed task. > > First, download the latest version - 2012.06.26 - of the "LIVE555 Streaming > Media" code. > > Then, add the following line?to your "lookupServerMediaSession()" > implementation, after you've created (or looked up) the > "ProxyServerMediaSession" object: > > envir()->taskScheduler().doEventLoop(&(proxyServerMediaSession->describeCompletedFlag)); > > At this point, you can also check > proxyServerMediaSession->describeCompletedSuccessfully() > If this is True, then you know that the back-end "DESCRIBE" command > completed successfully. ?If, however, it's False, then you know that > the?back-end "DESCRIBE" command completed, but unsuccessfully - presumably > because the back-end stream does not exist. > > 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 > -- Jes?s Legan?s Combarro Software developer at Vaelsys From michel.promonet at thalesgroup.com Tue Jun 26 04:20:14 2012 From: michel.promonet at thalesgroup.com (PROMONET Michel) Date: Tue, 26 Jun 2012 13:20:14 +0200 Subject: [Live-devel] multicast streams using same port Message-ID: <5356_1340709657_4FE99B19_5356_17347_1_1BE8971B6CFF3A4F97AF4011882AA2550155FDD2B28B@THSONEA01CMS01P.one.grp> Hi Ross, It seems we face some problems to receive several streams using different multicast groups on same port. I need to spend times to understand better the problem, but I noticed that UDP endpoints are listenning on address 0.0.0.0 and are not bind to multicast adress. Do you think live is able to receive several streams in such a situation or streams will be mixed up ? Thanks & Regards, Michel. [@@THALES GROUP RESTRICTED@@] -------------- next part -------------- An HTML attachment was scrubbed... URL: From finlayson at live555.com Tue Jun 26 07:42:02 2012 From: finlayson at live555.com (Ross Finlayson) Date: Tue, 26 Jun 2012 07:42:02 -0700 Subject: [Live-devel] multicast streams using same port In-Reply-To: <5356_1340709657_4FE99B19_5356_17347_1_1BE8971B6CFF3A4F97AF4011882AA2550155FDD2B28B@THSONEA01CMS01P.one.grp> References: <5356_1340709657_4FE99B19_5356_17347_1_1BE8971B6CFF3A4F97AF4011882AA2550155FDD2B28B@THSONEA01CMS01P.one.grp> Message-ID: <36662A16-E630-4F0D-A7B1-034903E18E16@live555.com> > It seems we face some problems to receive several streams using different multicast groups on same port. Are you using Linux? The Linux kernel has a bug[*] whereby different sockets joining different IP multicast groups with the same port number will receive packets that were sent to all multicast groups. However BSD (FreeBSD, OpenBSD, Mac OS X) does not have this problem, nor even does Windows, as far as I know, so if this issue is important to you, then I suggest that you use one of those OSs instead of Linux. [*] Unfortunately at least some Linux kernel fanatics don't think it's a bug, so it's not likely to be fixed in the released Linux kernel source code any time soon. This question has arisen on this mailing list several times in the past, e.g. see the message threads at: http://lists.live555.com/pipermail/live-devel/2008-June/008757.html http://lists.live555.com/pipermail/live-devel/2010-September/012582.html http://lists.live555.com/pipermail/live-devel/2010-October/012630.html (but note especially my response at http://lists.live555.com/pipermail/live-devel/2010-October/012631.html ) Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From gwang at tycoint.com Tue Jun 26 19:07:20 2012 From: gwang at tycoint.com (Wang, Mark) Date: Wed, 27 Jun 2012 02:07:20 +0000 Subject: [Live-devel] live55 rtp sequence number is duplicate Message-ID: <5DBCA3B29446E242A322F646BFC0DFE006F720@006-TK5MPN1-022.mgdtfc.tycoflowcontrol.com> Hi all, My OS is LINUX 2.6.37, I send h264 and MJPEG data to VLC or QUICKTIME by live555, sometimes I can see live555 RTP sequence is duplicate, I capture some packets by tool WIRESHARK , these packets is as below [Description: cid:image001.png at 01CD44BD.83193F30] Thanks Mark Wang ________________________________ This e-mail contains privileged and confidential information intended for the use of the addressees named above. If you are not the intended recipient of this e-mail, you are hereby notified that you must not disseminate, copy or take any action in respect of any information contained in it. If you have received this e-mail in error, please notify the sender immediately by e-mail and immediately destroy this e-mail and its attachments. -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: image001.png Type: image/png Size: 39237 bytes Desc: image001.png URL: From finlayson at live555.com Tue Jun 26 21:43:42 2012 From: finlayson at live555.com (Ross Finlayson) Date: Tue, 26 Jun 2012 21:43:42 -0700 Subject: [Live-devel] live55 rtp sequence number is duplicate In-Reply-To: <5DBCA3B29446E242A322F646BFC0DFE006F720@006-TK5MPN1-022.mgdtfc.tycoflowcontrol.com> References: <5DBCA3B29446E242A322F646BFC0DFE006F720@006-TK5MPN1-022.mgdtfc.tycoflowcontrol.com> Message-ID: <97A85FFD-F1F1-4E2C-A3CB-89DB669325F6@live555.com> > My OS is LINUX 2.6.37, I send h264 and MJPEG data to VLC or QUICKTIME by live555, sometimes I can see live555 RTP sequence is duplicate, I capture some packets by tool WIRESHARK , these packets is as below These are almost certainly duplicate packets - not distinct packets that happen to have the same RTP sequence number (because the LIVE555 RTP transmitting code always increments the sequence number each time it sends a packet). This packet duplication could be happing somewhere on your network (e.g., by a router), or perhaps in the sender or receiver's operating system. But it's definitely not happening in our code. In any case, this shouldn't be a problem, because the RTP receiver will check the sequence numbers, and automatically discard any duplicate packets. Ditto if packets get reordered on the network (which can also happen). That's the purpose of the RTP sequence number. Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From warren at etr-usa.com Tue Jun 26 23:30:59 2012 From: warren at etr-usa.com (Warren Young) Date: Wed, 27 Jun 2012 00:30:59 -0600 Subject: [Live-devel] multicast streams using same port In-Reply-To: <36662A16-E630-4F0D-A7B1-034903E18E16@live555.com> References: <5356_1340709657_4FE99B19_5356_17347_1_1BE8971B6CFF3A4F97AF4011882AA2550155FDD2B28B@THSONEA01CMS01P.one.grp> <36662A16-E630-4F0D-A7B1-034903E18E16@live555.com> Message-ID: <4FEAA8A3.8040202@etr-usa.com> On 6/26/2012 8:42 AM, Ross Finlayson wrote: >> It seems we face some problems to receive several streams using >> different multicast groups on same port. > > Are you using Linux? The Linux kernel has a bug[*] whereby different > sockets joining different IP multicast groups with the same port number > will receive packets that were sent to all multicast groups. ....if the receiving program bind()s to INADDR_ANY. So isn't the fix simple? bind() each socket to the multicast address of interest. I've never used Live555 to receive a multicast stream, but doesn't Live555 need to be given the address anyway for the IGMP group add setsockopt() call? If that's true, it's not like Live555 doesn't have the information it needs to cope with the Linux way of handling multicast reception. Okay, granted, it's a Linux-specific exception. Is an ifdef so distasteful? From finlayson at live555.com Tue Jun 26 23:41:37 2012 From: finlayson at live555.com (Ross Finlayson) Date: Tue, 26 Jun 2012 23:41:37 -0700 Subject: [Live-devel] multicast streams using same port In-Reply-To: <4FEAA8A3.8040202@etr-usa.com> References: <5356_1340709657_4FE99B19_5356_17347_1_1BE8971B6CFF3A4F97AF4011882AA2550155FDD2B28B@THSONEA01CMS01P.one.grp> <36662A16-E630-4F0D-A7B1-034903E18E16@live555.com> <4FEAA8A3.8040202@etr-usa.com> Message-ID: > ....if the receiving program bind()s to INADDR_ANY. So isn't the fix simple? bind() each socket to the multicast address of interest. We've been through this many times before (note the links in my previous message). This suggested 'fix' does not work - at least not reliably on all platforms. We've tried it. People can do whatever they want to their copy of the 'groupsock' code (subject, of course, to the LGPL). But I'm not going to be making significant changes to this code, in part because it's all going to get replaced sometime down the road... Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From warren at etr-usa.com Wed Jun 27 00:29:24 2012 From: warren at etr-usa.com (Warren Young) Date: Wed, 27 Jun 2012 01:29:24 -0600 Subject: [Live-devel] multicast streams using same port In-Reply-To: References: <5356_1340709657_4FE99B19_5356_17347_1_1BE8971B6CFF3A4F97AF4011882AA2550155FDD2B28B@THSONEA01CMS01P.one.grp> <36662A16-E630-4F0D-A7B1-034903E18E16@live555.com> <4FEAA8A3.8040202@etr-usa.com> Message-ID: <4FEAB654.5000206@etr-usa.com> On 6/27/2012 12:41 AM, Ross Finlayson wrote: >> ....if the receiving program bind()s to INADDR_ANY. So isn't the fix >> simple? bind() each socket to the multicast address of interest. > > We've been through this many times before (note the links in my previous > message). This suggested 'fix' does not work - at least not reliably on > all platforms. We've tried it. Yes, I read all that, and the sense I got from it is, Linux works one way, everything else works another way. Thus my suggestion for a Linux-specific ifdef wrapping the bind() call. From finlayson at live555.com Wed Jun 27 00:43:31 2012 From: finlayson at live555.com (Ross Finlayson) Date: Wed, 27 Jun 2012 00:43:31 -0700 Subject: [Live-devel] multicast streams using same port In-Reply-To: <4FEAB654.5000206@etr-usa.com> References: <5356_1340709657_4FE99B19_5356_17347_1_1BE8971B6CFF3A4F97AF4011882AA2550155FDD2B28B@THSONEA01CMS01P.one.grp> <36662A16-E630-4F0D-A7B1-034903E18E16@live555.com> <4FEAA8A3.8040202@etr-usa.com> <4FEAB654.5000206@etr-usa.com> Message-ID: > Yes, I read all that, and the sense I got from it is, Linux works one way, everything else works another way. Thus my suggestion for a Linux-specific ifdef wrapping the bind() call. Yes, but I also recall someone reporting that they tried this, but it didn't work for them (on Linux); apparently when they did this, they stopped receiving packets at all. But if people want to try this themselves, then they're welcome to. They probably don't even need to modify the "groupsock" code; instead, they could call "bind()" on the multicast address in their application code, immediately after they've created a "Groupsock" object. Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From tayeb at tmxvoip.com Wed Jun 27 12:21:25 2012 From: tayeb at tmxvoip.com (Meftah Tayeb) Date: Wed, 27 Jun 2012 22:21:25 +0300 Subject: [Live-devel] Live Media Server Live Streaming Message-ID: hello, any use of the Live555 Media Server for a RTSP Live Stream ? please can you tel me how can i push a live stream to it and fetch it using RTSP? thank you Meftah Tayeb IT Consulting http://www.tmvoip.com/ phone: +21321656139 Mobile: +213660347746 __________ Information from ESET NOD32 Antivirus, version of virus signature database 6830 (20120126) __________ The message was checked by ESET NOD32 Antivirus. http://www.eset.com From ketangholap1990 at gmail.com Wed Jun 27 07:59:21 2012 From: ketangholap1990 at gmail.com (Ketan Gholap) Date: Wed, 27 Jun 2012 20:29:21 +0530 Subject: [Live-devel] byte rate Message-ID: * Hello Sir i try'ed calculating the bit/byte rate using the method mentioned below? as int o1=videoSink->octetCount(); videoSink->startPlaying(*videoSource, afterPlaying, videoSink); ** ** int o2=videoSink->octetCount(); * * * *At both times the value of o1 and o2 are zero.* * * *Kindly help to find bit/byte rate.* * **If you're streaming using an RTPSink object, call its octetCount() method at two known times. Then: double mbits_sent = (o2 - o1) / 1024.0 / 1024.0 / (s2 - s1) where o2 and o1 are the octetCount() values at time_t s2 and s1. Ross, could you please lift this method up a level, to MediaSink? I wanted it when playing around with raw UDP streaming a few weeks ago. It would also avoid the need to dynamic_cast<> the sink object in certain circumstances, such as when accessing MediaSubsession::sink.* -------------- next part -------------- An HTML attachment was scrubbed... URL: From abmadaan at yahoo.com Wed Jun 27 08:00:08 2012 From: abmadaan at yahoo.com (Abhishek Madaan) Date: Wed, 27 Jun 2012 08:00:08 -0700 (PDT) Subject: [Live-devel] How To Receive Packet Buffer Message-ID: <1340809208.8150.YahooMailNeo@web114515.mail.gq1.yahoo.com> Hi All, ?????????? I am trying to get data out of a IP Camera which streams H.264 using RTSP/RTP/RTCP protocol. My problem is that I want the data in a buffer frame?which contains pixel data for each pixel. What I mean by that if we have a camera 320x240 and I need color values for each 76800 pixels in an array?assuming that it is a 8-bit image frame. I am not sure how to do this using Live555 library or if it is possible. Please reply back to me. ? Regards, Abhishek Madaan -------------- next part -------------- An HTML attachment was scrubbed... URL: From csavtche at gmail.com Wed Jun 27 12:26:19 2012 From: csavtche at gmail.com (Constantin Savtchenko) Date: Wed, 27 Jun 2012 15:26:19 -0400 Subject: [Live-devel] Design Suggestion for Returning Frames To User Message-ID: Hi Ross, I was hoping to get your thoughts on how you envision client programs should use the livemedia library. I have set up my entire system so far using your examples and an OO C++ approach. My incoming stream is an h264 stream, so I've subclassed the MediaSink object, calling it H264PacketSink. My H264PacketSink employs the ffmpeg's libavcodec to decode the H264 frame. So far everything works great, but now I'm stuck, and I didn't realize I would be stuck until I got here. In my current system, the user makes a call similar to my_rtsp.StartStreaming([rtsp url]). This call hijacks the thread the user is currently in and starts up your basic task scheduler, setting up streaming and starting it. As you're well aware the class relationship structure is similar to RTSPConnection -> RTSPClient -> MediaSession -> MediaSubsession -> MediaSink. My difficulty lies in a smooth way to get the decoded frame from MediaSink all the way back to the top by the user. My current approach has been to let the user pass a callback function with a void * argument all the way down to MediaSink. My subclassed MediaSink (H264PacketSink) (which has started a seperated thread) dispatches all new decoded frames to the user's callback. I figured I would see if you maybe had a better envisioned way of returning a NAL unit from a MediaSink back to the the main calling class? Thank you. Constantin Savtchenko -------------- next part -------------- An HTML attachment was scrubbed... URL: From finlayson at live555.com Wed Jun 27 23:20:49 2012 From: finlayson at live555.com (Ross Finlayson) Date: Wed, 27 Jun 2012 23:20:49 -0700 Subject: [Live-devel] Live Media Server Live Streaming In-Reply-To: References: Message-ID: <8F9F11D7-809C-4455-9677-BAF1550DA9C9@live555.com> > any use of the Live555 Media Server for a RTSP Live Stream ? The "LIVE555 Media Server" application (i.e., product) streams from files only. However, developers can use our libraries to write their own RTSP server application - e.g, based on the "testOnDemandRTSPServer" demo application - that streams from a live input source. For more information, see the FAQ. Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From finlayson at live555.com Wed Jun 27 23:30:52 2012 From: finlayson at live555.com (Ross Finlayson) Date: Wed, 27 Jun 2012 23:30:52 -0700 Subject: [Live-devel] byte rate In-Reply-To: References: Message-ID: > i try'ed calculating the bit/byte rate using the method mentioned below? as > > int o1=videoSink->octetCount(); > > videoSink->startPlaying(*videoSource, afterPlaying, videoSink); > > int o2=videoSink->octetCount(); > > At both times the value of o1 and o2 are zero. That's because the call to "startPlaying()" merely sets up the objects to handle streaming. The actual streaming (reception) doesn't happen until later, when you enter the event loop. If you instead check "videoSink->octetCount()" inside the "afterPlaying()" function - i.e., after the streaming has completed, then you'll see a non-zero count. Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From finlayson at live555.com Wed Jun 27 23:32:10 2012 From: finlayson at live555.com (Ross Finlayson) Date: Wed, 27 Jun 2012 23:32:10 -0700 Subject: [Live-devel] How To Receive Packet Buffer In-Reply-To: <1340809208.8150.YahooMailNeo@web114515.mail.gq1.yahoo.com> References: <1340809208.8150.YahooMailNeo@web114515.mail.gq1.yahoo.com> Message-ID: <59AF54CC-E409-4E80-9E36-BDDBB7E71CEE@live555.com> > I am trying to get data out of a IP Camera which streams H.264 using RTSP/RTP/RTCP protocol. My problem is that I want the data in a buffer frame which contains pixel data for each pixel. OK, so you'll need to decode the H.264 video data. Unfortunately our library does not include any video (or audio) decoding functionality, so you'll need to use a separate library (e.g., ffmpeg) for this. Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From finlayson at live555.com Wed Jun 27 23:37:25 2012 From: finlayson at live555.com (Ross Finlayson) Date: Wed, 27 Jun 2012 23:37:25 -0700 Subject: [Live-devel] Design Suggestion for Returning Frames To User In-Reply-To: References: Message-ID: <62D46857-F27C-47DA-A42C-3C8169D94681@live555.com> I'm not sure I totally understand your question, but it's important to understand that the "LIVE555 Streaming Media" code is designed to be used within applications that are structured as a single-threaded event loop. Therefore, if you're using the LIVE555 code within a separate application, then it will work best if this application is also event-driven, using an event loop. To understand this more, see the FAQ: http://www.live555.com/liveMedia/faq.html Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From ketangholap1990 at gmail.com Thu Jun 28 00:22:17 2012 From: ketangholap1990 at gmail.com (Ketan Gholap) Date: Thu, 28 Jun 2012 12:52:17 +0530 Subject: [Live-devel] bit/byte rate Message-ID: * Hello Sir U are right if write videoSink->octetCount inside the after playing function we get a non zero value,as after playing function is called after the streaming has completed but then how can we print the bit/byte rate during streaming the file. Please help to find the bit rate when the file is actual streaming not after the streaming is done. i try'ed calculating the bit/byte rate using the method mentioned below? as int o1=videoSink->octetCount(); videoSink->startPlaying(*videoSource, afterPlaying, videoSink); int o2=videoSink->octetCount(); At both times the value of o1 and o2 are zero. That's because the call to "startPlaying()" merely sets up the objects to handle streaming. The actual streaming (reception) doesn't happen until later, when you enter the event loop. If you instead check "videoSink->octetCount()" inside the "afterPlaying()" function - i.e., after the streaming has completed, then you'll see a non-zero count. * -------------- next part -------------- An HTML attachment was scrubbed... URL: From finlayson at live555.com Thu Jun 28 00:38:09 2012 From: finlayson at live555.com (Ross Finlayson) Date: Thu, 28 Jun 2012 00:38:09 -0700 Subject: [Live-devel] bit/byte rate In-Reply-To: References: Message-ID: <4C49B3A8-2F11-4958-BFCC-D3434EE45CB9@live555.com> You'll need to set up a perodic, repeating task (e.g., running every 1 second), and measure the byte count each time. You'll do this using "TaskScheduler::schedulerDelayedTask()". I don't have time to explain in detail to a hobbyist how to do this, but there are several examples of this in the code. Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From krist.mca at gmail.com Thu Jun 28 01:01:21 2012 From: krist.mca at gmail.com (kristapher S.Raj) Date: Thu, 28 Jun 2012 01:01:21 -0700 Subject: [Live-devel] Fwd: FW: issue in live555 proxyserver In-Reply-To: <49C9D1BDE280A2498926EDA636F469323444B12B8A@CHN-HCLT-EVS17.HCLT.CORP.HCL.IN> References: <49C9D1BDE280A2498926EDA636F469323444B12B89@CHN-HCLT-EVS17.HCLT.CORP.HCL.IN> <49C9D1BDE280A2498926EDA636F469323444B12B8A@CHN-HCLT-EVS17.HCLT.CORP.HCL.IN> Message-ID: ---------- Forwarded message ---------- From: "Kristapher Sahaya Raj Marisetty - ERS, HCL Tech" Date: Thu, 28 Jun 2012 13:27:37 +0530 Subject: FW: issue in live555 proxyserver To: "krist.mca at gmail.com" ________________________________ From: Kristapher Sahaya Raj Marisetty - ERS, HCL Tech Sent: Thursday, June 28, 2012 1:26 PM To: live-devel at lists.live555.com Subject: issue in live555 proxyserver hi, when i'm streming ZAVIO camera using proxyserver i'm facing the following issue: I' using VLC as a client for the first time after starting proxyserver it streams(video+audio) well but when we stop the play and restart?VLC again I could see the vedio is not played it's stucts at the first frame and I could see error message on vlc as: ?? avcodec error:more than 5 seconds of late video -> dropping frame (computer too slow?) NOTE :- this issue occures only when proxysever is streaming both Video and Audio. I appriciate for any help in resolving this issue. Thank you, krist. ::DISCLAIMER:: ---------------------------------------------------------------------------------------------------------------------------------------------------- The contents of this e-mail and any attachment(s) are confidential and intended for the named recipient(s) only. E-mail transmission is not guaranteed to be secure or error-free as information could be intercepted, corrupted, lost, destroyed, arrive late or incomplete, or may contain viruses in transmission. The e mail and its contents (with or without referred errors) shall therefore not attach any liability on the originator or HCL or its affiliates. Views or opinions, if any, presented in this email are solely those of the author and may not necessarily reflect the views or opinions of HCL or its affiliates. Any form of reproduction, dissemination, copying, disclosure, modification, distribution and / or publication of this message without the prior written consent of authorized representative of HCL is strictly prohibited. If you have received this email in error please delete it and notify the sender immediately. Before opening any email and/or attachments, please check them for viruses and other defects. ---------------------------------------------------------------------------------------------------------------------------------------------------- From finlayson at live555.com Thu Jun 28 01:08:52 2012 From: finlayson at live555.com (Ross Finlayson) Date: Thu, 28 Jun 2012 01:08:52 -0700 Subject: [Live-devel] Fwd: FW: issue in live555 proxyserver In-Reply-To: References: <49C9D1BDE280A2498926EDA636F469323444B12B89@CHN-HCLT-EVS17.HCLT.CORP.HCL.IN> <49C9D1BDE280A2498926EDA636F469323444B12B8A@CHN-HCLT-EVS17.HCLT.CORP.HCL.IN> Message-ID: <3C774AF4-44AD-49C6-AE43-B30EC7793F69@live555.com> > when i'm streming ZAVIO camera using proxyserver i'm facing the following issue: > > I' using VLC as a client for the first time after starting proxyserver > it streams(video+audio) well but when we stop the play and restart VLC > again I could see the vedio is not played it's stucts at the first > frame and I could see error message on vlc as: > avcodec error:more than 5 seconds of late video -> dropping frame > (computer too slow?) What output do you see when you run the "LIVE555 Proxy Server" using the -V (i.e., upper-case V) flag, to display verbose output? Also, I recommend initially using "testRTSPClient" rather than VLC as a front-end client; this will make it clearer what's happening (or not). Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From michel.promonet at thalesgroup.com Thu Jun 28 02:24:53 2012 From: michel.promonet at thalesgroup.com (PROMONET Michel) Date: Thu, 28 Jun 2012 11:24:53 +0200 Subject: [Live-devel] multicast streams using same port In-Reply-To: References: <5356_1340709657_4FE99B19_5356_17347_1_1BE8971B6CFF3A4F97AF4011882AA2550155FDD2B28B@THSONEA01CMS01P.one.grp> <36662A16-E630-4F0D-A7B1-034903E18E16@live555.com> <4FEAA8A3.8040202@etr-usa.com> <4FEAB654.5000206@etr-usa.com> Message-ID: <32411_1340875540_4FEC2314_32411_8507_1_1BE8971B6CFF3A4F97AF4011882AA2550155FDDE9D56@THSONEA01CMS01P.one.grp> Hi Ross, Googeling I found https://bugzilla.redhat.com/show_bug.cgi?id=231899 that is closed considering that it is not a bug. Is it what you have in mind "Unfortunately at least some Linux kernel fanatics don't think it's a bug" ? In fact I used since many years the workaround of bind the socket to the multicast group. I tried on different kernel and used, something like a 3.4.x, the behaviour is the same. Regards, Michel. [@@THALES GROUP RESTRICTED@@] De : live-devel-bounces at ns.live555.com [mailto:live-devel-bounces at ns.live555.com] De la part de Ross Finlayson Envoy? : mercredi 27 juin 2012 09:44 ? : LIVE555 Streaming Media - development & use Objet : Re: [Live-devel] multicast streams using same port Yes, I read all that, and the sense I got from it is, Linux works one way, everything else works another way. Thus my suggestion for a Linux-specific ifdef wrapping the bind() call. Yes, but I also recall someone reporting that they tried this, but it didn't work for them (on Linux); apparently when they did this, they stopped receiving packets at all. But if people want to try this themselves, then they're welcome to. They probably don't even need to modify the "groupsock" code; instead, they could call "bind()" on the multicast address in their application code, immediately after they've created a "Groupsock" object. Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From tayeb at tmxvoip.com Thu Jun 28 06:30:41 2012 From: tayeb at tmxvoip.com (Meftah Tayeb) Date: Thu, 28 Jun 2012 16:30:41 +0300 Subject: [Live-devel] Live Media Server Live Streaming References: <8F9F11D7-809C-4455-9677-BAF1550DA9C9@live555.com> Message-ID: Ross; thank you for your answer ;-) please would you give me a hand how to try the ondemand RTSP server ? thank you. ----- Original Message ----- From: "Ross Finlayson" To: "LIVE555 Streaming Media - development & use" Sent: Thursday, June 28, 2012 9:20 AM Subject: Re: [Live-devel] Live Media Server Live Streaming > any use of the Live555 Media Server for a RTSP Live Stream ? The "LIVE555 Media Server" application (i.e., product) streams from files only. However, developers can use our libraries to write their own RTSP server application - e.g, based on the "testOnDemandRTSPServer" demo application - that streams from a live input source. For more information, see the FAQ. Ross Finlayson Live Networks, Inc. http://www.live555.com/ __________ Information from ESET NOD32 Antivirus, version of virus signature database 6830 (20120126) __________ The message was checked by ESET NOD32 Antivirus. http://www.eset.com -------------------------------------------------------------------------------- > _______________________________________________ > live-devel mailing list > live-devel at lists.live555.com > http://lists.live555.com/mailman/listinfo/live-devel > > > > __________ Information from ESET NOD32 Antivirus, version of virus > signature database 6830 (20120126) __________ > > The message was checked by ESET NOD32 Antivirus. > > http://www.eset.com > > __________ Information from ESET NOD32 Antivirus, version of virus signature database 6830 (20120126) __________ The message was checked by ESET NOD32 Antivirus. http://www.eset.com From finlayson at live555.com Thu Jun 28 10:31:25 2012 From: finlayson at live555.com (Ross Finlayson) Date: Thu, 28 Jun 2012 10:31:25 -0700 Subject: [Live-devel] Live Media Server Live Streaming In-Reply-To: References: <8F9F11D7-809C-4455-9677-BAF1550DA9C9@live555.com> Message-ID: > thank you for your answer ;-) > please would you give me a hand how to try the ondemand RTSP server ? READ THE FAQ! (As you were asked to do before posting to this mailing list!) Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From csavtche at gmail.com Thu Jun 28 07:19:40 2012 From: csavtche at gmail.com (Constantin Savtchenko) Date: Thu, 28 Jun 2012 10:19:40 -0400 Subject: [Live-devel] Design Suggestion for Returning Frames To User In-Reply-To: <62D46857-F27C-47DA-A42C-3C8169D94681@live555.com> References: <62D46857-F27C-47DA-A42C-3C8169D94681@live555.com> Message-ID: Hi Ross, Thank you for your response. I used the FAQ often when I first started with LiveMedia and the single-threaded event loop is well described there. Given your response, does that imply that ultimately I should dispatch new frames to the rest of the program using the TaskScheduler, UsageEnvironment or both? I was hoping for a quick blurb on how you saw clients (as opposed to servers) using your event loop infrastructure for display (communication, filtering, processing makes perfect sense to me). I am having difficulty understanding the concept for two reasons, first as I said, only the MediaSink class has access to the newest incoming frame. How do you envision one transferring this new frame to say ... a GUI for display? Secondly, while the single-threaded event loop works great for asynchronous communication, I have always read that GUI threads and updates should be separate from communication and processing threads. I appreciate any assistance, media programming is not my strong suit. Constantin -------------- next part -------------- An HTML attachment was scrubbed... URL: From finlayson at live555.com Thu Jun 28 19:58:14 2012 From: finlayson at live555.com (Ross Finlayson) Date: Thu, 28 Jun 2012 19:58:14 -0700 Subject: [Live-devel] Design Suggestion for Returning Frames To User In-Reply-To: References: <62D46857-F27C-47DA-A42C-3C8169D94681@live555.com> Message-ID: <23749F27-B1CB-48B6-95AE-6A2B69BEBD5F@live555.com> > I am having difficulty understanding the concept for two reasons, first as I said, only the MediaSink class has access to the newest incoming frame. How do you envision one transferring this new frame to say ... a GUI for display? Because I don't know anything about the GUI software that you plan to use, I can't answer this. But there's no reason in principle why you couldn't make your entire application a single-threaded event loop (including handling of GUI events), and just decode and render frames directly from your "MediaSink" subclass, after it's received each frame. Alternatively, you might find it more convenient to do the rendering (and perhaps the decoding as well) in a separate thread - especially if your stream contains both audio and video substreams (because then they need to be synchronized, based on their presentation times). In this case, your separate rendering (or decoding+rendering) thread would pass (in a thread-safe way) buffers to and from the LIVE555 thread, for use by its "MediaSink" subclass. This is basically how VLC works, for example. But this is up to you to decide (so this will be my last posting on this topic). Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From johnx.mcnamara at intel.com Fri Jun 29 02:15:31 2012 From: johnx.mcnamara at intel.com (Mcnamara, JohnX) Date: Fri, 29 Jun 2012 09:15:31 +0000 Subject: [Live-devel] testH264VideoToTransportStream error In-Reply-To: References: Message-ID: From: live-devel-bounces at ns.live555.com [mailto:live-devel-bounces at ns.live555.com] On Behalf Of Ross Finlayson Sent: Saturday, June 23, 2012 8:23 AM To: LIVE555 Streaming Media - development & use Subject: Re: [Live-devel] testH264VideoToTransportStream error I've now installed a new version (2012.06.23) of the "LIVE555 Streaming Media" software that fixes the problem (with the "testH264VideoToTransportStream" demo application) that John McNamara reported. Hi Ross, I've had a chance to test the changes in version 2012.06.23 and they resolve the issues I was seeing. Thanks for that, John. -- -------------------------------------------------------------- Intel Shannon Limited Registered in Ireland Registered Office: Collinstown Industrial Park, Leixlip, County Kildare Registered Number: 308263 Business address: Dromore House, East Park, Shannon, Co. Clare This e-mail and any attachments may contain confidential material for the sole use of the intended recipient(s). Any review or distribution by others is strictly prohibited. If you are not the intended recipient, please contact the sender and delete all copies. -------------- next part -------------- An HTML attachment was scrubbed... URL: From gwang at tycoint.com Fri Jun 29 01:10:34 2012 From: gwang at tycoint.com (Wang, Mark) Date: Fri, 29 Jun 2012 08:10:34 +0000 Subject: [Live-devel] live55 rtp sequence number is duplicate In-Reply-To: <97A85FFD-F1F1-4E2C-A3CB-89DB669325F6@live555.com> References: <5DBCA3B29446E242A322F646BFC0DFE006F720@006-TK5MPN1-022.mgdtfc.tycoflowcontrol.com> <97A85FFD-F1F1-4E2C-A3CB-89DB669325F6@live555.com> Message-ID: <5DBCA3B29446E242A322F646BFC0DFE0070AEC@006-TK5MPN1-022.mgdtfc.tycoflowcontrol.com> Hi all, Thanks for your quickly reply. Actually , the two frame sequence number is the same , but H264 data is different, and I notice checksum of UDP is the same too, please look details via attached two JPG document. I draw my test network flow chart as below, port1 and port3 are port mirroring . all packets are captured by WIRESHARK. [Description: port 1 port 2 port3 cisco switch ,Description: live555,Description: wireshark] [Description: vlc/quicktime] My version detail is as below #define LIVEMEDIA_LIBRARY_VERSION_STRING "2010.08.22" #define LIVEMEDIA_LIBRARY_VERSION_INT 1282435200 [Description: Description: cid:image001.png at 01CD44BD.83193F30] Thanks Mark Wang Thanks Mark Wang Thanks Mark Wang From: live-devel-bounces at ns.live555.com [mailto:live-devel-bounces at ns.live555.com] On Behalf Of Ross Finlayson Sent: 2012?6?27? 12:44 To: LIVE555 Streaming Media - development & use Subject: Re: [Live-devel] live55 rtp sequence number is duplicate My OS is LINUX 2.6.37, I send h264 and MJPEG data to VLC or QUICKTIME by live555, sometimes I can see live555 RTP sequence is duplicate, I capture some packets by tool WIRESHARK , these packets is as below These are almost certainly duplicate packets - not distinct packets that happen to have the same RTP sequence number (because the LIVE555 RTP transmitting code always increments the sequence number each time it sends a packet). This packet duplication could be happing somewhere on your network (e.g., by a router), or perhaps in the sender or receiver's operating system. But it's definitely not happening in our code. In any case, this shouldn't be a problem, because the RTP receiver will check the sequence numbers, and automatically discard any duplicate packets. Ditto if packets get reordered on the network (which can also happen). That's the purpose of the RTP sequence number. Ross Finlayson Live Networks, Inc. http://www.live555.com/ ________________________________ This e-mail contains privileged and confidential information intended for the use of the addressees named above. If you are not the intended recipient of this e-mail, you are hereby notified that you must not disseminate, copy or take any action in respect of any information contained in it. If you have received this e-mail in error, please notify the sender immediately by e-mail and immediately destroy this e-mail and its attachments. -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: image001.emz Type: application/octet-stream Size: 2235 bytes Desc: image001.emz URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: image002.png Type: image/png Size: 260 bytes Desc: image002.png URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: image003.emz Type: application/octet-stream Size: 4080 bytes Desc: image003.emz URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: image004.emz Type: application/octet-stream Size: 2469 bytes Desc: image004.emz URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: image005.emz Type: application/octet-stream Size: 2638 bytes Desc: image005.emz URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: image006.png Type: image/png Size: 420 bytes Desc: image006.png URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: image007.png Type: image/png Size: 8811 bytes Desc: image007.png URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: image008.png Type: image/png Size: 697 bytes Desc: image008.png URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: image011.png Type: image/png Size: 39237 bytes Desc: image011.png URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: 31970_first.jpg Type: image/jpeg Size: 412671 bytes Desc: 31970_first.jpg URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: 31970_second.jpg Type: image/jpeg Size: 380557 bytes Desc: 31970_second.jpg URL: From finlayson at live555.com Fri Jun 29 02:40:43 2012 From: finlayson at live555.com (Ross Finlayson) Date: Fri, 29 Jun 2012 02:40:43 -0700 Subject: [Live-devel] live55 rtp sequence number is duplicate In-Reply-To: <5DBCA3B29446E242A322F646BFC0DFE0070AEC@006-TK5MPN1-022.mgdtfc.tycoflowcontrol.com> References: <5DBCA3B29446E242A322F646BFC0DFE006F720@006-TK5MPN1-022.mgdtfc.tycoflowcontrol.com> <97A85FFD-F1F1-4E2C-A3CB-89DB669325F6@live555.com> <5DBCA3B29446E242A322F646BFC0DFE0070AEC@006-TK5MPN1-022.mgdtfc.tycoflowcontrol.com> Message-ID: <34D86975-9994-4358-BEDB-56F06080DC65@live555.com> > Actually , the two frame sequence number is the same , but H264 data is different, and I notice checksum of UDP is the same too Two separate packets cannot contain different data, but (consistently) have the same UDP checksum, unless something (in your OS or network) is mangling the packets (i.e., is badly broken), or unless Wireshark is lying. One thing I can say for certain, though, is that our software is not responsible - so there's no point in posting to this mailing list about what (you think) you're seeing (and especially not with 1+ MByte emails :-) Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From Aashish.Kaushik at hcl.com Fri Jun 29 03:08:55 2012 From: Aashish.Kaushik at hcl.com (Aashish Kaushik) Date: Fri, 29 Jun 2012 15:38:55 +0530 Subject: [Live-devel] Fwd: FW: issue in live555 proxyserver In-Reply-To: <3C774AF4-44AD-49C6-AE43-B30EC7793F69@live555.com> References: <49C9D1BDE280A2498926EDA636F469323444B12B89@CHN-HCLT-EVS17.HCLT.CORP.HCL.IN> <49C9D1BDE280A2498926EDA636F469323444B12B8A@CHN-HCLT-EVS17.HCLT.CORP.HCL.IN> <3C774AF4-44AD-49C6-AE43-B30EC7793F69@live555.com> Message-ID: <8706360947A56E45B1418C635D365964023F2E12600B@NDA-HCLT-EVS04.HCLT.CORP.HCL.IN> Hi Ross, Please find attachment of the verbose output logfile of proxyserver for the following usecase steps: 1) started proxysever. 2) opend/played live streaming in vlc client. 3) stoped play in vlc client. 4) opend/played live streaming in vlc client. video not streaming it video struck at first frame but I observed that audio streaming fine. Thanks & Regards, Kris. From: live-devel-bounces at ns.live555.com [mailto:live-devel-bounces at ns.live555.com] On Behalf Of Ross Finlayson Sent: Thursday, June 28, 2012 1:39 PM To: LIVE555 Streaming Media - development & use Subject: Re: [Live-devel] Fwd: FW: issue in live555 proxyserver when i'm streming ZAVIO camera using proxyserver i'm facing the following issue: I' using VLC as a client for the first time after starting proxyserver it streams(video+audio) well but when we stop the play and restart VLC again I could see the vedio is not played it's stucts at the first frame and I could see error message on vlc as: avcodec error:more than 5 seconds of late video -> dropping frame (computer too slow?) What output do you see when you run the "LIVE555 Proxy Server" using the -V (i.e., upper-case V) flag, to display verbose output? Also, I recommend initially using "testRTSPClient" rather than VLC as a front-end client; this will make it clearer what's happening (or not). Ross Finlayson Live Networks, Inc. http://www.live555.com/ ::DISCLAIMER:: ---------------------------------------------------------------------------------------------------------------------------------------------------- The contents of this e-mail and any attachment(s) are confidential and intended for the named recipient(s) only. E-mail transmission is not guaranteed to be secure or error-free as information could be intercepted, corrupted, lost, destroyed, arrive late or incomplete, or may contain viruses in transmission. The e mail and its contents (with or without referred errors) shall therefore not attach any liability on the originator or HCL or its affiliates. Views or opinions, if any, presented in this email are solely those of the author and may not necessarily reflect the views or opinions of HCL or its affiliates. Any form of reproduction, dissemination, copying, disclosure, modification, distribution and / or publication of this message without the prior written consent of authorized representative of HCL is strictly prohibited. If you have received this email in error please delete it and notify the sender immediately. Before opening any email and/or attachments, please check them for viruses and other defects. ---------------------------------------------------------------------------------------------------------------------------------------------------- -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: log.txt URL: From jesus.lc at vaelsys.com Fri Jun 29 04:18:04 2012 From: jesus.lc at vaelsys.com (=?ISO-8859-1?Q?Jes=FAs_Legan=E9s?=) Date: Fri, 29 Jun 2012 13:18:04 +0200 Subject: [Live-devel] Set ProxyServerMediaSession::fProxyRTSPClient as protected Message-ID: I'm needing to be able to detect and log the connect/disconnect/playing/paused/etc events done on the ProxyServerMediaSession against the remote camera, so i thought i could do it inheriting the internal ProxyRTSPClient and using a custom one (i don't know if there's a better way to do it). The fact is that reviewing the code it seems to me it's the correct aproach, just use a ProxyServerMediaSession child constructor that inits ProxyServerMediaSession::fProxyRTSPClient to my own ProxyRTSPClient child class and i'm ready, but the fact is that this attribute is private, so i can't be able to access to it. Do you know if there's another better way to do it? And if not, could you be able to set it as protected? I know that ProxyServerMediaSession is intended to be a black box, i only want it to be a little bit gray... :-P By the way, i don't know if it would be better to do what i want the ProxyServerMediaSession::fClientMediaSession attribute (i don't believe so), but it's also private, so i got the same problem here. Greetings, Jes?s Legan?s Combarro. -- Jes?s Legan?s Combarro Software developer at Vaelsys From jesus.lc at vaelsys.com Fri Jun 29 05:16:17 2012 From: jesus.lc at vaelsys.com (=?ISO-8859-1?Q?Jes=FAs_Legan=E9s?=) Date: Fri, 29 Jun 2012 14:16:17 +0200 Subject: [Live-devel] Set ProxyServerMediaSession::fProxyRTSPClient as protected In-Reply-To: References: Message-ID: I have review the code and yes, it seems it's the correct way but i would need another modification on the code: change RTSPClient::sendRequest() from private to protected, too. This way i could be able to inherit this method on a child class that send the event to my subsystem, and later just to call to the original RTSPClient method. 2012/6/29 Jes?s Legan?s : > I'm needing to be able to detect and log the > connect/disconnect/playing/paused/etc events done on the > ProxyServerMediaSession against the remote camera, so i thought i > could do it inheriting the internal ProxyRTSPClient and using a custom > one (i don't know if there's a better way to do it). > > The fact is that reviewing the code it seems to me it's the correct > aproach, just use a ProxyServerMediaSession child constructor that > inits ProxyServerMediaSession::fProxyRTSPClient to my own > ProxyRTSPClient child class and i'm ready, but the fact is that this > attribute is private, so i can't be able to access to it. Do you know > if there's another better way to do it? And if not, could you be able > to set it as protected? I know that ProxyServerMediaSession is > intended to be a black box, i only want it to be a little bit gray... > :-P > > By the way, i don't know if it would be better to do what i want the > ProxyServerMediaSession::fClientMediaSession attribute (i don't > believe so), but it's also private, so i got the same problem here. > > Greetings, Jes?s Legan?s Combarro. > > -- > Jes?s Legan?s Combarro > Software developer at Vaelsys -- Jes?s Legan?s Combarro Software developer at Vaelsys From finlayson at live555.com Fri Jun 29 13:42:35 2012 From: finlayson at live555.com (Ross Finlayson) Date: Fri, 29 Jun 2012 13:42:35 -0700 Subject: [Live-devel] issue in live555 proxyserver In-Reply-To: <8706360947A56E45B1418C635D365964023F2E12600B@NDA-HCLT-EVS04.HCLT.CORP.HCL.IN> References: <49C9D1BDE280A2498926EDA636F469323444B12B89@CHN-HCLT-EVS17.HCLT.CORP.HCL.IN> <49C9D1BDE280A2498926EDA636F469323444B12B8A@CHN-HCLT-EVS17.HCLT.CORP.HCL.IN> <3C774AF4-44AD-49C6-AE43-B30EC7793F69@live555.com> <8706360947A56E45B1418C635D365964023F2E12600B@NDA-HCLT-EVS04.HCLT.CORP.HCL.IN> Message-ID: <1F9C17ED-C2D9-4768-BA84-47128A9CFDF3@live555.com> From what I can tell, the "LIVE555 Proxy Server" is working properly. Are you able to successfully play the stream directly from the 'back-end' server - i.e., not using a proxy server? Note that recent versions of VLC seem to have a problem playing MPEG-4 video streams. If you're using VLC, and find that you have a problem playing the stream directly (i.e., not using a proxy), then I suggest trying QuickTime Player instead. Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From finlayson at live555.com Fri Jun 29 14:22:19 2012 From: finlayson at live555.com (Ross Finlayson) Date: Fri, 29 Jun 2012 14:22:19 -0700 Subject: [Live-devel] Set ProxyServerMediaSession::fProxyRTSPClient as protected In-Reply-To: References: Message-ID: <57A1ECC3-87BC-4B23-A847-BB7C13D9EB6D@live555.com> > I'm needing to be able to detect and log the > connect/disconnect/playing/paused/etc events done on the > ProxyServerMediaSession against the remote camera I'm not sure exactly what you mean by this, but if your intention is to detect/log every client connection (etc.) to the proxy server, then you need to know that if two or more clients are accessing the same proxy stream concurrently, then the code for "ProxyServerMediaSession" (and its related classes) is executed only for the *first* such client. I.e., the "Proxy*" code is unaware of the second and subsequent clients. So if you want to detect/log every client connection (etc.) to the proxy server, then you would not modify (or subclass) the "Proxy*" code at all. Instead, you would subclass "RTSPServer" and "RTSPServer::RTSPClientSession", and reimplement the "handleCmd_SETUP()" (etc.) virtual functions. But if your intention is instead to detect/log only connections from the proxy server to the 'back-end' server (which is only a subset of the number of connections from front-end clients to the proxy server), then: > The fact is that reviewing the code it seems to me it's the correct > aproach, just use a ProxyServerMediaSession child constructor that > inits ProxyServerMediaSession::fProxyRTSPClient to my own > ProxyRTSPClient child class Yes, but note that the existing "ProxyServerMediaSession" constructor already initializes the "fProxyRTSPClient" field (to a new "ProxyRTSPClient" object), so you'll need to delete this (using "Medium::close()") first, before assigning your new "ProxyRTSPClient" subclass object. But hold on: At present, the "ProxyRTSPClient" class is defined only inside the "ProxyServerMediaSession.cpp" file, not in a header file, so you shouldn't even have the ability to access it, let alone subclass it. So, are you sure that this is something that you really want to do?? Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From finlayson at live555.com Fri Jun 29 14:26:57 2012 From: finlayson at live555.com (Ross Finlayson) Date: Fri, 29 Jun 2012 14:26:57 -0700 Subject: [Live-devel] Set ProxyServerMediaSession::fProxyRTSPClient as protected In-Reply-To: References: Message-ID: <42288B38-994A-497A-A759-5DADD80E8E07@live555.com> > I have review the code and yes, it seems it's the correct way but i > would need another modification on the code: change > RTSPClient::sendRequest() from private to protected, too. Ugh - If I did this, I'd also need to make it "virtual", so you could redefine it in a subclass. Once again, are you sure that this is something that you really want to do? Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From sjh431 at gmail.com Fri Jun 29 04:39:14 2012 From: sjh431 at gmail.com (jhseo) Date: Fri, 29 Jun 2012 20:39:14 +0900 Subject: [Live-devel] Is it supported HLS in The LIVE555 Proxy Server? Message-ID: <08e201cd55eb$d14b9740$73e2c5c0$@gmail.com> Hi. I'm wondering if Live555 Proxy server can support HSL. Thanks for your interest. -------------- next part -------------- An HTML attachment was scrubbed... URL: From finlayson at live555.com Fri Jun 29 15:55:26 2012 From: finlayson at live555.com (Ross Finlayson) Date: Fri, 29 Jun 2012 15:55:26 -0700 Subject: [Live-devel] Is it supported HLS in The LIVE555 Proxy Server? In-Reply-To: <08e201cd55eb$d14b9740$73e2c5c0$@gmail.com> References: <08e201cd55eb$d14b9740$73e2c5c0$@gmail.com> Message-ID: > I?m wondering if Live555 Proxy server can support HSL. No. It's a proxy for RTSP only. Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From abmadaan at yahoo.com Fri Jun 29 12:49:23 2012 From: abmadaan at yahoo.com (Abhishek Madaan) Date: Fri, 29 Jun 2012 12:49:23 -0700 (PDT) Subject: [Live-devel] H.264 Streaming Video Message-ID: <1340999363.38374.YahooMailNeo@web114504.mail.gq1.yahoo.com> Hi, ?????? I have an IP Camera which is streaming H.264 video output using RTSP protocol. I want to create an application in MFC which display the H.264 video. I can see how to receive H.264 video out from the camera using live555 openrtsp library. But there is no example in live555 for displaying video out in any of the GUI applications. If you can provide me an example which can show me how to display H.264 video streaming in a GUI application that would be really appreciated. ? Regards, Abhishek Madaan -------------- next part -------------- An HTML attachment was scrubbed... URL: From finlayson at live555.com Fri Jun 29 16:18:55 2012 From: finlayson at live555.com (Ross Finlayson) Date: Fri, 29 Jun 2012 16:18:55 -0700 Subject: [Live-devel] H.264 Streaming Video In-Reply-To: <1340999363.38374.YahooMailNeo@web114504.mail.gq1.yahoo.com> References: <1340999363.38374.YahooMailNeo@web114504.mail.gq1.yahoo.com> Message-ID: > I have an IP Camera which is streaming H.264 video output using RTSP protocol. I want to create an application in MFC which display the H.264 video. I can see how to receive H.264 video out from the camera using live555 openrtsp library. But there is no example in live555 for displaying video out in any of the GUI applications. If you can provide me an example which can show me how to display H.264 video streaming in a GUI application that would be really appreciated. VLC: http://www.videolan.org/vlc/ Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: