From RQJM87 at motorola.com Tue May 1 20:49:07 2007 From: RQJM87 at motorola.com (N Anche Naveen-RQJM87) Date: Wed, 2 May 2007 11:49:07 +0800 Subject: [Live-devel] live-devel Digest, Vol 42, Issue 22 In-Reply-To: Message-ID: <772484426025194BAC0E4697D0B386D90B846B@zmy16exm71.ds.mot.com> Thank you very much. That solved the problem. -Naveen -----Original Message----- From: live-devel-bounces at ns.live555.com [mailto:live-devel-bounces at ns.live555.com] On Behalf Of live-devel-request at ns.live555.com Sent: Tuesday, May 01, 2007 12:11 AM To: live-devel at ns.live555.com Subject: live-devel Digest, Vol 42, Issue 22 Send live-devel mailing list submissions to live-devel at lists.live555.com To subscribe or unsubscribe via the World Wide Web, visit http://lists.live555.com/mailman/listinfo/live-devel or, via email, send a message with subject or body 'help' to live-devel-request at lists.live555.com You can reach the person managing the list at live-devel-owner at lists.live555.com When replying, please edit your Subject line so it is more specific than "Re: Contents of live-devel digest..." Today's Topics: 1. Re: Cannot play an RTSP stream (Ross Finlayson) 2. Re: Live555 MPEG2 Transport Stream packet loss (ilya77 at gmail.com) 3. About the openRTSP source code (hong liu) 4. Re: About the openRTSP source code (Ross Finlayson) 5. linking RTCP RR and RTSP sessions (Thomas Vander Stichele) 6. Re: Live555 MPEG2 Transport Stream packet loss (xcsmith at rockwellcollins.com) ---------------------------------------------------------------------- Message: 1 Date: Fri, 27 Apr 2007 12:42:21 -0700 From: Ross Finlayson Subject: Re: [Live-devel] Cannot play an RTSP stream To: LIVE555 Streaming Media - development & use Message-ID: Content-Type: text/plain; charset="us-ascii" >I downloaded live55MediaServer from live555.com and ran it on my linux >system. I downloaded live source code and built it according to steps >given in >http://www.live555.com/l >iveMedia/#config-unix > >I downloaded Mplayer and built it. > >When i try to play an rtsp file, i get an error: Here is the complete log: > >[root at pclin518 bin]# ./mplayer rtsp://10.232.67.150:8554/dvb_sub.mpeg >MPlayer 1.0rc1-4.1.0 (C) 2000-2006 MPlayer Team >CPU: Intel(R) Xeon(R) CPU 5150 @ 2.66GHz (Family: 6, >Model: 15, Step >ping: 6) >CPUflags: MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1 Compiled >for x86 CPU with extensions: MMX MMX2 SSE SSE2 > >Playing rtsp://10.232.67.150:8554/dvb_sub.mpeg. >Resolving 10.232.67.150 for AF_INET6... >Couldn't resolve name for AF_INET6: 10.232.67.150 Connecting to server >10.232.67.150[10.232.67.150]: 8554... >connect error: Connection refused >Resolving 10.232.67.150 for AF_INET6... >Couldn't resolve name for AF_INET6: 10.232.67.150 Connecting to server >10.232.67.150[10.232.67.150]: 8554... >connect error: Connection refused >File not found: '10.232.67.150:8554/dvb_sub.mpeg' >Failed to open rtsp://10.232.67.150:8554/dvb_sub.mpeg. > > >Exiting... (End of file) > >Am I doing something wrong? First, for "live555MediaServer" to be able to stream your file, its name cannot end with ".mpeg". If your file is a MPEG Program Stream file, then it's name must end with ".mpg" (not ".mpeg"). However, if (as seems likely from the name "dvb_sub") it is actually a MPEG *Transport* Stream file, then you must rename it to "dvb_sub.ts", before you will be able to stream it. Second, the "connection refused" error means that either - 10.232.67.150 is not the real IP address of the server (that is running "live555MediaServer"). (Perhaps you have a NAT box in the middle??), or - You are not actually running "live555MediaServer" on your server machine. Also, I recommend using VLC as your media player client rather than MPlayer. -- 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/20070427/690d0 606/attachment-0001.html ------------------------------ Message: 2 Date: Sun, 29 Apr 2007 14:53:44 +0300 From: "ilya77 at gmail.com" Subject: Re: [Live-devel] Live555 MPEG2 Transport Stream packet loss To: "LIVE555 Streaming Media - development & use" Message-ID: Content-Type: text/plain; charset="iso-8859-1" Hi all, We've eliminated the NAT/ATM from the equation, and tried streaming the MPEG-2 TS over UDP (connecting the viewing PC directly to an ADSL line), and it did improve the sittuation dramatically, however, we sill have around 0.3- 0.7% packet loss over the WAN which results in video smearing here and there, and audio glitches (which are worse than video smearing because they are easily identified by ear and are more disturbing). We are wondering if either TS or RTP provide some means of forward error correction, since this rate of lost packets is normal over the public Internet, and from what we can tell the player (VLC) can not deal with those errors (and conceal them from the viewer). We are trying to find some information regarding embedding FEC information into the transport stream (as far as we understand it provides at least a container for error correction data), yet with no success. Any ideas? Many thanks, Ilya On 4/26/07, Morgan T?rvolt wrote: > > > Also, your email says you are using ATM (Asynchronous Transfer > Mode?). I > > check this on wikipedia, and notice that the data must be divided > > into > very > > small cells for delivery. It seems like ATM is a protocol for > > time-sensitive data, like VoIP. RTP also is designed to meet > > special timing needs of the data. Could there be a problem combining > > these two time-sensitive protocols? "If a circuit is exceeding its > > traffic > contract, > > the network can either drop the cells or mark the Cell Loss Priority > (CLP) > > bit (to identify a cell as discardable further down the line)." The > > RTP delivery can be somewhat bursty, so maybe you need to check your > > ATM contract and make sure you have the correct one (VBR maybe?) one? > > ATM is just a transport layer, as Ethernet, SDH and others. ATM is > usually used in for example ADSL connections. That the packet size is > 155 (or something like that) is not obvious, or even visible, to the > end hardware. It sees only an ordinary Ethernet link. > ATM is not very suited to do anything really. It is like a duck, it > can swim, fly and make sound, but does neither extremely well. For > extremely time sensitive data one uses SDH, which even keeps the > original input clock through the links. For time insensitive data one > uses Ethernet. ATM is very good at prioritizing traffic though, and it > could sound like the Ethernet packets are given a low priority, > possibly due to the fact that it is UDP. I have experienced this > before, and the configuration of a Ethernet card in one of the nodes > was to blame. It did not keep it's config due to hardware failure. In > your case this should be configurable in the ATM nodes, or management > software. > > As a "most likely" option, I would have to opt for bandwidth problem. > I have spent too many hours saying that it is not so on ATM networks > before. Check that your VCs and VPs are set up correctly, and try > transmitting TCP and UDP data from other sources than live. VLC stream > output would be a good place to start I believe. > > I agree with Ross here. You say it works well without the ATM, but not > with it. The reason for the problems is then too obvious. As there are > literally thousands of users of this software, I do believe that the > way it handles the Ethernet part works according to standard (unless > your OS or some configurations therein is to blame). One should not > make custom fixes to allow for broken hardware or configuration. In > this case "your network" seems like a good term, as most of the other > networks seems to work just fine. > > -Morgan- > _______________________________________________ > 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/20070429/e0998 e46/attachment-0001.html ------------------------------ Message: 3 Date: Sun, 29 Apr 2007 17:46:05 -0700 (PDT) From: hong liu Subject: [Live-devel] About the openRTSP source code To: live-devel at ns.live555.com Message-ID: <521302.36565.qm at web51109.mail.re2.yahoo.com> Content-Type: text/plain; charset="iso-8859-1" >>I start looking at the source code of openRTSP, and try to modify the >>code to add SPS an PPS NAL units of H264 into saved file. >To do this, you would modify (or extend) the "H264VideoFileSink" class. May I ask the reason why the openRTSP program doesn't save received SPS and PPS NAL units of H.264 into a local video file? Thank you so much! Hong 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/20070429/ec397 bf3/attachment-0001.html ------------------------------ Message: 4 Date: Sun, 29 Apr 2007 20:02:15 -0700 From: Ross Finlayson Subject: Re: [Live-devel] About the openRTSP source code To: LIVE555 Streaming Media - development & use Message-ID: Content-Type: text/plain; charset="us-ascii" > >>I start looking at the source code of openRTSP, and try to modify >>>the code to add SPS an PPS NAL units of H264 into saved file. > >>To do this, you would modify (or extend) the "H264VideoFileSink" class. > >May I ask the reason why the openRTSP program doesn't save received SPS >and PPS NAL units of H.264 into a local video file? Because the code wasn't written to do this. Note that these NAL units aren't part of the RTP stream, but are instead sent as an encoded string in the stream's SDP description. However, there exists a function ("MediaSubsession:: fmtp_spropparametersets()()") to access this string, and another function ("parseSPropParameterSets()") to decode this string into binary data - which you could, if you wished, write to a file. Sometime in the future, I might update the "H264VideoFileSink" class to do this itself.... -- 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/20070429/079f0 e2d/attachment-0001.html ------------------------------ Message: 5 Date: Mon, 30 Apr 2007 18:09:05 +0200 From: Thomas Vander Stichele Subject: [Live-devel] linking RTCP RR and RTSP sessions To: live-devel at ns.live555.com Message-ID: <1177949345.28381.80.camel at level.fluendo.lan> Content-Type: text/plain I was wondering exactly what the correct way is to relate RTCP RR reports to RTSP sessions on a server. I would like to know because, if I understand the RFC's correctly, an RTSP server MAY use any "wellness" information from clients (for example, RTCP RR packets) to keep the RTSP session alive. AFAICT, most mobile phones do not do keepalive on the RTSP layer, so an RTSP server has the need to tie RTCP RR packets to the RTSP sessions. (If I am wrong at this point, please do correct me, this stuff eats my brain when I think about it) The RTCP RR reports only provide the server with: - the client's (apparent) IP address (possibly changed through NAT) - the outgoing client UDP port from which these RTCP reports get sent (which I assume could have been changed through NAT) - the incoming server UDP port on which the server receives RTCP reports - the client's SSRC Of these, only the client's IP address was communicated to the RTSP server; the server knows which incoming UDP/RTCP port it asked the client to send to. I see the following options for the server to be able to map RTSP sessions to RTCP RR reports: - The server allocates a unique rtp and rtcp reception port for each RTSP session; this allows the server to id RTCP RR reports based on the incoming RTCP port. - The server uses the same rtp/rtcp reception port for each new RTSP session from a not-yet-known IP; if the same IP does a new session request, the server bumps rtp/rtcp reception ports. - The server uses the same rtp/rtcp reception port for everyone; it pretends that there is one session per IP. The first solution has the huge disadvantage that the server is limited to about 30k clients, given the number of ports it can receive on. Not to mention that select() would go out the window for checking activity :) The second solution is a little less greedy with ports, but harder to code. The third one seems wrong to me. I was wondering what the behaviour is of the live555 libraries. Anyone know ? Thanks Thomas ------------------------------ Message: 6 Date: Mon, 30 Apr 2007 13:41:13 -0500 From: xcsmith at rockwellcollins.com Subject: Re: [Live-devel] Live555 MPEG2 Transport Stream packet loss To: "LIVE555 Streaming Media - development & use" Message-ID: Content-Type: text/plain; charset=US-ASCII Hi all, We've eliminated the NAT/ATM from the equation, and tried streaming the MPEG-2 TS over UDP (connecting the viewing PC directly to an ADSL line), and it did improve the sittuation dramatically, however, we sill have around 0.3 - 0.7% packet loss over the WAN which results in video smearing here and there, and audio glitches (which are worse than video smearing because they are easily identified by ear and are more disturbing). We are wondering if either TS or RTP provide some means of forward error correction, since this rate of lost packets is normal over the public Internet, and from what we can tell the player (VLC) can not deal with those errors (and conceal them from the viewer). We are trying to find some information regarding embedding FEC information into the transport stream (as far as we understand it provides at least a container for error correction data), yet with no success. Any ideas? Many thanks, Ilya Re: Are you watching the video in real time or just recording it? you could use openRTSP to record the video stream and see if it helps at all to do this. in openRTSP you can adjust the amount of time to wait for a late packet. I'm not sure how much difference it would make. Have you tried going back to TCP streaming? If a packet is too late, it will be discarded, but if you are only doing a recording and not trying to watch the video real time, then you can wait a little longer for late packets. I don't think the TS format provides any sort of other error correction, aside from having very small packets to stop packet loss from having a dramatic effect on the system. I do not believe there is any way to recalculate the missing data from nearby data, if that's what you are asking. ------------------------------ _______________________________________________ live-devel mailing list live-devel at lists.live555.com http://lists.live555.com/mailman/listinfo/live-devel End of live-devel Digest, Vol 42, Issue 22 ****************************************** From liu_ying111 at yahoo.com.cn Wed May 2 08:28:45 2007 From: liu_ying111 at yahoo.com.cn (=?gb2312?q?=D3=B0=20=C1=F5?=) Date: Wed, 2 May 2007 23:28:45 +0800 (CST) Subject: [Live-devel] h264 transmission In-Reply-To: Message-ID: <718670.69337.qm@web15202.mail.cnb.yahoo.com> I want to use livelib to complete h264 rtp/rtcp transmission .the design is to use pc as a server and arm board as a client . But H264SideoStreamFramer seems have not finished .What should i add to H264SideoStreamFramer ? thanks liuying --------------------------------- ??????3.5G???20M??? -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.live555.com/pipermail/live-devel/attachments/20070502/6a92892f/attachment.html From finlayson at live555.com Wed May 2 10:06:53 2007 From: finlayson at live555.com (Ross Finlayson) Date: Wed, 2 May 2007 10:06:53 -0700 Subject: [Live-devel] h264 transmission In-Reply-To: <718670.69337.qm@web15202.mail.cnb.yahoo.com> References: <718670.69337.qm@web15202.mail.cnb.yahoo.com> Message-ID: >I want to use livelib to complete h264 rtp/rtcp transmission .the >design is to use pc as a server and arm board as a client . But >H264SideoStreamFramer seems have not finished . It's an abstract base class. You will need to implement your own subclass of this (in particular, to implement :doGetNextFrame()" and "currentNALUnitEndsAccessUnit()". -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From jayfurmanek at gmail.com Wed May 2 12:13:33 2007 From: jayfurmanek at gmail.com (Jay Furmanek) Date: Wed, 2 May 2007 14:13:33 -0500 Subject: [Live-devel] bytestreamFileSource, doGetNextFrame, and events Message-ID: <258d83300705021213l21eebc16n6f97b5a4a5ec5292@mail.gmail.com> Hi, I'm trying to build a H264VideoStreamFramer subclass to read from a raw .h264 file with the annexB delimeters. The Framer will remove the delimeters. I've learned from other posts that I need to implement a doGetNextFrame function. I wanted to read the file asynchronously and have the doGetNextFrame function just do a turnOnBackgroundReadHandling() on the file socket so when the next frame is ready to be processed, the event loop will kick me into a handler(deliverFrame) each time. The problem is, I dont have access to the file descriptor to tell the event loop about it. I've got the H264FileServerMediaSubsession class built and he sends in a byteStreamFileSource object to the H264VideoStreamFramerRaw class, and the byteStreamFileSource object has the file descriptor, but it's protected and there are no ways to get at it by using any of the byteStreamFileSource methods. I want to be able to read in the file a byte at a time so I can detect and discard the NAL delimiter. I'd appreciate any help, thanks! -jay -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.live555.com/pipermail/live-devel/attachments/20070502/b817bd9a/attachment.html From finlayson at live555.com Wed May 2 13:08:53 2007 From: finlayson at live555.com (Ross Finlayson) Date: Wed, 2 May 2007 13:08:53 -0700 Subject: [Live-devel] bytestreamFileSource, doGetNextFrame, and events In-Reply-To: <258d83300705021213l21eebc16n6f97b5a4a5ec5292@mail.gmail.com> References: <258d83300705021213l21eebc16n6f97b5a4a5ec5292@mail.gmail.com> Message-ID: >I've learned from other posts that I need to implement a >doGetNextFrame function. >I wanted to read the file asynchronously and have the doGetNextFrame >function just do a turnOnBackgroundReadHandling() on the file socket >so when the next frame is ready to be processed, the event loop will >kick me into a handler(deliverFrame) each time. The problem is, I >dont have access to the file descriptor to tell the event loop about >it. I don't understand. Can you access your file by name? If so, then just use "ByteStreamFileSource" as is, and feed this into your "H264VideoStreamFramer" subclass. You don't need to worry about file descriptors; the "ByteStreamFileSource" code takes care of this for you. -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From jayfurmanek at gmail.com Wed May 2 13:26:45 2007 From: jayfurmanek at gmail.com (Jay Furmanek) Date: Wed, 2 May 2007 15:26:45 -0500 Subject: [Live-devel] bytestreamFileSource, doGetNextFrame, and events In-Reply-To: References: <258d83300705021213l21eebc16n6f97b5a4a5ec5292@mail.gmail.com> Message-ID: <258d83300705021326u1813524dn89f7e029909b6013@mail.gmail.com> Doesn't turnOnBackgroundReadHandling() require a file descriptor/scoket as it's first argument? I built a little Parser (called from my framer) that uses the bytestreamFileSource object - that seems to be ok - I'm using it like you said. In my Framer, I just have my required funcs (isNALUnitEnd...(), doGetNextFrame) and a handler (deliverFrame()) that calls into the parser, then schedules a delayed task for FramedSource::afterGetting(). my doGetNextFrame() func calls turnOnBackgroundReadHandling(), but I have no socket/fd to give it. thanks for the quick response btw -j. On 5/2/07, Ross Finlayson wrote: > > >I've learned from other posts that I need to implement a > >doGetNextFrame function. > >I wanted to read the file asynchronously and have the doGetNextFrame > >function just do a turnOnBackgroundReadHandling() on the file socket > >so when the next frame is ready to be processed, the event loop will > >kick me into a handler(deliverFrame) each time. The problem is, I > >dont have access to the file descriptor to tell the event loop about > >it. > > I don't understand. Can you access your file by name? If so, then > just use "ByteStreamFileSource" as is, and feed this into your > "H264VideoStreamFramer" subclass. > > You don't need to worry about file descriptors; the > "ByteStreamFileSource" code takes care of this for you. > -- > > 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/20070502/0e32b61d/attachment.html From finlayson at live555.com Wed May 2 14:01:04 2007 From: finlayson at live555.com (Ross Finlayson) Date: Wed, 2 May 2007 14:01:04 -0700 Subject: [Live-devel] bytestreamFileSource, doGetNextFrame, and events In-Reply-To: <258d83300705021326u1813524dn89f7e029909b6013@mail.gmail.com> References: <258d83300705021213l21eebc16n6f97b5a4a5ec5292@mail.gmail.com> <258d83300705021326u1813524dn89f7e029909b6013@mail.gmail.com> Message-ID: >Doesn't turnOnBackgroundReadHandling() require a file >descriptor/scoket as it's first argument? Yes, but you should never need to call that function. "ByteStreamFileSource" does that automatically.. > my doGetNextFrame() func calls turnOnBackgroundReadHandling() No, don't do this. Your "H264VideoStreamFramer" subclass is a filter. It doesn't know anything about files. You *initialiize* your subclass with your "ByteStreamFileSource" object (as the "inputSource" argument). Then, in the implementation of your "doGetNextFrame()" function, call fInputSource->getNextFrame( ... ); to read from your source object (which just happens, in your case, to be a "ByteStreamFileSource"). Note that there are several examples of this in the code. -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From jayfurmanek at gmail.com Wed May 2 14:32:40 2007 From: jayfurmanek at gmail.com (Jay Furmanek) Date: Wed, 2 May 2007 16:32:40 -0500 Subject: [Live-devel] bytestreamFileSource, doGetNextFrame, and events In-Reply-To: References: <258d83300705021213l21eebc16n6f97b5a4a5ec5292@mail.gmail.com> <258d83300705021326u1813524dn89f7e029909b6013@mail.gmail.com> Message-ID: <258d83300705021432t3e7599a8v6d71e69efb5f176@mail.gmail.com> Oh. Seems I was misguided! Thanks Ross. >From looking at examples in the code, if I were to use fInputSource->getNextFrame(), it looks like I would do my processing in afterGettingFrame() then, correct? I wouldnt know how many bytes to tell the getNextFrame() call to get, though, since I have just a delimited elemtary stream coming from the file. Im thinking that telling getNextFrame to get 1 byte at a time wouldnt be very efficient, but I need to check one byte at a time for the 3-byte delimiter. Am I still a little lost about my thinking? -j. On 5/2/07, Ross Finlayson wrote: > > >Doesn't turnOnBackgroundReadHandling() require a file > >descriptor/scoket as it's first argument? > > Yes, but you should never need to call that function. > "ByteStreamFileSource" does that automatically.. > > > my doGetNextFrame() func calls turnOnBackgroundReadHandling() > > No, don't do this. Your "H264VideoStreamFramer" subclass is a > filter. It doesn't know anything about files. You *initialiize* > your subclass with your "ByteStreamFileSource" object (as the > "inputSource" argument). > > Then, in the implementation of your "doGetNextFrame()" function, call > fInputSource->getNextFrame( ... ); > to read from your source object (which just happens, in your case, to > be a "ByteStreamFileSource"). > > Note that there are several examples of this in the code. > -- > > 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/20070502/829a03bd/attachment.html From finlayson at live555.com Wed May 2 15:28:03 2007 From: finlayson at live555.com (Ross Finlayson) Date: Wed, 2 May 2007 15:28:03 -0700 Subject: [Live-devel] bytestreamFileSource, doGetNextFrame, and events In-Reply-To: <258d83300705021432t3e7599a8v6d71e69efb5f176@mail.gmail.com> References: <258d83300705021213l21eebc16n6f97b5a4a5ec5292@mail.gmail.com> <258d83300705021326u1813524dn89f7e029909b6013@mail.gmail.com> <258d83300705021432t3e7599a8v6d71e69efb5f176@mail.gmail.com> Message-ID: >From looking at examples in the code, if I were to use >fInputSource->getNextFrame(), it looks like I would do my processing >in afterGettingFrame() then, correct? Yes. > >I wouldnt know how many bytes to tell the getNextFrame() call to >get, though, since I have just a delimited elemtary stream coming >from the file. You should request as many bytes as you have space available in your buffer (that you'll be using to do the parsing). > >Im thinking that telling getNextFrame to get 1 byte at a time >wouldnt be very efficient, but I need to check one byte at a time >for the 3-byte delimiter. You should read large chunks of data, into a buffer. -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From jayfurmanek at gmail.com Wed May 2 16:28:53 2007 From: jayfurmanek at gmail.com (Jay Furmanek) Date: Wed, 2 May 2007 18:28:53 -0500 Subject: [Live-devel] bytestreamFileSource, doGetNextFrame, and events In-Reply-To: References: <258d83300705021213l21eebc16n6f97b5a4a5ec5292@mail.gmail.com> <258d83300705021326u1813524dn89f7e029909b6013@mail.gmail.com> <258d83300705021432t3e7599a8v6d71e69efb5f176@mail.gmail.com> Message-ID: <258d83300705021628qc0f5c3pe858050a5ac98345@mail.gmail.com> I can do that, but how do I handle remaining bytes if I read past the delimiter. I'll parse up to the delimiter, kick all those bytes into fTo and call afterGetting(). Do I need to handle the remaining bytes myself? or is there a mechanism for it? Thanks for all your help. -j. On 5/2/07, Ross Finlayson wrote: > > >From looking at examples in the code, if I were to use > >fInputSource->getNextFrame(), it looks like I would do my processing > >in afterGettingFrame() then, correct? > > Yes. > > > > >I wouldnt know how many bytes to tell the getNextFrame() call to > >get, though, since I have just a delimited elemtary stream coming > >from the file. > > You should request as many bytes as you have space available in your > buffer (that you'll be using to do the parsing). > > > > >Im thinking that telling getNextFrame to get 1 byte at a time > >wouldnt be very efficient, but I need to check one byte at a time > >for the 3-byte delimiter. > > You should read large chunks of data, into a buffer. > -- > > 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/20070502/76584c74/attachment-0001.html From mathew.hounsell at avegasystems.com Wed May 2 21:37:22 2007 From: mathew.hounsell at avegasystems.com (Mathew Hounsell) Date: Thu, 03 May 2007 14:37:22 +1000 Subject: [Live-devel] Coverity detected a memory leak in RTSPClient::setupMediaSubsession Message-ID: <46396702.2040700@avegasystems.com> "sessionStr", "setupStr", "authenticatorStr" are not deleted when the function returns ar 1018 because of break at 902 900 if (rtpNumber == 0) { 901 envir().setResultMsg("Client port number unknown\n"); 902 break; 903 } 1017 delete[] cmd; 1018 return False; 1019 } // End of Function While looking at the fix for this I thought it simpler to functionally decompose the setup string creation, and go with the old style single return point. This does not address the std::bad_alloc exception case. My patch is attached; svn diff format. -------------- next part -------------- A non-text attachment was scrubbed... Name: liveMedia-RTSPClient-memory-leak.diff Type: text/x-patch Size: 8315 bytes Desc: not available Url : http://lists.live555.com/pipermail/live-devel/attachments/20070502/c58c2a7a/attachment.bin From finlayson at live555.com Wed May 2 22:04:59 2007 From: finlayson at live555.com (Ross Finlayson) Date: Wed, 2 May 2007 22:04:59 -0700 Subject: [Live-devel] Coverity detected a memory leak in RTSPClient::setupMediaSubsession In-Reply-To: <46396702.2040700@avegasystems.com> References: <46396702.2040700@avegasystems.com> Message-ID: >"sessionStr", "setupStr", "authenticatorStr" are not deleted when >the function returns ar 1018 because of break at 902 > >900 if (rtpNumber == 0) { >901 envir().setResultMsg("Client port number unknown\n"); >902 break; >903 } > >1017 delete[] cmd; >1018 return False; >1019 } // End of Function Those line numbers do not match the current version of the code. Please download and use the latest version of the code instead. >While looking at the fix for this I thought it simpler to >functionally decompose the setup string creation, and go with the >old style single return point. No, if you want to send a patch, then please send one that (i) uses the latest version of the code, and (ii) addresses the memory leak issue only. Should I also decide to 'refactor' the setup string creation code, then I'll do that separately. -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From yanming at edslab.com Thu May 3 02:30:02 2007 From: yanming at edslab.com (wuyanming) Date: Thu, 3 May 2007 17:30:02 +0800 Subject: [Live-devel] Best way to stream MPEG2 Program Stream Message-ID: <002101c78d65$a15bcdb0$540aa8c0@YMdesktop> Hi, all, We need to stream MPEG2 Program Stream from a live source (encoder) to a client over a LAN for client's recording. The requirement is that client receives the original MPEG2 Program Stream from the encoder, nothing more, nothing less. We can tolerate packet delay, but can *not* tolerate packet loss. What's the best way to do this using Live555 library code? Thanks & Regards, Yanming -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.live555.com/pipermail/live-devel/attachments/20070503/87918337/attachment.html From vinodjoshi at tataelxsi.co.in Thu May 3 05:51:22 2007 From: vinodjoshi at tataelxsi.co.in (Vinod Madhav Joshi) Date: Thu, 3 May 2007 18:21:22 +0530 Subject: [Live-devel] MPEG2 ps media information Message-ID: <002701c78d81$c1b4fcf0$022a320a@telxsi.com> Hi all, I am using Live555 streaming server MPEG2 PS to Set top box. This may not be the proper place for my question. I am dumping the contents which are sent to client on the server side. I observed that response for describe is sent as m= video with PT=32 and for audio PT=14. But when the actual data is sent in RTP header Payload Type for video i am getting correctly. But for audio i am not getting as PT=14 which has to be 14. i am getting dynamic payload types for some packets. i want to know whether periodic SDP packets are used to dynamically specify media information. Anybody knows about this? Or what should i refer to get the basics of this. Thanking You. From finlayson at live555.com Thu May 3 06:18:00 2007 From: finlayson at live555.com (Ross Finlayson) Date: Thu, 3 May 2007 06:18:00 -0700 Subject: [Live-devel] Best way to stream MPEG2 Program Stream In-Reply-To: <002101c78d65$a15bcdb0$540aa8c0@YMdesktop> References: <002101c78d65$a15bcdb0$540aa8c0@YMdesktop> Message-ID: >We need to stream MPEG2 Program Stream from a live source (encoder) >to a client over a LAN for client's recording. The requirement is >that client receives the original MPEG2 Program Stream from the >encoder, nothing more, nothing less. We can tolerate packet delay, >but can *not* tolerate packet loss. What's the best way to do this >using Live555 library code? There really isn't a good way to do this - especially not in a way that's standardized. (Using RTP, Program Stream data is usually sent as two separate RTP streams - one for video, the other for audio.) Because you can tolerate packet delay, but not packet loss, you should just transfer your Program Stream data using TCP rather than RTP. I.e. just use "scp" or "ftp" - i.e., not using our software. -- 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/20070503/41a55749/attachment.html From finlayson at live555.com Thu May 3 06:23:47 2007 From: finlayson at live555.com (Ross Finlayson) Date: Thu, 3 May 2007 06:23:47 -0700 Subject: [Live-devel] MPEG2 ps media information In-Reply-To: <002701c78d81$c1b4fcf0$022a320a@telxsi.com> References: <002701c78d81$c1b4fcf0$022a320a@telxsi.com> Message-ID: > I am using Live555 streaming server MPEG2 PS to Set top box. > > This may not be the proper place for my question. > > I am dumping the contents which are sent to client on the server >side. > > I observed that response for describe is sent as m= video with PT=32 >and for audio PT=14. > > But when the actual data is sent in RTP header Payload Type for video >i am getting correctly. > > But for audio i am not getting as PT=14 which has to be 14. > > i am getting dynamic payload types for some packets. That should not be happening, if you are streaming from a Program Stream file (and have not modified our source code). When streaming from a Program Stream file, you should be seeing RTP Payload Type codes 32 and 14 only. Please run "openRTSP -V" on your stream, and send us the console output, so we can take a look at it. -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From finlayson at live555.com Thu May 3 06:29:55 2007 From: finlayson at live555.com (Ross Finlayson) Date: Thu, 3 May 2007 06:29:55 -0700 Subject: [Live-devel] MPEG2 ps media information In-Reply-To: <002701c78d81$c1b4fcf0$022a320a@telxsi.com> References: <002701c78d81$c1b4fcf0$022a320a@telxsi.com> Message-ID: > But for audio i am not getting as PT=14 which has to be 14. > > i am getting dynamic payload types for some packets. Are you sure you're not confusing RTCP packets with RTP packets? (RTCP packets are sent to separate port numbers from (video or audio) RTP packets.) -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From mathew.hounsell at avegasystems.com Thu May 3 18:50:27 2007 From: mathew.hounsell at avegasystems.com (Mathew Hounsell) Date: Fri, 04 May 2007 11:50:27 +1000 Subject: [Live-devel] Coverity detected a memory leak in RTSPClient::setupMediaSubsession In-Reply-To: <46396702.2040700@avegasystems.com> References: <46396702.2040700@avegasystems.com> Message-ID: <463A9163.7000107@avegasystems.com> I thought before I patch this I must get the latest code; and I know I went to the website. Guess I must have got distracted. Here is a diff for just that fix. Mathew Hounsell wrote: > "sessionStr", "setupStr", "authenticatorStr" are not deleted when the > function returns ar 1018 because of break at 902 > > 900 if (rtpNumber == 0) { > 901 envir().setResultMsg("Client port number unknown\n"); > 902 break; > 903 } > > 1017 delete[] cmd; > 1018 return False; > 1019 } // End of Function > > While looking at the fix for this I thought it simpler to functionally > decompose the setup string creation, and go with the old style single > return point. This does not address the std::bad_alloc exception case. > > My patch is attached; svn diff format. > -------------- next part -------------- A non-text attachment was scrubbed... Name: liveMedia-RTSPClient-memory-leak.diff Type: text/x-patch Size: 448 bytes Desc: not available Url : http://lists.live555.com/pipermail/live-devel/attachments/20070503/806ff6d5/attachment-0001.bin From vinodjoshi at tataelxsi.co.in Fri May 4 06:44:17 2007 From: vinodjoshi at tataelxsi.co.in (Vinod Madhav Joshi) Date: Fri, 4 May 2007 19:14:17 +0530 Subject: [Live-devel] MPEG2 ps media information In-Reply-To: Message-ID: <004701c78e52$5037b8c0$022a320a@telxsi.com> Thanks for your response. Here i am attaching the output of "openRTSP -V". Also I dumped the data at "sendto()" in GroupSockHelper.cpp I am getting the 2nd byte as 20 or A0 most of the time which is MPEG2 video-32 (after masking MSB in 2nd byte) Also some other value for 2nd byte C8(PT=72 after masking MSB of this byte) as payload type which may be the RTCP packet. But i am not able to find any packet with PT=14 (where 2nd byte of packet will be 0E/8E) for MPEG 2 Audio. -----Original Message----- From: live-devel-bounces at ns.live555.com [mailto:live-devel-bounces at ns.live555.com]On Behalf Of Ross Finlayson Sent: Thursday, May 03, 2007 6:54 PM To: LIVE555 Streaming Media - development & use Subject: Re: [Live-devel] MPEG2 ps media information > I am using Live555 streaming server MPEG2 PS to Set top box. > > This may not be the proper place for my question. > > I am dumping the contents which are sent to client on the server >side. > > I observed that response for describe is sent as m= video with PT=32 >and for audio PT=14. > > But when the actual data is sent in RTP header Payload Type for video >i am getting correctly. > > But for audio i am not getting as PT=14 which has to be 14. > > i am getting dynamic payload types for some packets. That should not be happening, if you are streaming from a Program Stream file (and have not modified our source code). When streaming from a Program Stream file, you should be seeing RTP Payload Type codes 32 and 14 only. Please run "openRTSP -V" on your stream, and send us the console output, so we can take a look at it. -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ _______________________________________________ live-devel mailing list live-devel at lists.live555.com http://lists.live555.com/mailman/listinfo/live-devel -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: openRTSP output.txt Url: http://lists.live555.com/pipermail/live-devel/attachments/20070504/939ae792/attachment.txt From violonvc2002 at yahoo.com Mon May 7 03:23:29 2007 From: violonvc2002 at yahoo.com (Hoang Nguyen Vi Cam Violon) Date: Mon, 7 May 2007 03:23:29 -0700 (PDT) Subject: [Live-devel] please help me ! Message-ID: <851486.99128.qm@web50402.mail.re2.yahoo.com> Hi, I'm setting up an RTSP lab for reseaching. I choose live555 streaming server for server and VLC(with live555 library) for client. OS : Fedora core 5. SERVER : (192.168.27.73) (Fedora core 5) - live555MediaServer.bin at /home/hnvcam - media file : cow.mpg at /home/hnvcam CLIENT1 : (192.168.27.73) (Fedora core 5) - vlc rtsp://0.0.0.0:8554/cow.mpg CLIENT2 : (192.168.27.235) (Windows XP SP2) - vlc rtsp://192.168.27.73:8554/cow.mpg When I build the lab as above, The client always show the error "Unable to determine our source address. This computer has an invalid IP address : 0x0" And the server also show it. The client doesn't play. So what's wrong of my configuration. Please help me to solve it. Thank you. Cam Hoang. Sincerely, Cam Hoang --------------------------------- 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/20070507/652ce360/attachment.html From wei.li at crc.ca Mon May 7 06:46:17 2007 From: wei.li at crc.ca (Wei Li) Date: Mon, 7 May 2007 09:46:17 -0400 Subject: [Live-devel] How to modify/debug code on Windows Message-ID: <007b01c790ae$167ba660$0202fea9@epox3> Hi Experts, Following the instructions, I succeeded in building the code on Windows. I tried 'openRTSP', it works pretty well. My questions is: how to debug the code when I made some changes? Since the 'Work space' is only with the .mak file. I'm using Microsoft Visul C++ 6.0. Thanks for any help, Wei -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.live555.com/pipermail/live-devel/attachments/20070507/1afc8654/attachment.html From finlayson at live555.com Mon May 7 06:55:20 2007 From: finlayson at live555.com (Ross Finlayson) Date: Mon, 7 May 2007 09:55:20 -0400 Subject: [Live-devel] please help me ! In-Reply-To: <851486.99128.qm@web50402.mail.re2.yahoo.com> References: <851486.99128.qm@web50402.mail.re2.yahoo.com> Message-ID: >When I build the lab as above, The client always show the error >"Unable to determine our source address. This computer has an >invalid IP address : 0x0" That error usualy means that IP multicast is not configured properly on your OS. Also, note that the IP addresses in a "rtsp://" URLs is the IP address of the *server*, not the client. -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From opera at kth.se Mon May 7 09:52:13 2007 From: opera at kth.se (=?ISO-8859-1?Q?Gustaf_R=E4ntil=E4?=) Date: Mon, 07 May 2007 18:52:13 +0200 Subject: [Live-devel] please help me ! In-Reply-To: <851486.99128.qm@web50402.mail.re2.yahoo.com> References: <851486.99128.qm@web50402.mail.re2.yahoo.com> Message-ID: <463F593D.30701@kth.se> Hoang Nguyen Vi Cam Violon wrote: > Hi, > I'm setting up an RTSP lab for reseaching. > I choose live555 streaming server for server and VLC(with live555 > library) for client. OS : Fedora core 5. > > SERVER : (192.168.27.73) (Fedora core 5) > - live555MediaServer.bin at /home/hnvcam > - media file : cow.mpg at /home/hnvcam > > CLIENT1 : (192.168.27.73) (Fedora core 5) > - vlc rtsp://0.0.0.0:8554/cow.mpg > > CLIENT2 : (192.168.27.235) (Windows XP SP2) > - vlc rtsp://192.168.27.73:8554/cow.mpg > > When I build the lab as above, The client always show the error > "Unable to determine our source address. This computer has an invalid > IP address : 0x0" > And the server also show it. The client doesn't play. > > So what's wrong of my configuration. Please help me to solve it. Thank > you. > > Cam Hoang. > > > Sincerely, > Cam Hoang > > ------------------------------------------------------------------------ > Ahhh...imagining that irresistible "new car" smell? > Check out new cars at Yahoo! Autos. > > > ------------------------------------------------------------------------ > > _______________________________________________ > live-devel mailing list > live-devel at lists.live555.com > http://lists.live555.com/mailman/listinfo/live-devel > Hello, Make sure your /etc/hostname, /etc/hosts etc are correct. One problem can be that you don't have your server hostname in the hosts file, while having two (or more) configured interfaces. Specifically, check that you have a line: [your primary ip (or rather the one you will stream From)] [your hostname] in /etc/hosts, and not just 127.0.0.1. Also check the order of the hostnames in the same file on the line starting with 127.0.0.1, and make sure any "localhost" comes last. However, liveMedia should really have the option to specify which interface to stream from, of course, and not do some funky checks which doesn't work in all cases (as of now). Specifically if you don't want to stream on all interfaces (for security reasons or whatever), but that's another matter. I used to have a patch for this but I doubt it'd be interesting. My last patch (for increased authorization possibilities) obviously wasn't. Listening on 0.0.0.0 (which liveMedia does in your case - INADDR_ANY) doesn't work properly (and shouldn't be expected to) if these things aren't set up right. Gustaf From dweber at robotics.net Mon May 7 13:54:18 2007 From: dweber at robotics.net (Dan Weber) Date: Mon, 7 May 2007 16:54:18 -0400 Subject: [Live-devel] Multiple Payload Types on RTP (DTMF Support) Message-ID: <20070507205417.GA32374@Barney.robotics.net> Hi there, Is there anyway to have the rtp stack accept multiple payload types for DTMF (rfc2833) and Audio? Thanks, Dan From donghoon.vanuytsel at esaturnus.com Mon May 7 14:32:11 2007 From: donghoon.vanuytsel at esaturnus.com (Dong Hoon Van Uytsel) Date: Mon, 7 May 2007 23:32:11 +0200 Subject: [Live-devel] raw video over rtp In-Reply-To: <20070507205417.GA32374@Barney.robotics.net> References: <20070507205417.GA32374@Barney.robotics.net> Message-ID: Hello all, I'm interested in sending raw video over RTP using the liveMedia lib, following RFC4176. Has anyone done this before? Any recommendations? At first sight it looks reasonable to subclass the SimpleRTPSink and SimpleRTPSource classes for this purpose. Thanks, Dong Hoon Van Uytsel From finlayson at live555.com Mon May 7 16:54:31 2007 From: finlayson at live555.com (Ross Finlayson) Date: Mon, 7 May 2007 19:54:31 -0400 Subject: [Live-devel] Multiple Payload Types on RTP (DTMF Support) In-Reply-To: <20070507205417.GA32374@Barney.robotics.net> References: <20070507205417.GA32374@Barney.robotics.net> Message-ID: >Is there anyway to have the rtp stack accept multiple payload types >for DTMF (rfc2833) and Audio? No, not right now. This is on my 'to do list', however. -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From finlayson at live555.com Mon May 7 16:57:10 2007 From: finlayson at live555.com (Ross Finlayson) Date: Mon, 7 May 2007 19:57:10 -0400 Subject: [Live-devel] raw video over rtp In-Reply-To: References: <20070507205417.GA32374@Barney.robotics.net> Message-ID: >Hello all, > >I'm interested in sending raw video over RTP using the liveMedia lib, >following RFC4176. Has anyone done this before? Any recommendations? >At first sight it looks reasonable to subclass the SimpleRTPSink and >SimpleRTPSource classes for this purpose. Actually, you would probably subclass "MultiFramedRTPSink/Source" (but in a way similar to the way that "BasicRTPSink/Source" is defined). -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From vinodjoshi at tataelxsi.co.in Mon May 7 20:51:48 2007 From: vinodjoshi at tataelxsi.co.in (Vinod Madhav Joshi) Date: Tue, 8 May 2007 09:21:48 +0530 Subject: [Live-devel] MPEG2 ps media information Message-ID: <002001c79124$350c57c0$022a320a@telxsi.com> Thanks for your response. Here i am attaching the output of "openRTSP -V". Also I dumped the data at "sendto()" in GroupSockHelper.cpp I am getting the 2nd byte as 20 or A0 most of the time which is MPEG2 video-32 (after masking MSB in 2nd byte) Also some other value for 2nd byte C8(PT=72 after masking MSB of this byte) as payload type which may be the RTCP packet. But i am not able to find any packet with PT=14 (where 2nd byte of RTP packet will be (0E/8E) for MPEG 2 Audio. -----Original Message----- From: live-devel-bounces at ns.live555.com [mailto:live-devel-bounces at ns.live555.com]On Behalf Of Ross Finlayson Sent: Thursday, May 03, 2007 6:54 PM To: LIVE555 Streaming Media - development & use Subject: Re: [Live-devel] MPEG2 ps media information > I am using Live555 streaming server MPEG2 PS to Set top box. > > This may not be the proper place for my question. > > I am dumping the contents which are sent to client on the server >side. > > I observed that response for describe is sent as m= video with PT=32 >and for audio PT=14. > > But when the actual data is sent in RTP header Payload Type for video >i am getting correctly. > > But for audio i am not getting as PT=14 which has to be 14. > > i am getting dynamic payload types for some packets. That should not be happening, if you are streaming from a Program Stream file (and have not modified our source code). When streaming from a Program Stream file, you should be seeing RTP Payload Type codes 32 and 14 only. Please run "openRTSP -V" on your stream, and send us the console output, so we can take a look at it. -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ _______________________________________________ live-devel mailing list live-devel at lists.live555.com http://lists.live555.com/mailman/listinfo/live-devel -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: openRTSP output.txt Url: http://lists.live555.com/pipermail/live-devel/attachments/20070507/c3a4a3eb/attachment.txt -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: ATT00078.txt Url: http://lists.live555.com/pipermail/live-devel/attachments/20070507/c3a4a3eb/attachment-0001.txt From violonvc2002 at yahoo.com Mon May 7 21:01:51 2007 From: violonvc2002 at yahoo.com (Hoang Nguyen Vi Cam Violon) Date: Mon, 7 May 2007 21:01:51 -0700 (PDT) Subject: [Live-devel] please help me ! In-Reply-To: Message-ID: <122019.88631.qm@web50407.mail.re2.yahoo.com> Ross Finlayson wrote: >When I build the lab as above, The client always show the error >"Unable to determine our source address. This computer has an >invalid IP address : 0x0" That error usualy means that IP multicast is not configured properly on your OS. Also, note that the IP addresses in a "rtsp://" URLs is the IP address of the *server*, not the client. -- 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 I'm just a beginner. I really don't understand that why we need an IP multicast here. As I understand : - I have a RTSP (live555) server at (192.168.27.73) and it listen on all interfaces (0.0.0.0:8554). - I have a RTSP client (VLC) at (192.168.27.235) and request for the media on server : rtsp://192.168.27.73:8554/cow.mpg As above : the server and client must see each other. And in the log, client has contacted with sever, and sent the SETUP & PLAY commands. But the stream hasn't been transported. Client sent TEARDOWN after 10s because it didn't receive any data. Both of them show error : "Unable to determine our source address. This computer has an invalid IP address : 0x0". Please help me to find out my error. Thank you very much, Cam Hoang. Sincerely, Cam Hoang --------------------------------- 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/20070507/d70770b6/attachment.html From finlayson at live555.com Mon May 7 21:33:51 2007 From: finlayson at live555.com (Ross Finlayson) Date: Tue, 8 May 2007 00:33:51 -0400 Subject: [Live-devel] MPEG2 ps media information In-Reply-To: <002001c79124$350c57c0$022a320a@telxsi.com> References: <002001c79124$350c57c0$022a320a@telxsi.com> Message-ID: Are you able to play your stream using VLC as a client? (If so, then there is nothing wrong with your stream.) -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From vinodjoshi at tataelxsi.co.in Mon May 7 22:31:24 2007 From: vinodjoshi at tataelxsi.co.in (Vinod Madhav Joshi) Date: Tue, 8 May 2007 11:01:24 +0530 Subject: [Live-devel] MPEG2 ps media information In-Reply-To: Message-ID: <000401c79132$1f11efd0$022a320a@telxsi.com> Yes i am able to play the file using vlc. but is there any way to track the problem. In "DESCRIBE" response the payload type is seen as 14 for MPA but while actual "sendto" call data is sent with payload type "dynamic" for audio only and not the video. -----Original Message----- From: live-devel-bounces at ns.live555.com [mailto:live-devel-bounces at ns.live555.com]On Behalf Of Ross Finlayson Sent: Tuesday, May 08, 2007 10:04 AM To: LIVE555 Streaming Media - development & use Subject: Re: [Live-devel] MPEG2 ps media information Are you able to play your stream using VLC as a client? (If so, then there is nothing wrong with your stream.) -- 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 May 7 22:32:23 2007 From: finlayson at live555.com (Ross Finlayson) Date: Tue, 8 May 2007 01:32:23 -0400 Subject: [Live-devel] MPEG2 ps media information In-Reply-To: <000401c79132$1f11efd0$022a320a@telxsi.com> References: <000401c79132$1f11efd0$022a320a@telxsi.com> Message-ID: >Yes i am able to play the file using vlc. > but is there any way to track the problem. There is no problem! If you are able to play your stream using VLC, then the stream is correct. (But apparently you are not examining it correctly.) -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From opera at kth.se Tue May 8 01:37:46 2007 From: opera at kth.se (=?ISO-8859-1?Q?Gustaf_R=E4ntil=E4?=) Date: Tue, 08 May 2007 10:37:46 +0200 Subject: [Live-devel] please help me ! In-Reply-To: <122019.88631.qm@web50407.mail.re2.yahoo.com> References: <122019.88631.qm@web50407.mail.re2.yahoo.com> Message-ID: <464036DA.70102@kth.se> Hoang Nguyen Vi Cam Violon wrote: > */Ross Finlayson /* wrote: > > >When I build the lab as above, The client always show the error > >"Unable to determine our source address. This computer has an > >invalid IP address : 0x0" > > That error usualy means that IP multicast is not configured properly > on your OS. > > Also, note that the IP addresses in a "rtsp://" URLs is the IP > address of the *server*, not the client. > -- > > 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 > > > I'm just a beginner. I really don't understand that why we need an IP > multicast here. > As I understand : > - I have a RTSP (live555) server at (192.168.27.73) and it listen > on all interfaces (0.0.0.0:8554). > - I have a RTSP client (VLC) at (192.168.27.235) and request for > the media on server : rtsp://192.168.27.73:8554/cow.mpg > As above : the server and client must see each other. And in the log, > client has contacted with sever, and sent the SETUP & PLAY commands. > But the stream hasn't been transported. Client sent TEARDOWN after 10s > because it didn't receive any data. > Both of them show error : "Unable to determine our source address. > This computer has an invalid IP address : 0x0". > > Please help me to find out my error. > > Thank you very much, > Cam Hoang. > > > Sincerely, > Cam Hoang > > ------------------------------------------------------------------------ > Ahhh...imagining that irresistible "new car" smell? > Check out new cars at Yahoo! Autos. > > > ------------------------------------------------------------------------ > > _______________________________________________ > live-devel mailing list > live-devel at lists.live555.com > http://lists.live555.com/mailman/listinfo/live-devel > Well, It's hard to know if it's your fault, or liveMedia's (both are very reasonable), but a temporary solution would be to force liveMedia only to listen on your IP and not 0.0.0.0. To fix this, edit the file groupsock/GroupsockHelper.cpp. Around line 34 you have definitions for what IP to listen on. INADDR_ANY is the default (0.0.0.0). Change INADDR_ANY to 1226549440 which is your server's IP number. Gustaf From dweber at robotics.net Tue May 8 03:45:24 2007 From: dweber at robotics.net (Dan Weber) Date: Tue, 8 May 2007 06:45:24 -0400 Subject: [Live-devel] Multiple Payload Types on RTP (DTMF Support) In-Reply-To: References: <20070507205417.GA32374@Barney.robotics.net> Message-ID: <20070508104524.GA8484@Barney.robotics.net> I'm considering implementing it myself. Is there any recommended strategy I should take? I will make the patches available afterward. Dan On Mon, May 07, 2007 at 07:54:31PM -0400, Ross Finlayson wrote: > >Is there anyway to have the rtp stack accept multiple payload types > >for DTMF (rfc2833) and Audio? > > No, not right now. This is on my 'to do list', however. > -- > > 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 vinodjoshi at tataelxsi.co.in Tue May 8 05:07:05 2007 From: vinodjoshi at tataelxsi.co.in (Vinod Madhav Joshi) Date: Tue, 8 May 2007 17:37:05 +0530 Subject: [Live-devel] MPEG2 ps media information In-Reply-To: Message-ID: <000401c79169$65d4d8b0$022a320a@telxsi.com> Hi, I know there had been lot of discussion on this issue. But still please anyone could get insight on this. I am attaching the the "GroupsockHelper.cpp" where i dumped the RTP data to RTPDATA.txt please someone compile source with this file. For every MPEG2 file i am getting the same kind of output without Audio payload (14) Please you check with MPEG2 TS it will dump payload type 33 which is correct. But for only MPEG Audio i am getting this problem. Please check the output with mp3 file also. Thanking you. -----Original Message----- From: live-devel-bounces at ns.live555.com [mailto:live-devel-bounces at ns.live555.com]On Behalf Of Ross Finlayson Sent: Tuesday, May 08, 2007 11:02 AM To: LIVE555 Streaming Media - development & use Subject: Re: [Live-devel] MPEG2 ps media information >Yes i am able to play the file using vlc. > but is there any way to track the problem. There is no problem! If you are able to play your stream using VLC, then the stream is correct. (But apparently you are not examining it correctly.) -- 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 -------------- A non-text attachment was scrubbed... Name: GroupsockHelper.cpp Type: application/octet-stream Size: 26352 bytes Desc: not available Url : http://lists.live555.com/pipermail/live-devel/attachments/20070508/085ee53b/attachment-0001.obj From dweber at robotics.net Tue May 8 05:57:31 2007 From: dweber at robotics.net (Dan Weber) Date: Tue, 8 May 2007 08:57:31 -0400 Subject: [Live-devel] Multiple Payload Types on RTP (DTMF Support) In-Reply-To: <20070508104524.GA8484@Barney.robotics.net> References: <20070507205417.GA32374@Barney.robotics.net> <20070508104524.GA8484@Barney.robotics.net> Message-ID: <20070508125731.GA9579@Barney.robotics.net> Here is my current course of plan for implementation. Add an additional getNextFrame function to the RTP hierarchy... it will have an additional parameter for the payload type. The current getNextFrame will be modified to point to the new function with the payload type being the default as set on construction. An additional function will allow you to associate payload types with Media input sources will be added. For RTPSinks, buildAndPack functions will have an additional parameter for payload type. I've had some questions if I should reuse the same jitter/reordering buffer implementation or associate a new one for each payload type. For rfc2833 dtmf, it should reuse the same timestamp calculations, so it has made me wonder if I should reuse the jitter buffer. Since rfc2833 uses its own distinct timestamps and incremented sequence numbers different from the audio stream, I think there should be a jitter buffer for each payload type. Dan On Tue, May 08, 2007 at 06:45:24AM -0400, Dan Weber wrote: > > I'm considering implementing it myself. Is there any recommended strategy I should take? > I will make the patches available afterward. > > Dan > > On Mon, May 07, 2007 at 07:54:31PM -0400, Ross Finlayson wrote: > > >Is there anyway to have the rtp stack accept multiple payload types > > >for DTMF (rfc2833) and Audio? > > > > No, not right now. This is on my 'to do list', however. > > -- > > > > 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 > _______________________________________________ > live-devel mailing list > live-devel at lists.live555.com > http://lists.live555.com/mailman/listinfo/live-devel From yongliu at cs.uit.no Tue May 8 06:04:05 2007 From: yongliu at cs.uit.no (yongliu) Date: Tue, 8 May 2007 15:04:05 +0200 Subject: [Live-devel] preblem about udp replay Message-ID: <009f01c79171$5bad1430$b112f281@yongliu> I try udp replay in the test directory. I write a client with ffmpeg and send stream packets to udpserver. It does not work. I wonder what's the frame format Where can I get some information about it.. But ts streams outputed by VLC makes udp server work. Has someone managed to do live replay. Best Regards Yong -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.live555.com/pipermail/live-devel/attachments/20070508/87a37c85/attachment.html From finlayson at live555.com Tue May 8 09:48:09 2007 From: finlayson at live555.com (Ross Finlayson) Date: Tue, 8 May 2007 12:48:09 -0400 Subject: [Live-devel] Multiple Payload Types on RTP (DTMF Support) In-Reply-To: <20070508104524.GA8484@Barney.robotics.net> References: <20070507205417.GA32374@Barney.robotics.net> <20070508104524.GA8484@Barney.robotics.net> Message-ID: FYI, the way we will be implementing this (In the released "LIVE555 Streaming Media" code) will be to update the "RTPInterface" and "MultiFramedRTPSource" classes to handle the reception of more than one RTP payload type on the same network interface (and demultiplexing to the appropriate "RTPSource" object, based on the RTP payload type code). Also, we'll update the "MediaSession" code to recognize and handle more than one payload format code in a SDP "m=" line. Then, specifically for DTMF, we'll define and implement new "DTMFRTPSource" and "DTMFRTPSink" classes. (I.e., DTMF will use the existing source->sink mechanism, without change.) -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From finlayson at live555.com Tue May 8 09:49:57 2007 From: finlayson at live555.com (Ross Finlayson) Date: Tue, 8 May 2007 12:49:57 -0400 Subject: [Live-devel] preblem about udp replay In-Reply-To: <009f01c79171$5bad1430$b112f281@yongliu> References: <009f01c79171$5bad1430$b112f281@yongliu> Message-ID: >I try udp replay in the test directory. Do you mean the "testRelay" (not 'replay') demo application? Remember, You Have Complete Source Code. -- 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/20070508/728edfd6/attachment.html From pcg at agathongroup.com Tue May 8 10:39:00 2007 From: pcg at agathongroup.com (peter green) Date: Tue, 8 May 2007 11:39:00 -0600 Subject: [Live-devel] openrtsp, ffmpeg, and poor H.261 video In-Reply-To: <20070403231934.GA29131@agathongroup.com> References: <20070403231934.GA29131@agathongroup.com> Message-ID: <20070508173900.GW32257@agathongroup.com> Hello again, I'm including the text from my original post to this list in hopes that there might be an answer for what I'm seeing. In addition, I'd like to play the raw H.261 stream that openRTSP outputs to see if the problem lies in the stuff openRTSP is reading/writing or if the problem is with ffmpeg. But I can't find a player that will deal with a raw H.261 stream. Any ideas on any of this? Thanks for the help! /pg -- Peter Green : Agathon Group : pcg at agathongroup.com * peter green [070403 17:21]: > 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 > > _______________________________________________ > live-devel mailing list > live-devel at lists.live555.com > http://lists.live555.com/mailman/listinfo/live-devel From dweber at robotics.net Tue May 8 11:55:08 2007 From: dweber at robotics.net (Dan Weber) Date: Tue, 8 May 2007 14:55:08 -0400 Subject: [Live-devel] Multiple Payload Types on RTP (DTMF Support) In-Reply-To: References: <20070507205417.GA32374@Barney.robotics.net> <20070508104524.GA8484@Barney.robotics.net> Message-ID: <20070508185507.GB8484@Barney.robotics.net> What's the ETA on this? Dan On Tue, May 08, 2007 at 12:48:09PM -0400, Ross Finlayson wrote: > FYI, the way we will be implementing this (In the released "LIVE555 > Streaming Media" code) will be to update the "RTPInterface" and > "MultiFramedRTPSource" classes to handle the reception of more than > one RTP payload type on the same network interface (and > demultiplexing to the appropriate "RTPSource" object, based on the > RTP payload type code). Also, we'll update the "MediaSession" code > to recognize and handle more than one payload format code in a SDP > "m=" line. > > Then, specifically for DTMF, we'll define and implement new > "DTMFRTPSource" and "DTMFRTPSink" classes. > > (I.e., DTMF will use the existing source->sink mechanism, without change.) > -- > > 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 donghoon.vanuytsel at esaturnus.com Tue May 8 12:05:11 2007 From: donghoon.vanuytsel at esaturnus.com (Dong Hoon Van Uytsel) Date: Tue, 8 May 2007 21:05:11 +0200 Subject: [Live-devel] raw video over rtp In-Reply-To: References: <20070507205417.GA32374@Barney.robotics.net> Message-ID: Op 8-mei-07, om 01:57 heeft Ross Finlayson het volgende geschreven: >> Hello all, >> >> I'm interested in sending raw video over RTP using the liveMedia lib, >> following RFC4176. Has anyone done this before? Any recommendations? >> At first sight it looks reasonable to subclass the SimpleRTPSink and >> SimpleRTPSource classes for this purpose. > > Actually, you would probably subclass "MultiFramedRTPSink/Source" > (but in a way similar to the way that "BasicRTPSink/Source" is > defined). Thanks, I'll pursue that direction then. (You probably meant SimpleRTPSink.) Dong Hoon Van Uytsel From silencertr at gmail.com Tue May 8 12:30:08 2007 From: silencertr at gmail.com (Cihat Goktug Gurler) Date: Tue, 8 May 2007 22:30:08 +0300 Subject: [Live-devel] MultiFramedRTPSource Message-ID: Hi, I'm developing a client application in MS Visual Studio 2005. I compile the source in release mode. When I run it from my desktop and a laptop everything is fine. But when I run it in another laptop which is a little less powerful (slower CPU) I receive the following error. MultiFramedRTPSource::doGetNextFrame1(): The total received frame size exceeds the client's buffer size (0). 10 bytes of trailing data will be dropped! ... MultiFramedRTPSource::doGetNextFrame1(): The total received frame size exceeds the client's buffer size (0). 1434 bytes of trailing data will be dropped I searched through the code and the error is about the fSavedMaxSize field of MultiFramedRTPSource class. Is there a way to explicitly set this number? There is also another field related to this which is fMaxSize. Does anyone has an opinion? Thanks in advance, Goktug Gurler From donghoon.vanuytsel at esaturnus.com Tue May 8 14:33:16 2007 From: donghoon.vanuytsel at esaturnus.com (Dong Hoon Van Uytsel) Date: Tue, 8 May 2007 23:33:16 +0200 Subject: [Live-devel] MultiFramedRTPSource In-Reply-To: References: Message-ID: <4FC40FD7-6C6D-4694-9485-1E5173B058C7@esaturnus.com> Someone correct me if i'm wrong. It seems to me that you have to dimension the input buffer of the sink (at least the size of the largest frame) that calls MultiFramedRTPSource::getNextFrame(). Op 8-mei-07, om 21:30 heeft Cihat Goktug Gurler het volgende geschreven: > Hi, > > I'm developing a client application in MS Visual Studio 2005. I > compile the source in release mode. When I run it from my desktop and > a laptop everything is fine. But when I run it in another laptop which > is a little less powerful (slower CPU) I receive the following error. > > > MultiFramedRTPSource::doGetNextFrame1(): The total received frame size > exceeds the client's buffer size (0). 10 bytes of trailing data will > be dropped! > ... > MultiFramedRTPSource::doGetNextFrame1(): The total received frame size > exceeds the client's buffer size (0). 1434 bytes of trailing data > will be dropped > > I searched through the code and the error is about the fSavedMaxSize > field of MultiFramedRTPSource class. Is there a way to explicitly set > this number? > > There is also another field related to this which is fMaxSize. > > Does anyone has an opinion? > > Thanks in advance, > > Goktug Gurler > _______________________________________________ > live-devel mailing list > live-devel at lists.live555.com > http://lists.live555.com/mailman/listinfo/live-devel From silencertr at gmail.com Tue May 8 14:59:09 2007 From: silencertr at gmail.com (Cihat Goktug Gurler) Date: Wed, 9 May 2007 00:59:09 +0300 Subject: [Live-devel] MultiFramedRTPSource In-Reply-To: <4FC40FD7-6C6D-4694-9485-1E5173B058C7@esaturnus.com> References: <4FC40FD7-6C6D-4694-9485-1E5173B058C7@esaturnus.com> Message-ID: Hi, I believe so but I'm not sure how I can do that. Goktug On 5/9/07, Dong Hoon Van Uytsel wrote: > Someone correct me if i'm wrong. It seems to me that you have to > dimension the input buffer of the sink (at least the size of the > largest frame) that calls MultiFramedRTPSource::getNextFrame(). > > > Op 8-mei-07, om 21:30 heeft Cihat Goktug Gurler het volgende geschreven: > > > Hi, > > > > I'm developing a client application in MS Visual Studio 2005. I > > compile the source in release mode. When I run it from my desktop and > > a laptop everything is fine. But when I run it in another laptop which > > is a little less powerful (slower CPU) I receive the following error. > > > > > > MultiFramedRTPSource::doGetNextFrame1(): The total received frame size > > exceeds the client's buffer size (0). 10 bytes of trailing data will > > be dropped! > > ... > > MultiFramedRTPSource::doGetNextFrame1(): The total received frame size > > exceeds the client's buffer size (0). 1434 bytes of trailing data > > will be dropped > > > > I searched through the code and the error is about the fSavedMaxSize > > field of MultiFramedRTPSource class. Is there a way to explicitly set > > this number? > > > > There is also another field related to this which is fMaxSize. > > > > Does anyone has an opinion? > > > > Thanks in advance, > > > > Goktug Gurler > > _______________________________________________ > > live-devel mailing list > > live-devel at lists.live555.com > > http://lists.live555.com/mailman/listinfo/live-devel > > _______________________________________________ > live-devel mailing list > live-devel at lists.live555.com > http://lists.live555.com/mailman/listinfo/live-devel > From xcsmith at rockwellcollins.com Tue May 8 16:30:10 2007 From: xcsmith at rockwellcollins.com (xcsmith at rockwellcollins.com) Date: Tue, 8 May 2007 18:30:10 -0500 Subject: [Live-devel] RTSP Server Response Codes Message-ID: Ross, (You know this, but I'm writing it down as a basis for my question..) The LIVE555 RTSP Server returns the following response codes: 200 OK 400 Bad Request 405 Method Not Allowed 404 Stream Not Found 461 Unsupported Transport Each time any of the 400 "class" error codes is returned, fSessionIsActive is set to False and the session is deleted. Q: What is the point of having all kinds of fancy response codes available if all errors are unrecoverable and the session is terminated as a result? If I am watching my movie, and decide in the middle that I want to send SET_PARAMETER to the server, and the server says "405" back to me, why should that kill my movie? I can see why 404 and 461 could terminate the session, because the server would always be in the INIT state when returning these error codes. But 400 and 405 could be returned in any state. Thank you for your thoughts on this. xochitl From finlayson at live555.com Tue May 8 20:23:15 2007 From: finlayson at live555.com (Ross Finlayson) Date: Tue, 8 May 2007 23:23:15 -0400 Subject: [Live-devel] Multiple Payload Types on RTP (DTMF Support) In-Reply-To: <20070508185507.GB8484@Barney.robotics.net> References: <20070507205417.GA32374@Barney.robotics.net> <20070508104524.GA8484@Barney.robotics.net> <20070508185507.GB8484@Barney.robotics.net> Message-ID: >What's the ETA on this? I don't know - but perhaps a couple of months. -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From finlayson at live555.com Tue May 8 20:28:35 2007 From: finlayson at live555.com (Ross Finlayson) Date: Tue, 8 May 2007 23:28:35 -0400 Subject: [Live-devel] RTSP Server Response Codes In-Reply-To: References: Message-ID: >I can see why 404 and 461 could terminate the >session, because the server would always be in the INIT state when >returning these error codes. But 400 and 405 could be returned in any >state. OK, this will be fixed in the next release of the software. -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From violonvc2002 at yahoo.com Wed May 9 00:07:12 2007 From: violonvc2002 at yahoo.com (Hoang Nguyen Vi Cam Violon) Date: Wed, 9 May 2007 00:07:12 -0700 (PDT) Subject: [Live-devel] please help me ! In-Reply-To: <464036DA.70102@kth.se> Message-ID: <541067.95972.qm@web50412.mail.re2.yahoo.com> Well, It's hard to know if it's your fault, or liveMedia's (both are very reasonable), but a temporary solution would be to force liveMedia only to listen on your IP and not 0.0.0.0. To fix this, edit the file groupsock/GroupsockHelper.cpp. Around line 34 you have definitions for what IP to listen on. INADDR_ANY is the default (0.0.0.0). Change INADDR_ANY to 1226549440 which is your server's IP number. Gustaf _______________________________________________ live-devel mailing list live-devel at lists.live555.com http://lists.live555.com/mailman/listinfo/live-devel Hi, I has edited groupsock/GroupsockHelper.cpp as you said. The server now listens on 192.178.27.73 (not 0.0.0.0). But when client requests the movie, nothing to play. Both show error : "Unable to determine our source address. This computer has an invalid IP address : 0x0". Please help me. Cam Hoang. Sincerely, Cam Hoang --------------------------------- 8:00? 8:25? 8:40? Find a flick in no time with theYahoo! Search movie showtime shortcut. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.live555.com/pipermail/live-devel/attachments/20070509/e85234bf/attachment.html From donghoon.vanuytsel at esaturnus.com Wed May 9 07:20:33 2007 From: donghoon.vanuytsel at esaturnus.com (Dong Hoon Van Uytsel) Date: Wed, 09 May 2007 16:20:33 +0200 Subject: [Live-devel] raw video over rtp In-Reply-To: References: <20070507205417.GA32374@Barney.robotics.net> Message-ID: <1178720433.3366.54.camel@localhost> On Mon, 2007-05-07 at 19:57 -0400, Ross Finlayson wrote: > >Hello all, > > > >I'm interested in sending raw video over RTP using the liveMedia lib, > >following RFC4176. Has anyone done this before? Any recommendations? > >At first sight it looks reasonable to subclass the SimpleRTPSink and > >SimpleRTPSource classes for this purpose. > > Actually, you would probably subclass "MultiFramedRTPSink/Source" > (but in a way similar to the way that "BasicRTPSink/Source" is > defined). I am experiencing quite a high percentage of UDP packet loss (about 10%). Are there any tweaks in the liveMedia lib that I may have overlooked? Thanks! Dong Hoon Van Uytsel From ilya77 at gmail.com Wed May 9 10:15:51 2007 From: ilya77 at gmail.com (ilya77 at gmail.com) Date: Wed, 9 May 2007 20:15:51 +0300 Subject: [Live-devel] raw video over rtp In-Reply-To: <1178720433.3366.54.camel@localhost> References: <20070507205417.GA32374@Barney.robotics.net> <1178720433.3366.54.camel@localhost> Message-ID: Actually we are having the same problem with MPEG-2 TS video. I would love to hear if you manage to solve it. By the way - Elecard's evaluation server overcomes this problem somehow... On 5/9/07, Dong Hoon Van Uytsel wrote: > > On Mon, 2007-05-07 at 19:57 -0400, Ross Finlayson wrote: > > >Hello all, > > > > > >I'm interested in sending raw video over RTP using the liveMedia lib, > > >following RFC4176. Has anyone done this before? Any recommendations? > > >At first sight it looks reasonable to subclass the SimpleRTPSink and > > >SimpleRTPSource classes for this purpose. > > > > Actually, you would probably subclass "MultiFramedRTPSink/Source" > > (but in a way similar to the way that "BasicRTPSink/Source" is > > defined). > > I am experiencing quite a high percentage of UDP packet loss (about > 10%). Are there any tweaks in the liveMedia lib that I may have > overlooked? > > Thanks! > Dong Hoon Van Uytsel > > _______________________________________________ > 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/20070509/23bc8693/attachment.html From finlayson at live555.com Wed May 9 10:56:06 2007 From: finlayson at live555.com (Ross Finlayson) Date: Wed, 9 May 2007 13:56:06 -0400 Subject: [Live-devel] raw video over rtp In-Reply-To: <1178720433.3366.54.camel@localhost> References: <20070507205417.GA32374@Barney.robotics.net> <1178720433.3366.54.camel@localhost> Message-ID: >On Mon, 2007-05-07 at 19:57 -0400, Ross Finlayson wrote: >> >Hello all, >> > >> >I'm interested in sending raw video over RTP using the liveMedia lib, >> >following RFC4176. Has anyone done this before? Any recommendations? >> >At first sight it looks reasonable to subclass the SimpleRTPSink and >> >SimpleRTPSource classes for this purpose. >> >> Actually, you would probably subclass "MultiFramedRTPSink/Source" >> (but in a way similar to the way that "BasicRTPSink/Source" is >> defined). > >I am experiencing quite a high percentage of UDP packet loss (about >10%). Are there any tweaks in the liveMedia lib that I may have >overlooked? At the sending end, make sure you're sending out your packets correctly spaced apart. In particular, make sure that you're setting "fDurationInMicroseconds" correctly in whatever data source you're feeding into your "MultiFramedRTPSink" subclass. At the receiving end, you can try calling "increaseReceiveBufferTo()" to increase the OS's internal UDP reception buffer beyond it's usual value (50 kBytes). (See the VLC code ("live555.cpp") for an example of this.) If you're still seeing packet loss despite this, then it's probably occurring on the network. -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From donghoon.vanuytsel at esaturnus.com Thu May 10 00:57:39 2007 From: donghoon.vanuytsel at esaturnus.com (Dong Hoon Van Uytsel) Date: Thu, 10 May 2007 09:57:39 +0200 Subject: [Live-devel] raw video over rtp In-Reply-To: References: <20070507205417.GA32374@Barney.robotics.net> <1178720433.3366.54.camel@localhost> Message-ID: <1178783859.3366.70.camel@localhost> Hello Ross, On Wed, 2007-05-09 at 13:56 -0400, Ross Finlayson wrote: > >On Mon, 2007-05-07 at 19:57 -0400, Ross Finlayson wrote: [...] > >I am experiencing quite a high percentage of UDP packet loss (about > >10%). Are there any tweaks in the liveMedia lib that I may have > >overlooked? > > At the sending end, make sure you're sending out your packets > correctly spaced apart. In particular, make sure that you're setting > "fDurationInMicroseconds" correctly in whatever data source you're > feeding into your "MultiFramedRTPSink" subclass. > > At the receiving end, you can try calling "increaseReceiveBufferTo()" > to increase the OS's internal UDP reception buffer beyond it's usual > value (50 kBytes). (See the VLC code ("live555.cpp") for an example > of this.) This was apparently the reason. Setting it to 512kB apparently solved it. Thanks for your hint! From rmpg2001 at gmail.com Thu May 10 03:00:22 2007 From: rmpg2001 at gmail.com (Ramon Martin de Pozuelo) Date: Thu, 10 May 2007 12:00:22 +0200 Subject: [Live-devel] Error 10054 Message-ID: <389189e20705100300n56c34ffdj960554ab38095a36@mail.gmail.com> Hi all, My application was sending H.264 video on broadcast when I received this error: bytesRead=-1 / err=10054 and then it stops. Someone could tell me what's this error meaning and how could I solve it? Thanks in advance, Ramon -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.live555.com/pipermail/live-devel/attachments/20070510/05f4a3f4/attachment.html From jayfurmanek at gmail.com Thu May 10 16:13:41 2007 From: jayfurmanek at gmail.com (Jay Furmanek) Date: Thu, 10 May 2007 18:13:41 -0500 Subject: [Live-devel] bytestreamFileSource, doGetNextFrame, and events In-Reply-To: References: <258d83300705021213l21eebc16n6f97b5a4a5ec5292@mail.gmail.com> <258d83300705021326u1813524dn89f7e029909b6013@mail.gmail.com> <258d83300705021432t3e7599a8v6d71e69efb5f176@mail.gmail.com> Message-ID: <258d83300705101613m43c5975cw9d03ab2859e1176f@mail.gmail.com> Hi all, I'm seeing a couple odd problems when streaming files. I wanted to see if maybe anyone has seem something similar before. I'm streaming h.264 video from a file that just has 3-byte delimiters btw NAL units (AnnexB). I wrote a Framer and custom H264ByteStreamFileSource objects to get the data in one NALu at a time. The custom FileSource object reads until it hits a delimiter, and the framer keeps track of access units end points. oddity 1: sometime I get a bye packet that will cut off the stream midway. I can most of the time get the whole file written back out using openRTSP, but often it will stop early - not sure why. (it's a little more reliable if it use openRTSP with the TCP option) oddity 2: I tried playing the stream with VLC and while it decoded and displayed the first few frame, I got a bunch of 'late picture skipped' errors after that it was stuck displaying the first frame. Has anyone seen behaviour like this before? Could it be related to how I'm setting the timestamps? Thanks! -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.live555.com/pipermail/live-devel/attachments/20070510/f375749e/attachment-0001.html From finlayson at live555.com Thu May 10 20:18:12 2007 From: finlayson at live555.com (Ross Finlayson) Date: Thu, 10 May 2007 23:18:12 -0400 Subject: [Live-devel] bytestreamFileSource, doGetNextFrame, and events In-Reply-To: <258d83300705101613m43c5975cw9d03ab2859e1176f@mail.gmail.com> References: <258d83300705021213l21eebc16n6f97b5a4a5ec5292@mail.gmail.com> <258d83300705021326u1813524dn89f7e029909b6013@mail.gmail.com> <258d83300705021432t3e7599a8v6d71e69efb5f176@mail.gmail.com> <258d83300705101613m43c5975cw9d03ab2859e1176f@mail.gmail.com> Message-ID: >oddity 1: sometime I get a bye packet that will cut off the stream >midway. I can most of the time get the whole file written back out >using openRTSP, but often it will stop early - not sure why. (it's a >little more reliable if it use openRTSP with the TCP option) "openRTSP" should send back a RTCP "BYE" packet only after it thinks it has reached the end of the stream - and this can happen only if you specify the 'end time' of the stream, either explicitly (using the "-e " option to openRTSP), or implicitly (by an end time appearing in the SDP "t=" line). So if you're not specifying an end time for your stream, I don't see how your server can be getting a RTCP "BYE" packet. > >oddity 2: I tried playing the stream with VLC and while it decoded >and displayed the first few frame, I got a bunch of 'late picture >skipped' errors after that it was stuck displaying the first frame. Are you setting "fPresentationTime" and "fDurationInMicroseconds" correctly in your 'framer' class? -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From rajeshkumar.r at imimobile.com Fri May 11 01:58:50 2007 From: rajeshkumar.r at imimobile.com (rajesh) Date: Fri, 11 May 2007 14:28:50 +0530 Subject: [Live-devel] Transfering the Multimedia Content from one Port to different Port Message-ID: <0fba01c793aa$98289bb0$6902000a@imidomain.com> ----------------------------------------------------------------------OPENRTSP-------LOG--------------------------------------------------------------------- Created receiver for "video/MP4V-ES" subsession (client ports 6000-6001) Created receiver for "audio/AMR" subsession (client ports 6002-6003) Setup "video/MP4V-ES" subsession (client ports 6000-6001) Setup "audio/AMR" subsession (client ports 6002-6003) Created output file: "video-MP4V-ES-1" Created output file: "audio-AMR-2" Started playing session Receiving streamed data (for up to 61.400002 seconds)... ----------------------------------------------------------------------------------LOG END--------------------------------------------------------- using openRTSP client ,I am able to recv the multimedia streaming on 6000 and 60002 port. I want to transfer the same data to different port say 3000-3002. 3000 and 3002 port are being used by Application that will transfer the same content to the mobile. plz suggest me how to implement. Thanks and Regards Rajesh Kumar Software Enginner Cont-9908400027 NOTE: mobile not in use in office time. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.live555.com/pipermail/live-devel/attachments/20070511/2da922d4/attachment.html From julian.lamberty at mytum.de Fri May 11 05:45:28 2007 From: julian.lamberty at mytum.de (Julian Lamberty) Date: Fri, 11 May 2007 14:45:28 +0200 Subject: [Live-devel] IP_ADD_MEMBERSHIP error Message-ID: <46446568.9020703@mytum.de> Hi! I'm trying to open a stream from vobStreamer with VLC, which uses live555's libs. But everytime I get the following error: Sending request: OPTIONS rtsp://192.168.2.46/vobStream RTSP/1.0 CSeq: 1 User-Agent: VLC media player (LIVE555 Streaming Media v2007.02.20) Received OPTIONS response: RTSP/1.0 200 OK CSeq: 1 Date: Fri, May 11 2007 14:12:10 GMT Public: OPTIONS, DESCRIBE, SETUP, TEARDOWN, PLAY, PAUSE Sending request: DESCRIBE rtsp://192.168.2.46/vobStream RTSP/1.0 CSeq: 2 Accept: application/sdp User-Agent: VLC media player (LIVE555 Streaming Media v2007.02.20) Received DESCRIBE response: RTSP/1.0 200 OK CSeq: 2 Date: Fri, May 11 2007 14:12:10 GMT Content-Base: rtsp://192.168.2.46/vobStream/ Content-Type: application/sdp Content-Length: 453 Need to read 453 extra bytes Read 453 extra bytes: v=0 o=- 1178890144653306 1 IN IP4 192.168.2.46 s=Session streamed by "vobStreamer" i=/mnt/VIDEO_TS/VTS_01_1.VOB t=0 0 a=tool:LIVE555 Streaming Media v2007.02.20 a=type:broadcast a=control:* a=source-filter: incl IN IP4 * 192.168.2.46 a=rtcp-unicast: reflection a=range:npt=0- a=x-qt-text-nam:Session streamed by "vobStreamer" a=x-qt-text-inf:/mnt/VIDEO_TS/VTS_01_1.VOB m=video 8888 RTP/AVP 32 c=IN IP4 232.34.164.65/255 a=control:track1 14:28:06 Groupsock(5: 232.34.164.65, 8888, SSM source: 192.168.2.46): failed to join group: setsockopt(IP_ADD_MEMBERSHIP) error: No such device 14:28:06 Groupsock(6: 232.34.164.65, 8889, SSM source: 192.168.2.46): failed to join group: setsockopt(IP_ADD_MEMBERSHIP) error: No such device And VLC doesn't display anything. Same thing if I try to access it with ffmpeg. What's wrong? 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/20070511/1aae6673/attachment.bin From finlayson at live555.com Fri May 11 06:25:59 2007 From: finlayson at live555.com (Ross Finlayson) Date: Fri, 11 May 2007 09:25:59 -0400 Subject: [Live-devel] IP_ADD_MEMBERSHIP error In-Reply-To: <46446568.9020703@mytum.de> References: <46446568.9020703@mytum.de> Message-ID: >14:28:06 Groupsock(5: 232.34.164.65, 8888, SSM source: >192.168.2.46): failed to join group: setsockopt(IP_ADD_MEMBERSHIP) >error: No such device >14:28:06 Groupsock(6: 232.34.164.65, 8889, SSM source: >192.168.2.46): failed to join group: setsockopt(IP_ADD_MEMBERSHIP) >error: No such device > >And VLC doesn't display anything. Same thing if I try to access it >with ffmpeg. What's wrong? You don't have multicast configured properly on your client computer. (Make sure you have a route for 224.0.0/4 ) Also, of course, you will need to have multicast connectivity between your server and client. (If you're on a LAN then that should not be an issue.) -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From finlayson at live555.com Fri May 11 06:54:36 2007 From: finlayson at live555.com (Ross Finlayson) Date: Fri, 11 May 2007 09:54:36 -0400 Subject: [Live-devel] Transfering the Multimedia Content from one Port to different Port In-Reply-To: <0fba01c793aa$98289bb0$6902000a@imidomain.com> References: <0fba01c793aa$98289bb0$6902000a@imidomain.com> Message-ID: >using openRTSP client ,I am able to recv the multimedia streaming on >6000 and 60002 port. >I want to transfer the same data to different port say 3000-3002. >3000 and 3002 port are being used by Application that will transfer >the same content to the mobile. You can do this using openRTSP's "-p " option. (See the documentation.) -- 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/20070511/8ef109e0/attachment.html From jayfurmanek at gmail.com Fri May 11 09:55:32 2007 From: jayfurmanek at gmail.com (Jay Furmanek) Date: Fri, 11 May 2007 11:55:32 -0500 Subject: [Live-devel] bytestreamFileSource, doGetNextFrame, and events In-Reply-To: References: <258d83300705021213l21eebc16n6f97b5a4a5ec5292@mail.gmail.com> <258d83300705021326u1813524dn89f7e029909b6013@mail.gmail.com> <258d83300705021432t3e7599a8v6d71e69efb5f176@mail.gmail.com> <258d83300705101613m43c5975cw9d03ab2859e1176f@mail.gmail.com> Message-ID: <258d83300705110955o57d6399cod3270af1bae622a5@mail.gmail.com> > > >> > >>oddity 2: I tried playing the stream with VLC and while it decoded > >>and displayed the first few frame, I got a bunch of 'late picture > >>skipped' errors after that it was stuck displaying the first frame. > > > >Are you setting "fPresentationTime" and "fDurationInMicroseconds" > >correctly in your 'framer' class? > ->- I'm thinking that's my culprit -setting the timing wrong. For the presentationTime, I just stamp the current NAL unit when I read it in with the current time from gettimeofday(), basically as the transmission time. I'm not sure I know how the DurationInMicroseconds should be set. _______________________________________________ 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/20070511/b3496d98/attachment.html From jayfurmanek at gmail.com Fri May 11 10:55:24 2007 From: jayfurmanek at gmail.com (Jay Furmanek) Date: Fri, 11 May 2007 12:55:24 -0500 Subject: [Live-devel] bytestreamFileSource, doGetNextFrame, and events In-Reply-To: <258d83300705110955o57d6399cod3270af1bae622a5@mail.gmail.com> References: <258d83300705021213l21eebc16n6f97b5a4a5ec5292@mail.gmail.com> <258d83300705021326u1813524dn89f7e029909b6013@mail.gmail.com> <258d83300705021432t3e7599a8v6d71e69efb5f176@mail.gmail.com> <258d83300705101613m43c5975cw9d03ab2859e1176f@mail.gmail.com> <258d83300705110955o57d6399cod3270af1bae622a5@mail.gmail.com> Message-ID: <258d83300705111055x6a5986bcvfb6bbf60c4e02eb8@mail.gmail.com> You were right, Ross. I set the DurationInMS according to the framerate and it works now. Thanks for your help! On 5/11/07, Jay Furmanek wrote: > > >> > > >>oddity 2: I tried playing the stream with VLC and while it decoded > > >>and displayed the first few frame, I got a bunch of 'late picture > > >>skipped' errors after that it was stuck displaying the first frame. > > > > > >Are you setting "fPresentationTime" and "fDurationInMicroseconds" > > >correctly in your 'framer' class? > > ->- > > > I'm thinking that's my culprit -setting the timing wrong. For the > presentationTime, I just stamp the current NAL unit when I read it in with > the current time from gettimeofday(), basically as the transmission time. > > I'm not sure I know how the DurationInMicroseconds should be set. > _______________________________________________ > 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/20070511/e083adc2/attachment-0001.html From julian.lamberty at mytum.de Fri May 11 12:16:18 2007 From: julian.lamberty at mytum.de (Julian Lamberty) Date: Fri, 11 May 2007 21:16:18 +0200 Subject: [Live-devel] IP_ADD_MEMBERSHIP error In-Reply-To: References: <46446568.9020703@mytum.de> Message-ID: <4644C102.5080007@mytum.de> Ross Finlayson schrieb: >
>14:28:06 > Groupsock(5: 232.34.164.65, 8888, SSM source: >> 192.168.2.46): failed to join group: setsockopt(IP_ADD_MEMBERSHIP) >> error: No such device >> 14:28:06 Groupsock(6: 232.34.164.65, 8889, SSM source: 192.168.2.46): >> failed to join group: setsockopt(IP_ADD_MEMBERSHIP) error: No such >> device >> >> And VLC doesn't display anything. Same thing if I try to access it >> with ffmpeg. What's wrong? > > You don't have multicast configured properly on your client computer. > (Make sure you have a route for 224.0.0/4 ) > > Also, of course, you will need to have multicast connectivity between > your server and client. (If you're on a LAN then that should not be > an issue.) OK, that seems to work for VLC, but not for FFMPEG, I stillt get the same error there... (I'm on a LAN) -------------- 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/20070511/d8285146/attachment.bin From odjosc at free.fr Fri May 11 14:35:34 2007 From: odjosc at free.fr (Olivier DJIAN) Date: Fri, 11 May 2007 23:35:34 +0200 Subject: [Live-devel] RTSP source for VDR In-Reply-To: References: <1170082800.45be0bf0406e0@imp.free.fr> <1170168882.45bf5c3265b63@imp.free.fr> Message-ID: <200705112335.34115.odjosc@free.fr> Hi, Finally, I succeeded writing the MediaSink object and all seems to work fine. However, on an Athlon 1800+ computer, VDR consumes 100% CPU when plugin with liveMedia is used (RTSP source) and 3% if not (using a DVB PCI card source). I wonder how the "forever loop" works (e.g. env->taskScheduler().doEventLoop()) Does someone have suggestions to help me diagnose where in my liveMedia using there is some excessive cpu-consuming code (I don't make any video decoding nor encoding with liveMedia as VDR uses TS stream directly) ? Thanks for your help. Olivier. Le mardi 30 janvier 2007, Ross Finlayson a ?crit?: > > > I.e., you must write an appropriate "MediaSink" object to handle the > >> > >> incoming TS data. (However, if you plan to just store this in a > >> file, then you can use most of the "openRTSP" code as is. Or, you > >> can just run "openRTSP" with the "-v" option, to get the incoming TS > >> data written to 'stdout'.) > >> -- > > > >Unfortunately, it's not that easy because I'm only writing a plugin for > > VDR. > > Therefore, you're going to have to figure out how to write such a > 'plugin' that works with the "LIVE555 Streaming Media" event loop. > Because I don't know anything about how such a plugin works - in > particular, whether it has its own event loop (in which case you'd > need to somehow merge it with ours), or whether it has its own > thread, doing reads synchronously - I'm probably not going to be able > to help you any more with this. I suggest consulting an appropriate > mailing list for your VDR software. From dweber at robotics.net Fri May 11 15:44:40 2007 From: dweber at robotics.net (Dan Weber) Date: Fri, 11 May 2007 18:44:40 -0400 Subject: [Live-devel] Fails to reschedule getNextFrame(...,pt) Message-ID: <20070511224440.GA8891@Barney.robotics.net> Hi guys, Attached is a patch that adds multiple payload type support at the RTP Source level. I'm experiencing an issue after I get say DTMF pt 101 and it properly calls my dtmfsource's class afterGettingFunc, and then that rtpsource, seems to either A) stop listening for network input (although no bounces shown in ethereal) or B) fails to reschedule. My DTMFSource class also attached, properly calls FramedSource::afterGetting, this as well. There are two seperate SimpleRTPSinks on the same groupsock (one for audio and one for dtmf). So I'm confused, Does anybody know of an obvious answer to what could be the cause of the problem? Thanks, Dan -------------- next part -------------- Index: live/liveMedia/include/MultiFramedRTPSource.hh =================================================================== --- live.orig/liveMedia/include/MultiFramedRTPSource.hh 2007-05-08 16:10:07.000000000 -0400 +++ live/liveMedia/include/MultiFramedRTPSource.hh 2007-05-08 18:43:01.000000000 -0400 @@ -26,10 +26,64 @@ #include "RTPSource.hh" #endif +#include +#include "FramedSource.hh" + +struct MultiFramedRTPSourceInfo { + typedef void (afterGettingFunc)(void* clientData, unsigned frameSize, + unsigned numTruncatedBytes, + struct timeval presentationTime, + unsigned durationInMicroseconds); + + unsigned char rtpPayloadType; + unsigned char* fTo; + unsigned fMaxSize; + afterGettingFunc* fAfterGettingFunc; + void* fAfterGettingFuncClientData; + + MultiFramedRTPSourceInfo() {} + + MultiFramedRTPSourceInfo(unsigned char pt, + unsigned char* to, + unsigned maxSize, + afterGettingFunc* afterGettingFunc, + void* afterGettingFuncClientData) : + rtpPayloadType(pt), + fTo(to), + fMaxSize(maxSize), + fAfterGettingFunc(afterGettingFunc), + fAfterGettingFuncClientData(afterGettingFuncClientData) {} +}; + + class BufferedPacket; // forward class BufferedPacketFactory; // forward class MultiFramedRTPSource: public RTPSource { +public: + void getNextFrame(unsigned char* to, unsigned maxSize, + afterGettingFunc* afterGettingFunc, + void* afterGettingClientData, + onCloseFunc* onCloseFunc, + void* onCloseClientData) { + FramedSource::getNextFrame(to,maxSize,afterGettingFunc,afterGettingClientData, + onCloseFunc, onCloseClientData); + } + void getNextFrame(unsigned char* to, unsigned maxSize, + afterGettingFunc* afterGettingFunc, + void* afterGettingClientData, + onCloseFunc* onCloseFunc, + void* onCloseClientData, unsigned char rtpPayloadType) { + + mPayloadHash[rtpPayloadType] = MultiFramedRTPSourceInfo(rtpPayloadType, + to, + maxSize, + afterGettingFunc, + afterGettingClientData); + // Can't handle onClose for now + } + + protected: MultiFramedRTPSource(UsageEnvironment& env, Groupsock* RTPgs, unsigned char rtpPayloadFormat, @@ -50,6 +104,9 @@ protected: Boolean fCurrentPacketBeginsFrame; Boolean fCurrentPacketCompletesFrame; + std::map mPayloadHash; + unsigned char fAfterGettingPt; + protected: // redefined virtual functions: @@ -64,6 +121,19 @@ void reset(); void doGetNextFrame1(); + static void alternatePtAfterGetting(FramedSource* framedSource) { + MultiFramedRTPSource* fs = dynamic_cast(framedSource); + if (!fs) + throw; + MultiFramedRTPSourceInfo& info = fs->mPayloadHash[fs->fAfterGettingPt]; + if (info.fAfterGettingFunc) + (*info.fAfterGettingFunc)(info.fAfterGettingFuncClientData,fs->fFrameSize, + fs->fNumTruncatedBytes,fs->fPresentationTime, + fs->fDurationInMicroseconds); + fs->mPayloadHash.erase(fs->fAfterGettingPt); + fs->fAfterGettingPt = 0; + } + static void networkReadHandler(MultiFramedRTPSource* source, int /*mask*/); friend void networkReadHandler(MultiFramedRTPSource*, int); @@ -94,7 +164,7 @@ void assignMiscParams(unsigned short rtpSeqNo, unsigned rtpTimestamp, struct timeval presentationTime, Boolean hasBeenSyncedUsingRTCP, - Boolean rtpMarkerBit, struct timeval timeReceived); + Boolean rtpMarkerBit, struct timeval timeReceived, unsigned char rtpPayloadType); void skip(unsigned numBytes); // used to skip over an initial header void removePadding(unsigned numBytes); // used to remove trailing bytes void appendData(unsigned char* newData, unsigned numBytes); @@ -112,6 +182,7 @@ unsigned char* data() const { return &fBuf[fHead]; } unsigned dataSize() const { return fTail-fHead; } Boolean rtpMarkerBit() const { return fRTPMarkerBit; } + unsigned char rtpPayloadType() const { return fRTPPayloadType; } protected: virtual void reset(); @@ -138,6 +209,7 @@ Boolean fHasBeenSyncedUsingRTCP; Boolean fRTPMarkerBit; struct timeval fTimeReceived; + unsigned char fRTPPayloadType; }; // A 'factory' class for creating "BufferedPacket" objects. Index: live/liveMedia/MultiFramedRTPSource.cpp =================================================================== --- live.orig/liveMedia/MultiFramedRTPSource.cpp 2007-05-08 16:41:44.000000000 -0400 +++ live/liveMedia/MultiFramedRTPSource.cpp 2007-05-10 18:41:40.000000000 -0400 @@ -169,10 +169,20 @@ // The packet is usable. Deliver all or part of it to our caller: unsigned frameSize; - nextPacket->use(fTo, fMaxSize, frameSize, fNumTruncatedBytes, + if (nextPacket->rtpPayloadType() == rtpPayloadFormat()) { + nextPacket->use(fTo, fMaxSize, frameSize, fNumTruncatedBytes, fCurPacketRTPSeqNum, fCurPacketRTPTimestamp, fPresentationTime, fCurPacketHasBeenSynchronizedUsingRTCP, fCurPacketMarkerBit); + } else { + // This implies we have an alternate handler for this payload type + MultiFramedRTPSourceInfo& info = mPayloadHash[nextPacket->rtpPayloadType()]; + fAfterGettingPt = nextPacket->rtpPayloadType(); + nextPacket->use(info.fTo,info.fMaxSize,frameSize,fNumTruncatedBytes, + fCurPacketRTPSeqNum, fCurPacketRTPTimestamp, + fPresentationTime, fCurPacketHasBeenSynchronizedUsingRTCP, + fCurPacketMarkerBit); + } fFrameSize += frameSize; if (!nextPacket->hasUsableData()) { @@ -192,16 +202,33 @@ // Common case optimization: There are no more queued incoming packets, so this code will not get // executed again without having first returned to the event loop. Call our 'after getting' function // directly, because there's no risk of a long chain of recursion (and thus stack overflow): - afterGetting(this); + + if (nextPacket->rtpPayloadType() == rtpPayloadFormat()) { + afterGetting(this); + } else { + MultiFramedRTPSourceInfo& info = mPayloadHash[nextPacket->rtpPayloadType()]; + (*info.fAfterGettingFunc)(info.fAfterGettingFuncClientData,fFrameSize, + fNumTruncatedBytes,fPresentationTime, + fDurationInMicroseconds); + mPayloadHash.erase(nextPacket->rtpPayloadType()); + } } else { // Special case: Call our 'after getting' function via the event loop. + nextTask() = envir().taskScheduler().scheduleDelayedTask(0, - (TaskFunc*)FramedSource::afterGetting, this); + nextPacket->rtpPayloadType() == rtpPayloadFormat() ? + (TaskFunc*)FramedSource::afterGetting : (TaskFunc*)alternatePtAfterGetting, this); + } } else { // This packet contained fragmented data, and does not complete // the data that the client wants. Keep getting data: - fTo += frameSize; fMaxSize -= frameSize; + if (nextPacket->rtpPayloadType() == rtpPayloadFormat()) { + fTo += frameSize; fMaxSize -= frameSize; + } else { + MultiFramedRTPSourceInfo& info = mPayloadHash[nextPacket->rtpPayloadType()]; + info.fTo += frameSize; info.fMaxSize -= frameSize; + } fNeedDelivery = True; } } @@ -265,7 +292,8 @@ // Check the Payload Type. if ((unsigned char)((rtpHdr&0x007F0000)>>16) != source->rtpPayloadFormat()) { - break; + if (source->mPayloadHash.find((unsigned char)((rtpHdr&0x007F0000)>>16)) == source->mPayloadHash.end()) + break; } // The rest of the packet is the usable data. Record and save it: @@ -287,7 +315,7 @@ gettimeofday(&timeNow, NULL); bPacket->assignMiscParams(rtpSeqNo, rtpTimestamp, presentationTime, hasBeenSyncedUsingRTCP, rtpMarkerBit, - timeNow); + timeNow, (unsigned char)((rtpHdr&0x007F0000)>>16)); if (!source->fReorderingBuffer->storePacket(bPacket)) break; readSuccess = True; @@ -360,13 +388,14 @@ ::assignMiscParams(unsigned short rtpSeqNo, unsigned rtpTimestamp, struct timeval presentationTime, Boolean hasBeenSyncedUsingRTCP, Boolean rtpMarkerBit, - struct timeval timeReceived) { + struct timeval timeReceived, unsigned char rtpPayloadType) { fRTPSeqNo = rtpSeqNo; fRTPTimestamp = rtpTimestamp; fPresentationTime = presentationTime; fHasBeenSyncedUsingRTCP = hasBeenSyncedUsingRTCP; fRTPMarkerBit = rtpMarkerBit; fTimeReceived = timeReceived; + fRTPPayloadType = rtpPayloadType; } void BufferedPacket::skip(unsigned numBytes) { -------------- next part -------------- #include "DTMFSource.h" #include namespace msoup { DTMFSource::DTMFSource(UsageEnvironment& ue, MultiFramedRTPSource* fs, uint8_t payloadType) : FramedFilter(ue, fs), mBuffer(1000), mPayloadType(payloadType) { } void DTMFSource::doGetNextFrame() { if (!fInputSource) { return; } MultiFramedRTPSource* fs = static_cast(fInputSource); fs->getNextFrame(&mBuffer[0], 1000, afterGettingFrame, this, FramedFilter::handleClosure, this, mPayloadType); } void DTMFSource::afterGettingFrame(unsigned frameSize, unsigned numTruncatedBytes, struct timeval presentationTime, unsigned durationInMicroseconds) { std::copy(mBuffer.begin(),mBuffer.begin()+frameSize,fTo); fPresentationTime = presentationTime; fDurationInMicroseconds = durationInMicroseconds; fNumTruncatedBytes = numTruncatedBytes; fFrameSize = frameSize; FramedSource::afterGetting(this); } DTMFSource::~DTMFSource() { } } -------------- next part -------------- #ifndef DTMFSOURCE_H_ #define DTMFSOURCE_H_ #include "liveMedia.hh" #include namespace msoup { class DTMFSource : public FramedFilter { std::vector mBuffer; const uint8_t mPayloadType; public: DTMFSource(UsageEnvironment& ue, MultiFramedRTPSource* fs, uint8_t payloadType = 101); virtual void doGetNextFrame(); virtual ~DTMFSource(); private: static void afterGettingFrame(void* clientData, unsigned frameSize, unsigned numTruncatedBytes, struct timeval presentationTime, unsigned durationInMicroseconds) { static_cast(clientData)->afterGettingFrame(frameSize,numTruncatedBytes,presentationTime,durationInMicroseconds); } void afterGettingFrame(unsigned frameSize, unsigned numTruncatedBytes, struct timeval presentationTime, unsigned durationInMicroseconds); }; } #endif /*DTMFSOURCE_H_*/ From finlayson at live555.com Fri May 11 22:18:53 2007 From: finlayson at live555.com (Ross Finlayson) Date: Fri, 11 May 2007 22:18:53 -0700 Subject: [Live-devel] IP_ADD_MEMBERSHIP error In-Reply-To: <4644C102.5080007@mytum.de> References: <46446568.9020703@mytum.de> <4644C102.5080007@mytum.de> Message-ID: >OK, that seems to work for VLC, but not for FFMPEG This mailing list has nothing to do with FFMPEG. -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From yinglcs at gmail.com Sat May 12 13:50:13 2007 From: yinglcs at gmail.com (ying lcs) Date: Sat, 12 May 2007 15:50:13 -0500 Subject: [Live-devel] Using live555 as the RTSP streaming library Message-ID: <568e62a40705121350h5a4acbeaub2197c52095c09eb@mail.gmail.com> Hi, Can you please tell me if live555 sends out RSTP Sender Report when it streams a file? Thank you. From finlayson at live555.com Sat May 12 22:46:25 2007 From: finlayson at live555.com (Ross Finlayson) Date: Sat, 12 May 2007 22:46:25 -0700 Subject: [Live-devel] Using live555 as the RTSP streaming library In-Reply-To: <568e62a40705121350h5a4acbeaub2197c52095c09eb@mail.gmail.com> References: <568e62a40705121350h5a4acbeaub2197c52095c09eb@mail.gmail.com> Message-ID: >Can you please tell me if live555 sends out RSTP Sender Report when it >streams a file? I think you mean "RTCP Sender Report" (not "RTSP Sender Report"). Yes, our RTSP server implementation (more precisely, the "OnDemandServerMediaSubsession" and "PassiveServerMediaSubsession" classes) creates "RTCPInstance" objects for each stream, and these send out RTCP Sender Report ("SR") packets. -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From rajeshkumar.r at imimobile.com Mon May 14 01:52:58 2007 From: rajeshkumar.r at imimobile.com (rajesh) Date: Mon, 14 May 2007 14:22:58 +0530 Subject: [Live-devel] Transfering the Multimedia Content from one Port to different Port References: <0fba01c793aa$98289bb0$6902000a@imidomain.com> Message-ID: <15b501c79605$4592f410$6902000a@imidomain.com> Re: [Live-devel] Transfering the Multimedia Content from oHi Ross, Thanks for the Reply. if I want to transfer multimedia content on port number on different system(IP). instead of local system I want to transfer multimedia content on different system. Thanks and Regards Rajesh Kumar Software Enginner Cont-9908400027 NOTE: mobile not in use in office time. ----- Original Message ----- From: Ross Finlayson To: LIVE555 Streaming Media - development & use Sent: Friday, May 11, 2007 7:24 PM Subject: Re: [Live-devel] Transfering the Multimedia Content from one Port to different Port using openRTSP client ,I am able to recv the multimedia streaming on 6000 and 60002 port. I want to transfer the same data to different port say 3000-3002. 3000 and 3002 port are being used by Application that will transfer the same content to the mobile. You can do this using openRTSP's "-p " option. (See the documentation.) -- 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/20070514/5fda74f6/attachment.html From philip.marivoet at gmail.com Mon May 14 05:16:45 2007 From: philip.marivoet at gmail.com (Philip Marivoet) Date: Mon, 14 May 2007 14:16:45 +0200 Subject: [Live-devel] Index file for H.264/AAC over mpeg2ts Message-ID: <2c14d2900705140516t1c9773e3y315327f4e26391f4@mail.gmail.com> Hi, >>I've seen some recent posts regarding H.264 - specifically one >>regarding the creation of index files. I have placed an HD H.264 >>sample clip from a live encoder and was wondering if someone (Ross >>?) could take a look to see what would be required to be able to >>support indexing? >> >>You can access the file here: >>http://www.geeknet.ca/~temp/tenten16-2.ts > >Thanks. (I'm downloading this now.) We are using the live555Mediaserver to stream MPEG2/TS files containing H.264 video and AAC audio. This is working very well (thank you), but we would like to use the trick mode functionality. Did you already make some progress on the index file generation for H.264 TS files? Regards, Philip From finlayson at live555.com Mon May 14 07:50:54 2007 From: finlayson at live555.com (Ross Finlayson) Date: Mon, 14 May 2007 07:50:54 -0700 Subject: [Live-devel] Index file for H.264/AAC over mpeg2ts In-Reply-To: <2c14d2900705140516t1c9773e3y315327f4e26391f4@mail.gmail.com> References: <2c14d2900705140516t1c9773e3y315327f4e26391f4@mail.gmail.com> Message-ID: >We are using the live555Mediaserver to stream MPEG2/TS files >containing H.264 video and AAC audio. This is working very well (thank >you), but we would like to use the trick mode functionality. > >Did you already make some progress on the index file generation for >H.264 TS files? When this is available, I'll announce it to the mailing list. -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From yinglcs at gmail.com Mon May 14 09:28:51 2007 From: yinglcs at gmail.com (ying lcs) Date: Mon, 14 May 2007 11:28:51 -0500 Subject: [Live-devel] Using live555 as the RTSP streaming library In-Reply-To: References: <568e62a40705121350h5a4acbeaub2197c52095c09eb@mail.gmail.com> Message-ID: <568e62a40705140928v4b8a7813r96b99546863f6480@mail.gmail.com> I am using vlc to tanscode a file in boardcast mode, like this: vlc -I dummy mask.wmv --sout #transcode{vcodec=mp4v,vb=400,acodec=mpga,ab=128}:rtp{dst=10.20.20.68,port-video=3444,port-audio=3448,sdp=file:///usr/local/movies/mytest4.sdp} I think vlc depends os live555 as it rtp transport. And I have setup a network trace to capture rtp packet sent out: 10.. .... = Version : RFC 1889 Version (2) ..0. .... = Padding: False ...0 .... = Extension: False .... 0000 = contributing source identifiers count: 0 0... .... = Marker: False Payload type: Unknown (96) Sequence number: 18499 Timestamp: 719731146 Synchronization Source identifier: 1472073403 Payload: 043D8DF8180F84208524064B .... My question is why the payload type is 96? If that is the case, how can the client decode this RTP packet? Thank you. On 5/13/07, Ross Finlayson wrote: > >Can you please tell me if live555 sends out RSTP Sender Report when it > >streams a file? > > I think you mean "RTCP Sender Report" (not "RTSP Sender Report"). > > Yes, our RTSP server implementation (more precisely, the > "OnDemandServerMediaSubsession" and "PassiveServerMediaSubsession" > classes) creates "RTCPInstance" objects for each stream, and these > send out RTCP Sender Report ("SR") packets. > -- > > 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 May 14 10:30:27 2007 From: finlayson at live555.com (Ross Finlayson) Date: Mon, 14 May 2007 10:30:27 -0700 Subject: [Live-devel] Using live555 as the RTSP streaming library In-Reply-To: <568e62a40705140928v4b8a7813r96b99546863f6480@mail.gmail.com> References: <568e62a40705121350h5a4acbeaub2197c52095c09eb@mail.gmail.com> <568e62a40705140928v4b8a7813r96b99546863f6480@mail.gmail.com> Message-ID: >I think vlc depends os live555 as it rtp transport. Only when it is *receiving* RTP packets. If you are using VLC to *send* RTP packets, then it currently does not use the "LIVE555 Streaming Media" software. It wasn't clear (to me) from your description whether you are using VLC to receive RTP packets, or to send them. In any case, questions about VLC should really be sent to a VLC mailing list... >My question is why the payload type is 96? If that is the case, how >can the client decode this RTP packet? From a "a=rtpmap:" line in the SDP description. -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From andreas at videosave.net Mon May 14 13:18:11 2007 From: andreas at videosave.net (Andreas Schobel) Date: Mon, 14 May 2007 16:18:11 -0400 Subject: [Live-devel] Looking for a contractor to do some customization work on OpenRTSP Message-ID: Howdy, Our goal is to store audio & video to disk from a VivoTek IP7135 and then be able to play back that video in the latest version of Quicktime. http://www.vivotek.com/products_ip7135.htm We already used OpenRTSP to store the A/V from the rtsp stream from that camera to one big file and played it back in an older version of QuickTime. What we need is have OpenRTSP save the A/V in two minute mp4 files and be playable in the latest version of QuickTime. Cheers, Andreas http://videosave.com From serkanboz80 at yahoo.com Tue May 15 00:17:15 2007 From: serkanboz80 at yahoo.com (serkan bozkurt) Date: Tue, 15 May 2007 00:17:15 -0700 (PDT) Subject: [Live-devel] H.264 streaming Message-ID: <857974.6332.qm@web54205.mail.re2.yahoo.com> Hi To All, I am currently trying to play a DVB-H stream that has the h.264video codec. Unfortunately my player do not support stream playing it only supports playing from files. The DVB-H stream has the RTP headers and I think that if I extract RTP header and adding the remaining parts I can obtain a h.264 file format so that my player can play it. Any idea about this? Best Regards... ____________________________________________________________________________________ Need Mail bonding? Go to the Yahoo! Mail Q&A for great tips from Yahoo! Answers users. http://answers.yahoo.com/dir/?link=list&sid=396546091 From finlayson at live555.com Tue May 15 00:37:45 2007 From: finlayson at live555.com (Ross Finlayson) Date: Tue, 15 May 2007 00:37:45 -0700 Subject: [Live-devel] H.264 streaming In-Reply-To: <857974.6332.qm@web54205.mail.re2.yahoo.com> References: <857974.6332.qm@web54205.mail.re2.yahoo.com> Message-ID: >Hi To All, > >I am currently trying to play a DVB-H stream that has >the h.264video codec. > >Unfortunately my player do not support stream playing >it only supports playing from files. > >The DVB-H stream has the RTP headers and I think that >if I extract RTP header and adding the remaining parts >I can obtain a h.264 file format so that my player can >play it. > >Any idea about this? Is your stream accessible via RTSP? If so, try using "openRTSP" to save the incoming stream as a file. -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From serkanboz80 at yahoo.com Tue May 15 01:20:35 2007 From: serkanboz80 at yahoo.com (serkan bozkurt) Date: Tue, 15 May 2007 01:20:35 -0700 (PDT) Subject: [Live-devel] H.264 streaming In-Reply-To: Message-ID: <72433.85240.qm@web54206.mail.re2.yahoo.com> Since DVB-H is a live streaming there is no RTCP and RTSP implementation just RTP is implemented. So what should I do to make a h.264 file from a RTP stream? Best regards... --- Ross Finlayson wrote: > >Hi To All, > > > >I am currently trying to play a DVB-H stream that > has > >the h.264video codec. > > > >Unfortunately my player do not support stream > playing > >it only supports playing from files. > > > >The DVB-H stream has the RTP headers and I think > that > >if I extract RTP header and adding the remaining > parts > >I can obtain a h.264 file format so that my player > can > >play it. > > > >Any idea about this? > > Is your stream accessible via RTSP? If so, try > using "openRTSP" to > save the incoming stream as a file. > -- > > 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 > ____________________________________________________________________________________Be a better Heartthrob. Get better relationship answers from someone who knows. Yahoo! Answers - Check it out. http://answers.yahoo.com/dir/?link=list&sid=396545433 From lucabe72 at email.it Tue May 15 01:54:23 2007 From: lucabe72 at email.it (Luca Abeni) Date: Tue, 15 May 2007 10:54:23 +0200 Subject: [Live-devel] H.264 streaming In-Reply-To: <72433.85240.qm@web54206.mail.re2.yahoo.com> References: <72433.85240.qm@web54206.mail.re2.yahoo.com> Message-ID: <4649753F.1030200@email.it> Hi, serkan bozkurt wrote: > Since DVB-H is a live streaming there is no RTCP and > RTSP implementation just RTP is implemented. I think this is not fully correct... DVB-H is unidirectional, so there is no RTSP server, but RTCP packets are obviously sent. I succesfully played various DVB-H streams with vlc, for example. You just need the SDP describing the stream (if you don't have it, you will have to parse the ESG for obtaining an SDP, but that's not easy). I do not remember the details, but I am pretty sure I've been able to play a DVB-H stream with mplayer too (you just need to compile mplayer with live555 libraries). > So what should I do to make a h.264 file from a RTP > stream? You can use vlc, for example... Or you can use the live555 libraries to write a program that downloads a stream given the SDP describing it (I did something similar some time ago... I remember it was quite easy, but I do not remember the details; if you search the mailing list archives, you'll find a mail from Ross explaining how to write such program). Luca From finlayson at live555.com Tue May 15 01:53:50 2007 From: finlayson at live555.com (Ross Finlayson) Date: Tue, 15 May 2007 01:53:50 -0700 Subject: [Live-devel] H.264 streaming In-Reply-To: <4649753F.1030200@email.it> References: <72433.85240.qm@web54206.mail.re2.yahoo.com> <4649753F.1030200@email.it> Message-ID: > > So what should I do to make a h.264 file from a RTP >> stream? >You can use vlc, for example... Or you c