From ruru605 at 163.com Sun Apr 1 19:54:33 2007 From: ruru605 at 163.com (ruru605) Date: Mon, 2 Apr 2007 11:54:33 +0900 Subject: [Live-devel] question about client's buffer Message-ID: <200704021154319530560@163.com> Hi, everyone I have a question about buffer of client. 1. Is there a max limit to the client's buffer? 2. After receving a packet into the client's buffer, will it send it to player to play directly or wait for a threshold number? I read some codes and I did not find the max limit and send it directly. However, I am not quite sure and I'm not sure this is good or not. Please help me know the exact answer. Thanks very much. ruru605 2007-04-02 -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.live555.com/pipermail/live-devel/attachments/20070401/752cc866/attachment.html From sripadnavali at yahoo.co.in Sun Apr 1 22:53:48 2007 From: sripadnavali at yahoo.co.in (sripad _n) Date: Mon, 2 Apr 2007 06:53:48 +0100 (BST) Subject: [Live-devel] About The file system of server after building live555 code Message-ID: <979492.11350.qm@web7908.mail.in.yahoo.com> Hi, I have built media server code and wnat to know whether Root and other directories are created by itself or they has to be created by us where the files to be streamed are to be stored. --------------------------------- Here?s a new way to find what you're looking for - Yahoo! Answers -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.live555.com/pipermail/live-devel/attachments/20070401/a16d6136/attachment.html From miroslaw.dach at psi.ch Mon Apr 2 03:06:32 2007 From: miroslaw.dach at psi.ch (Miroslaw Dach) Date: Mon, 2 Apr 2007 12:06:32 +0200 (CEST) Subject: [Live-devel] firewire camera and Media server Message-ID: Hi All, I have installed live package and compiled it. It looks great and it is almost that what I was looking for. I am just interested in converting a live video from firewire camera (raw data) to a video stream. This what I see that the LIVE555 Media Server operates on the videos stored in the data files. Would it be also possible to use it in conjunction with the firewire camera. Best Regards Mirek ============================================================================= Miroslaw Dach (Miroslaw.Dach at psi.ch) - SLS/Controls Group PSI - Paul Scherrer Institut CH-5232 Villigen ============================================================================= From julian.lamberty at mytum.de Mon Apr 2 06:38:21 2007 From: julian.lamberty at mytum.de (Julian Lamberty) Date: Mon, 02 Apr 2007 15:38:21 +0200 Subject: [Live-devel] Integrate ffmpeg transcoder into Live555 Message-ID: <4611074D.6090806@mytum.de> Hi! I'm trying to transcode network streams (RTP/RTSP) "on the fly" with the libavcodec libraries. Right now I've just a small application that opens a file as an input an writes to a file. I'm now planning to use the live555 framework and integrate my transcoder into it (feed ffmpeg with frames from live555 and stream the ffmpeg output frames with live555). Is there anyone who has done something similar before and has some example code? I'm just a newbie (especially to C++), so that seems like a lot of work for me ;) Thanks for any kind of help! Julian -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/x-pkcs7-signature Size: 5198 bytes Desc: S/MIME Cryptographic Signature Url : http://lists.live555.com/pipermail/live-devel/attachments/20070402/ae30151e/attachment.bin From finlayson at live555.com Mon Apr 2 07:18:43 2007 From: finlayson at live555.com (Ross Finlayson) Date: Mon, 2 Apr 2007 07:18:43 -0700 Subject: [Live-devel] firewire camera and Media server In-Reply-To: References: Message-ID: >I am just interested in converting a live video from firewire camera (raw >data) to a video stream. This what I see that the LIVE555 Media Server >operates on the videos stored in the data files. Would it be also possible >to use it in conjunction with the firewire camera. What format is the data coming from the 'firewire camera'? -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From finlayson at live555.com Mon Apr 2 07:19:23 2007 From: finlayson at live555.com (Ross Finlayson) Date: Mon, 2 Apr 2007 07:19:23 -0700 Subject: [Live-devel] Integrate ffmpeg transcoder into Live555 In-Reply-To: <4611074D.6090806@mytum.de> References: <4611074D.6090806@mytum.de> Message-ID: >I'm now planning to use the live555 framework and integrate my >transcoder into it (feed ffmpeg with frames from live555 and stream >the ffmpeg output frames with live555). Is there anyone who has done >something similar before and has some example code? I'm just a >newbie (especially to C++), so that seems like a lot of work for me >;) Please read the FAQ. It has some entries related to this. -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From miroslaw.dach at psi.ch Tue Apr 3 00:05:39 2007 From: miroslaw.dach at psi.ch (Miroslaw Dach) Date: Tue, 3 Apr 2007 09:05:39 +0200 (CEST) Subject: [Live-devel] firewire camera and Media server In-Reply-To: Message-ID: The data format for firewire is completely raw RGB 3x8bit or gray 8 or 16bit per pixel or Bayer pattern RGB. Camera sends each time entire images. Best Regards Mirek On Mon, 2 Apr 2007, Ross Finlayson wrote: > >I am just interested in converting a live video from firewire camera (raw > >data) to a video stream. This what I see that the LIVE555 Media Server > >operates on the videos stored in the data files. Would it be also possible > >to use it in conjunction with the firewire camera. > > What format is the data coming from the 'firewire camera'? > -- ============================================================================= Miroslaw Dach (Miroslaw.Dach at psi.ch) - SLS/Controls Group PSI - Paul Scherrer Institut CH-5232 Villigen ============================================================================= From finlayson at live555.com Tue Apr 3 00:42:49 2007 From: finlayson at live555.com (Ross Finlayson) Date: Tue, 3 Apr 2007 00:42:49 -0700 Subject: [Live-devel] firewire camera and Media server In-Reply-To: References: Message-ID: >The data format for firewire is completely raw RGB 3x8bit or gray 8 or >16bit per pixel or Bayer pattern RGB. Then you would need to compress this video with a (hardware or software) encoder, before it could be streamed by our server software. -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From miroslaw.dach at psi.ch Tue Apr 3 01:27:19 2007 From: miroslaw.dach at psi.ch (Miroslaw Dach) Date: Tue, 3 Apr 2007 10:27:19 +0200 (CEST) Subject: [Live-devel] firewire camera and Media server In-Reply-To: Message-ID: > >The data format for firewire is completely raw RGB 3x8bit or gray 8 or > >16bit per pixel or Bayer pattern RGB. > > Then you would need to compress this video with a (hardware or > software) encoder, before it could be streamed by our server software. My aim is to produce a video stream (run time) in let say MPEG4 (part 10) out of the video which comes from my firewire camera. Such a stream is not meant to be saved in a file but be ready for viewing over internet. My firewire camera is attached to the Linux PC. Would you recommend me some software to achieve that. Best Regards Mirek ============================================================================= Miroslaw Dach (Miroslaw.Dach at psi.ch) - SLS/Controls Group PSI - Paul Scherrer Institut CH-5232 Villigen ============================================================================= From pcg at agathongroup.com Tue Apr 3 16:19:34 2007 From: pcg at agathongroup.com (peter green) Date: Tue, 3 Apr 2007 17:19:34 -0600 Subject: [Live-devel] openrtsp, ffmpeg, and poor H.261 video Message-ID: <20070403231934.GA29131@agathongroup.com> I'm pulling from a Darwin Streaming Server that is broadcasting an SDP from a Polycom VSX7000e video teleconferencing thing. I've been able to use openrtsp to dump the H261 packets along with ulaw packets to individual files. I've been able to reassemble them with ffmpeg. However, the video is terribly pixelated whenever there is movement on camera. The stream I'm pulling looks fine in QuickTime, but the same Quicktime shows really poor quality video when I reassemble it into a .mov. My command lines: $ openRTSP -u user pass -e 30 rtsp://10.9.0.1/videostream.sdp $ ffmpeg -y -r 15 -ar 8000 -acodec pcm_mulaw -f mulaw -i audio-PCMU-2 -f h261 -i video-H261-1 output.mov On the original stream, QuickTime shows: Format: H.261, 352x288, Millions+ u-Law 2:1, Mono, 8.000 kHz FPS: 0 Playing FPS: 15 I'm going to check with the ffmpeg list because I have no idea where the problem is occurring. All I know is that the stream shows fine in Quicktime and is garbage once it passes through openRTSP and ffmpeg. I'm at my wit's end; does anyone know where I should look? Thanks! /pg -- Peter Green : Agathon Group : pcg at agathongroup.com From julian.lamberty at mytum.de Wed Apr 4 00:56:17 2007 From: julian.lamberty at mytum.de (Julian Lamberty) Date: Wed, 04 Apr 2007 09:56:17 +0200 Subject: [Live-devel] Integrate ffmpeg transcoder into Live555 Message-ID: <46135A21.4010309@mytum.de> >>I'm now planning to use the live555 framework and integrate my >>transcoder into it (feed ffmpeg with frames from live555 and stream >>the ffmpeg output frames with live555). Is there anyone who has done >>something similar before and has some example code? I'm just a >>newbie (especially to C++), so that seems like a lot of work for me >> ;) >Please read the FAQ. It has some entries related to this. Well, I've already done that. But does anyone know where to find a more detailed example? -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/x-pkcs7-signature Size: 5198 bytes Desc: S/MIME Cryptographic Signature Url : http://lists.live555.com/pipermail/live-devel/attachments/20070404/758d5bd6/attachment.bin From lucabe72 at email.it Wed Apr 4 06:13:47 2007 From: lucabe72 at email.it (Luca Abeni) Date: Wed, 04 Apr 2007 15:13:47 +0200 Subject: [Live-devel] Question about "packetIsUsableInJitterCalculation()" Message-ID: <4613A48B.4000302@email.it> Hi all, I see that the definition of the packetIsUsableInJitterCalculation() method in MPEG1or2VideoRTPSource only allows to use a frame for computing the jitter if it is an I frame. Is this to avoid bitstream-ordering problems if B frames are used? (I mean, if I know that my stream has no B frames, is it safe to always return True?) Thanks, Luca From lucabe72 at email.it Wed Apr 4 07:52:00 2007 From: lucabe72 at email.it (Luca Abeni) Date: Wed, 04 Apr 2007 16:52:00 +0200 Subject: [Live-devel] How to read RR statistics? Message-ID: <4613BB90.60403@email.it> Hi all, when using a class derived from RTSPServer (or from DynamicRTSPServer), how can I be notified when an RTCP Receiver Report packet arrives, and how can I read the jitter and lost packets number from it? I see the information I need are stored in an object of class RTPTransmissionStats, which is associated to an RTPSink, which (if I understand well) is dynamically created when the RTSP server receives a PLAY command. Now, how can I access this RTPSink (ideally, I'd like to set the RRHandlerTask for the RTCP session, and pass a pointer to the RTPSink as a parameter to the handler)? I am browsing the RTSPServer code, but it seems to me that all the information I need are private... Or am I approaching the problem in the wrong way? Thanks, Luca From finlayson at live555.com Wed Apr 4 15:14:24 2007 From: finlayson at live555.com (Ross Finlayson) Date: Wed, 4 Apr 2007 15:14:24 -0700 Subject: [Live-devel] How to read RR statistics? In-Reply-To: <4613BB90.60403@email.it> References: <4613BB90.60403@email.it> Message-ID: >when using a class derived from RTSPServer (or from DynamicRTSPServer), >how can I be notified when an RTCP Receiver Report packet arrives, and >how can I read the jitter and lost packets number from it? > >I see the information I need are stored in an object of class >RTPTransmissionStats, which is associated to an RTPSink, which (if I >understand well) is dynamically created when the RTSP server receives a >PLAY command. Now, how can I access this RTPSink (ideally, I'd like to >set the RRHandlerTask for the RTCP session, and pass a pointer to the >RTPSink as a parameter to the handler)? You can access the "RTPSink" object in your "ServerMediaSubsession" subclass (in its implementation of the "createNewRTPSink()" virtual function). -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From finlayson at live555.com Wed Apr 4 16:05:35 2007 From: finlayson at live555.com (Ross Finlayson) Date: Wed, 4 Apr 2007 16:05:35 -0700 Subject: [Live-devel] Question about "packetIsUsableInJitterCalculation()" In-Reply-To: <4613A48B.4000302@email.it> References: <4613A48B.4000302@email.it> Message-ID: >Hi all, > >I see that the definition of the packetIsUsableInJitterCalculation() >method in MPEG1or2VideoRTPSource only allows to use a frame for >computing the jitter if it is an I frame. >Is this to avoid bitstream-ordering problems if B frames are used? >(I mean, if I know that my stream has no B frames, is it safe to always >return True?) Yes, probably. -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From lucabe72 at email.it Thu Apr 5 01:08:54 2007 From: lucabe72 at email.it (Luca Abeni) Date: Thu, 05 Apr 2007 10:08:54 +0200 Subject: [Live-devel] How to read RR statistics? In-Reply-To: References: <4613BB90.60403@email.it> Message-ID: <4614AE96.1010304@email.it> Hi Ross, thanks for the answer. Ross Finlayson wrote: [...] >> I see the information I need are stored in an object of class >> RTPTransmissionStats, which is associated to an RTPSink, which (if I >> understand well) is dynamically created when the RTSP server receives a >> PLAY command. Now, how can I access this RTPSink (ideally, I'd like to >> set the RRHandlerTask for the RTCP session, and pass a pointer to the >> RTPSink as a parameter to the handler)? > > You can access the "RTPSink" object in your "ServerMediaSubsession" > subclass (in its implementation of the "createNewRTPSink()" virtual > function). So, just to check if I understand well, for accessing the transmission stats I will have to create a new "ServerMediaSubsession" subclass? Thanks, Luca From finlayson at live555.com Thu Apr 5 01:11:45 2007 From: finlayson at live555.com (Ross Finlayson) Date: Thu, 5 Apr 2007 01:11:45 -0700 Subject: [Live-devel] How to read RR statistics? In-Reply-To: <4614AE96.1010304@email.it> References: <4613BB90.60403@email.it> <4614AE96.1010304@email.it> Message-ID: >Hi Ross, > >thanks for the answer. > >Ross Finlayson wrote: >[...] >>> I see the information I need are stored in an object of class >>> RTPTransmissionStats, which is associated to an RTPSink, which (if I >>> understand well) is dynamically created when the RTSP server receives a >>> PLAY command. Now, how can I access this RTPSink (ideally, I'd like to >>> set the RRHandlerTask for the RTCP session, and pass a pointer to the >>> RTPSink as a parameter to the handler)? >> >> You can access the "RTPSink" object in your "ServerMediaSubsession" >> subclass (in its implementation of the "createNewRTPSink()" virtual >> function). >So, just to check if I understand well, for accessing the transmission >stats I will have to create a new "ServerMediaSubsession" subclass? Yes - that's where you create (and thus can get access to) your "RTPSink" object. -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From vahaha at pisem.net Sat Apr 7 04:25:33 2007 From: vahaha at pisem.net (Till May) Date: Sat, 07 Apr 2007 15:25:33 +0400 Subject: [Live-devel] Streaming Live Video. But only for a few sec. Message-ID: <20070407152533.igpx2qu54cg4o8k8@www.pochta.ru> Howdy List !!! I'm a student and doing my degree thesis. I have a little problem on streaming live video. I'm using the last version of LiveMedia. And currently I can stream live video and recieve & play with VLC. But only for a few seconds. After recieving and playing on VLC for a few seconds VLC stops playback, and in statistic of VLC I can see that VLC start to lost frames. At least VLC staying online. As a model I used testMPEG4VideoStreamer. My OS is Win2000 SP4, Devstud is VC++2005. LiveMedia libs are also built under VC++2005 succesfully, after some tricks. I have a GUI, so livemedia loop has a own thread, and I can stop it using watchVarible in any time user want. So in debugging I see that in first call of doGetNextFrame the fMaxSize=150000. But in second call the fMaxSize less then 150000. In third call fMaxSize less then it was in second call. And so on.., As I figured out, always (curent)fMaxSize=(prev)fMaxSize - (prev)fFrameSize. For video of 320x280 resolution size of raw frame is 320*280*4=358400 bytes. But encoded frame size is between 7000 and 15000 bytes. So in each call of doGetNextFrame I check usb Webcam for a responce and grab current frame. Then call deliverFrame where grabed frame encoded by encoder, and delivered to fTO, set fFrameSize to encoded frame size. In each calls fMaxSize becomes less then in prev call. So, in the end after delivering 13~16 frames fMaxSize becomes less than encoded frame size. And deliverFrame starts to trancate encoded frame, and sets fNumTrancatedBytes. It's happen once. And in next call fMaxSize again becomes equal around of 150000, not bigger. And loop starts again... But for a while. And programm crashes, more precisly for some reason afterPlaying func is called... Here doGetNextFrame and dilverFrame codes. Your suggestions are greatly appreciated. Thank you. void WebCamDeviceSource::doGetNextFrame() { // Arrange here for our "deliverFrame" member function to be called // when the next frame of data becomes available from the device. // This must be done in a non-blocking fashion - i.e., so that we // return immediately from this function even if no data is // currently available. // // If the device can be implemented as a readable socket, then one easy // way to do this is using a call to // envir().taskScheduler().turnOnBackgroundReadHandling( ... ) // (See examples of this call in the "liveMedia" directory.) // If, for some reason, the source device stops being readable // (e.g., it gets closed), then you do the following: if (NULL == m_NCvideo.GrabCurrentFrame() /* the source stops being readable */) { handleClosure(this); ::MessageBoxA(NULL,"In Grab Image V4l, the source stops being readable !!!!","Error",MB_OK); return; } deliverFrame(); } void WebCamDeviceSource::deliverFrame() { // This would be called when new frame data is available from the device. // This function should deliver the next frame of data from the device, // using the following parameters (class members): // 'in' parameters (these should *not* be modified by this function): // fTo: The frame data is copied to this address. // (Note that the variable "fTo" is *not* modified. Instead, // the frame data is copied to the address pointed to by "fTo".) // fMaxSize: This is the maximum number of bytes that can be copied // (If the actual frame is larger than this, then it should // be truncated, and "fNumTruncatedBytes" set accordingly.) // 'out' parameters (these are modified by this function): // fFrameSize: Should be set to the delivered frame size (<= fMaxSize). // fNumTruncatedBytes: Should be set iff the delivered frame would have been // bigger than "fMaxSize", in which case it's set to the number of bytes // that have been omitted. // fPresentationTime: Should be set to the frame's presentation time // (seconds, microseconds). // fDurationInMicroseconds: Should be set to the frame's duration, if known. if (!isCurrentlyAwaitingData()){ return; // we're not ready for the data yet } // Deliver the data here: // Draw and encode each frame. SIZE s=m_NCvideo.GetResolution(); m_Revelframe.width = (int)s.cx; m_Revelframe.height = (int)s.cy; m_Revelframe.bytesPerPixel = 4; m_Revelframe.pixelFormat = REVEL_PF_RGBA; m_Revelframe.pixels = new int[m_Revelframe.width*m_Revelframe.height*4]; memset(m_Revelframe.pixels, 0, m_Revelframe.width*m_Revelframe.height*4); if(m_NCvideo.GetBufferUsed() > (long)m_Revelframe.width*m_Revelframe.height*4) { ::MessageBoxA(NULL,"m_NCvideo.GetBufferUsed() > (long)m_Revelframe.width*m_Revelframe.height*4","Internel error",MB_OK); exit(1); } ::memcpy(m_Revelframe.pixels,m_NCvideo.GetBufferPointer(),m_NCvideo.GetBufferUsed()); int frameSize=0; m_RevelError = Revel_EncodeFrame(m_RevelEncoderHandle, &m_Revelframe, &frameSize); if (m_RevelError != REVEL_ERR_NONE) { ::MessageBoxA(NULL,"Revel Error while encode frame: ", "Error",MB_OK); exit(1); } if((fMaxSize) < frameSize) { //"fMaxSize < framSize so trancate it !!! //exit(1); ::memcpy(fTo, m_Revelframe.pixels,fMaxSize); fNumTruncatedBytes=frameSize-fMaxSize; fFrameSize=fMaxSize; } else { ::memcpy(fTo, m_Revelframe.pixels,frameSize); fFrameSize=frameSize; } delete [] (int*)m_Revelframe.pixels; // After delivering the data, switch to another task, and inform // the reader that he has data: // ::MessageBoxA(NULL,"DeliverFrame: successly delivered!!!!"," !!!!!!!!!!!",MB_OK); FramedSource::afterGetting(this); } -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.live555.com/pipermail/live-devel/attachments/20070407/e9b08ebb/attachment-0001.html From vahaha at pisem.net Sat Apr 7 05:07:33 2007 From: vahaha at pisem.net (Till May) Date: Sat, 07 Apr 2007 16:07:33 +0400 Subject: [Live-devel] To be more precisly about "Streaming Live Video. But only for a few sec. " Message-ID: <20070407160733.cyg5j7lwn48s8c4c@www.pochta.ru> As encoder in my project encods one frame at a time, and so I can deliver one frame at a time at first I use MPEG1or2VideoStreamDiscreteFramer to feed MPEG4ESVideoRTPSink. But its not work. When I try to use MPEG4VideoStreamFramer and it works fine, but as you know only for few seconds. Is it would be a reason ? thanx. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.live555.com/pipermail/live-devel/attachments/20070407/e7f60fdd/attachment.html From finlayson at live555.com Sat Apr 7 07:21:36 2007 From: finlayson at live555.com (Ross Finlayson) Date: Sat, 7 Apr 2007 07:21:36 -0700 Subject: [Live-devel] To be more precisly about "Streaming Live Video. But only for a few sec. " In-Reply-To: <20070407160733.cyg5j7lwn48s8c4c@www.pochta.ru> References: <20070407160733.cyg5j7lwn48s8c4c@www.pochta.ru> Message-ID: >As encoder in my project encods one frame at a time, and so I can >deliver one frame at a time at first I use >MPEG1or2VideoStreamDiscreteFramer to feed MPEG4ESVideoRTPSink. No, that will never work. Try using "MPEG4VideoStreamDiscreteFramer" to feed "MPEG4ESVideoRTPSink". > When I try to use MPEG4VideoStreamFramer and it works fine, but as >you know only for few seconds. Is it would be a reason ? I don't know. However, I suggest capturing encoded MPEG-4 video data - from your web cam - into a file, named "test.m4v", and then try streaming it using "testMPEG4VideoStreamer" or "testOnDemandRTSPServer". If your data is correct, then you should be able to view/play the stream using VLC as a client. -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.live555.com/pipermail/live-devel/attachments/20070407/54336fcc/attachment.html From vlad at crystalballinc.com Sun Apr 8 12:28:12 2007 From: vlad at crystalballinc.com (Vlad Seryakov) Date: Sun, 08 Apr 2007 15:28:12 -0400 Subject: [Live-devel] Possible memory leak Message-ID: <4619424C.6070306@crystalballinc.com> Hi, In RTSPServer in case when index file is used indexFileName gets dynamically allocated but i do not see it is being freed on session close. Thanks -- Vlad Seryakov vlad at crystalballinc.com http://www.crystalballinc.com/vlad/ From finlayson at live555.com Sun Apr 8 16:12:19 2007 From: finlayson at live555.com (Ross Finlayson) Date: Sun, 8 Apr 2007 16:12:19 -0700 Subject: [Live-devel] Possible memory leak In-Reply-To: <4619424C.6070306@crystalballinc.com> References: <4619424C.6070306@crystalballinc.com> Message-ID: >In RTSPServer in case when index file is used indexFileName gets >dynamically allocated but i do not see it is being freed on session close. The index file name is dynamically allocated in the "MPEG2TransportStreamIndexFile" constructor, and deallocated in the destuctor. Also, the "MPEG2TransportStreamIndexFile" object (which contains the allocated index file name string) is created in the "MPEG2TransportFileServerMediaSubsession" constructor, and deallocated in the destructor. So I don't think there's any memory leak there. -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From vlad at crystalballinc.com Sun Apr 8 16:42:18 2007 From: vlad at crystalballinc.com (Vlad Seryakov) Date: Sun, 08 Apr 2007 19:42:18 -0400 Subject: [Live-devel] Possible memory leak In-Reply-To: References: <4619424C.6070306@crystalballinc.com> Message-ID: <46197DDA.8070205@crystalballinc.com> I did not post correct info, it is allocated in createNewSMS in DynamicRTSPServer.cpp, so for every new session it will be allocated but not freed. Ross Finlayson wrote: >> In RTSPServer in case when index file is used indexFileName gets >> dynamically allocated but i do not see it is being freed on session close. > > The index file name is dynamically allocated in the > "MPEG2TransportStreamIndexFile" constructor, and deallocated in the > destuctor. Also, the "MPEG2TransportStreamIndexFile" object (which > contains the allocated index file name string) is created in the > "MPEG2TransportFileServerMediaSubsession" constructor, and > deallocated in the destructor. So I don't think there's any memory > leak there. -- Vlad Seryakov vlad at crystalballinc.com http://www.crystalballinc.com/vlad/ From finlayson at live555.com Sun Apr 8 16:56:31 2007 From: finlayson at live555.com (Ross Finlayson) Date: Sun, 8 Apr 2007 16:56:31 -0700 Subject: [Live-devel] Possible memory leak In-Reply-To: <46197DDA.8070205@crystalballinc.com> References: <4619424C.6070306@crystalballinc.com> <46197DDA.8070205@crystalballinc.com> Message-ID: >I did not post correct info, it is allocated in createNewSMS in >DynamicRTSPServer.cpp, so for every new session it will be allocated but >not freed. You're correct - thanks for pointing this out. This will get fixed in the next release of the "LIVE555 Media Server" software. -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From vlad at crystalballinc.com Sun Apr 8 20:59:58 2007 From: vlad at crystalballinc.com (Vlad Seryakov) Date: Sun, 08 Apr 2007 23:59:58 -0400 Subject: [Live-devel] RTSP server extending Message-ID: <4619BA3E.9000704@crystalballinc.com> Hi, Was it intentional that RTSPServer class is impossible to extend because everything is private? I have to to copy it and re-create because i need different access control and socket manipulations, it would be much easier just to extend Authenicator and incomingConnectionHandler1 than maintaining my own copy and keeping with mainstream bugfixes or features. Thank you -- Vlad Seryakov vlad at crystalballinc.com http://www.crystalballinc.com/vlad/ From finlayson at live555.com Sun Apr 8 22:08:29 2007 From: finlayson at live555.com (Ross Finlayson) Date: Sun, 8 Apr 2007 22:08:29 -0700 Subject: [Live-devel] RTSP server extending In-Reply-To: <4619BA3E.9000704@crystalballinc.com> References: <4619BA3E.9000704@crystalballinc.com> Message-ID: >Was it intentional that RTSPServer class is impossible to extend because >everything is private? No, the intention was to allow people to extend this class - although not indiscriminately. If there are specific fields and/or member functions that you feel should be "protected:" instead of "private:", and specific member functions that you feel should be "virtual", let us know, and we'll likely make these changes in the next release of the software. > >I have to to copy it and re-create because i need different access >control and socket manipulations, it would be much easier just to extend >Authenicator and incomingConnectionHandler1 Please let me know what specific changes you would like to see made in order to make this possible. -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From vahaha at pisem.net Mon Apr 9 07:02:23 2007 From: vahaha at pisem.net (Till May) Date: Mon, 09 Apr 2007 18:02:23 +0400 Subject: [Live-devel] Calling doGetNextFrame Message-ID: <20070409180223.gtai9a8nlwcgg8ow@www.pochta.ru> Hi list. Hi Rossy ! How can I control the calls of doGetNextFrame ?. To be more specific I want to stream live video with 20 fps. As in my doGetNextFrame I'm dilevering one frame at a time so I want doGetNextFrame to be called 20 times per second. Is this possible ? Best Regards -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.live555.com/pipermail/live-devel/attachments/20070409/edada298/attachment.html From vlad at crystalballinc.com Mon Apr 9 08:59:33 2007 From: vlad at crystalballinc.com (Vlad Seryakov) Date: Mon, 09 Apr 2007 11:59:33 -0400 Subject: [Live-devel] RTSP server extending In-Reply-To: References: <4619BA3E.9000704@crystalballinc.com> Message-ID: <461A62E5.8040900@crystalballinc.com> - As a minimum would be nice to be able to redefine: void incomingConnectionHandler1(); or create another virtual function which is called inside incomingConnectionHandler1 with new accepted socket, so if i need to check network access so i can call getpeername on the new accepted socket - Have access to int fServerSocket; Port fServerPort; - Ability to re-define Authenticator, may be move authentication to the RTSPServer Ross Finlayson wrote: >> Was it intentional that RTSPServer class is impossible to extend because >> everything is private? > > No, the intention was to allow people to extend this class - although > not indiscriminately. If there are specific fields and/or member > functions that you feel should be "protected:" instead of "private:", > and specific member functions that you feel should be "virtual", let > us know, and we'll likely make these changes in the next release of > the software. > >> I have to to copy it and re-create because i need different access >> control and socket manipulations, it would be much easier just to extend >> Authenicator and incomingConnectionHandler1 > > Please let me know what specific changes you would like to see made > in order to make this possible. From jlfurlong at hotmail.com Mon Apr 9 09:39:56 2007 From: jlfurlong at hotmail.com (Jeff Furlong) Date: Mon, 9 Apr 2007 13:39:56 -0300 Subject: [Live-devel] HD MPEG2 TrickPlay Message-ID: Is there a way that the MPEG2 TrickPlay stream that is generated can be generated in a way so that it will be streamed at the same bitrate as in normal playback mode? The reason being is that we're testing with HD MPEG2 video streams (~20 Mbs) on a Moto/Sigma STB. The stream is being delivered over UDP. Playing back in normal mode is fine; however, once trickplay is initiated the STB is unable to handle the higher bitstream. I've tested this with a Kasenna VOD server with the same file and the STB plays the trickplay stream back correctly. When I sniffed the network I noticed that their TrickPlay stream is being sent at the same bitrate as the normal play stream. I did modify the delivery time of the trickplay stream (packets) to be sent at the same rate as the normal playback - however, in this case I just got a black screen, which I'm assuming it had something to do with the timestamps. Does anyone have any thoughts/ideas on the best approach that I could achieve this? Thanks, Jeff -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.live555.com/pipermail/live-devel/attachments/20070409/266ceb39/attachment.html From finlayson at live555.com Mon Apr 9 10:21:03 2007 From: finlayson at live555.com (Ross Finlayson) Date: Mon, 9 Apr 2007 10:21:03 -0700 Subject: [Live-devel] Calling doGetNextFrame In-Reply-To: <20070409180223.gtai9a8nlwcgg8ow@www.pochta.ru> References: <20070409180223.gtai9a8nlwcgg8ow@www.pochta.ru> Message-ID: >How can I control the calls of doGetNextFrame ?. To be more specific >I want to stream live video with 20 fps. As in my doGetNextFrame I'm >dilevering one frame at a time so I want doGetNextFrame to be called >20 times per second. >Is this possible ? Yes - this is exactly the purpose of the "fDurationInMicroseconds" member variable. If you set this to 50000 - before calling "FramedSource::afterGetting()", then "doGetNextFrame()" will be called (from "MultiFramedRTPSink") 50 ms apart. -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From vlad at crystalballinc.com Mon Apr 9 10:33:25 2007 From: vlad at crystalballinc.com (Vlad Seryakov) Date: Mon, 09 Apr 2007 13:33:25 -0400 Subject: [Live-devel] Undereferenced sessions Message-ID: <461A78E5.6000901@crystalballinc.com> Hi, In ServerMediaSession, fDeleteWhenUnreferenced is always False and there is no way to set it True. This means that in RTSPServer::RTSPClientSession::~RTSPClientSession() if (fOurServerMediaSession->referenceCount() == 0 && fOurServerMediaSession->deleteWhenUnreferenced()) is awlays false and current session is never freed, or i miss something. I extend ServerMediaSession class with my own and log new and delete and i see new allocations but never see destructor is being called. From finlayson at live555.com Mon Apr 9 10:43:33 2007 From: finlayson at live555.com (Ross Finlayson) Date: Mon, 9 Apr 2007 10:43:33 -0700 Subject: [Live-devel] HD MPEG2 TrickPlay In-Reply-To: References: Message-ID: >Is there a way that the MPEG2 TrickPlay stream that is generated can >be generated in a way so that it will be streamed at the same >bitrate as in normal playback mode? Note that - in the current implementation - the *average* bit rate of 'trick play' streams is actually a bit *less* than that of normal playback mode, because 'trick play' streams stream only I-frames, which are a subset of the entire video data that's streamed in normal playback mode. (E.g. in 6x fast-forward more, we stream every 6th I-frame, but nothing else, at 6x the normal rate.) The problem, however, is that the current implementation transmits 'trick mode' streams in a very bursty fashion, and this is apparently overwhelming the limited buffer space of some clients. (Some people have reported the same problem with excessively VBR files even in normal playback mode.) As previously dscussed on this mailing list, we have a solution in mind (it will require updating the index file format to include a new 'duration' field, and implement a new Transport Stream 'framer' class that uses this). There is currently no ETA for this, though. -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From finlayson at live555.com Mon Apr 9 11:07:52 2007 From: finlayson at live555.com (Ross Finlayson) Date: Mon, 9 Apr 2007 11:07:52 -0700 Subject: [Live-devel] Undereferenced sessions In-Reply-To: <461A78E5.6000901@crystalballinc.com> References: <461A78E5.6000901@crystalballinc.com> Message-ID: >In ServerMediaSession, fDeleteWhenUnreferenced is always False and there >is no way to set it True. This means that in >RTSPServer::RTSPClientSession::~RTSPClientSession() > >if (fOurServerMediaSession->referenceCount() == 0 > && fOurServerMediaSession->deleteWhenUnreferenced()) > >is awlays false and current session is never freed, or i miss something. Yes, you missed that it's set to true in "RTSPServer::removeServerMediaSession()", if the "ServerMediaSession" object is currently in use (i.e., currently has clients). >I extend ServerMediaSession class with my own and log new and delete and > i see new allocations but never see destructor is being called. "ServerMediaSession" objects are removed/deleted as a result of "RTSPServer::removeServerMediaSession()" being called. -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From vlad at crystalballinc.com Mon Apr 9 11:35:32 2007 From: vlad at crystalballinc.com (Vlad Seryakov) Date: Mon, 09 Apr 2007 14:35:32 -0400 Subject: [Live-devel] Undereferenced sessions In-Reply-To: <461A78E5.6000901@crystalballinc.com> References: <461A78E5.6000901@crystalballinc.com> Message-ID: <461A8774.70900@crystalballinc.com> Actually it is set to True in removeServerMediaSession but in RTSPServer::RTSPClientSession::~RTSPClientSession() it is called when fOurServerMediaSession->deleteWhenUnreferenced()) is already True, so catch22. So in my code i added sms->deleteWhenUnreferenced() = True; before adding it into the server and now it is deallocated properly. May be it is better to set it by default to True? Vlad Seryakov wrote: > Hi, > > In ServerMediaSession, fDeleteWhenUnreferenced is always False and there > is no way to set it True. This means that in > RTSPServer::RTSPClientSession::~RTSPClientSession() > > if (fOurServerMediaSession->referenceCount() == 0 > && fOurServerMediaSession->deleteWhenUnreferenced()) > > is awlays false and current session is never freed, or i miss something. > I extend ServerMediaSession class with my own and log new and delete and > i see new allocations but never see destructor is being called. > _______________________________________________ > live-devel mailing list > live-devel at lists.live555.com > http://lists.live555.com/mailman/listinfo/live-devel > From vlad at crystalballinc.com Mon Apr 9 11:42:03 2007 From: vlad at crystalballinc.com (Vlad Seryakov) Date: Mon, 09 Apr 2007 14:42:03 -0400 Subject: [Live-devel] Benchmarking Message-ID: <461A88FB.4080607@crystalballinc.com> Have anyone done any benchmarks of live streaming? I just did it today on my Intel(R) Core(TM)2 CPU 6400 @ 2.13GHz Linux box, both CPUs enabled with 2Gb of memory. I streamed 100 clients with openRTSP from another similar computer over 1 Gbit network. With one process for 100 clients, when i fired vlc i could not watch the clip, lots of lost frames. With 50 clients in one process vlc played well. So i used 2 processes with 50 streams each, and it worked pretty well, linux was not busy. I streamed same file, so disk activity was not a problem, i assume it will in case of 100 different files. Even with completely cached file, it seems to me that delay while scanning all sockets gets pretty significant with large number of clients, so spawning several threads on different ports could be the only choice to support many streams. From vlad at crystalballinc.com Mon Apr 9 12:33:59 2007 From: vlad at crystalballinc.com (Vlad Seryakov) Date: Mon, 09 Apr 2007 15:33:59 -0400 Subject: [Live-devel] Undereferenced sessions In-Reply-To: References: <461A78E5.6000901@crystalballinc.com> Message-ID: <461A9527.1000707@crystalballinc.com> Yes, i found in my code i called lookup with wrong name so streams got duplicated. Now it works fine and session reuse works as well. Thanks Ross Finlayson wrote: >> In ServerMediaSession, fDeleteWhenUnreferenced is always False and there >> is no way to set it True. This means that in >> RTSPServer::RTSPClientSession::~RTSPClientSession() >> >> if (fOurServerMediaSession->referenceCount() == 0 >> && fOurServerMediaSession->deleteWhenUnreferenced()) >> >> is awlays false and current session is never freed, or i miss something. > > Yes, you missed that it's set to true in > "RTSPServer::removeServerMediaSession()", if the "ServerMediaSession" > object is currently in use (i.e., currently has clients). > >> I extend ServerMediaSession class with my own and log new and delete and >> i see new allocations but never see destructor is being called. > > "ServerMediaSession" objects are removed/deleted as a result of > "RTSPServer::removeServerMediaSession()" being called. From finlayson at live555.com Mon Apr 9 15:53:15 2007 From: finlayson at live555.com (Ross Finlayson) Date: Mon, 9 Apr 2007 15:53:15 -0700 Subject: [Live-devel] Benchmarking In-Reply-To: <461A88FB.4080607@crystalballinc.com> References: <461A88FB.4080607@crystalballinc.com> Message-ID: >Even with completely cached file, it seems to me that delay while >scanning all sockets Sets of sockets aren't 'scanned' anywhere in the code. Instead, the event loop is implemented (by default, with the "BasicTaskScheduler" class) using "select()", which should be efficient even with large numbers of readable sockets. It's possible, however, that with large numbers of open sockets, you might be running into some OS-imposed limit that could be hurting performance. I think Linux has ways of configuring the OS to support more open sockets, so that's something that you might want to look into. (Also, re. 'benchmarking' in general: Remember, You Have Complete Source Code.) -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From vlad at crystalballinc.com Mon Apr 9 16:14:43 2007 From: vlad at crystalballinc.com (Vlad Seryakov) Date: Mon, 09 Apr 2007 19:14:43 -0400 Subject: [Live-devel] Benchmarking In-Reply-To: References: <461A88FB.4080607@crystalballinc.com> Message-ID: <461AC8E3.3060100@crystalballinc.com> Ross Finlayson wrote: >> Even with completely cached file, it seems to me that delay while >> scanning all sockets > > Sets of sockets aren't 'scanned' anywhere in the code. Instead, the > event loop is implemented (by default, with the "BasicTaskScheduler" > class) using "select()", which should be efficient even with large > numbers of readable sockets. > > It's possible, however, that with large numbers of open sockets, you > might be running into some OS-imposed limit that could be hurting > performance. I think Linux has ways of configuring the OS to support > more open sockets, so that's something that you might want to look > into. Yes, i meant select, i am writing scheduler using poll to see if performance will increase. > (Also, re. 'benchmarking' in general: Remember, You Have Complete Source Code.) That was more informative question what others have, i am doing my own tests but it is always good to know what is going on outside my environment. From Jiri.Pinkava at vscht.cz Mon Apr 9 16:38:06 2007 From: Jiri.Pinkava at vscht.cz (Pinky) Date: Tue, 10 Apr 2007 01:38:06 +0200 Subject: [Live-devel] Benchmarking In-Reply-To: <461AC8E3.3060100@crystalballinc.com> References: <461A88FB.4080607@crystalballinc.com> <461AC8E3.3060100@crystalballinc.com> Message-ID: <20070410013806.2de98619@storage_kolej.vscht.cz> Dne Mon, 09 Apr 2007 19:14:43 -0400 Vlad Seryakov napsal(a): > > Ross Finlayson wrote: > >> Even with completely cached file, it seems to me that delay while > >> scanning all sockets > > > > Sets of sockets aren't 'scanned' anywhere in the code. Instead, > > the event loop is implemented (by default, with the > > "BasicTaskScheduler" class) using "select()", which should be > > efficient even with large numbers of readable sockets. > > > > It's possible, however, that with large numbers of open sockets, > > you might be running into some OS-imposed limit that could be > > hurting performance. I think Linux has ways of configuring the OS > > to support more open sockets, so that's something that you might > > want to look into. > > Yes, i meant select, i am writing scheduler using poll to see if > performance will increase. > > > > (Also, re. 'benchmarking' in general: Remember, You Have Complete > > Source Code.) > I have it done already and do some testing now. > That was more informative question what others have, i am doing my > own tests but it is always good to know what is going on outside my > environment. _______________________________________________ > live-devel mailing list > live-devel at lists.live555.com > http://lists.live555.com/mailman/listinfo/live-devel From finlayson at live555.com Tue Apr 10 05:44:34 2007 From: finlayson at live555.com (Ross Finlayson) Date: Tue, 10 Apr 2007 05:44:34 -0700 Subject: [Live-devel] RTSP server extending In-Reply-To: <461A62E5.8040900@crystalballinc.com> References: <4619BA3E.9000704@crystalballinc.com> <461A62E5.8040900@crystalballinc.com> Message-ID: >- Ability to re-define Authenticator, may be move authentication to the >RTSPServer Because "digest authentication" is general functionality - used with other protocols in addition to RTSP - it will remain separate from "RTSPServer". Out of curiosity, why do you want to redefine "Authenticator"? -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From vlad at crystalballinc.com Tue Apr 10 06:50:49 2007 From: vlad at crystalballinc.com (Vlad Seryakov) Date: Tue, 10 Apr 2007 09:50:49 -0400 Subject: [Live-devel] RTSP server extending In-Reply-To: References: <4619BA3E.9000704@crystalballinc.com> <461A62E5.8040900@crystalballinc.com> Message-ID: <461B9639.7050907@crystalballinc.com> I may use it in the closed network environment where i do not authenticate by user name only but using IP address and/or MAC address in addition. Ross Finlayson wrote: >> - Ability to re-define Authenticator, may be move authentication to the >> RTSPServer > > Because "digest authentication" is general functionality - used with > other protocols in addition to RTSP - it will remain separate from > "RTSPServer". > > Out of curiosity, why do you want to redefine "Authenticator"? From vahaha at pisem.net Tue Apr 10 07:13:37 2007 From: vahaha at pisem.net (Till May) Date: Tue, 10 Apr 2007 18:13:37 +0400 Subject: [Live-devel] OnDemandServer for live video Message-ID: <20070410181337.qobv6rgkkkgs0sks@www.pochta.ru> Hi list, Ross ! First of all thank you Ross for all your suggestions and for your great library ! Nowdays I can stream live video successfully and play it with QuickTime Player, but VLC does not play, to be more precisly it plays but only for a while and than stops playback. So anyway I have some other question. If I want to stream live video on demand as I figured out I should write my own *OnDemandServerMediaSubSessin class. There is no any existed class to serve live video on demand yet. Am I right ? Also, is there template class of *OnDemandServerMediaSubSessin like DeviceSource class?. Best Regards -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.live555.com/pipermail/live-devel/attachments/20070410/a10ff445/attachment-0001.html From vlad at crystalballinc.com Tue Apr 10 12:25:13 2007 From: vlad at crystalballinc.com (Vlad Seryakov) Date: Tue, 10 Apr 2007 15:25:13 -0400 Subject: [Live-devel] Benchmarking In-Reply-To: <461AC8E3.3060100@crystalballinc.com> References: <461A88FB.4080607@crystalballinc.com> <461AC8E3.3060100@crystalballinc.com> Message-ID: <461BE499.2070805@crystalballinc.com> Okay, i've been playing with different methods and here my results: - BasicTaskScheduler can handle up to 70 simultaneous streams - then i wrote another scheduler which uses poll and handles sockets differently via preallocated array, now i can handle up to 90 simultaneous streams - then i added epoll support but because epoll does not handle regular files i had to enable READ_FROM_FILES_SYNCHRONOUSLY in ByteStreamFileSource.cpp. Surprisingly i was able to stream up to 150 streams. Even when i streamed different big files to see how hard disk will be hit, vmstat showed constant block reading activity, i was able to stream 150 streams. VLC was 151 and was playing movie perfectly. Not sure these results are representative enough but looks like overhead in BasicTaskScheduler is pretty significant. On the other hand, async disk I/O should improve performance, i guess Linux cached all my files pretty well so impact of synch reads was not big. The code currently in CVS if anybody is interested in it, sugegstions improvement are welcome: http://naviserver.cvs.sourceforge.net/naviserver/modules/nsrtsp/nsrtsp.c?revision=1.3&view=markup From finlayson at live555.com Tue Apr 10 12:29:22 2007 From: finlayson at live555.com (Ross Finlayson) Date: Tue, 10 Apr 2007 12:29:22 -0700 Subject: [Live-devel] OnDemandServer for live video In-Reply-To: <20070410181337.qobv6rgkkkgs0sks@www.pochta.ru> References: <20070410181337.qobv6rgkkkgs0sks@www.pochta.ru> Message-ID: >So anyway I have some other question. If I want to stream live video >on demand as I figured out I should write my own >*OnDemandServerMediaSubSessin class. No, not necessarily. Please read the FAQ - in particular, 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: http://lists.live555.com/pipermail/live-devel/attachments/20070410/0074f22d/attachment.html From finlayson at live555.com Tue Apr 10 12:47:57 2007 From: finlayson at live555.com (Ross Finlayson) Date: Tue, 10 Apr 2007 12:47:57 -0700 Subject: [Live-devel] Benchmarking In-Reply-To: <461BE499.2070805@crystalballinc.com> References: <461A88FB.4080607@crystalballinc.com> <461AC8E3.3060100@crystalballinc.com> <461BE499.2070805@crystalballinc.com> Message-ID: >Not sure these results are representative enough but looks like overhead >in BasicTaskScheduler is pretty significant. More accurately, the overhead (might be) 'pretty significant' if you happen to be using an OS that implements "select()" inefficiently. I.e., any inefficiency would be a fault of the OS, not an inherent problem with the "BasicTaskScheduler" code. -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From vlad at crystalballinc.com Tue Apr 10 12:58:22 2007 From: vlad at crystalballinc.com (Vlad Seryakov) Date: Tue, 10 Apr 2007 15:58:22 -0400 Subject: [Live-devel] Benchmarking In-Reply-To: References: <461A88FB.4080607@crystalballinc.com> <461AC8E3.3060100@crystalballinc.com> <461BE499.2070805@crystalballinc.com> Message-ID: <461BEC5E.3060001@crystalballinc.com> Ross Finlayson wrote: >> Not sure these results are representative enough but looks like overhead >> in BasicTaskScheduler is pretty significant. > > More accurately, the overhead (might be) 'pretty significant' if you > happen to be using an OS that implements "select()" inefficiently. > I.e., any inefficiency would be a fault of the OS, not an inherent > problem with the "BasicTaskScheduler" code. Sure, i meant exactly that. Also it is common knowledge that select/pool behave poorly in case if large number of sockets, at least in Linux, that's why epoll was introduced and kqueue in FreeBSD world. Solaris poll is more effective than in Linux. Sadly, epoll does not handle disk files. From mathew.hounsell at avegasystems.com Tue Apr 10 23:32:34 2007 From: mathew.hounsell at avegasystems.com (Mathew Hounsell) Date: Wed, 11 Apr 2007 16:32:34 +1000 Subject: [Live-devel] Wild RTSP Streams? Message-ID: <461C8102.9080000@avegasystems.com> I have used live555 to receive an RTSP/RTP/MP3 stream from the live555 server. However all the wild ones I know of are RTSP/RDP/RA. So does anyone know of some wild (radio) RTSP streams? My player supports some other audio codecs, but not RA yet. From julian.lamberty at mytum.de Wed Apr 11 07:15:19 2007 From: julian.lamberty at mytum.de (Julian Lamberty) Date: Wed, 11 Apr 2007 16:15:19 +0200 Subject: [Live-devel] Encapsulating an ffmpeg transcoder Message-ID: <461CED77.8060303@mytum.de> i there! I'm trying to transcode an RTP stream (MPEG2) on the fly via ffmpeg (into MPEG4) and stream the result via RTP again. Which Sources/Sinks should I use? Is an RTPSource/Sink the right one? But what I'm basically missing is an idea, where exactly the ffmpeg part has to be put. If I look at the test progs I think I should use the FramedSource class, is that correct? Do I have to modify (or write my own) FramedSource with an encapsulated ffmpeg-transcoder? Thanks for your help. Julian -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/x-pkcs7-signature Size: 5198 bytes Desc: S/MIME Cryptographic Signature Url : http://lists.live555.com/pipermail/live-devel/attachments/20070411/9109828d/attachment.bin From xcsmith at rockwellcollins.com Wed Apr 11 08:02:14 2007 From: xcsmith at rockwellcollins.com (xcsmith at rockwellcollins.com) Date: Wed, 11 Apr 2007 10:02:14 -0500 Subject: [Live-devel] Benchmarking Message-ID: Surprisingly i was able to stream up to 150 streams. Even when i streamed different big files to see how hard disk will be hit, vmstat showed constant block reading activity, i was able to stream 150 streams. VLC was 151 and was playing movie perfectly. Re: Did you do any benchmarking in which you were recording the data as well? For some reason I am losing incoming RTP data on my embedded hardware, but it does not seem to be because I cannot write fast enough. I wonder if something like your epoll program could be good for me to try? Thanks! Xochitl From vlad at crystalballinc.com Wed Apr 11 10:04:58 2007 From: vlad at crystalballinc.com (Vlad Seryakov) Date: Wed, 11 Apr 2007 13:04:58 -0400 Subject: [Live-devel] Benchmarking In-Reply-To: References: Message-ID: <461D153A.6010508@crystalballinc.com> My server is regular HP desktop, so for 150 i only got with epoll patch. Try it, it is module for another server but you can extract the RTSPTaskSchedule class and use it in your program xcsmith at rockwellcollins.com wrote: > Surprisingly i was able to stream up to 150 > streams. Even when i streamed different big files to see how hard disk > will be hit, vmstat showed constant block reading activity, i was able > to stream 150 streams. VLC was 151 and was playing movie perfectly. > > Re: Did you do any benchmarking in which you were recording the data as > well? For some reason I am losing incoming RTP data on my embedded > hardware, but it does not seem to be because I cannot write fast enough. I > wonder if something like your epoll program could be good for me to try? > > Thanks! > Xochitl > > _______________________________________________ > live-devel mailing list > live-devel at lists.live555.com > http://lists.live555.com/mailman/listinfo/live-devel > From finlayson at live555.com Wed Apr 11 11:50:23 2007 From: finlayson at live555.com (Ross Finlayson) Date: Wed, 11 Apr 2007 11:50:23 -0700 Subject: [Live-devel] Benchmarking In-Reply-To: References: Message-ID: >For some reason I am losing incoming RTP data on my embedded >hardware Try calling "increaseReceiveBufferTo()" on the socket with a value larger than the default (51200==50*1024, called in "MultiFramedRTPSource.cpp", line 73). This call sets the size of the OS's internal buffer for receiving incoming packets. (E.g., VLC sets this buffer size to 100,000 bytes for audio streams, and 2,000,000 bytes for video streams.) You may find that by increasing this buffer size, the OS will be able to store any incoming packets while it's busy doing disk I/O. -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From finlayson at live555.com Wed Apr 11 11:52:34 2007 From: finlayson at live555.com (Ross Finlayson) Date: Wed, 11 Apr 2007 11:52:34 -0700 Subject: [Live-devel] Encapsulating an ffmpeg transcoder In-Reply-To: <461CED77.8060303@mytum.de> References: <461CED77.8060303@mytum.de> Message-ID: >I'm trying to transcode an RTP stream (MPEG2) on the fly via ffmpeg >(into MPEG4) and stream the result via RTP again. > >Which Sources/Sinks should I use? Is an RTPSource/Sink the right one? > >But what I'm basically missing is an idea, where exactly the ffmpeg >part has to be put. If I look at the test progs I think I should use >the FramedSource class, is that correct? Yes - more precisely, you would need to write your own subclass of "FramedFilter" to do the transcoding. I.e., your chain of objects would be: RTPSource(subclass) -> your FramedFilter subclass -> RTPSink(subclass) > >Do I have to modify (or write my own) FramedSource with an >encapsulated ffmpeg-transcoder? Yes. -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From xcsmith at rockwellcollins.com Wed Apr 11 12:31:29 2007 From: xcsmith at rockwellcollins.com (xcsmith at rockwellcollins.com) Date: Wed, 11 Apr 2007 14:31:29 -0500 Subject: [Live-devel] Benchmarking Message-ID: Try calling "increaseReceiveBufferTo()" on the socket with a value larger than the default (51200==50*1024, called in "MultiFramedRTPSource.cpp", line 73). This call sets the size of the OS's internal buffer for receiving incoming packets. Re: I have already increased this buffer to 102,400,000. I am checking the return value of the increaceReceiveBufferTo() function also to see that the buffer was changed correctly. I decided to make it rediculously huge to see if it helped. Changing the buffer size does help, but it does not fix the problem. RTCP RR still reports periodic packet loss - even when writing to /dev/null. I edited MultiFramedRTPSource to print out the RTP ReorderingPacketBuffer.fNextExpectedSeqNo when this happens and verified that the missing RTP packets existed using ethereal. I think you suggested changing the buffer size to me before when I was asking about missing RTP packets a couple of months ago. I do not think the problem is with the LIVE, so I am reaching a lot to think about things which could be OS related, like this information about select being slow. Xochitl From finlayson at live555.com Wed Apr 11 12:35:53 2007 From: finlayson at live555.com (Ross Finlayson) Date: Wed, 11 Apr 2007 12:35:53 -0700 Subject: [Live-devel] Benchmarking In-Reply-To: References: Message-ID: >I do not think the problem is with the >LIVE, so I am reaching a lot to think about things which could be OS >related, like this information about select being slow. Or maybe you really are experiencing network packet loss... -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From chas.bryant at gmail.com Wed Apr 11 13:06:17 2007 From: chas.bryant at gmail.com (Chuck Bryant) Date: Wed, 11 Apr 2007 15:06:17 -0500 Subject: [Live-devel] testOnDemandRTSPServer Message-ID: I have some movie trailers (MPEG2) that I want to stream. I believe they are program files... When I try to stream with testOnDemandRTSPServer (by renaming the file to test.mpg) I get alot of: StreamParser::ParsePESPacket(): saw inconsistent PES_packet_length 0 < 8 (or 13) I read where Ross had said that the MPEG parsing code is complaining about the input data. These will play fine in VLC client (going straight to the file) as well as Winamp, etc. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.live555.com/pipermail/live-devel/attachments/20070411/26e785f7/attachment.html From xcsmith at rockwellcollins.com Wed Apr 11 13:55:03 2007 From: xcsmith at rockwellcollins.com (xcsmith at rockwellcollins.com) Date: Wed, 11 Apr 2007 15:55:03 -0500 Subject: [Live-devel] Benchmarking Message-ID: Or maybe you really are experiencing network packet loss... ... On a private router with 1 host, 1 embedded target, & 1 RTSP server sending 1x 5 Mbps multicast stream? On a crossover cable between RTSP server and host machine? If I can see the multicast packet with the correct RTP sequence number using ethereal on the host machine, doesn't that mean the packet was not lost by the network? In what ways does a packet get lost by the network? I thought it would be something like packets expiring because of too many hops or maybe too much network data. xochitl From finlayson at live555.com Wed Apr 11 14:45:51 2007 From: finlayson at live555.com (Ross Finlayson) Date: Wed, 11 Apr 2007 14:45:51 -0700 Subject: [Live-devel] Benchmarking In-Reply-To: References: Message-ID: >If I can see the multicast packet with the >correct RTP sequence number using ethereal on the host machine, doesn't >that mean the packet was not lost by the network? If by "the host machine" you mean the receiving machine, then yes, if "etherial" sees the incoming packet, then (of course) it was not lost by the network. If "etherial" sees the incoming packet, but the "LIVE555 Streaming Media" code does not, then the loss *must* be happening within your OS kernel - so that's where you'll need to look next. -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From finlayson at live555.com Wed Apr 11 17:18:06 2007 From: finlayson at live555.com (Ross Finlayson) Date: Wed, 11 Apr 2007 17:18:06 -0700 Subject: [Live-devel] testOnDemandRTSPServer In-Reply-To: References: Message-ID: >I have some movie trailers (MPEG2) that I want to stream. I >believe they are program files... When I try to stream with >testOnDemandRTSPServer (by renaming the file to test.mpg) I get alot >of: > >StreamParser::ParsePESPacket(): saw inconsistent PES_packet_length 0 >< 8 (or 13) Please put one of these files on a web server, and send us the URL, so I can download it and check it myself. -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.live555.com/pipermail/live-devel/attachments/20070411/6b6d64d8/attachment.html From vahaha at pisem.net Wed Apr 11 22:40:35 2007 From: vahaha at pisem.net (Till May) Date: Thu, 12 Apr 2007 09:40:35 +0400 Subject: [Live-devel] Benchmarking Message-ID: <20070412094035.3ic0c11kgowww8sk@www.pochta.ru> Howdy List ! I think I have the same problem as xcsmith. When I stream live video to local network (20 hosts) on the clients side QuickTime recieves and plays the video. But at the moment only 2-3 clients can play. Others just showing some first recieved frame and stays along, but they continue to recieve packets (I see that in statistics of players, where bps of stream is shown, etc). Also I see the multicast packets with the correct RTP sequence number using Ethereal on the clients machine. When I restart thise bazzed clients the others that plays stream hangs on with current played frame, but still continues recieving stream... What's wrong I dont know %))) ? Best regards. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.live555.com/pipermail/live-devel/attachments/20070411/d3697800/attachment.html From rmpg2001 at gmail.com Thu Apr 12 01:23:14 2007 From: rmpg2001 at gmail.com (Ramon Martin de Pozuelo) Date: Thu, 12 Apr 2007 10:23:14 +0200 Subject: [Live-devel] Stop Playing Message-ID: <389189e20704120123n29a742e2lefa56e42b74d6947@mail.gmail.com> Hi all, I have an application that streams broadcast H.264 video. I have a thread that is waiting for commands and it changes the watchVariable ("env->taskScheduler().doEventLoop(&watchVariable);"), so it outs EventLoop, executes the command the value of watchVariable indicates and then return to EventLoop. One of this commands has to stop streaming and then delete session. I would like to know what is the best way to do that. I proved to use VideoSink->stopPlaying() but I see this is a private void, so I thought I wasn't going by the right way. Thanks in advance, Ramon -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.live555.com/pipermail/live-devel/attachments/20070412/e7024e18/attachment.html From finlayson at live555.com Thu Apr 12 01:54:06 2007 From: finlayson at live555.com (Ross Finlayson) Date: Thu, 12 Apr 2007 01:54:06 -0700 Subject: [Live-devel] Stop Playing In-Reply-To: <389189e20704120123n29a742e2lefa56e42b74d6947@mail.gmail.com> References: <389189e20704120123n29a742e2lefa56e42b74d6947@mail.gmail.com> Message-ID: >One of this commands has to stop streaming and then delete session. >I would like to know what is the best way to do that. I proved to >use VideoSink->stopPlaying() but I see this is a private void, so I >thought I wasn't going by the right way. No, calling "stopPlaying()" is correct. If you cast your 'sink' object (pointer) to a "(MediaSink*)" before calling "stopPlaying()", you'll be able to do this. -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From yossydr at gmail.com Thu Apr 12 02:30:01 2007 From: yossydr at gmail.com (yossy) Date: Thu, 12 Apr 2007 12:30:01 +0300 Subject: [Live-devel] transmit multiple streams concurrently Message-ID: <461DFC19.4060301@gmail.com> Hi all, How can i transmit multiple MPEG-4 files concurrently with one server? Do i need to define different port for each file? From rmpg2001 at gmail.com Thu Apr 12 03:22:29 2007 From: rmpg2001 at gmail.com (Ramon Martin de Pozuelo) Date: Thu, 12 Apr 2007 12:22:29 +0200 Subject: [Live-devel] Stop Playing In-Reply-To: References: <389189e20704120123n29a742e2lefa56e42b74d6947@mail.gmail.com> Message-ID: <389189e20704120322n7fb84021od669b0bbb7280189@mail.gmail.com> Thanks for your response, Ross. Now, my problem is that it breaks down the application. Do you know what could be the problem. Should I close session too, close the source or indicate to the environment that this sink is stopped? Ramon 2007/4/12, Ross Finlayson : > > >One of this commands has to stop streaming and then delete session. > >I would like to know what is the best way to do that. I proved to > >use VideoSink->stopPlaying() but I see this is a private void, so I > >thought I wasn't going by the right way. > > No, calling "stopPlaying()" is correct. If you cast your 'sink' > object (pointer) to a "(MediaSink*)" before calling "stopPlaying()", > you'll be able to do this. > -- > > 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: http://lists.live555.com/pipermail/live-devel/attachments/20070412/c4accbde/attachment-0001.html From finlayson at live555.com Thu Apr 12 06:24:31 2007 From: finlayson at live555.com (Ross Finlayson) Date: Thu, 12 Apr 2007 06:24:31 -0700 Subject: [Live-devel] transmit multiple streams concurrently In-Reply-To: <461DFC19.4060301@gmail.com> References: <461DFC19.4060301@gmail.com> Message-ID: >How can i transmit multiple MPEG-4 files concurrently with one server? >Do i need to define different port for each file? Yes, of course. (If you're transmitting the data via unicast, on demand, then this happens automatically.) -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From chas.bryant at gmail.com Thu Apr 12 09:32:47 2007 From: chas.bryant at gmail.com (Chuck Bryant) Date: Thu, 12 Apr 2007 11:32:47 -0500 Subject: [Live-devel] testOnDemandRTSPServer In-Reply-To: References: Message-ID: Thanks Ross, but I got lucky this time. Seems the movie I was working with was already in transport stream, and I didn't know it because it was labeled "mpg". So that all works fine with Amino boxes now. Now I was wondering if I can transcode from mp4 to mpeg2 TS on the fly? Do you think it would be too processor intensive? On 4/11/07, Ross Finlayson wrote: > > I have some movie trailers (MPEG2) that I want to stream. I believe > they are program files... When I try to stream with testOnDemandRTSPServer > (by renaming the file to test.mpg) I get alot of: > > > > StreamParser::ParsePESPacket(): saw inconsistent PES_packet_length 0 < 8 > (or 13) > > > > Please put one of these files on a web server, and send us the URL, so I > can download it and check it myself. > > -- > > > 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: http://lists.live555.com/pipermail/live-devel/attachments/20070412/8cfce300/attachment.html From morgan.torvolt at gmail.com Thu Apr 12 10:34:40 2007 From: morgan.torvolt at gmail.com (=?ISO-8859-1?Q?Morgan_T=F8rvolt?=) Date: Thu, 12 Apr 2007 21:34:40 +0400 Subject: [Live-devel] Trick play and reuseFirstSource Message-ID: <3cc3561f0704121034o6df1e4a3he6aef97b37ef1ba9@mail.gmail.com> Hi In MPEG2TransportFileServerMediaSubsession, would it not make sense to check if reuseFirstSource is set, and load the index file (if it exists) in case it is not. I believe that the way it is now, you will have to remove the index file to be able to use the source file as a reusable source. I could be reading the code wrongly though. -Morgan- From finlayson at live555.com Thu Apr 12 12:06:55 2007 From: finlayson at live555.com (Ross Finlayson) Date: Thu, 12 Apr 2007 12:06:55 -0700 Subject: [Live-devel] Trick play and reuseFirstSource In-Reply-To: <3cc3561f0704121034o6df1e4a3he6aef97b37ef1ba9@mail.gmail.com> References: <3cc3561f0704121034o6df1e4a3he6aef97b37ef1ba9@mail.gmail.com> Message-ID: >In MPEG2TransportFileServerMediaSubsession, would it not make sense >to check if reuseFirstSource is set, and load the index file (if it >exists) in case it is not. I believe that the way it is now, you will >have to remove the index file to be able to use the source file as a >reusable source. Yes, and IMHO that's appropriate. If you've created an index file for a TS file, then that implies that you intend to support 'trick play' operations on it - therefore you don't want to stream it as if it were a live source. I.e., the presence of the index file takes priority in figuring out what's intended. -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From morgan.torvolt at gmail.com Thu Apr 12 22:02:01 2007 From: morgan.torvolt at gmail.com (=?ISO-8859-1?Q?Morgan_T=F8rvolt?=) Date: Fri, 13 Apr 2007 09:02:01 +0400 Subject: [Live-devel] Trick play and reuseFirstSource In-Reply-To: References: <3cc3561f0704121034o6df1e4a3he6aef97b37ef1ba9@mail.gmail.com> Message-ID: <3cc3561f0704122202n5ef39e2fq8c9fcfbf815b9a91@mail.gmail.com> > Yes, and IMHO that's appropriate. If you've created an index file > for a TS file, then that implies that you intend to support 'trick > play' operations on it - therefore you don't want to stream it as if > it were a live source. I.e., the presence of the index file takes > priority in figuring out what's intended. I would have to disagree with you on that. What if I would like to use one source file for two different uses? Say one fixed time playout and one trick play capable version so that I can do differing of the price on the two types. A couple of points to consider - The reuseFirstSource is a more specific command than having an index file, and should be the one that takes priority. (In CSS the case would be closed here) - The index file could be generated on every .ts file uploaded to the server. It does not make sense to me to have to implement a check in the file upload system to handle a option that is given in a completely different program. - Would a programmer that is not explicitly aware of this expect the current behavour? - If one where to add a index file to be able to use the source file for trick play, one would with that change behavour of existing and working software, possibly rendering it unusable. - Whenever I set an option in any program I use, I expect it to do what I tell it to do every time, or never if it is not possible. That some external entity can come and overrule my setting by simply indexing a file would be confusing, and probably give me a lot of debugging befor I would get really mad, and write a e-mail much less polite than this one =) - It is rude for a program to say "I am more intelligent than you, and I disregard what you are asking me to do and will do something completely different instead". - How could the library know what was intended? Would not that be something for the user/programmer to decide? If the reuseFirstSource is set, would you not think that would be what the current user of the .ts file would want? I think the way it works now is bad. It feels like random, and out of my control. If the file was situated on a networked drive, the bahveour of my code would be dependent upon what the guy who uploaded the file have done when he uploaded it. Having it the current way demands that external software and other system management staff must be aware of the use of the file, and makes it impossible to use the file for the two different purposes I described. In other words, the current implementation is limiting, and I don't like that. If I did, I would be writing this e-mail using windows, and maybe even outlook. No... That would be too crazy. =) Regards -Morgan- From finlayson at live555.com Fri Apr 13 00:19:08 2007 From: finlayson at live555.com (Ross Finlayson) Date: Fri, 13 Apr 2007 00:19:08 -0700 Subject: [Live-devel] Trick play and reuseFirstSource In-Reply-To: <3cc3561f0704122202n5ef39e2fq8c9fcfbf815b9a91@mail.gmail.com> References: <3cc3561f0704121034o6df1e4a3he6aef97b37ef1ba9@mail.gmail.com> <3cc3561f0704122202n5ef39e2fq8c9fcfbf815b9a91@mail.gmail.com> Message-ID: Well, I don't agree with many of your arguments (especially the one about "using one source file for two different uses" - you could use different file names (which you'd probably need to do anyway), using symbolic links). However, since you're the only person who seems to care passionately about this, I'll make the change in the next release of the software - so that it ignores any index file if "reuseFirstSource" is set. (I'm still not sure why anyone would want to set "reuseFirstSource" on a non-live stream, but whatever...) -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From rmpg2001 at gmail.com Fri Apr 13 02:06:39 2007 From: rmpg2001 at gmail.com (Ramon Martin de Pozuelo) Date: Fri, 13 Apr 2007 11:06:39 +0200 Subject: [Live-devel] Stop Playing In-Reply-To: <389189e20704120322n7fb84021od669b0bbb7280189@mail.gmail.com> References: <389189e20704120123n29a742e2lefa56e42b74d6947@mail.gmail.com> <389189e20704120322n7fb84021od669b0bbb7280189@mail.gmail.com> Message-ID: <389189e20704130206r1764bea5p8f779f30c68723bf@mail.gmail.com> Hi, I resolved it, but it still send RTCP packets from this session so I tried to close session. I thought using: static void close( UsageEnvironment& env, char const *mediumName) but I don't undestand what's mediumName variable. Is it the best way to close my session? Thanks in advance, Ramon 2007/4/12, Ramon Martin de Pozuelo : > > Thanks for your response, Ross. Now, my problem is that it breaks down the > application. Do you know what could be the problem. Should I close session > too, close the source or indicate to the environment that this sink is > stopped? > > Ramon > > 2007/4/12, Ross Finlayson : > > > > >One of this commands has to stop streaming and then delete session. > > >I would like to know what is the best way to do that. I proved to > > >use VideoSink->stopPlaying() but I see this is a private void, so I > > >thought I wasn't going by the right way. > > > > No, calling "stopPlaying()" is correct. If you cast your 'sink' > > object (pointer) to a "(MediaSink*)" before calling "stopPlaying()", > > you'll be able to do this. > > -- > > > > 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: http://lists.live555.com/pipermail/live-devel/attachments/20070413/1e4e407a/attachment.html From rmpg2001 at gmail.com Fri Apr 13 02:16:03 2007 From: rmpg2001 at gmail.com (Ramon Martin de Pozuelo) Date: Fri, 13 Apr 2007 11:16:03 +0200 Subject: [Live-devel] Stop Playing In-Reply-To: <389189e20704130206r1764bea5p8f779f30c68723bf@mail.gmail.com> References: <389189e20704120123n29a742e2lefa56e42b74d6947@mail.gmail.com> <389189e20704120322n7fb84021od669b0bbb7280189@mail.gmail.com> <389189e20704130206r1764bea5p8f779f30c68723bf@mail.gmail.com> Message-ID: <389189e20704130216y50ec4191m1662b7546dd3ef8b@mail.gmail.com> Sorry, I would have said: static void close( UsageEnvironmeng &env, char const *mediumName) 2007/4/13, Ramon Martin de Pozuelo : > > Hi, > I resolved it, but it still send RTCP packets from this session so I tried > to close session. I thought using: > > static void close( > UsageEnvironment& > env, char const *mediumName) > > but I don't undestand what's mediumName variable. > > Is it the best way to close my session? > > Thanks in advance, > > Ramon > > 2007/4/12, Ramon Martin de Pozuelo : > > > > Thanks for your response, Ross. Now, my problem is that it breaks down > > the application. Do you know what could be the problem. Should I close > > session too, close the source or indicate to the environment that this sink > > is stopped? > > > > Ramon > > > > 2007/4/12, Ross Finlayson : > > > > > > >One of this commands has to stop streaming and then delete session. > > > >I would like to know what is the best way to do that. I proved to > > > >use VideoSink->stopPlaying() but I see this is a private void, so I > > > >thought I wasn't going by the right way. > > > > > > No, calling "stopPlaying()" is correct. If you cast your 'sink' > > > object (pointer) to a "(MediaSink*)" before calling "stopPlaying()", > > > you'll be able to do this. > > > -- > > > > > > 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: http://lists.live555.com/pipermail/live-devel/attachments/20070413/12885626/attachment-0001.html From finlayson at live555.com Fri Apr 13 02:30:31 2007 From: finlayson at live555.com (Ross Finlayson) Date: Fri, 13 Apr 2007 02:30:31 -0700 Subject: [Live-devel] Stop Playing In-Reply-To: <389189e20704130206r1764bea5p8f779f30c68723bf@mail.gmail.com> References: <389189e20704120123n29a742e2lefa56e42b74d6947@mail.gmail.com> <389189e20704120322n7fb84021od669b0bbb7280189@mail.gmail.com> <389189e20704130206r1764bea5p8f779f30c68723bf@mail.gmail.com> Message-ID: >Is it the best way to close my session? After calling yourSink->stopPlaying(); call Medium:close(yourSink); Medium::close(theSourceThatYourSinkWasBeingPlayedFrom); Search for "Medum::close" in the "testProgs" directory; there are many examples. -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From xcsmith at rockwellcollins.com Fri Apr 13 08:30:04 2007 From: xcsmith at rockwellcollins.com (xcsmith at rockwellcollins.com) Date: Fri, 13 Apr 2007 10:30:04 -0500 Subject: [Live-devel] Trick play and reuseFirstSource Message-ID: (I'm still not sure why anyone would want to set "reuseFirstSource" on a non-live stream, but whatever...) -- Re: Would it be useful for remote training purposes? If I am understanding what you mean correctly, then I could easily see hardcore MMO gamers getting in ventrillo together and then watching the same strategy video at the same time, occasionally pausing it for discussion or going back over part of it that was missed because someone was being obnoxious. :) Maybe not the best example, but really hardcore guilds do all kinds of stuff like this. If I was still gaming, I would want to do this in my guild to review and discuss raid strategy with other guild leaders. Anyway, it might be possible to build an interesting mentoring tool if trick play and reuseFirstSource can be enabled at the same time. Xochitl From shalom.shushan at gmail.com Fri Apr 13 15:11:05 2007 From: shalom.shushan at gmail.com (shalom shushan) Date: Sat, 14 Apr 2007 01:11:05 +0300 Subject: [Live-devel] transmit multiple streams concurrently In-Reply-To: References: <461DFC19.4060301@gmail.com> Message-ID: Hi Ross, I'm also streaming multiple MPEG4 files via unicast, on demand. I want to have indication of what stream the client is asking to play in my server. Is there any variable that i can use by simply "printf" this variable? Do i need to define such variable that in any client request to play the stream will give me indication which stream is asked? where or how should i define such a variable? Thanks Orit On 4/12/07, Ross Finlayson wrote: > > >How can i transmit multiple MPEG-4 files concurrently with one server? > >Do i need to define different port for each file? > > Yes, of course. > > (If you're transmitting the data via unicast, on demand, then this > happens automatically.) > -- > > 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: http://lists.live555.com/pipermail/live-devel/attachments/20070413/6df68ffa/attachment.html From finlayson at live555.com Fri Apr 13 16:22:39 2007 From: finlayson at live555.com (Ross Finlayson) Date: Fri, 13 Apr 2007 16:22:39 -0700 Subject: [Live-devel] transmit multiple streams concurrently In-Reply-To: References: <461DFC19.4060301@gmail.com> Message-ID: >I'm also streaming multiple MPEG4 files via unicast, on demand. I hope you realize that our RTSP server implementation (e.g., as used in the "LIVE555 Media Server" ) does this automatically. You don't need to write any new code to do this. >I want to have indication of what stream the client is asking to >play in my server. I'm not sure I understand your question, but I suggest using "openRTSP" (with the -V option) as your RTSP client . This will show you what is going on. -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From shalom.shushan at gmail.com Fri Apr 13 23:55:27 2007 From: shalom.shushan at gmail.com (shalom shushan) Date: Sat, 14 Apr 2007 08:55:27 +0200 Subject: [Live-devel] transmit multiple streams concurrently In-Reply-To: References: <461DFC19.4060301@gmail.com> Message-ID: Ross, i will be more clear: The server side is my application based on the on-demand test program. I need some indication on the server side which stream is played by any client (i don't control the client side). On 4/14/07, Ross Finlayson wrote: > > >I'm also streaming multiple MPEG4 files via unicast, on demand. > > I hope you realize that our RTSP server implementation (e.g., as used > in the "LIVE555 Media Server" ) > does this automatically. You don't need to write any new code to do > this. > > > >I want to have indication of what stream the client is asking to > >play in my server. > > I'm not sure I understand your question, but I suggest using > "openRTSP" (with the -V option) as your RTSP client > . This will show you what is going > on. > > -- > > 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: http://lists.live555.com/pipermail/live-devel/attachments/20070413/20ee36fe/attachment.html From finlayson at live555.com Sat Apr 14 01:50:04 2007 From: finlayson at live555.com (Ross Finlayson) Date: Sat, 14 Apr 2007 01:50:04 -0700 Subject: [Live-devel] transmit multiple streams concurrently In-Reply-To: References: <461DFC19.4060301@gmail.com> Message-ID: >i will be more clear: >The server side is my application based on the on-demand test program. >I need some indication on the server side which stream is played by >any client Add #define DEBUG 1 to "liveMedia/RTSPServer.cpp", and recompile. -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From weiyutao36 at 163.com Sat Apr 14 02:31:35 2007 From: weiyutao36 at 163.com (weiyutao36) Date: Sat, 14 Apr 2007 17:31:35 +0800 (CST) Subject: [Live-devel] How much clients can live server support at the same time? Message-ID: <18147224.1478241176543095232.JavaMail.root@bj163app55.163.com> Hi Ross,Does live library, e.g.,testOndemandRTSPServer has a limit on the number of concurrent clients? I want to know how much clients at maximum testOndemandRTSPServer can support. Thanks a lot. Yutao Wei -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.live555.com/pipermail/live-devel/attachments/20070414/199b03b6/attachment.html From finlayson at live555.com Sat Apr 14 05:24:03 2007 From: finlayson at live555.com (Ross Finlayson) Date: Sat, 14 Apr 2007 05:24:03 -0700 Subject: [Live-devel] How much clients can live server support at the same time? In-Reply-To: <18147224.1478241176543095232.JavaMail.root@bj163app55.163.com> References: <18147224.1478241176543095232.JavaMail.root@bj163app55.163.com> Message-ID: Does live library, e.g.,testOndemandRTSPServer has a limit on the number of concurrent clients? No, there is no such limit in the code. -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From morgan.torvolt at gmail.com Mon Apr 16 03:55:16 2007 From: morgan.torvolt at gmail.com (=?ISO-8859-1?Q?Morgan_T=F8rvolt?=) Date: Mon, 16 Apr 2007 14:55:16 +0400 Subject: [Live-devel] Trick play problems. Message-ID: <3cc3561f0704160355i680fc9f4x4a306d12bd0ae94d@mail.gmail.com> Hi I have indexed a .ts file of mine to test out the trick play functionality. The index file seems fine, and using ./testMPEG2TransportStreamTrickPlay everything works just fine. Trick play is flawless using the output file to play in vlc and on our STB. So my next step was testing the trick play using testOnDemandRTSPServer. That did not go so well. Whenever I change scale with my STB, the application completely stops sending data, and goes to the singlestep loop. Even if I request scale=1 again by pressing the play button. I was thinking that this was probably caused by the STB, so I added full debug output to see what was happening, as well as DEBUG_PCR. There are no PCR debug output at all after changing scale, so I guess there is no data going trough the transport stream framer at all. I used a few different source files, including this file: http://samples.mplayerhq.hu/MPEG2/TITLE01-ANGLE2.VOB All without success. I have the latest source from this folder: http://www.live555.com/liveMedia/public/ To make sure that it was not me messing things up (or at least make it less likely) i changed the code in RTSPClient.cpp to set a default scale to 5.0f, 5.0 and 5 (tried them all), and get the same results. When I start openRTSP it connects and everything, but no PCR debug output, and no datarate going trough the networking interfaces, as well as no data in the output file form openRTSP. I am a bit at a loss here. What could be causing this? I wanted to revert to the previous version of live to see if that made a difference, but I found no change. -Morgan- From finlayson at live555.com Mon Apr 16 07:13:01 2007 From: finlayson at live555.com (Ross Finlayson) Date: Mon, 16 Apr 2007 07:13:01 -0700 Subject: [Live-devel] Trick play problems. In-Reply-To: <3cc3561f0704160355i680fc9f4x4a306d12bd0ae94d@mail.gmail.com> References: <3cc3561f0704160355i680fc9f4x4a306d12bd0ae94d@mail.gmail.com> Message-ID: >I used a few different source files, including this file: >http://samples.mplayerhq.hu/MPEG2/TITLE01-ANGLE2.VOB >All without success. You realize, I hope, that ".VOB" files are MPEG *Program Stream* files, not Transport Stream files, and therefore you won't be able to create index files from them (or, currently, stream them with scale != 1). Can you point us at an example of a *Transport Stream* file that illustrates your problem? -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From morgan.torvolt at gmail.com Mon Apr 16 08:01:48 2007 From: morgan.torvolt at gmail.com (=?ISO-8859-1?Q?Morgan_T=F8rvolt?=) Date: Mon, 16 Apr 2007 19:01:48 +0400 Subject: [Live-devel] Trick play problems. In-Reply-To: References: <3cc3561f0704160355i680fc9f4x4a306d12bd0ae94d@mail.gmail.com> Message-ID: <3cc3561f0704160801x59d7db11n809ca771ec3b060a@mail.gmail.com> Hi again. Ah, but of course I should have specified this. I made a .ts file of it using your testMPEG1or2ProgramToTransportStream. I guessed that if I used your application for that, it should at least be compliant with your system. I should also specify that the same happens on three different machines with the latest library downloaded and compiled from scratch. -Morgan- On 16/04/07, Ross Finlayson wrote: > >I used a few different source files, including this file: > >http://samples.mplayerhq.hu/MPEG2/TITLE01-ANGLE2.VOB > >All without success. > > You realize, I hope, that ".VOB" files are MPEG *Program Stream* > files, not Transport Stream files, and therefore you won't be able to > create index files from them (or, currently, stream them with scale > != 1). > > Can you point us at an example of a *Transport Stream* file that > illustrates your problem? > -- > > 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 > From finlayson at live555.com Mon Apr 16 15:35:08 2007 From: finlayson at live555.com (Ross Finlayson) Date: Mon, 16 Apr 2007 15:35:08 -0700 Subject: [Live-devel] Trick play problems. In-Reply-To: <3cc3561f0704160801x59d7db11n809ca771ec3b060a@mail.gmail.com> References: <3cc3561f0704160355i680fc9f4x4a306d12bd0ae94d@mail.gmail.com> <3cc3561f0704160801x59d7db11n809ca771ec3b060a@mail.gmail.com> Message-ID: >Ah, but of course I should have specified this. I made a .ts file of >it using your testMPEG1or2ProgramToTransportStream. I guessed that if >I used your application for that, it should at least be compliant with >your system. Sorry, but I wasn't able to reproduce your problem. I did the following: 1/ Downloaded http://samples.mplayerhq.hu/MPEG2/TITLE01-ANGLE2.VOB ; renamed it to "in.mpg" 2/ Ran "testMPEG1or2ProgramToTransportStream", generating "out.ts" 3/ Ran "MPEG2TransportStreamIndexer", to generate "out.tsx" 4/ Ran "live555MediaServer" (with "out.ts" and "out.tsx" in the same directory) 5/ In the "testProgs" directory, I changed the call to "playMediaSession()" in "openRTSP.cpp" to return rtspClient->playMediaSession(*session, 0.0f, -1.0f, 5.0f); and recompiled "openRTSP". 6/ Ran "openRTSP" to stream "out.ts" from the media server. When I did this, I got an output file that correctly played in VLC - showing 5x speedup from the original. Can you describe how to reproduce your problem? -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From julian.lamberty at mytum.de Wed Apr 18 02:17:25 2007 From: julian.lamberty at mytum.de (Julian Lamberty) Date: Wed, 18 Apr 2007 11:17:25 +0200 Subject: [Live-devel] Subclass FramedFilter for transcoding Message-ID: <4625E225.1000306@mytum.de> Hi! I'm still working on a solution for transcoding RTP streams. What I'm trying to achieve is: 1: Receiving one (or more) RTP/RTSP network streams 2: Feeding that streams into an ffmpeg transcoding unit 3: Streaming the transcoded content again via RTP/RTSP Thanks to your help I already tried to implement a subclass of FramedFilter to do that, but I still have several questions (maybe some of them rather ffmpeg related, but I'll try here anyway ;)): 1: What kind of "packets" does a SimpleRTPSource deliver (and what does a SimpleRTPSink expect) and how can I pass the packets/frames (?) to ffmpeg (i.e. an AVPacket)? 2: If I use an SimpleRTPSource as input and an SimpleRTPSink object as output (I try to stay general as much as possible as I want my transcoder to handle many formats), which tasks will be left to the ffmpeg part? Do I also have to care about demuxing/muxing? In principle I'm stuck at the question of how to exchange data between the livemedia part and the ffmpeg part. 3: Can I use ffmpeg to detect the format of the incoming stream? If yes, how can I get the data on initialization of the Transcoder class (I at least need one received packet, right)? 4: Last but not least a simple question concerning this mailing list: How do I reply to a post? Do I simply use "Re: ..." as subject? Thank you very much for your help! Julian Lamberty -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/x-pkcs7-signature Size: 5198 bytes Desc: S/MIME Cryptographic Signature Url : http://lists.live555.com/pipermail/live-devel/attachments/20070418/fab252ec/attachment.bin From david at embedded-sol.com Wed Apr 18 03:17:53 2007 From: david at embedded-sol.com (David Ohayon) Date: Wed, 18 Apr 2007 13:17:53 +0300 Subject: [Live-devel] problem when using Ethernet over USB (RNDIS) for streaming Message-ID: <006401c781a2$d440f3a0$ef00000a@david10> Hi All, ? I am using live555 to stream out JPEG images. It runs under windows CE 5.0. ? There are no problems to stream out when using an ordinary Ethernet connection. I can use VLC, mplayer and QuickTime as viewers. ? However when I switch to RNDIS (Ethernet over USB) connection it does not work any more. The output of the streamer is below. /********************************************/ RTCPInstance[001915C0]::RTCPInstance() schedule(3.029313->1041454310.029313) Play this stream using the URL "rtsp://100.0.0.130:7070/" Beginning streaming... sending REPORT sending RTCP packet 80c80006 5e9c5b68 c1bdd367 00000000 5bb97631 0000019d 0008c319 81ca0005 5e9c5b68 010c4d54 45796520 63616d65 72610000 schedule(1.583865->1041454312.583865) accept()ed connection from 100.0.0.1 RTSPClientSession[001936D0]::incomingRequestHandler1() read 198 bytes:DESCRIBE rtsp://100.0.0.130:7070/ RTSP/1.0 CSeq: 1 Accept: application/sdp Bandwidth: 384000 Accept-Language: nl-NL User-Agent: QuickTime/7.1.5 (qtver=7.1.5;os=Windows NT 5.1Service Pack 2) parseRTSPRequestString() returned cmdName "DESCRIBE", urlPreSuffix "", urlSuffix "" sending response: RTSP/1.0 200 OK CSeq: 1 Wed, Jan 01 2003 20:51:52 GMT Content-Base: rtsp://100.0.0.130:7070// Content-Type: application/sdp Content-Length: 431 v=0 o=- 1041454307000000 1 IN IP4 100.0.0.130 s=Session streamed by the SSDH camera i=SSDHStreamer t=0 0 a=tool:LIVE555 Streaming Media v2006.11.15 a=type:broadcast a=control:* a=source-filter: incl IN IP4 * 100.0.0.130 a=rtcp-unicast: reflection a=range:npt=0- a=x-qt-text-nam:Session streamed by the MTEye camera a=x-qt-text-inf:MTeyeStreamer m=video 2222 RTP/AVP 26 c=IN IP4 232.38.112.65/255 a=control:track1 RTSPClientSession[001936D0]::incomingRequestHandler1() read 303 bytes:SETUP rtsp://100.0.0.130:7070//track1 RTSP/1.0 CSeq: 2 Transport: RTP/AVP;unicast;client_port=2222-2223 x-retransmit: our-retransmit x-dynamic-rate: 1 x-transport-options: late-tolerance=2.900000 User-Agent: QuickTime/7.1.5 (qtver=7.1.5;os=Windows NT 5.1Service Pack 2) Accept-Language: nl-NL parseRTSPRequestString() returned cmdName "SETUP", urlPreSuffix "", urlSuffix "track1" sending response: RTSP/1.0 200 OK CSeq: 2 Wed, Jan 01 2003 20:51:52 GMT Transport: RTP/AVP;multicast;destination=232.38.112.65;port=2222-0;ttl=255 Session: 1 RTSPClientSession[001936D0]::incomingRequestHandler1() read 191 bytes:PLAY rtsp://100.0.0.130:7070/ RTSP/1.0 CSeq: 3 Range: npt=0.000000- x-prebuffer: maxtime=2.000000 Session: 1 User-Agent: QuickTime/7.1.5 (qtver=7.1.5;os=Windows NT 5.1Service Pack 2) parseRTSPRequestString() returned cmdName "PLAY", urlPreSuffix "", urlSuffix "" sending response: RTSP/1.0 200 OK CSeq: 3 Wed, Jan 01 2003 20:51:52 GMT Range: npt=0.000- Session: 1 RTP-Info: url=rtsp://100.0.0.130:7070//track1;seq=26784;rtptime=1538971073 schedule(3.349909->1041454316.349909) sending REPORT sending RTCP packet 80c80006 5e9c5b68 c1bdd36d 00000000 5bc1b391 00000451 00176d7b 81ca0005 5e9c5b68 010c4d54 45796520 63616d65 72610000 schedule(6.133813->1041454323.133813) RTSPClientSession[001936D0]::incomingRequestHandler1() read 0 bytes (of 10000); terminating connection! accept()ed connection from 100.0.0.1 RTSPClientSession[00198740]::incomingRequestHandler1() read 215 bytes:GET / HTTP/1.0 User-Agent: QuickTime/7.1.5 (qtver=7.1.5;os=Windows NT 5.1Service Pack 2) x-sessioncookie: pnuKwv/sAACQLd0BBYAAAA Accept: application/x-rtsp-tunnelled Pragma: no-cache Cache-Control: no-cache parseRTSPRequestString() failed! sending response: RTSP/1.0 400 Bad Request Wed, Jan 01 2003 20:52:02 GMT Allow: OPTIONS, DESCRIBE, SETUP, TEARDOWN, PLAY, PAUSE sending REPORT sending RTCP packet 80c80006 5e9c5b68 c1bdd375 00000000 5bccb011 000007ec 002aff24 81ca0005 5e9c5b68 010c4d54 45796520 63616d65 72610000 schedule(3.536260->1041454328.536260) /****************************************************/ Thanks, David From finlayson at live555.com Wed Apr 18 06:11:50 2007 From: finlayson at live555.com (Ross Finlayson) Date: Wed, 18 Apr 2007 06:11:50 -0700 Subject: [Live-devel] problem when using Ethernet over USB (RNDIS) for streaming In-Reply-To: <006401c781a2$d440f3a0$ef00000a@david10> References: <006401c781a2$d440f3a0$ef00000a@david10> Message-ID: > I am using live555 to stream out JPEG images. It runs under windows CE >5.0. > > There are no problems to stream out when using an ordinary Ethernet >connection. I can use VLC, mplayer and QuickTime as viewers. > However when I switch to RNDIS (Ethernet over USB) connection it does not >work any more. Your problem is probably that IP multicast is not working on your new network interface - most likely because you don't have multicast routing set up to use that interface. -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From finlayson at live555.com Wed Apr 18 12:31:42 2007 From: finlayson at live555.com (Ross Finlayson) Date: Wed, 18 Apr 2007 12:31:42 -0700 Subject: [Live-devel] Subclass FramedFilter for transcoding In-Reply-To: <4625E225.1000306@mytum.de> References: <4625E225.1000306@mytum.de> Message-ID: >1: What kind of "packets" does a SimpleRTPSource deliver (and what >does a SimpleRTPSink expect) All data in the RTP packet after the 12-byte RTP header (and any header extension). >3: Can I use ffmpeg to detect the format of the incoming stream? No. You would use "MediaSubsession::mediumName()", and "MediaSubsession::codecName()". I can't help you with questions about "ffmpeg" >4: Last but not least a simple question concerning this mailing >list: How do I reply to a post? Do I simply use "Re: ..." as subject? Yes. -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From c.drost at student.utwente.nl Thu Apr 19 02:08:19 2007 From: c.drost at student.utwente.nl (c.drost at student.utwente.nl) Date: Thu, 19 Apr 2007 11:08:19 +0200 Subject: [Live-devel] Limiting listening time on permant sdp sessions Message-ID: Hello Ross, I am using the live555 library to stream live RTP content taken from a radio station using the darwinInjector. The only problem I have is that I want to limit the listening time to half an hour using the sdp file description. Due to the fact that we are using a radio station as input, the start and end time cannot be set in the description, how can I still use the repeat field in the sdp file to "repeat" the permanent session every half an hour. E.G. a user tuning in using the sdp file cna listen for half an hour and is than cut off, reloading the sdp file result in the user being able to listen again half an hour, and so on... I am not even sure if this is possible with the repeat time field, but the sdp file looking like the one I am using now is not doing the trick (see below), got any ideas on how to insert this functionality or to get the darwinInjecor to generate behavior like this?? /*********************************/ SDP fields used regarding timing: t=0 0 r=1801 1800 /*********************************/ where t= (0 0 is permanent session) r= Regards, Chiel Drost From kittisak at jowit.com Thu Apr 19 03:13:14 2007 From: kittisak at jowit.com (Kittisak Leelathawornpanya('M')) Date: Thu, 19 Apr 2007 17:13:14 +0700 Subject: [Live-devel] How to build a video conferencing system with LiveMedia Library Message-ID: <006901c7826b$57a71df0$6a09a8c0@KITTISAKM> Hello, Ross and all of us I need your help for guiding me to build a video conferencing system with LiveMedia Library Can anyone suggest me ?.............. Regards , Faithfully yours Kittisak Leelathawornpanya _______________________________________________ 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: http://lists.live555.com/pipermail/live-devel/attachments/20070419/dfe331d0/attachment.html From cehoyos at rainbow.studorg.tuwien.ac.at Thu Apr 19 05:12:59 2007 From: cehoyos at rainbow.studorg.tuwien.ac.at (Carl Eugen Hoyos) Date: Thu, 19 Apr 2007 14:12:59 +0200 (CEST) Subject: [Live-devel] www.live555.com/mplayer Message-ID: Hi Ross! A user explained on mplayer-users last week that he wasn't able to configure mplayer the way described on http://www.live555.com/mplayer/ (He didn't say he followed your suggestions, but that's what I guessed.) The option --with-livelibdir has been removed from mplayers configure, I think --with-extraincdir= should be the correct option (I didn't try). Additionally, on mplayer mailing lists, everybody is advised not to use --enable-* (except --enable-gui, but including --enable-live), because it forces demux_rtp.cpp to be compiled, no matter if live555 library is installed or not, while that should be autodetected; so perhaps you could change the text on http://www.live555.com/mplayer to something like 3. ... run cd MPlayer* ; ./configure and check if live555 library was auto detected successfully. Otherwise, run cd MPlayer* ; ./configure --with-extraincdir= and make sure that live555 library was auto detected successfully. Thank you, Carl Eugen From l1436636 at yahoo.com Thu Apr 19 06:53:28 2007 From: l1436636 at yahoo.com (hong liu) Date: Thu, 19 Apr 2007 06:53:28 -0700 (PDT) Subject: [Live-devel] about openRTP Message-ID: <61042.54884.qm@web51101.mail.re2.yahoo.com> I have a test.mp4 file on Darwin Streaming server, which include a h264 video file and audio file. Now I want to receive the video file and output it to a file. Then I ran openRTP on my Linux machine. First I used the command of "openRTP rtsp://192.168.0.1/test.mp4", and then I got one audio file named audio-MPEG4-GENERIC-2 and one video file named video-h264-1. I tried to open video-h264-1 with vlc or mplayer, and all tries failed. I don't know what format this file is. Is it h264 elementary stream file or other format. The same happened to the audio file. Then I used the command of "openRTP -v -4 -w 176 -h 144 -f 30 rtsp://192.168.0.1/test.mp4 > test_video.mp4", and then I opened test_video.mp4 with vlc, with nothing playing back. I also used quicktime player to open it. It can be played back but there are some problems in picture reconstruction and there is audio in between. What is wrong with it. Thank you for your help! Hong Liu ------------------------------ --------------------------------- Ahhh...imagining that irresistible "new car" smell? Check outnew cars at Yahoo! Autos. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.live555.com/pipermail/live-devel/attachments/20070419/709794ba/attachment.html From info at dnastudios.it Thu Apr 19 07:11:07 2007 From: info at dnastudios.it (DNA Studios s.r.l.) Date: Thu, 19 Apr 2007 16:11:07 +0200 Subject: [Live-devel] about openRTP In-Reply-To: <61042.54884.qm@web51101.mail.re2.yahoo.com> References: <61042.54884.qm@web51101.mail.re2.yahoo.com> Message-ID: <4627787B.6080606@dnastudios.it> hong liu ha scritto: > Then I used the command of "openRTP -v -4 -w 176 -h 144 -f 30 > rtsp://192.168.0.1/test.mp4 > test_video.mp4", and then I opened > test_video.mp4 with vlc, with nothing playing back. I also used > quicktime player to open it. It can be played back but there are some > problems in picture reconstruction and there is audio in between. What > is wrong with it. QuickTime only play h264 baseline profile, probably your video is encoded in main or hight profile. http://en.wikipedia.org/wiki/QuickTime ------------------------- Nicola From finlayson at live555.com Thu Apr 19 07:25:31 2007 From: finlayson at live555.com (Ross Finlayson) Date: Thu, 19 Apr 2007 07:25:31 -0700 Subject: [Live-devel] about openRTP In-Reply-To: <61042.54884.qm@web51101.mail.re2.yahoo.com> References: <61042.54884.qm@web51101.mail.re2.yahoo.com> Message-ID: >First I used the command of "openRTP rtsp://192.168.0.1/test.mp4", >and then I got one audio file named audio-MPEG4-GENERIC-2 and one >video file named video-h264-1. I tried to open video-h264-1 with vlc >or mplayer, and all tries failed. I don't know what format this file >is. Is it h264 elementary stream file Yes, of course. The file name describes the contents of the stream. Unfortunaately, I know of no media player that can play the file in this format. >Then I used the command of "openRTP -v -4 -w 176 -h 144 -f 30 >rtsp://192.168.0.1/test.mp4 > test_video.mp4", and then I opened >test_video.mp4 with vlc, with nothing playing back. I also used >quicktime player to open it. It can be played back but there are >some problems in picture reconstruction and there is audio in >between. What is wrong with it. I don't know, but if you got audio, you must not have used the "-v" option, because that option causes only the video stream to be recorded. Also, you need to be certain that the width, height and framerate parameters that you gave are exactly those of the stream that you are trying to record, otherwise video will not play back correctly. -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From l1436636 at yahoo.com Thu Apr 19 07:46:49 2007 From: l1436636 at yahoo.com (hong liu) Date: Thu, 19 Apr 2007 07:46:49 -0700 (PDT) Subject: [Live-devel] about live555MediaServer Message-ID: <749426.50536.qm@web51109.mail.re2.yahoo.com> Now I want to stream h264 video coded file (elementary stream) and mp4 file including h264 video file. I found live555MediaServer is not able to do it. Is that true? If not, please advise me how to do it. Thank you in advance! Hong Liu ------------------------------ --------------------------------- Ahhh...imagining that irresistible "new car" smell? Check outnew cars at Yahoo! Autos. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.live555.com/pipermail/live-devel/attachments/20070419/4e56c9aa/attachment.html From david at embedded-sol.com Thu Apr 19 08:11:19 2007 From: david at embedded-sol.com (David Ohayon) Date: Thu, 19 Apr 2007 18:11:19 +0300 Subject: [Live-devel] problem when using Ethernet over USB (RNDIS) for streaming Message-ID: <007401c78295$032bab40$ef00000a@david10> Hello, Thanks for the answer. I have checked if multicast packets transmitted by the device are visible on the PC running the viewer using Ethereal network protocol analyzer. The packets are visible. I also noticed that the self address of the streamer is determined by transmitting a multicast packet and when receiving it, extracting the sender address from it. This part works OK (I am aware of the WINCE multicast bug and its workaround, so I forced a 'correct' multicast address). I compared the packets captured when the RNDIS connection was active (the connection that does not work) to those captured when the ordinary Ethernet connection was active but could not see something that looked significant to me. A screen capture of the Ethereal window (jpg) and the capture files (*.cap - helpful if Ethereal is installed) can be found here: IP addresses when RNDIS is in use: 100.0.0.130 - the streaming device - running windows CE 5.0 100.0.0.4 - The viewing device - running windows XP service pack 2 http://www.embedded-sol.com/Rndis/rndis.jpg http://www.embedded-sol.com/Rndis/rndis3.cap http://www.embedded-sol.com/Rndis/ethernet1.cap Thanks, David Ohayon -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.live555.com/pipermail/live-devel/attachments/20070419/26f2989b/attachment.html From info at dnastudios.it Thu Apr 19 08:26:48 2007 From: info at dnastudios.it (DNA Studios s.r.l.) Date: Thu, 19 Apr 2007 17:26:48 +0200 Subject: [Live-devel] about live555MediaServer In-Reply-To: <749426.50536.qm@web51109.mail.re2.yahoo.com> References: <749426.50536.qm@web51109.mail.re2.yahoo.com> Message-ID: <46278A38.5040606@dnastudios.it> hong liu ha scritto: > Now I want to stream h264 video coded file (elementary stream) and mp4 > file including h264 video file. I found live555MediaServer is not able > to do it. Is that true? If not, please advise me how to do it. Thank > you in advance! You can use Darwin Streaming Server, but does not exist a player in the world able to seek this rtsp source......very strange but really. You can only play (with mplayer or vlc) from start to end but you can't move in the movie...the seeking operations make a crash or video not resyncronize well; all communities know this problem (videolan, mplayer, here, apple etc. etc.) but unfortunately at this moment seems that not there is a solution. The only way is to encode your video in baseline profile and play it with QT (obviously with Darwin as server). Bye. ---------------------- Nicola From l1436636 at yahoo.com Thu Apr 19 08:55:48 2007 From: l1436636 at yahoo.com (hong liu) Date: Thu, 19 Apr 2007 08:55:48 -0700 (PDT) Subject: [Live-devel] about live555MediaServer Message-ID: <233438.57539.qm@web51102.mail.re2.yahoo.com> Thank you Nicola! If I want to add the function that live555MediaServer is used to stream h264 elementary stream, how much effort I should make on modification of the souce code of live555MediaServer? Where, ... The openRTP is able to receive mp4 files and parse h264 video streams. Is there any way to enable live555MediaServer to stream mp4 or h264 elementary stream? Hong Liu ------------------------------ --------------------------------- Ahhh...imagining that irresistible "new car" smell? Check outnew cars at Yahoo! Autos. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.live555.com/pipermail/live-devel/attachments/20070419/cd46aa30/attachment-0001.html From l1436636 at yahoo.com Thu Apr 19 09:11:39 2007 From: l1436636 at yahoo.com (hong liu) Date: Thu, 19 Apr 2007 09:11:39 -0700 (PDT) Subject: [Live-devel] about openRTP Message-ID: <66338.20046.qm@web51101.mail.re2.yahoo.com> >>First I used the command of "openRTP rtsp://192.168.0.1/test.mp4", >>and then I got one audio file named audio-MPEG4-GENERIC-2 and one >>video file named video-h264-1. I tried to open video-h264-1 with vlc >>or mplayer, and all tries failed. I don't know what format this file >>is. Is it h264 elementary stream file >Yes, of course. The file name describes the contents of the stream. >Unfortunaately, I know of no media player that can play the file in >this format. What is content of these audio and video files? for example, the test.mp4 contains a h.264 video coded file and mpeg4 audio file. Is video-h264-1 the original h.264 video coded file if there is no packet loss during transmission period? Now I want to record the h264 video stream in the test.mp4 into a file. would you advise me how to do it? >>Then I used the command of "openRTP -v -4 -w 176 -h 144 -f 30 >>rtsp://192.168.0.1/test.mp4 > test_video.mp4", and then I opened >>test_video.mp4 with vlc, with nothing playing back. I also used >>quicktime player to open it. It can be played back but there are >>some problems in picture reconstruction and there is audio in >>between. What is wrong with it. >I don't know, but if you got audio, you must not have used the "-v" >option, because that option causes only the video stream to be >recorded. >Also, you need to be certain that the width, height and framerate >parameters that you gave are exactly those of the stream that you are trying to >record, otherwise video will not play back correctly. Is there any difference for openRTP in recording video stream between the video only mp4 file and the video audio interleaved mp4 file? Hong Liu ------------------------------ --------------------------------- Ahhh...imagining that irresistible "new car" smell? Check outnew cars at Yahoo! Autos. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.live555.com/pipermail/live-devel/attachments/20070419/3d044577/attachment.html From info at dnastudios.it Thu Apr 19 10:14:44 2007 From: info at dnastudios.it (DNA STUDIOS s.r.l.) Date: Thu, 19 Apr 2007 19:14:44 +0200 Subject: [Live-devel] about live555MediaServer In-Reply-To: <233438.57539.qm@web51102.mail.re2.yahoo.com> References: <233438.57539.qm@web51102.mail.re2.yahoo.com> Message-ID: <4627A384.4050902@dnastudios.it> hong liu ha scritto: > Thank you Nicola! > > If I want to add the function that live555MediaServer is used to stream > h264 elementary stream, how much effort I should make on modification of > the souce code of live555MediaServer? Where, ... > > The openRTP is able to receive mp4 files and parse h264 video streams. > Is there any way to enable live555MediaServer to stream mp4 or h264 > elementary stream? Unfortunately I don't know, I am not a software engineer, but if you succeed to implement this please tell me ;) Sure Ross know if this is possible and the way to... ------------- Nicola From finlayson at live555.com Thu Apr 19 12:26:48 2007 From: finlayson at live555.com (Ross Finlayson) Date: Thu, 19 Apr 2007 12:26:48 -0700 Subject: [Live-devel] www.live555.com/mplayer In-Reply-To: References: Message-ID: Carl Eugen, Thanks for the note. I have updated our web page now. -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From finlayson at live555.com Thu Apr 19 12:31:33 2007 From: finlayson at live555.com (Ross Finlayson) Date: Thu, 19 Apr 2007 12:31:33 -0700 Subject: [Live-devel] about live555MediaServer In-Reply-To: <233438.57539.qm@web51102.mail.re2.yahoo.com> References: <233438.57539.qm@web51102.mail.re2.yahoo.com> Message-ID: >The openRTP is able to receive mp4 files and parse h264 video >streams. Is there any way to enable live555MediaServer to stream mp4 >or h264 elementary stream? The server can already stream MPEG-4 Video Elementary Stream files. These must have file extension ".m4e". There is currently no support for streaming H.264 Video Elementary Stream files. See -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.live555.com/pipermail/live-devel/attachments/20070419/e4f75817/attachment.html From rruthe02 at harris.com Thu Apr 19 12:48:32 2007 From: rruthe02 at harris.com (Rutherford, Robert) Date: Thu, 19 Apr 2007 15:48:32 -0400 Subject: [Live-devel] Segfault in FileSink while indexing MPEG2-TS Message-ID: <505F93C737C4B647A0007D96439B71770137E14B@mlbe2k7.cs.myharris.net> I am working to integrate the MPEG2-TS file indexer in to an existing application by basically using the same method as MPEG2TransportStreamIndexer.cpp within a function. However, the application crashes with a segmentation fault after writing 880-924 bytes or so of the index file (from a transport stream of approximately 180 MB). When I compile and run MPEG2TransportStreamIndexer as a stand-alone binary it works correctly on the same MPEG file. I need to use it within the application in order to better catch error values and prevent unneeded system calls. Has anyone else seen this problem, or is there a known issue in this release? Using a back trace from GDB is appears that the problem lies in FileSink::addData(). -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.live555.com/pipermail/live-devel/attachments/20070419/233de9fe/attachment.html From dweber at robotics.net Thu Apr 19 13:15:25 2007 From: dweber at robotics.net (Dan Weber) Date: Thu, 19 Apr 2007 16:15:25 -0400 Subject: [Live-devel] Alternate Sending/Receiving Ports Message-ID: <20070419201525.GA30561@Barney.robotics.net> Hi there, Is there anyway I can use Groupsock to send to a given port and receive on another? Thanks, Dan From chas.bryant at gmail.com Thu Apr 19 13:21:17 2007 From: chas.bryant at gmail.com (Chuck Bryant) Date: Thu, 19 Apr 2007 15:21:17 -0500 Subject: [Live-devel] Amino trickplay with live555 Message-ID: I am using an Amino 110H STB to stream the live555 feed. I'm using live555MediaServer and basically the FF or REW causes the screen to pause, and then it pixelates bad when you hit Play to resume the movie at that point. I know it must be something quirky with the movie content. I've seen on the groups where others have had this issue but I've never really seen what the final answer was. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.live555.com/pipermail/live-devel/attachments/20070419/f6df4f99/attachment.html From finlayson at live555.com Thu Apr 19 15:30:30 2007 From: finlayson at live555.com (Ross Finlayson) Date: Thu, 19 Apr 2007 15:30:30 -0700 Subject: [Live-devel] Alternate Sending/Receiving Ports In-Reply-To: <20070419201525.GA30561@Barney.robotics.net> References: <20070419201525.GA30561@Barney.robotics.net> Message-ID: >Is there anyway I can use Groupsock to send to a given port and >receive on another? Yes. First create it, specifying the port to receive on, and then change the port to send to using "Groupsock::changeDestinationParameters()". (See examples in the code.) -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From finlayson at live555.com Thu Apr 19 15:38:11 2007 From: finlayson at live555.com (Ross Finlayson) Date: Thu, 19 Apr 2007 15:38:11 -0700 Subject: [Live-devel] Segfault in FileSink while indexing MPEG2-TS In-Reply-To: <505F93C737C4B647A0007D96439B71770137E14B@mlbe2k7.cs.myharris.net> References: <505F93C737C4B647A0007D96439B71770137E14B@mlbe2k7.cs.myharris.net> Message-ID: >I am working to integrate the MPEG2-TS file indexer in to an >existing application by basically using the same method as >MPEG2TransportStreamIndexer.cpp within a function. However, the >application crashes with a segmentation fault after writing 880-924 >bytes or so of the index file (from a transport stream of >approximately 180 MB). When I compile and run >MPEG2TransportStreamIndexer as a stand-alone binary it works >correctly on the same MPEG file. I need to use it within the >application in order to better catch error values and prevent >unneeded system calls. Has anyone else seen this problem, or is >there a known issue in this release? No, there's no known problem. However, because the indexing code works OK in the supplied "MPEG2TransportStreamIndexer" application, but not when you modify it, you should be able to track down the problem without too much difficulty, I hope. -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.live555.com/pipermail/live-devel/attachments/20070419/d03fde50/attachment.html From zhouh31415 at 163.com Fri Apr 20 00:15:44 2007 From: zhouh31415 at 163.com (=?GBK?B?1ty66w==?=) Date: Fri, 20 Apr 2007 15:15:44 +0800 (CST) Subject: [Live-devel] About groupsock Message-ID: <7936279.1470721177053344249.JavaMail.root@bj163app33.163.com> Hi,all: I have a problem about groupsock when I run live lib on my embeded linux system. The program work fine until, recently, I run PPPoE on my embeded linux. The program print : "Unable to determine our source address: This computer has an invalid IP address : 0x0" Then, I found the print coming from GroupsockHelper.cpp and Groupsock.cpp. I don't know what's wrong with the program because there's no problem when I run Groupsock without PPPoE. And the system can also work with running PPPoE and unicast, but the printing ---- able to determine our source address: This computer has an invalid IP address : 0x0" ---- is still exist. When I run PPPoE and Groupsock, the video transport program shut down and print: "00:00:11 Groupsock(10:239.255.42.42,1234,7): failed to join group : setsockopt( IP_ADDR_MEMBERSHIP) error : No such device. Could you give me some suggestions? -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.live555.com/pipermail/live-devel/attachments/20070420/75ec65dc/attachment-0001.html From finlayson at live555.com Fri Apr 20 00:22:44 2007 From: finlayson at live555.com (Ross Finlayson) Date: Fri, 20 Apr 2007 00:22:44 -0700 Subject: [Live-devel] About groupsock In-Reply-To: <7936279.1470721177053344249.JavaMail.root@bj163app33.163.com> References: <7936279.1470721177053344249.JavaMail.root@bj163app33.163.com> Message-ID: > When I run PPPoE and Groupsock, the video transport program shut >down and print: > > "00:00:11 Groupsock(10:239.255.42.42,1234,7): failed to join >group : setsockopt( IP_ADDR_MEMBERSHIP) error : No such device. The problem is apparently that multicast is not configured (at least not properly) for your network device. -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From finlayson at live555.com Fri Apr 20 00:49:18 2007 From: finlayson at live555.com (Ross Finlayson) Date: Fri, 20 Apr 2007 00:49:18 -0700 Subject: [Live-devel] Amino trickplay with live555 In-Reply-To: References: