From dliu.cn at gmail.com Sat Aug 1 09:04:36 2009 From: dliu.cn at gmail.com (Dong Liu) Date: Sat, 01 Aug 2009 12:04:36 -0400 Subject: [Live-devel] multiple instances of live555 library In-Reply-To: References: <4A727B5E.5080608@gmail.com> Message-ID: <4A746794.5000305@gmail.com> Ross, I found my problem was caused by other element in my system. But after I gave it more thought, I think the situation I had actually was not using multiple instances of live555. The module I developed is a shared library which is loaded by a host program which I have no control. Each module has its one address space, they are not aware with each other, they don't communicate with each other, they are running in difference thread. So in a sense they are just like running in different progresses. Thanks! Dong Ross Finlayson wrote: >> Is there anything I have to be aware to use multiple instances of >> live555 library in a single process? > > You don't do this. Please everybody, read the FAQ! > > The "LIVE555 Streaming Media" software uses an event loop (a single > thread of control) for concurrency, instead of using multiple threads. From dushi310 at 163.com Sat Aug 1 22:19:48 2009 From: dushi310 at 163.com (=?gbk?B?tsXKsQ==?=) Date: Sun, 2 Aug 2009 13:19:48 +0800 (CST) Subject: [Live-devel] multi-channel problem Message-ID: <1649.357261249190388512.JavaMail.coremail@app159.163.com> I use live555 as media server to send H.264 data as live stream not file stream,when the number of client less than sixteen ,it would work well. But if the number of client more than sixteen, the task sheduler could not handle the task as real time. So I want wo know the doEventLoop() can handle hao many channel as the same time. -------------- next part -------------- An HTML attachment was scrubbed... URL: From finlayson at live555.com Sun Aug 2 00:30:11 2009 From: finlayson at live555.com (Ross Finlayson) Date: Sun, 2 Aug 2009 00:30:11 -0700 Subject: [Live-devel] multi-channel problem In-Reply-To: <1649.357261249190388512.JavaMail.coremail@app159.163.com> References: <1649.357261249190388512.JavaMail.coremail@app159.163.com> Message-ID: >I use live555 as media server to send H.264 data as live stream not >file stream,when the number of client less than sixteen ,it would >work well. But if the number of client more than sixteen, the task >sheduler could not handle the task as real time. These sorts of scaling problems are often caused by running into the OS's limit of the number of open sockets that it can support. Try increasing this limit, if you can. -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From auscaster at gmail.com Sun Aug 2 19:15:27 2009 From: auscaster at gmail.com (Kam Low) Date: Mon, 3 Aug 2009 12:15:27 +1000 Subject: [Live-devel] Synchronizing Audio and Video streams Message-ID: Dear readers, I am writing an application to stream live Audio and Video via RTSP, but am having some trouble synchronizing the two output streams. When streaming just an audio stream by itself the output is great. (Note: I am using an AudioInputDevice and encoding it to an MP3 stream.) The problem is when I combine the audio and video together stream all I get back from the client are patches of Audio. Note: The video works great in either case, so no problems there. Does anyone have any idea what's going on? Thanks, Kam From finlayson at live555.com Sun Aug 2 20:21:31 2009 From: finlayson at live555.com (Ross Finlayson) Date: Sun, 2 Aug 2009 20:21:31 -0700 Subject: [Live-devel] Synchronizing Audio and Video streams In-Reply-To: References: Message-ID: >I am writing an application to stream live Audio and Video via RTSP, >but am having some trouble synchronizing the two output streams. This problem is usually caused by not setting properly "fPresentationTime" properly in your media source objects. For both audio and video, "fPresentationTime" must be set to a time that is aligned with 'wall clock' time - i.e., the time that you would get by calling "gettimeofday()". -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From Deepti.Saraswat at sdc.canon.co.in Mon Aug 3 00:43:54 2009 From: Deepti.Saraswat at sdc.canon.co.in (Deepti.Saraswat at sdc.canon.co.in) Date: Mon, 3 Aug 2009 13:13:54 +0530 Subject: [Live-devel] Use of RTSP Proxy to support IPV6 Message-ID: Hi Ross, Can we use a RTSP Proxy rtspd to support IPV6 with RTSP/RTP client. Regards Deepti Help save paper - do you need to print this email ? This e-mail and any files transmitted with it are confidential and intended solely for the use of the individual(s) or entity addressed above. If you are not the intended recipient of this e-mail, then (i) please notify us at cipl.administrator at canon.co.in (ii) do not use the information contained & (iii) delete it from your system . E-mail communications are not secure. Though efforts have been taken to ensure that this communication has not been tampered with; however, Canon India Pvt Ltd. is not responsible for any changes made to the contents of or any attachments to this message without its consent. All information contained in this message which are not of an official nature shall not be deemed as given or endorsed by Canon India Pvt. Ltd. From renatomauro at libero.it Mon Aug 3 09:45:37 2009 From: renatomauro at libero.it (Renato MAURO (Libero)) Date: Mon, 3 Aug 2009 18:45:37 +0200 Subject: [Live-devel] NetCommon.hh and UsageEnvironment.hh References: <55791956-5835-427A-86CA-6B9411F14D43@vtilt.com><5E7AC58DE2EC40EAAFC5263745941DB4@CSystemDev> Message-ID: Hello Ross. Do you think it is possible to add the following lines to each cpp file of your Live555 library: #include "CustomHeaderBegin.hh" // first of any other #include .... #include "CustomHeaderEnd.hh" // after your last #include and add these two empty files to your library? I'd find them very convenient to: - include debugging structures and custom stuff everywhere, avoiding makefile editing; - download your newest release, avoiding manual or automatic (anyway repetitive) editing. Thank you, Renato MAURO ----- Original Message ----- From: "Ross Finlayson" To: "LIVE555 Streaming Media - development & use" Sent: Tuesday, May 19, 2009 3:23 AM Subject: Re: [Live-devel] NetCommon.hh and UsageEnvironment.hh >> Could you confirm that NetCommon.hh is included in every cpp file of >> Live555? And UsageEnvironment.hh? > > Most, but not all. There are a few 'pure library' files - like > "Base64.cpp" - that don't refer to "Medium" or "UsageEnvironment" > objects - that don't include these. > -- > > 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 Aug 3 16:47:59 2009 From: finlayson at live555.com (Ross Finlayson) Date: Mon, 3 Aug 2009 16:47:59 -0700 Subject: [Live-devel] NetCommon.hh and UsageEnvironment.hh In-Reply-To: References: <55791956-5835-427A-86CA-6B9411F14D43@vtilt.com><5E7AC58DE2EC40EAAFC5263745941DB4@CSystemDev> Message-ID: >Hello Ross. > > > Do you think it is possible to add the following lines to each >cpp file of your Live555 library: > >#include "CustomHeaderBegin.hh" // first of any other #include >.... >#include "CustomHeaderEnd.hh" // after your last #include > >and add these two empty files to your library? No, I'm not going to needlessly complicate the code like this. (Overall, I'm looking to simplify the code, not make it even more complex-looking.) > I'd find them very convenient to: >- include debugging structures and custom stuff everywhere, avoiding >makefile editing; You could do this by adding your custom definitions to "UsageEnvironment.hh" (e.g.). >- download your newest release, avoiding manual or automatic (anyway >repetitive) editing. Even if I did what you're asking, you'd still need to modify the (otherwise empty) "CustomHeader*.hh" files. -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From renatomauro at libero.it Mon Aug 3 18:52:28 2009 From: renatomauro at libero.it (Renato MAURO (Libero)) Date: Tue, 4 Aug 2009 03:52:28 +0200 Subject: [Live-devel] NetCommon.hh and UsageEnvironment.hh References: <55791956-5835-427A-86CA-6B9411F14D43@vtilt.com><5E7AC58DE2EC40EAAFC5263745941DB4@CSystemDev> Message-ID: <213E15D8D9DE4939B85C2646277AF789@CSystemDev> Hello Ross. > You could do this by adding your custom definitions to > "UsageEnvironment.hh" (e.g.). Yes, yes, I'm doing, but "UsageEnvironment.hh" is not always the first header included and sometimes it is included after "windows.h" (ehm, yes, I can't avoid this) and this is a problem when _CRT_MAP_ALLOC is defined (multiple definition of every memory allocation related function); besides, some cpp files don't include "UsageEnvironment.hh". > Even if I did what you're asking, you'd still need to modify the > (otherwise empty) "CustomHeader*.hh" files. Yes, you are right, and it can be done by a single "copy \Streaming\Windows\common\CustomHeader*.hh \Streaming\Live555\src" line in the script which today downloads and untars the Live555 source: more simple, quick and safe than a script adding the include lines to every cpp file. Anyway, I understand that my request was a "custom" request (from which the headers' name ;-). It was only a survey. Thank you, Renato MAURO From devaureshy at gmail.com Tue Aug 4 07:34:07 2009 From: devaureshy at gmail.com (Steve Jiekak) Date: Tue, 4 Aug 2009 16:34:07 +0200 Subject: [Live-devel] misbehavior after delivering H.264 frame Message-ID: <614230390908040734r77007f3cy6bc3b11e194f2d38@mail.gmail.com> Hi got some strange behavior when I try to stream H.264 . I have my implementation of device source class, which directly read entire frames from a socket, and feed the H264VideoSink. I have already made a similar class for MPEG1 , and it was working fine... Here the afterGettingframe of the H264FUAFragmenter misbehave such that when there is the call to doNextFrame at the end of the function.. it points nowhere and it crashes...I have noticed there are always 2 similar executions with both the real source and the fragmenter objects after the call to afterGetting(this) in device source PS: this happens since the first call Here is a trace with gdb : Breakpoint 1, H264VideoRTPSink::continuePlaying (this=0x8926578) at H264VideoRTPSink.cpp:74 74 if (fOurFragmenter == NULL) { (gdb) n 59 UsageEnvironment& envir() const {return fEnviron;} (gdb) 76 ourMaxPacketSize() - 12/*RTP hdr size*/); (gdb) 59 UsageEnvironment& envir() const {return fEnviron;} (gdb) 76 ourMaxPacketSize() - 12/*RTP hdr size*/); (gdb) 77 fSource = fOurFragmenter; (gdb) print fOurFragmenter $1 = (H264FUAFragmenter *) 0x893b6d8 // this is the address of the fragmenter constructed... (gdb) n 81 return MultiFramedRTPSink::continuePlaying(); (gdb) c Continuing. packet 0 of size 12 DATA::: received: 3744, expected: 3744 Breakpoint 2, DeviceSource::deliverFrame (this=0x89355c8) at DeviceSource.cpp:201 //this is the address Device object 201 void DeviceSource::deliverFrame() { (gdb) n 203 if (!isCurrentlyAwaitingData()) return; // we're not ready for the data yet (gdb) 205 if(Ntrashed != 0){ (gdb) 210 fFrameSize = Nreceived; (gdb) 218 gettimeofday(&fPresentationTime, NULL); (gdb) 52 return __builtin___memcpy_chk (__dest, __src, __len, __bos0 (__dest)); (gdb) 220 fDurationInMicroseconds = DeviceSource::defaultFrameDuration; (gdb) 52 return __builtin___memcpy_chk (__dest, __src, __len, __bos0 (__dest)); (gdb) 224 FramedSource::afterGetting(this); (gdb) s 226 } (gdb) DeviceSource::deliverFrame (this=0x893b6d8) at DeviceSource.cpp:224 //??? 224 FramedSource::afterGetting(this); (gdb) FramedSource::afterGetting (source=0x89355c8) at FramedSource.cpp:81 //now we have the right address again 81 void FramedSource::afterGetting(FramedSource* source) { (gdb) 87 if (source->fAfterGettingFunc != NULL) { (gdb) 82 source->fIsCurrentlyAwaitingData = False; (gdb) 87 if (source->fAfterGettingFunc != NULL) { (gdb) 91 source->fDurationInMicroseconds); (gdb) H264FUAFragmenter::afterGettingFrame (clientData=0x893b6d8, frameSize=3744, numTruncatedBytes=0, presentationTime= {tv_sec = 1249394529, tv_usec = 926474}, durationInMicroseconds=40) at H264VideoRTPSink.cpp:226 226 } (gdb) H264FUAFragmenter::afterGettingFrame (clientData=0x89355c8, frameSize=143898457, numTruncatedBytes=60000, presentationTime={tv_sec = 134630672, tv_usec = 143898328}, durationInMicroseconds=134523216) at H264VideoRTPSink.cpp:225 225 durationInMicroseconds); //the parameters seems to be garbage to me.. (gdb) H264FUAFragmenter::afterGettingFrame1 (this=0x893b6d8, frameSize=3744, numTruncatedBytes=0, presentationTime= {tv_sec = 1249394529, tv_usec = 926474}, durationInMicroseconds=40) at H264VideoRTPSink.cpp:231 231 unsigned durationInMicroseconds) { (gdb) 232 fNumValidDataBytes += frameSize; (gdb) 233 fSaveNumTruncatedBytes = numTruncatedBytes; (gdb) 234 fPresentationTime = presentationTime; (gdb) 235 fDurationInMicroseconds = durationInMicroseconds; (gdb) 238 doGetNextFrame(); (gdb) 239 } (gdb) H264FUAFragmenter::afterGettingFrame1 (this=0x89355c8, frameSize=143898457, numTruncatedBytes=60000, presentationTime={tv_sec = 134630672, tv_usec = 143898328}, durationInMicroseconds=134523216) at H264VideoRTPSink.cpp:238 238 doGetNextFrame(); (gdb) Program received signal SIGSEGV, Segmentation fault. H264FUAFragmenter::afterGettingFrame1 (this=0x89355c8, frameSize=143898457, numTruncatedBytes=60000, presentationTime={tv_sec = 134630672, tv_usec = 143898328}, durationInMicroseconds=134523216) at H264VideoRTPSink.cpp:238 238 doGetNextFrame(); (gdb) where #0 H264FUAFragmenter::afterGettingFrame1 (this=0x89355c8, frameSize=143898457, numTruncatedBytes=60000, presentationTime={tv_sec = 134630672, tv_usec = 143898328}, durationInMicroseconds=134523216) at H264VideoRTPSink.cpp:238 #1 0x08064eef in H264FUAFragmenter::doGetNextFrame (this=0x89355c8) at H264VideoRTPSink.cpp:150 #2 0x0806e06d in MultiFramedRTPSink::packFrame (this=0x8926578) at MultiFramedRTPSink.cpp:215 #3 0x0806e589 in MultiFramedRTPSink::continuePlaying (this=0x8926578) at MultiFramedRTPSink.cpp:151 #4 0x08049e4c in play () at H264RTPSender.cpp:97 #5 0x08049fee in main () at H264RTPSender.cpp:68 -------------- next part -------------- An HTML attachment was scrubbed... URL: From fabrizio.agnoli at gmail.com Wed Aug 5 06:46:49 2009 From: fabrizio.agnoli at gmail.com (Fabrizio Agnoli) Date: Wed, 5 Aug 2009 15:46:49 +0200 Subject: [Live-devel] H263 live encoder source In-Reply-To: References: <3a8482a10907300941r69ee5b12ic50ad4e85ac3ca80@mail.gmail.com> Message-ID: <3a8482a10908050646w1ea54b34qb6b16fdb305d0926@mail.gmail.com> Hi, I'm facing this problem, the app which get webcam screenshot and encode them in h263 works and feed live with an UDP socket (addr 127.0.0.1 port 1234). I don't know why the bytestream seems not arriving to the live server.. Could anyone help me or give any hints? I report my server code below #include "liveMedia.hh" #include "BasicUsageEnvironment.hh" #include "GroupsockHelper.hh" FramedSource* videoSource; void afterPlaying(void*); int main() { TaskScheduler* scheduler = BasicTaskScheduler::createNew(); UsageEnvironment*env = BasicUsageEnvironment::createNew(*scheduler); //Create our sink variables... char const* destinationAddrStr = "192.168.55.102"; const unsigned char ttl = 1; const Port rtpPort(8888); struct in_addr destinationAddress; destinationAddress.s_addr = our_inet_addr(destinationAddrStr); Groupsock rtpGroupsock(*env, destinationAddress, rtpPort, ttl); //Create our sink... //RTPSink* videoSink = MPEG1or2VideoRTPSink::createNew(*env, &rtpGroupsock); RTPSink* videoSink = H263plusVideoRTPSink::createNew(*env,&rtpGroupsock,56,0); if(videoSink == NULL){ *env << "Unable to create sink \n"; exit(1); } *env<<"RTPSink created\n"; //Create our source variables... char const* srcAddrStr = "127.0.0.1"; struct in_addr srcAddress; srcAddress.s_addr = our_inet_addr(srcAddrStr); const Port udpPort(1234); Groupsock udpGroupsock(*env, srcAddress, udpPort, ttl); //Create our source... FramedSource* input = BasicUDPSource::createNew(*env, &udpGroupsock); if (input == NULL) { *env << "Unable to open source \n"; exit(1); } *env<<"Input created\n"; //Create our framer... videoSource = H263plusVideoStreamFramer::createNew(*env,input); *env<<"framer created\n"; //Start to stream the data.... videoSink->startPlaying(*videoSource, afterPlaying, NULL); env->taskScheduler().doEventLoop(); *env<<"END"; return 0; } void afterPlaying(void*) { Medium::close(videoSource); } Thanks a lot for the kind help! On Thu, Jul 30, 2009 at 7:41 PM, Ross Finlayson wrote: > I've an application which gets images from a webcam, then live encode them. >> I need to live stream this to a mobile device via a live555server. How can i >> manage this input stream (based on socket comm between the two apps) in >> live555?could BasicUDPSource the class which reads from the buffer? >> > > It could, if your input is UDP packets. However, it'd be far better to > have your input source be just an unstructured byte stream (i.e., a device > file, a pipe, or a TCP connection). Then you could use > "H263plusVideoStreamFramer". > > May I use H263plusVideoStreamFramer as framer for the H263 stream?? >> > > If (and only if) your input is a byte stream. If, instead, it's a sequence > of discrete frames, then you would need a new class > "H263plusVideoStreamDiscreteFramer" (which you would need to write) instead. > -- > > Ross Finlayson > Live Networks, Inc. > http://www.live555.com/ > _______________________________________________ > live-devel mailing list > live-devel at lists.live555.com > http://lists.live555.com/mailman/listinfo/live-devel > -------------- next part -------------- An HTML attachment was scrubbed... URL: From dduFeu at MarchNetworks.com Wed Aug 5 12:16:16 2009 From: dduFeu at MarchNetworks.com (Dan DuFeu) Date: Wed, 5 Aug 2009 15:16:16 -0400 Subject: [Live-devel] contributions to live 555 Message-ID: <72FCCBE2B96F01469BA67134B98FC45D0BE2583E@svrkexch1.marchnetworks.com> Hi, Can anyone tell me what the process is for contributing to the library? I have a new RTSPOverHTTPServer implementation, which I'm curious if anyone is interested in seeing added to the library. It subclasses from RTSPServer, and allows normal RTSP services as well as RTSP Over HTTP services using the same server object. I'd like to try to include it in the maintained library and make some minor changes elsewhere to clean the implementation up. Thanks, Dan. -------------- next part -------------- An HTML attachment was scrubbed... URL: From finlayson at live555.com Wed Aug 5 13:48:32 2009 From: finlayson at live555.com (Ross Finlayson) Date: Wed, 5 Aug 2009 13:48:32 -0700 Subject: [Live-devel] contributions to live 555 In-Reply-To: <72FCCBE2B96F01469BA67134B98FC45D0BE2583E@svrkexch1.marchnetworks.com> References: <72FCCBE2B96F01469BA67134B98FC45D0BE2583E@svrkexch1.marchnetworks.com> Message-ID: >Can anyone tell me what the process is for contributing to the library? Just send your contribution (ideally in the form of patch file(s) against the most recent release) to the mailing list. I'll then decide whether or not it gets included in subsequent releases of the code. > I have a new RTSPOverHTTPServer implementation, which I'm curious >if anyone is interested in seeing added to the library. It >subclasses from RTSPServer, and allows normal RTSP services as well >as RTSP Over HTTP services using the same server object. I'd like to >try to include it in the maintained library and make some minor >changes elsewhere to clean the implementation up. The existing - commented out - code for server support of RTSP-over-HTTP is incomplete, but will be completed soon. -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From chengchengxin at yahoo.com Wed Aug 5 18:04:30 2009 From: chengchengxin at yahoo.com (Catherine Cheng) Date: Wed, 5 Aug 2009 18:04:30 -0700 (PDT) Subject: [Live-devel] Why the RTP receiving stops? Message-ID: <597970.34177.qm@web112612.mail.gq1.yahoo.com> Hi, I'm receiving H.263+ (H.263 1998) data from IP camera through RTP/TCP channel. After sending RTSP "PLAY" command, I start receiving data. But after I receive several video frames (tens of RTP packets), I cannot read any RTP data, i.e. I receive socket reading error (timeout). Why does it happen? Any pointer will be appreciated. -cath From finlayson at live555.com Wed Aug 5 18:20:30 2009 From: finlayson at live555.com (Ross Finlayson) Date: Wed, 5 Aug 2009 18:20:30 -0700 Subject: [Live-devel] Why the RTP receiving stops? In-Reply-To: <597970.34177.qm@web112612.mail.gq1.yahoo.com> References: <597970.34177.qm@web112612.mail.gq1.yahoo.com> Message-ID: >I'm receiving H.263+ (H.263 1998) data from IP camera through >RTP/TCP channel. After sending RTSP "PLAY" command, I start receiving >data. But after I receive several video frames (tens of RTP packets), I >cannot read any RTP data, i.e. I receive socket reading error >(timeout). Why does it happen? Any pointer will be appreciated. Which RTSP client(s) are you using? You should first try a known working RTSP client - first "openRTSP", then VLC. -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From SRawling at pelco.com Thu Aug 6 11:23:33 2009 From: SRawling at pelco.com (Rawling, Stuart) Date: Thu, 06 Aug 2009 11:23:33 -0700 Subject: [Live-devel] H264VideoRTPSink Message-ID: Hi Ross, Could we make the auxSDPLine() function of H264VideoRTPSink protected instead of virtual? This way subclasses do not have to re implement the contents of the H264VideoRTPSink::auxSDPLine() if they which to just extend what is already generated in the parent class. This would be consistent to how MPEG4ESVideoRTPSink declares auxSDPLine. Regards, Stuart - ------------------------------------------------------------------------------ Confidentiality Notice: The information contained in this transmission is legally privileged and confidential, intended only for the use of the individual(s) or entities named above. This email and any files transmitted with it are the property of Pelco. If the reader of this message is not the intended recipient, or an employee or agent responsible for delivering this message to the intended recipient, you are hereby notified that any review, disclosure, copying, distribution, retention, or any action taken or omitted to be taken in reliance on it is prohibited and may be unlawful. If you receive this communication in error, please notify us immediately by telephone call to +1-559-292-1981 or forward the e-mail to administrator at pelco.com and then permanently delete the e-mail and destroy all soft and hard copies of the message and any attachments. Thank you for your cooperation. - ------------------------------------------------------------------------------ -------------- next part -------------- An HTML attachment was scrubbed... URL: From SRawling at pelco.com Thu Aug 6 11:44:27 2009 From: SRawling at pelco.com (Rawling, Stuart) Date: Thu, 06 Aug 2009 11:44:27 -0700 Subject: [Live-devel] H264VideoRTPSink In-Reply-To: Message-ID: Apologies, Of course I meant to ask to make H264VideoRTPSink::auxSDPLine protected instead of private. In both cases it should be virtual. Stuart On 8/6/09 11:23 AM, "Stuart Rawling" wrote: > Could we make the auxSDPLine() function of H264VideoRTPSink protected instead > of virtual? - ------------------------------------------------------------------------------ Confidentiality Notice: The information contained in this transmission is legally privileged and confidential, intended only for the use of the individual(s) or entities named above. This email and any files transmitted with it are the property of Pelco. If the reader of this message is not the intended recipient, or an employee or agent responsible for delivering this message to the intended recipient, you are hereby notified that any review, disclosure, copying, distribution, retention, or any action taken or omitted to be taken in reliance on it is prohibited and may be unlawful. If you receive this communication in error, please notify us immediately by telephone call to +1-559-292-1981 or forward the e-mail to administrator at pelco.com and then permanently delete the e-mail and destroy all soft and hard copies of the message and any attachments. Thank you for your cooperation. - ------------------------------------------------------------------------------ -------------- next part -------------- An HTML attachment was scrubbed... URL: From chengchengxin at yahoo.com Thu Aug 6 09:12:15 2009 From: chengchengxin at yahoo.com (Catherine Cheng) Date: Thu, 6 Aug 2009 09:12:15 -0700 (PDT) Subject: [Live-devel] Why the RTP receiving stops? In-Reply-To: <992975.95880.qm@web112607.mail.gq1.yahoo.com> References: <992975.95880.qm@web112607.mail.gq1.yahoo.com> Message-ID: <351001.5327.qm@web112607.mail.gq1.yahoo.com> Ross, I wrote my own RTSP client. I use the RTSP url the IP camera provides, like "rtsp://192.168.1.187/rtsp_tunnel" to talk to the IP cam. It's RTP over TCP. I use HTTP to send the RTSP commands. I have a question: do I need a special RTP port for RTP/TCP communication instead of HTTP port 80? After I send RTSP command SETUP, I'm able to receive RTP data wrapped in '$' signed TCP packet. But I cannot receive more after tens of RTP packets (total about 10KB data). Why does the IP cam stop sending me data? Do I need some extra RTP port for the RTP/TCP channel? -Cath >I'm receiving H.263+ (H.263 1998) data from IP camera through >RTP/TCP channel. After sending RTSP "PLAY" command, I start receiving >data. But after I receive several video frames (tens of RTP packets), I >cannot read any RTP data, i.e. I receive socket reading error >(timeout). Why does it happen? Any pointer will be appreciated. Which RTSP client(s) are you using? You should first try a known working RTSP client - first "openRTSP", then VLC. -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From Deepti.Saraswat at sdc.canon.co.in Thu Aug 6 06:14:34 2009 From: Deepti.Saraswat at sdc.canon.co.in (Deepti.Saraswat at sdc.canon.co.in) Date: Thu, 6 Aug 2009 18:44:34 +0530 Subject: [Live-devel] Regarding H.264 support Message-ID: Hi Ross I am creating a RTSP Client application that supports viewing of H.264 video data. I want to test whether my application is recieving the data correctly or not, but for that LIVE 555 test progs doesnt have any h.264 streamer application. Even LIVE 555 Server also doesnt support streaming of .mp4 files which has the h.264 data. Does LIVEMedia Server supports H.264 video or not? How can I test it. Regards Deepti Help save paper - do you need to print this email ? This e-mail and any files transmitted with it are confidential and intended solely for the use of the individual(s) or entity addressed above. If you are not the intended recipient of this e-mail, then (i) please notify us at cipl.administrator at canon.co.in (ii) do not use the information contained & (iii) delete it from your system . E-mail communications are not secure. Though efforts have been taken to ensure that this communication has not been tampered with; however, Canon India Pvt Ltd. is not responsible for any changes made to the contents of or any attachments to this message without its consent. All information contained in this message which are not of an official nature shall not be deemed as given or endorsed by Canon India Pvt. Ltd. From devaureshy at gmail.com Thu Aug 6 06:55:47 2009 From: devaureshy at gmail.com (Steve Jiekak) Date: Thu, 6 Aug 2009 15:55:47 +0200 Subject: [Live-devel] how to stream AAC in live555? Message-ID: <614230390908060655x2c962f71o3615c70ce54ffe5d@mail.gmail.com> I want to stream AAC in live, and of what I've seen, I need AudioSource and AUdioSink classes. For the Sink it looks like MPEG4GenericRTPSink will be enough.. but for the source ?? is there an existing class or should I write one myself? Any help will be appreciated , Steve Jiekak -------------- next part -------------- An HTML attachment was scrubbed... URL: From jhyoon at compiler.snu.ac.kr Thu Aug 6 08:30:35 2009 From: jhyoon at compiler.snu.ac.kr (=?ks_c_5601-1987?B?wLHBvsjxKFcp?=) Date: Thu, 06 Aug 2009 15:30:35 -0000 Subject: [Live-devel] configuration for LEON SPARC V8 In-Reply-To: References: <597970.34177.qm@web112612.mail.gq1.yahoo.com> Message-ID: <02b101c8f7d9$5af5ef10$10e1cd30$@snu.ac.kr> Hi, I want know how to configure "live555 streaming media" for LEON SPARC V8. OS is snapgear linux supported by Gaisler Do you know about that? Thanks. From matt at schuckmannacres.com Thu Aug 6 10:35:16 2009 From: matt at schuckmannacres.com (Matt Schuckmann) Date: Thu, 06 Aug 2009 10:35:16 -0700 Subject: [Live-devel] Problem in basicTaskScheduler.cpp Message-ID: <4A7B1454.9010405@schuckmannacres.com> I was just trying to import your latest changes into our copy of liveMedia (actually all your changes from Jan of this year) and I found what I think is a typo in basicTaskScheduler.cpp on line 78. I think you should change: err = 0; to: err = EINTR; The way it is now the if test on line 88 will will always be true whenever this odd quirk of windows occurs (which on my windows7 system right now is every time for the client) and the application will exit unexpectedly. Let me know if I'm missing something here. Thanks, Matt S. From finlayson at live555.com Thu Aug 6 12:31:36 2009 From: finlayson at live555.com (Ross Finlayson) Date: Thu, 6 Aug 2009 12:31:36 -0700 Subject: [Live-devel] H264VideoRTPSink In-Reply-To: References: Message-ID: OK, this will get changed in the next release of the software. -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From finlayson at live555.com Thu Aug 6 13:10:58 2009 From: finlayson at live555.com (Ross Finlayson) Date: Thu, 6 Aug 2009 13:10:58 -0700 Subject: [Live-devel] how to stream AAC in live555? In-Reply-To: <614230390908060655x2c962f71o3615c70ce54ffe5d@mail.gmail.com> References: <614230390908060655x2c962f71o3615c70ce54ffe5d@mail.gmail.com> Message-ID: >I want to stream AAC in live, >and of what I've seen, >I need AudioSource and AUdioSink classes. >For the Sink it looks like MPEG4GenericRTPSink will be enough.. >but for the source ?? is there an existing class or should I write one myself? See -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From finlayson at live555.com Thu Aug 6 13:30:43 2009 From: finlayson at live555.com (Ross Finlayson) Date: Thu, 6 Aug 2009 13:30:43 -0700 Subject: [Live-devel] configuration for LEON SPARC V8 In-Reply-To: <02b101c8f7d9$5af5ef10$10e1cd30$@snu.ac.kr> References: <597970.34177.qm@web112612.mail.gq1.yahoo.com> <02b101c8f7d9$5af5ef10$10e1cd30$@snu.ac.kr> Message-ID: >Hi, > >I want know how to configure "live555 streaming media" for LEON SPARC V8. >OS is snapgear linux supported by Gaisler If the existing "config.linux" doesn't work for you, then copy it to a new config file - e.g., called "config.snapgear" - and edit that as appropriate. -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From finlayson at live555.com Thu Aug 6 13:32:36 2009 From: finlayson at live555.com (Ross Finlayson) Date: Thu, 6 Aug 2009 13:32:36 -0700 Subject: [Live-devel] Problem in basicTaskScheduler.cpp In-Reply-To: <4A7B1454.9010405@schuckmannacres.com> References: <4A7B1454.9010405@schuckmannacres.com> Message-ID: Yes, this is a known issue. See http://lists.live555.com/pipermail/live-devel/2009-July/010982.html -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From finlayson at live555.com Thu Aug 6 13:42:21 2009 From: finlayson at live555.com (Ross Finlayson) Date: Thu, 6 Aug 2009 13:42:21 -0700 Subject: [Live-devel] Regarding H.264 support In-Reply-To: References: Message-ID: >I am creating a RTSP Client application that supports viewing of H.264 >video data. >I want to test whether my application is recieving the data correctly or >not, but for that LIVE 555 test progs doesnt have any h.264 streamer >application. > >Even LIVE 555 Server also doesnt support streaming of .mp4 files which has >the h.264 data. >Does LIVEMedia Server supports H.264 video or not? Sigh... The pre-built "LIVE555 Media Server" binary application does not (currently) support streaming H.264. However, our RTSP server implementation (source code) does support streaming H.264, but you need to write some new code of your own to use it (read the FAQ). Our RTSP client implementation (including the "openRTSP" demo application, and media player clients like VLC that use it) supports receiving H.264 video over RTP. -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From finlayson at live555.com Thu Aug 6 13:46:29 2009 From: finlayson at live555.com (Ross Finlayson) Date: Thu, 6 Aug 2009 13:46:29 -0700 Subject: [Live-devel] Why the RTP receiving stops? In-Reply-To: <351001.5327.qm@web112607.mail.gq1.yahoo.com> References: <992975.95880.qm@web112607.mail.gq1.yahoo.com> <351001.5327.qm@web112607.mail.gq1.yahoo.com> Message-ID: >I wrote my own RTSP client. Why not first use someone else's RTSP client - i.e., one that you know already works - to try to receive a stream from your server? I.e., try using "openRTSP" or "VLC". If those work, but your client doesn't, then the problem is with your client. If those don't work either, then the problem is with your server. (Also, I hope you are using our software to write your RTSP client. If you're not, then your question is off-topic for this mailing list.) -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From dduFeu at MarchNetworks.com Thu Aug 6 21:34:10 2009 From: dduFeu at MarchNetworks.com (Dan DuFeu) Date: Fri, 7 Aug 2009 00:34:10 -0400 Subject: [Live-devel] alternate RTSPOverHTTPServer implementation Message-ID: <72FCCBE2B96F01469BA67134B98FC45D0BE25B27@svrkexch1.marchnetworks.com> Hi Ross, I've attached a patch file for my alternate RTSPOverHTTPServer for your consideration. The patch also includes a revision of mediaServer/ code that can be used for testing. I've tested against VLC and Quicktime with a server compiled in Windows (VS 9) and Linux. I made 3 change areas to RTSPServer to support a cleaner implementation of my subclass. Even if you don't accept my implementation of the RTSPOverHTTPServer, you may want to consider the following that make subclassing of the Server easier (IMO): 1. New virtual function to get a new sessionId. This allows subclasses access to the counter (currently private). > unsigned RTSPServer::getNewSessionId() > { > return ++fSessionIdCounter; > } 2. I broke up the incomingRequestHandler1 function into two parts. The first part performs the read, and the second provides the RTSP parsing. This allows subclasses to perform their own reading (in my case also doing a Base64 decode) and re-use the parsing included in the RTSPServer object. Both are virtual. Pseudocode: void RTSPServer::RTSPClientSession::incomingRequestHandler1() { Read and exit on error ... handleRequestData(bytesRead); } void RTSPServer::RTSPClientSession::handleRequestData(int bytesRead) { Find end of RTSP request, parse and run } 3. Added ";timeout=xxx" to the Session field. It is optional in the RFC, but Quicktime was not respecting the 60 second default and currently if (reclaiming is enabled) the sessions timeout with Quicktime unless this is specified. 4. I only said I made 3 changes, but I snuck in another change that allows the Date header generating function to be used in subclasses. Not a big deal, I just dislike copied code. Anyways, Let me know your thoughts... Thanks, Dan. ps. I noticed that VLC seems to have trouble when running with RTP/RTSP(TCP). After a minute, it sends a GET_PARAMETER request as a keepalive and the video in the client freezes, though the streaming still continues from the server. I'm assume VLC is waiting for a response to the RTSP request (it never comes because RTSP is ignored once the session starts streaming over TCP). This seems to occur regardless of the "timeout" attribute I mention above. Anyways, I might try to tackle this issue next... I'd like to come up with an approach that allows multiple streams over the same TCP connection. -------------- next part -------------- A non-text attachment was scrubbed... Name: AltRTSPOverHTTP.patch Type: application/octet-stream Size: 71745 bytes Desc: AltRTSPOverHTTP.patch URL: From jhyoon at compiler.snu.ac.kr Sat Aug 8 15:18:24 2009 From: jhyoon at compiler.snu.ac.kr (=?ks_c_5601-1987?B?wLHBvsjxKFcp?=) Date: Sat, 08 Aug 2009 22:18:24 -0000 Subject: [Live-devel] configuration for LEON SPARC V8 In-Reply-To: References: <597970.34177.qm@web112612.mail.gq1.yahoo.com> <02b101c8f7d9$5af5ef10$10e1cd30$@snu.ac.kr> Message-ID: <033501c8f9a4$a71b34f0$f5519ed0$@snu.ac.kr> Using config.linux, I did "make" and then executed "testOnDemandRTSPServer" on target processor, LEON SPARC V8. But following message was generated. ./testOnDemandRTSPServer: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory "ldd testOnDemandRTSPServer" generated "not a dynamic executable" Thus it is statically linked. What's the problem? -----Original Message----- From: live-devel-bounces at ns.live555.com [mailto:live-devel- bounces at ns.live555.com] On Behalf Of Ross Finlayson Sent: Friday, August 07, 2009 5:31 AM To: LIVE555 Streaming Media - development & use Subject: Re: [Live-devel] configuration for LEON SPARC V8 >Hi, > >I want know how to configure "live555 streaming media" for LEON SPARC V8. >OS is snapgear linux supported by Gaisler If the existing "config.linux" doesn't work for you, then copy it to a new config file - e.g., called "config.snapgear" - and edit that as appropriate. -- 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 Sun Aug 9 01:40:13 2009 From: finlayson at live555.com (Ross Finlayson) Date: Sun, 9 Aug 2009 01:40:13 -0700 Subject: [Live-devel] configuration for LEON SPARC V8 In-Reply-To: <033501c8f9a4$a71b34f0$f5519ed0$@snu.ac.kr> References: <597970.34177.qm@web112612.mail.gq1.yahoo.com> <02b101c8f7d9$5af5ef10$10e1cd30$@snu.ac.kr> <033501c8f9a4$a71b34f0$f5519ed0$@snu.ac.kr> Message-ID: >Using config.linux, I did "make" and then executed "testOnDemandRTSPServer" >on target processor, LEON SPARC V8. > >But following message was generated. > >./testOnDemandRTSPServer: error while loading shared libraries: >libstdc++.so.6: >cannot open shared object file: No such file or directory > >"ldd testOnDemandRTSPServer" generated "not a dynamic executable" > >Thus it is statically linked. > >What's the problem? I don't know, but it appears that you'll need to modify the "config.linux" file to work for your environment. (Note that the intention is for all application binaries - including "testOnDemandRTSPServer" - to be statically linked. For these demo applications especially, dynamic linking is more trouble than it's worth.) -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From gosha212 at gmail.com Sun Aug 9 14:25:31 2009 From: gosha212 at gmail.com (Georgy Steshin) Date: Mon, 10 Aug 2009 00:25:31 +0300 Subject: [Live-devel] Problems with compilation the project Message-ID: <000001ca1937$ed55a870$c800f950$@com> Hi all, I have made a new solution in visual studio 2008 and had compiled successfully the whole projects. But I can't compile the testProgs. This is the output from the compiler Error 1 error LNK2001: unresolved external symbol "class DelayInterval __cdecl operator*(short,class DelayInterval const &)" (??D at YA?AVDelayInterval@@FABV0@@Z) libBasicUsageEnvironment.lib testProgs Error 2 error LNK2019: unresolved external symbol "class DelayInterval __cdecl operator*(short,class DelayInterval const &)" (??D at YA?AVDelayInterval@@FABV0@@Z) referenced in function "void __cdecl `dynamic initializer for 'DELAY_MINUTE''(void)" (??__EDELAY_MINUTE@@YAXXZ) testMPEG1or2VideoStreamer.obj testProgs Error 3 error LNK2001: unresolved external symbol "class DelayInterval __cdecl operator*(short,class DelayInterval const &)" (??D at YA?AVDelayInterval@@FABV0@@Z) libBasicUsageEnvironment.lib testProgs Error 4 error LNK2001: unresolved external symbol "class DelayInterval __cdecl operator*(short,class DelayInterval const &)" (??D at YA?AVDelayInterval@@FABV0@@Z) libBasicUsageEnvironment.lib testProgs Error 5 error LNK2001: unresolved external symbol "class DelayInterval __cdecl operator*(short,class DelayInterval const &)" (??D at YA?AVDelayInterval@@FABV0@@Z) libBasicUsageEnvironment.lib testProgs Error 6 error LNK2001: unresolved external symbol "class DelayInterval const DELAY_SECOND" (?DELAY_SECOND@@3VDelayInterval@@B) libBasicUsageEnvironment.lib testProgs Error 7 error LNK2001: unresolved external symbol "class DelayInterval const DELAY_SECOND" (?DELAY_SECOND@@3VDelayInterval@@B) testMPEG1or2VideoStreamer.obj testProgs Error 8 error LNK2001: unresolved external symbol "class DelayInterval const DELAY_SECOND" (?DELAY_SECOND@@3VDelayInterval@@B) libBasicUsageEnvironment.lib testProgs Error 9 error LNK2001: unresolved external symbol "class DelayInterval const DELAY_SECOND" (?DELAY_SECOND@@3VDelayInterval@@B) libBasicUsageEnvironment.lib testProgs Error 10 error LNK2001: unresolved external symbol "class DelayInterval const DELAY_SECOND" (?DELAY_SECOND@@3VDelayInterval@@B) libBasicUsageEnvironment.lib testProgs Error 11 error LNK2019: unresolved external symbol "public: void __thiscall DelayQueue::handleAlarm(void)" (?handleAlarm at DelayQueue@@QAEXXZ) referenced in function "protected: virtual void __thiscall BasicTaskScheduler::SingleStep(unsigned int)" (?SingleStep at BasicTaskScheduler@@MAEXI at Z) libBasicUsageEnvironment.lib testProgs Error 12 error LNK2019: unresolved external symbol "public: class DelayInterval const & __thiscall DelayQueue::timeToNextAlarm(void)" (?timeToNextAlarm at DelayQueue@@QAEABVDelayInterval@@XZ) referenced in function "protected: virtual void __thiscall BasicTaskScheduler::SingleStep(unsigned int)" (?SingleStep at BasicTaskScheduler@@MAEXI at Z) libBasicUsageEnvironment.lib testProgs Error 13 error LNK2019: unresolved external symbol "public: virtual __thiscall DelayQueue::~DelayQueue(void)" (??1DelayQueue@@UAE at XZ) referenced in function __unwindfunclet$??0BasicTaskScheduler0@@IAE at XZ$0 libBasicUsageEnvironment.lib testProgs Error 14 error LNK2019: unresolved external symbol "public: __thiscall DelayQueue::DelayQueue(void)" (??0DelayQueue@@QAE at XZ) referenced in function "protected: __thiscall BasicTaskScheduler0::BasicTaskScheduler0(void)" (??0BasicTaskScheduler0@@IAE at XZ) libBasicUsageEnvironment.lib testProgs Error 15 error LNK2019: unresolved external symbol "public: void __thiscall DelayQueue::addEntry(class DelayQueueEntry *)" (?addEntry at DelayQueue@@QAEXPAVDelayQueueEntry@@@Z) referenced in function "public: virtual void * __thiscall BasicTaskScheduler0::scheduleDelayedTask(__int64,void (__cdecl*)(void *),void *)" (?scheduleDelayedTask at BasicTaskScheduler0@@UAEPAX_JP6AXPAX at Z1@Z) libBasicUsageEnvironment.lib testProgs Error 16 error LNK2019: unresolved external symbol "protected: __thiscall DelayQueueEntry::DelayQueueEntry(class DelayInterval)" (??0DelayQueueEntry@@IAE at VDelayInterval@@@Z) referenced in function "public: __thiscall AlarmHandler::AlarmHandler(void (__cdecl*)(void *),void *,class DelayInterval)" (??0AlarmHandler@@QAE at P6AXPAX@Z0VDelayInterval@@@Z) libBasicUsageEnvironment.lib testProgs Error 17 error LNK2019: unresolved external symbol "protected: virtual void __thiscall DelayQueueEntry::handleTimeout(void)" (?handleTimeout at DelayQueueEntry@@MAEXXZ) referenced in function "private: virtual void __thiscall AlarmHandler::handleTimeout(void)" (?handleTimeout at AlarmHandler@@EAEXXZ) libBasicUsageEnvironment.lib testProgs Error 18 error LNK2019: unresolved external symbol "public: virtual __thiscall DelayQueueEntry::~DelayQueueEntry(void)" (??1DelayQueueEntry@@UAE at XZ) referenced in function "public: virtual __thiscall AlarmHandler::~AlarmHandler(void)" (??1AlarmHandler@@UAE at XZ) libBasicUsageEnvironment.lib testProgs Error 19 error LNK2019: unresolved external symbol "public: class DelayQueueEntry * __thiscall DelayQueue::removeEntry(long)" (?removeEntry at DelayQueue@@QAEPAVDelayQueueEntry@@J at Z) referenced in function "public: virtual void __thiscall BasicTaskScheduler0::unscheduleDelayedTask(void * &)" (?unscheduleDelayedTask at BasicTaskScheduler0@@UAEXAAPAX at Z) libBasicUsageEnvironment.lib testProgs Error 20 fatal error LNK1120: 11 unresolved externals C:\Users\Georgy\Documents\Visual Studio 2008\Projects\liveTest\Debug\testProgs.exe testProgs Hope for your help Georgy Steshin, image001 Hutsot Shefayim Shefayim Israel -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: image/jpeg Size: 3016 bytes Desc: not available URL: From dduFeu at MarchNetworks.com Sun Aug 9 15:38:20 2009 From: dduFeu at MarchNetworks.com (Dan DuFeu) Date: Sun, 9 Aug 2009 18:38:20 -0400 Subject: [Live-devel] Problems with compilation the project In-Reply-To: <000001ca1937$ed55a870$c800f950$@com> References: <000001ca1937$ed55a870$c800f950$@com> Message-ID: <72FCCBE2B96F01469BA67134B98FC45D0BE25D4E@svrkexch1.marchnetworks.com> Hi Georgy, I currently compile under VS 2008 as well, but I use the supplied makefiles (with minor changes to win32config) to do this. I'm guessing you are missing the UsageEnvironment library as input to the linker. Try adding UsageEnvironment project as a dependency of BasicUsageEnvironment. This might fix the issue. If not, I would suggest trying to add libUsageEnvironment.lib into the "Additional Dependencies" section of your project properties (under Configuration Properties -> Linker -> Input). Dan. ---- Ps. If you're interested in using the makefiles supplied, the only lines require changing in win32config for me were: TOOLS32 = C:\Program Files\Microsoft Visual Studio 9.0\VC LINK_OPTS_0 = $(linkdebug) msvcrt.lib And one change to add -DNO_STRSTREAM to the groupsock code. I run the following batch file to build: @echo off rem fix the groupsock makefile to not include strstream code echo INCLUDES = -Iinclude -I../UsageEnvironment/include -DNO_STRSTREAM > groupsock/Makefile.head echo ##### Change the following for your environment: >> groupsock/Makefile.head Call genWindowsMakefiles.cmd call "C:\Program Files\Microsoft Visual Studio 9.0\VC\vcvarsall.bat" pushd liveMedia del *.lib del *.obj nmake /B -f liveMedia.mak popd pushd groupsock del *.lib del *.obj nmake /B -f groupsock.mak popd pushd UsageEnvironment del *.lib del *.obj nmake /B -f UsageEnvironment.mak popd pushd BasicUsageEnvironment del *.lib del *.obj nmake /B -f BasicUsageEnvironment.mak popd pushd testProgs del *.lib del *.obj nmake /B -f testProgs.mak popd pushd mediaServer del *.lib del *.obj nmake /B -f mediaServer.mak popd -------------- next part -------------- An HTML attachment was scrubbed... URL: From Deepti.Saraswat at sdc.canon.co.in Sun Aug 9 22:59:11 2009 From: Deepti.Saraswat at sdc.canon.co.in (Deepti.Saraswat at sdc.canon.co.in) Date: Mon, 10 Aug 2009 11:29:11 +0530 Subject: [Live-devel] Test .AAC stream from LIVE 555 Message-ID: Hi Ross, In my own application (RTSP Client ) I want to recieve a .aac file. For that purpose I created test.aac file . But at the receiving end I am not getting any SDP description for this file (Although there is no .sdp file regarding test.aac) Then how can I test using LIVE 555 sample programs that my own RTSP client is working fine for .aac files. Regards Deepti Help save paper - do you need to print this email ? This e-mail and any files transmitted with it are confidential and intended solely for the use of the individual(s) or entity addressed above. If you are not the intended recipient of this e-mail, then (i) please notify us at cipl.administrator at canon.co.in (ii) do not use the information contained & (iii) delete it from your system . E-mail communications are not secure. Though efforts have been taken to ensure that this communication has not been tampered with; however, Canon India Pvt Ltd. is not responsible for any changes made to the contents of or any attachments to this message without its consent. All information contained in this message which are not of an official nature shall not be deemed as given or endorsed by Canon India Pvt. Ltd. From finlayson at live555.com Mon Aug 10 00:26:51 2009 From: finlayson at live555.com (Ross Finlayson) Date: Mon, 10 Aug 2009 00:26:51 -0700 Subject: [Live-devel] Test .AAC stream from LIVE 555 In-Reply-To: References: Message-ID: >In my own application (RTSP Client ) I want to recieve a .aac file. For >that purpose I created test.aac file . >But at the receiving end I am not getting any SDP description for this file >(Although there is no .sdp file regarding test.aac) > >Then how can I test using LIVE 555 sample programs that my own RTSP client >is working fine for .aac files. First test using "testOnDemandRTSPServer" (or "live555MediaServer") as your server, and "openRTSP" as your client. -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From mohitagandotra at gmail.com Mon Aug 10 19:51:29 2009 From: mohitagandotra at gmail.com (mohita gandotra) Date: Mon, 10 Aug 2009 19:51:29 -0700 Subject: [Live-devel] purpose of rtpsource and rtpsink files Message-ID: <6d1553a50908101951i6f598e93h6ebfd21095c8a84f@mail.gmail.com> Hi Ross I am very new to Live555. I have following queries: 1. I want to know the purpose of rtpsource and rtpsink files for various codecs. 2. What is purpose of SimpleRtpSource and SimpleRtpSink files. 3. Can i use SimpleRtpSource and SimpleRtpSink files for recieving metadata. Please reply ASAP. Mohita Gandotra -------------- next part -------------- An HTML attachment was scrubbed... URL: From finlayson at live555.com Mon Aug 10 21:38:55 2009 From: finlayson at live555.com (Ross Finlayson) Date: Mon, 10 Aug 2009 21:38:55 -0700 Subject: [Live-devel] purpose of rtpsource and rtpsink files In-Reply-To: <6d1553a50908101951i6f598e93h6ebfd21095c8a84f@mail.gmail.com> References: <6d1553a50908101951i6f598e93h6ebfd21095c8a84f@mail.gmail.com> Message-ID: >1. I want to know the purpose of rtpsource and rtpsink files for >various codecs. They implement the RTP payload format (see ) for that codec. The *RTPSink file implements the sending of RTP packets; the *RTPSource file implements the receiving of RTP packets. >2. What is purpose of SimpleRtpSource and SimpleRtpSink files. See the comments at the top of the header files for each >3. Can i use SimpleRtpSource and SimpleRtpSink files for recieving metadata. Perhaps. It depends on whatever RTP payload format you're using for this. -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From treesapaul at huawei.com Tue Aug 11 00:25:26 2009 From: treesapaul at huawei.com (Treesa Paul 00900619) Date: Tue, 11 Aug 2009 12:25:26 +0500 Subject: [Live-devel] AMR AND H263 streaming Message-ID: Hi, I would like to use LiveMedia555 for reading an mpg file and streaming the audio and video as AMR and H263. I thought MPEG1OR2AudioVideoStreamer could be useful for the same.What modifications should I consider while doing so? Regards TP ****************************************************************************************** This email and its attachments contain confidential information from HUAWEI, which is intended only for the person or entity whose address is listed above. Any use of the information contained here in any way (including, but not limited to, total or partial disclosure, reproduction, or dissemination) by persons other than the intended recipient(s) is prohibited. If you receive this email in error, please notify the sender by phone or email immediately and delete it! ***************************************************************************************** From finlayson at live555.com Tue Aug 11 00:41:51 2009 From: finlayson at live555.com (Ross Finlayson) Date: Tue, 11 Aug 2009 00:41:51 -0700 Subject: [Live-devel] AMR AND H263 streaming In-Reply-To: References: Message-ID: >I would like to use LiveMedia555 for >reading an mpg file and streaming the audio and video as AMR and H263. > >I thought MPEG1OR2AudioVideoStreamer could be useful for the >same.What modifications should I consider while doing so? ".mpg" files contain MPEG-1 or MPEG-2 audio and video. Therefore, to stream their contents as AMR audio and H.263 video, you would need to add software filters that transcode (decode, then encode) the codecs. (Note that our libraries do not contain any decoding/encoding software.) Note also that "testMPEG1or2AudioVideoStreamer" streams via multicast. To stream via unicast instead, you would use "testOnDemandRTSPServer" as a model. -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From treesapaul at huawei.com Tue Aug 11 02:08:28 2009 From: treesapaul at huawei.com (Treesa Paul 00900619) Date: Tue, 11 Aug 2009 14:08:28 +0500 Subject: [Live-devel] AMR AND H263 streaming In-Reply-To: References: Message-ID: Hi, Cant the AMR and H263 RTP SInk and the H263plus VideoStreamFramer and AMR AUdioStream Framer be used for streaming AMR and H263 packets from a media file(.mpg or so)? Regards TP ****************************************************************************************** This email and its attachments contain confidential information from HUAWEI, which is intended only for the person or entity whose address is listed above. Any use of the information contained here in any way (including, but not limited to, total or partial disclosure, reproduction, or dissemination) by persons other than the intended recipient(s) is prohibited. If you receive this email in error, please notify the sender by phone or email immediately and delete it! ***************************************************************************************** ----- Original Message ----- From: Treesa Paul 00900619 Date: Tuesday, August 11, 2009 1:15 pm Subject: [Live-devel] AMR AND H263 streaming To: live-devel at ns.live555.com > Hi, > > I would like to use LiveMedia555 for > reading an mpg file and streaming the audio and video as AMR and H263. > > I thought MPEG1OR2AudioVideoStreamer could be useful for the > same.What modifications should I consider while doing so? > > Regards > TP > > ****************************************************************************************** > This email and its attachments contain confidential information > from HUAWEI, which is intended only for the person or entity whose > address is listed above. Any use of the information contained here > in any way (including, but not limited to, total or partial > disclosure, reproduction, or dissemination) by persons other than > the intended recipient(s) is prohibited. If you receive this email > in error, please notify the sender by phone or email immediately > and delete it! > > *****************************************************************************************_______________________________________________ > live-devel mailing list > live-devel at lists.live555.com > http://lists.live555.com/mailman/listinfo/live-devel > From finlayson at live555.com Tue Aug 11 02:18:38 2009 From: finlayson at live555.com (Ross Finlayson) Date: Tue, 11 Aug 2009 02:18:38 -0700 Subject: [Live-devel] AMR AND H263 streaming In-Reply-To: References: Message-ID: >Cant the AMR and H263 RTP SInk and the H263plus VideoStreamFramer >and AMR AUdioStream Framer be used for streaming AMR and H263 >packets from a media file(.mpg or so)? Yes, except that ".mpg" files don't contain AMR or H.263 data! -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From ilya_il at hotmail.com Tue Aug 11 13:14:42 2009 From: ilya_il at hotmail.com (Ilya Feldman) Date: Tue, 11 Aug 2009 20:14:42 +0000 Subject: [Live-devel] Pure RTP stream. Message-ID: Hi, Ross. Could you please recommend me a sample program that manages RTP stream without openning RTSP session, of course if you have some. Thank you. Ilya Feldman. _________________________________________________________________ Send and receive email from all of your webmail accounts. http://go.microsoft.com/?linkid=9671356 -------------- next part -------------- An HTML attachment was scrubbed... URL: From finlayson at live555.com Tue Aug 11 15:06:11 2009 From: finlayson at live555.com (Ross Finlayson) Date: Tue, 11 Aug 2009 15:06:11 -0700 Subject: [Live-devel] Pure RTP stream. In-Reply-To: References: Message-ID: >Could you please recommend me a sample program that manages RTP >stream without openning RTSP session This is rather vague. What *specifically* are you trying to do? -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From Deepti.Saraswat at sdc.canon.co.in Tue Aug 11 23:14:27 2009 From: Deepti.Saraswat at sdc.canon.co.in (Deepti.Saraswat at sdc.canon.co.in) Date: Wed, 12 Aug 2009 11:44:27 +0530 Subject: [Live-devel] Regarding AAC file transfer Message-ID: Hi Ross , I am streaming a test.aac file through live media server . but at the receive end it is showing codec as MPEG4-Generic, but I though t that codec name should come as AAC. Why it is happening . Regards Deepti Help save paper - do you need to print this email ? This e-mail and any files transmitted with it are confidential and intended solely for the use of the individual(s) or entity addressed above. If you are not the intended recipient of this e-mail, then (i) please notify us at cipl.administrator at canon.co.in (ii) do not use the information contained & (iii) delete it from your system . E-mail communications are not secure. Though efforts have been taken to ensure that this communication has not been tampered with; however, Canon India Pvt Ltd. is not responsible for any changes made to the contents of or any attachments to this message without its consent. All information contained in this message which are not of an official nature shall not be deemed as given or endorsed by Canon India Pvt. Ltd. From finlayson at live555.com Tue Aug 11 23:26:16 2009 From: finlayson at live555.com (Ross Finlayson) Date: Tue, 11 Aug 2009 23:26:16 -0700 Subject: [Live-devel] Regarding AAC file transfer In-Reply-To: References: Message-ID: >I am streaming a test.aac file through live media server . >but at the receive end it is showing codec as MPEG4-Generic, but I though t >that codec name should come as AAC. No, the RTP payload format "audio/MPEG4-GENERIC" is correct for carrying AAC audio (see RFC 3640). (Note that AAC *is* MPEG-4 audio.) -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From Deepti.Saraswat at sdc.canon.co.in Wed Aug 12 03:19:46 2009 From: Deepti.Saraswat at sdc.canon.co.in (Deepti.Saraswat at sdc.canon.co.in) Date: Wed, 12 Aug 2009 15:49:46 +0530 Subject: [Live-devel] Regarding Video Height/Width Message-ID: Hi Ross , If we use LIVE 555 media streamer , then subsessions created at receivng end are not getting width and height information of video. Is it some bug in LIVE 555 Regards Deepti Help save paper - do you need to print this email ? This e-mail and any files transmitted with it are confidential and intended solely for the use of the individual(s) or entity addressed above. If you are not the intended recipient of this e-mail, then (i) please notify us at cipl.administrator at canon.co.in (ii) do not use the information contained & (iii) delete it from your system . E-mail communications are not secure. Though efforts have been taken to ensure that this communication has not been tampered with; however, Canon India Pvt Ltd. is not responsible for any changes made to the contents of or any attachments to this message without its consent. All information contained in this message which are not of an official nature shall not be deemed as given or endorsed by Canon India Pvt. Ltd. From finlayson at live555.com Wed Aug 12 06:02:28 2009 From: finlayson at live555.com (Ross Finlayson) Date: Wed, 12 Aug 2009 06:02:28 -0700 Subject: [Live-devel] Regarding Video Height/Width In-Reply-To: References: Message-ID: >If we use LIVE 555 media streamer , then subsessions created at receivng >end are not getting width and height information of video. >Is it some bug in LIVE 555 No. -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From fabrizio.agnoli at gmail.com Wed Aug 12 06:11:20 2009 From: fabrizio.agnoli at gmail.com (Fabrizio Agnoli) Date: Wed, 12 Aug 2009 15:11:20 +0200 Subject: [Live-devel] H263 live encoder source In-Reply-To: <3a8482a10908050646w1ea54b34qb6b16fdb305d0926@mail.gmail.com> References: <3a8482a10907300941r69ee5b12ic50ad4e85ac3ca80@mail.gmail.com> <3a8482a10908050646w1ea54b34qb6b16fdb305d0926@mail.gmail.com> Message-ID: <3a8482a10908120611w3f136e56vce9ca8edfba26255@mail.gmail.com> Hi, I'm facing this problem, the app which get webcam screenshot and encode them in h263 works and feed live with an UDP socket (addr 127.0.0.1 port 1234). I don't know why the bytestream seems not arriving to the live server.. Could anyone help me or give any hints? I report my server code below #include "liveMedia.hh" #include "BasicUsageEnvironment.hh" #include "GroupsockHelper.hh" FramedSource* videoSource; void afterPlaying(void*); int main() { TaskScheduler* scheduler = BasicTaskScheduler::createNew(); UsageEnvironment*env = BasicUsageEnvironment::createNew(*scheduler); //Create our sink variables... char const* destinationAddrStr = "192.168.55.102"; const unsigned char ttl = 1; const Port rtpPort(8888); struct in_addr destinationAddress; destinationAddress.s_addr = our_inet_addr(destinationAddrStr); Groupsock rtpGroupsock(*env, destinationAddress, rtpPort, ttl); //Create our sink... //RTPSink* videoSink = MPEG1or2VideoRTPSink::createNew(*env, &rtpGroupsock); RTPSink* videoSink = H263plusVideoRTPSink::createNew(*env,&rtpGroupsock,56,0); if(videoSink == NULL){ *env << "Unable to create sink \n"; exit(1); } *env<<"RTPSink created\n"; //Create our source variables... char const* srcAddrStr = "127.0.0.1"; struct in_addr srcAddress; srcAddress.s_addr = our_inet_addr(srcAddrStr); const Port udpPort(1234); Groupsock udpGroupsock(*env, srcAddress, udpPort, ttl); //Create our source... FramedSource* input = BasicUDPSource::createNew(*env, &udpGroupsock); if (input == NULL) { *env << "Unable to open source \n"; exit(1); } *env<<"Input created\n"; //Create our framer... videoSource = H263plusVideoStreamFramer::createNew(*env,input); *env<<"framer created\n"; //Start to stream the data.... videoSink->startPlaying(*videoSource, afterPlaying, NULL); env->taskScheduler().doEventLoop(); *env<<"END"; return 0; } void afterPlaying(void*) { Medium::close(videoSource); } Thanks a lot for the kind help! On Thu, Jul 30, 2009 at 7:41 PM, Ross Finlayson wrote: > I've an application which gets images from a webcam, then live encode them. >> I need to live stream this to a mobile device via a live555server. How can i >> manage this input stream (based on socket comm between the two apps) in >> live555?could BasicUDPSource the class which reads from the buffer? >> > > It could, if your input is UDP packets. However, it'd be far better to > have your input source be just an unstructured byte stream (i.e., a device > file, a pipe, or a TCP connection). Then you could use > "H263plusVideoStreamFramer". > > May I use H263plusVideoStreamFramer as framer for the H263 stream?? >> > > If (and only if) your input is a byte stream. If, instead, it's a sequence > of discrete frames, then you would need a new class > "H263plusVideoStreamDiscreteFramer" (which you would need to write) instead. > -- > > Ross Finlayson > Live Networks, Inc. > http://www.live555.com/ > _______________________________________________ > live-devel mailing list > live-devel at lists.live555.com > http://lists.live555.com/mailman/listinfo/live-devel > -------------- next part -------------- An HTML attachment was scrubbed... URL: From ilya_il at hotmail.com Wed Aug 12 13:21:39 2009 From: ilya_il at hotmail.com (Ilya Feldman) Date: Wed, 12 Aug 2009 20:21:39 +0000 Subject: [Live-devel] Pure RTP stream. In-Reply-To: References: Message-ID: Hi, Ross. My task is to connect to Sony RX570N camera and to get a H264 RTP stream from it. It is enough to send GET http request containing a RTP port number. After that the camera starts sending RTP packet to this port. All this stage are implemented. I use MultiFramedRTPSource and AVIFileSink to receive a frames. Unfortunately, many frames came corrupted, especially IDRs. May be the fact that big frames are distributed in more than one packet affects to result. So I'm looking for good example of implementation of pure RTP processing. Ilya. > Date: Tue, 11 Aug 2009 15:06:11 -0700 > To: live-devel at ns.live555.com > From: finlayson at live555.com > Subject: Re: [Live-devel] Pure RTP stream. > > >Could you please recommend me a sample program that manages RTP > >stream without openning RTSP session > > This is rather vague. What *specifically* are you trying to do? > -- > > 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 _________________________________________________________________ Send and receive email from all of your webmail accounts. http://go.microsoft.com/?linkid=9671356 -------------- next part -------------- An HTML attachment was scrubbed... URL: From SRawling at pelco.com Wed Aug 12 18:42:15 2009 From: SRawling at pelco.com (Rawling, Stuart) Date: Wed, 12 Aug 2009 18:42:15 -0700 Subject: [Live-devel] Pure RTP stream. In-Reply-To: Message-ID: I believe Sony have recently release a patch to the Sony that fixed a lot of their H264 issues. They also now send the stream in compliance with RFC 3984 which is something they did not do before. If you get this firmware, then you should be able to use a derived H264RTPSource and an appropriate Framer with no issues. On 8/12/09 1:21 PM, "Ilya Feldman" wrote: > > Hi, Ross. > My task is to connect to Sony RX570N camera and to get a H264 RTP stream from > it. > > It is enough to send GET http request containing a RTP port number. After that > the camera starts sending RTP packet to this port. All this stage are > implemented. I use MultiFramedRTPSource and AVIFileSink to receive a frames. > Unfortunately, many frames came corrupted, especially IDRs. > May be the fact that big frames are distributed in more than one packet > affects to result. > > So I'm looking for good example of implementation of pure RTP processing. > > Ilya. > > > > > >> > Date: Tue, 11 Aug 2009 15:06:11 -0700 >> > To: live-devel at ns.live555.com >> > From: finlayson at live555.com >> > Subject: Re: [Live-devel] Pure RTP stream. >> > >>> > >Could you please recommend me a sample program that manages RTP >>> > >stream without openning RTSP session >> > >> > This is rather vague. What *specifically* are you trying to do? >> > -- >> > >> > 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 > > > Send and receive email from all of your webmail accounts - right from your > Hotmail inbox! > > _______________________________________________ > live-devel mailing list > live-devel at lists.live555.com > http://lists.live555.com/mailman/listinfo/live-devel - ------------------------------------------------------------------------------ Confidentiality Notice: The information contained in this transmission is legally privileged and confidential, intended only for the use of the individual(s) or entities named above. This email and any files transmitted with it are the property of Pelco. If the reader of this message is not the intended recipient, or an employee or agent responsible for delivering this message to the intended recipient, you are hereby notified that any review, disclosure, copying, distribution, retention, or any action taken or omitted to be taken in reliance on it is prohibited and may be unlawful. If you receive this communication in error, please notify us immediately by telephone call to +1-559-292-1981 or forward the e-mail to administrator at pelco.com and then permanently delete the e-mail and destroy all soft and hard copies of the message and any attachments. Thank you for your cooperation. - ------------------------------------------------------------------------------ -------------- next part -------------- An HTML attachment was scrubbed... URL: From dconan0404 at yahoo.com.tw Fri Aug 14 00:07:19 2009 From: dconan0404 at yahoo.com.tw (=?utf-8?B?57KY6ICA5paH?=) Date: Fri, 14 Aug 2009 15:07:19 +0800 (CST) Subject: [Live-devel] Getting remote RTP packets and streaming them to client Message-ID: <122994.46367.qm@web73701.mail.tp2.yahoo.com> Hi all, ? I want to get remote RTP packets which send from IPcam and then streaming them to the client player. For this, I wrote a new subsession called MPEG4VideoServerMediaSubsession. ? This is my subsession ? ?FramedSource* MPEG4VideoServerMediaSubsession ?::createNewStreamSource(unsigned /*clientSessionId*/, unsigned& estBitrate) { ?????estBitrate = 90000; // kbps, estimate ???? struct in_addr serverAddress; ???? serverAddress.s_addr = our_inet_addr("192.168.13.145"); ???? const Port recvPort(8888); ???? const unsigned char ttl = 255; ???? Groupsock rtpGroupsockVideo(envir(), serverAddress, recvPort, ttl); ???? FramedSource* videoES = MPEG4ESVideoRTPSource::createNew(envir(), ??????????????????? &rtpGroupsockVideo, 96, 90000); ? ??? return MPEG4VideoStreamDiscreteFramer::createNew(envir(), videoES); } ? createNewRTPSink() is the same with MPEG4VideoFileServerMediaSubsession.cpp. ? char const* MPEG4VideoServerMediaSubsession ::getAuxSDPLine(RTPSink* rtpSink, FramedSource* inputSource) { ??? char const* auxSDPLine = "a=fmtp:96 streamtype=4; profile-level-id=1; ??? config=000001000000012000C8088002D14043C14183;\n"; ????return auxSDPLine; } ? The SDP line I got from the IPcam SDP file. ? The main program is the same like testOnDemandRTSPServer.cpp. The only different is using my subsession to replace the FileSubsession. ? But I got?a crash and have no idea how to solve it. Have anyone can give some hint? Thanks a lot. ___________________________________________________ ??????? ? ???????????????? http://messenger.yahoo.com.tw/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From Deepti.Saraswat at sdc.canon.co.in Fri Aug 14 06:09:30 2009 From: Deepti.Saraswat at sdc.canon.co.in (Deepti.Saraswat at sdc.canon.co.in) Date: Fri, 14 Aug 2009 18:39:30 +0530 Subject: [Live-devel] Regarding incming audio stream Message-ID: 1. My RTSPClient module is receiving .mp3 audio data through testOnDemandRTSPServer. 2. Is it necessary to decode this data using FFMPEG, or can I directly play the same in C#. 3. I am saving the incoming data into a .mp3 file, this file is playing but with too much courrpted sound.(that means incoming audio data is in encoded form) Pl suggest what should I do? Regards Deepti Help save paper - do you need to print this email ? This e-mail and any files transmitted with it are confidential and intended solely for the use of the individual(s) or entity addressed above. If you are not the intended recipient of this e-mail, then (i) please notify us at cipl.administrator at canon.co.in (ii) do not use the information contained & (iii) delete it from your system . E-mail communications are not secure. Though efforts have been taken to ensure that this communication has not been tampered with; however, Canon India Pvt Ltd. is not responsible for any changes made to the contents of or any attachments to this message without its consent. All information contained in this message which are not of an official nature shall not be deemed as given or endorsed by Canon India Pvt. Ltd. From finlayson at live555.com Fri Aug 14 23:00:27 2009 From: finlayson at live555.com (Ross Finlayson) Date: Fri, 14 Aug 2009 23:00:27 -0700 Subject: [Live-devel] Regarding incming audio stream In-Reply-To: References: Message-ID: >1. My RTSPClient module is receiving .mp3 audio data through >testOnDemandRTSPServer. >2. Is it necessary to decode this data using FFMPEG, or can I directly play >the same in C#. You have to decode the data (of course!). It's up to you to decide how (but FFMPEG is one possibility), but this is outside the scope of this mailing list. >3. I am saving the incoming data into a .mp3 file, this file is playing but >with too much courrpted sound. What happens when you run "openRTSP" as your client? What about VLC? Really, everyone - I find the lack of critical thinking on this mailing list bizarre (and rather disturbing). If you are having problems when your own RTSP client application tries to play a stream, then *surely* the first thing to check is whether existing RTSP clients (that are known to work) can play the stream OK. If they can, then the problem is your client code. If they can't, then the problem is the stream itself. -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From shubin_evgeniy at mail.ru Sun Aug 16 03:59:21 2009 From: shubin_evgeniy at mail.ru (=?koi8-r?Q?=E5=D7=C7=C5=CE=C9=CA_=FB=D5=C2=C9=CE?=) Date: Sun, 16 Aug 2009 14:59:21 +0400 Subject: [Live-devel] rfc 2435 JPEG with one quantization table Message-ID: I write a stream server according to rfc 2435 using liveMedia library. I created a class inherited from JPEGVideoSource. It works fine with JPEGs with two quantization tables. When I try to stream JPEG with one quantization table, recieved JPEGs are broken. They have a reference to quantization table with Id = 1. I looked to the source code of JPEGVideoRTPSource: line 224 // MARKER_SOF0: *ptr++ = 0xFF; *ptr++ = MARKER_SOF0; *ptr++ = 0x00; *ptr++ = 0x11; // size of chunk *ptr++ = 0x08; // sample precision *ptr++ = (BYTE)(h >> 8); *ptr++ = (BYTE)(h); // number of lines (must be a multiple of 8) *ptr++ = (BYTE)(w >> 8); *ptr++ = (BYTE)(w); // number of columns (must be a multiple of 8) *ptr++ = 0x03; // number of components *ptr++ = 0x01; // id of component *ptr++ = type ? 0x22 : 0x21; // sampling ratio (h,v) *ptr++ = 0x00; // quant table id *ptr++ = 0x02; // id of component *ptr++ = 0x11; // sampling ratio (h,v) *ptr++ = numQtables == 1 ? 0x00 : 0x01; // quant table id *ptr++ = 0x03; // id of component *ptr++ = 0x11; // sampling ratio (h,v) *ptr++ = 0x01; // quant table id In the last line quant table id is set to one in any case. Is it a bug, or what I do wrong? May be I use to set type to value other than 0 or 1? Thanks. From sebastien-devel at celeos.eu Mon Aug 17 00:13:34 2009 From: sebastien-devel at celeos.eu (=?iso-8859-1?b?U+liYXN0aWVu?= Escudier) Date: Mon, 17 Aug 2009 09:13:34 +0200 Subject: [Live-devel] Patch : clock changing issue Message-ID: <1250493214.4a89031ee17e7@imp.celeos.eu> Hi, Last month, I sent a bug report and received no answers : http://lists.live555.com/pipermail/live-devel/2009-July/010939.html http://lists.live555.com/pipermail/live-devel/2009-July/010966.html The issue is : if you change your system time while you receive a stream, then the library may make your cpu very busy. So I patched the library myself : I replaced gettimeofday by a monotonic clock. This has only been tested with linux. In case someone else is looking for a solution to this bug, I attached my patch. Regards, Seb. -------------- next part -------------- A non-text attachment was scrubbed... Name: 0001-Use-a-monotonic-clock.patch Type: text/x-patch Size: 25279 bytes Desc: not available URL: From braitmaier at hlrs.de Mon Aug 17 01:02:52 2009 From: braitmaier at hlrs.de (Michael Braitmaier) Date: Mon, 17 Aug 2009 10:02:52 +0200 Subject: [Live-devel] Source, Frames and Parsers Message-ID: <4A890EAC.7030502@hlrs.de> Hi everyone! I am trying to work with live555/liveMedia for a while now, however I still have a problem of conceptually understand the relationship between several classes in the library. My goal is to write a small application that instanciates a subclass of DeviceSource and then pass it on to a subclass of MultiFramedRTPSink for RTP streaming. So far my understanding from looking at examples was that the sink triggers a call to getNextFrame() on the source, as also explained in the FAQ. However I am still unclear on how stream parsers fit into this and for what purpose? Furthermore if I implement my deliverFrame function for the DeviceSource and my received frame exceeds the fMaxSize, I would truncate the frame and set fNumTruncatedBytes accordingly, however when would I pass on the remaining bytes of the frame? In the next call to deliverFrames? Thanks in advance. Michael Braitmaier From finlayson at live555.com Mon Aug 17 01:16:02 2009 From: finlayson at live555.com (Ross Finlayson) Date: Mon, 17 Aug 2009 01:16:02 -0700 Subject: [Live-devel] Source, Frames and Parsers In-Reply-To: <4A890EAC.7030502@hlrs.de> References: <4A890EAC.7030502@hlrs.de> Message-ID: >However I am still unclear on how stream parsers fit into this and >for what purpose? Assuming that your data input class (derived from the "DeviceSource" code) delivers discrete audio or video frames (i.e., one frame at a time), then you won't need a 'stream parser' at all. (As the name suggests, a 'stream parser' is used only for parsing byte streams.) >Furthermore if I implement my deliverFrame function for the >DeviceSource and my received frame exceeds the fMaxSize, I would >truncate the frame and set fNumTruncatedBytes accordingly, >however when would I pass on the remaining bytes of the frame? No, if data gets truncated like this, then the rest of the data never gets delivered. Therefore, you should try to make sure that data doesn't get truncated - by giving the sink object a sufficiently large buffer to begin with, -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From braitmaier at hlrs.de Mon Aug 17 05:58:04 2009 From: braitmaier at hlrs.de (Michael Braitmaier) Date: Mon, 17 Aug 2009 14:58:04 +0200 Subject: [Live-devel] Source, Frames and Parsers In-Reply-To: References: <4A890EAC.7030502@hlrs.de> Message-ID: <4A8953DC.3060103@hlrs.de> Thanks for your reply. In fact I have discrete frames arriving one by one in the deliverFrame method, so I will check with the sufficient buffer size of the DeviceSource to avoid truncating of frames. Michael Ross Finlayson schrieb: >> However I am still unclear on how stream parsers fit into this and >> for what purpose? > > Assuming that your data input class (derived from the "DeviceSource" > code) delivers discrete audio or video frames (i.e., one frame at a > time), then you won't need a 'stream parser' at all. (As the name > suggests, a 'stream parser' is used only for parsing byte streams.) > > >> Furthermore if I implement my deliverFrame function for the >> DeviceSource and my received frame exceeds the fMaxSize, I would >> truncate the frame and set fNumTruncatedBytes accordingly, >> however when would I pass on the remaining bytes of the frame? > > No, if data gets truncated like this, then the rest of the data never > gets delivered. Therefore, you should try to make sure that data > doesn't get truncated - by giving the sink object a sufficiently large > buffer to begin with, From fabrizio.agnoli at gmail.com Mon Aug 17 06:42:17 2009 From: fabrizio.agnoli at gmail.com (Fabrizio Agnoli) Date: Mon, 17 Aug 2009 15:42:17 +0200 Subject: [Live-devel] Read h263 bytestream from a socket Message-ID: <3a8482a10908170642j77094532wa5e273de278ab6cd@mail.gmail.com> Hi all, does anyone know how can i use a a socket, which stream h263 raw bytestream, as a source for a live media server?? i've looked in examples and faqs but i haven't find out nothing.. Thanks all, Regards Brizio -------------- next part -------------- An HTML attachment was scrubbed... URL: From lanlantao at gmail.com Mon Aug 17 09:53:10 2009 From: lanlantao at gmail.com (Tao Wu) Date: Mon, 17 Aug 2009 11:53:10 -0500 Subject: [Live-devel] H264 video frame problem Message-ID: <712d99b30908170953u5eb2bd4cpbdb9729f94f3179c@mail.gmail.com> Hi, I am working on a H264 video framer to stream a h264 file. I did some search on the forum and found Mike did some solid work before. Basically, I wrote a H264 videostream class, which are almost a re-make of Mike's work. However, I have problems to play the stream on VLC. The VLC player will collapse when opening the rtsp stream. Interestingly, I can use openRTSP test program to receive the stream and stored it into a file. Then the VLC can play the stored file locally. I don't know whether it is a problem of my code or VLC (verylikely it is my code problem). I attached the RTSP response from openRTSP test program. I greatly appreciate if anyone can take a look to see what I missed. Thanks a lot. Best Regards, Tao [root at localhost testProgs]# ./openRTSP rtsp://192.168.3.118:8554/testStream Sending request: OPTIONS rtsp://192.168.3.118:8554/testStream RTSP/1.0 CSeq: 1 User-Agent: ./openRTSP (LIVE555 Streaming Media v2009.07.09) Received OPTIONS response: RTSP/1.0 200 OK CSeq: 1 Date: Mon, Aug 17 2009 15:48:38 GMT Public: OPTIONS, DESCRIBE, SETUP, TEARDOWN, PLAY, PAUSE, GET_PARAMETER, SET_PARAMETER Sending request: DESCRIBE rtsp://192.168.3.118:8554/testStream RTSP/1.0 CSeq: 2 Accept: application/sdp User-Agent: ./openRTSP (LIVE555 Streaming Media v2009.07.09) Received DESCRIBE response: RTSP/1.0 200 OK CSeq: 2 Date: Mon, Aug 17 2009 15:48:38 GMT Content-Base: rtsp://192.168.3.118:8554/testStream/ Content-Type: application/sdp Content-Length: 549 Need to read 549 extra bytes Read 549 extra bytes: v=0 o=- 1250524112264834 1 IN IP4 192.168.3.118 s=Session streamed by "testMPEG4VideoStreamer" i=test.264 t=0 0 a=tool:LIVE555 Streaming Media v2009.07.09 a=type:broadcast a=control:* a=source-filter: incl IN IP4 * 192.168.3.118 a=rtcp-unicast: reflection a=range:npt=0- a=x-qt-text-nam:Session streamed by "testMPEG4VideoStreamer" a=x-qt-text-inf:test.264 m=video 18888 RTP/AVP 96 c=IN IP4 232.246.13.193/255 a=rtpmap:96 H264/90000 a=fmtp:96 packetization-mode=1;profile-level-id=000042;sprop-parameter-sets=h264 a=control:track1 Opened URL "rtsp://192.168.3.118:8554/testStream", returning a SDP description: v=0 o=- 1250524112264834 1 IN IP4 192.168.3.118 s=Session streamed by "testMPEG4VideoStreamer" i=test.264 t=0 0 a=tool:LIVE555 Streaming Media v2009.07.09 a=type:broadcast a=control:* a=source-filter: incl IN IP4 * 192.168.3.118 a=rtcp-unicast: reflection a=range:npt=0- a=x-qt-text-nam:Session streamed by "testMPEG4VideoStreamer" a=x-qt-text-inf:test.264 m=video 18888 RTP/AVP 96 c=IN IP4 232.246.13.193/255 a=rtpmap:96 H264/90000 a=fmtp:96 packetization-mode=1;profile-level-id=000042;sprop-parameter-sets=h264 a=control:track1 Created receiver for "video/H264" subsession (client ports 18888-18889) Sending request: SETUP rtsp://192.168.3.118:8554/testStream/track1 RTSP/1.0 CSeq: 3 Transport: RTP/AVP;multicast;client_port=18888-18889 User-Agent: ./openRTSP (LIVE555 Streaming Media v2009.07.09) Received SETUP response: RTSP/1.0 200 OK CSeq: 3 Date: Mon, Aug 17 2009 15:48:38 GMT Transport: RTP/AVP;multicast;destination=232.246.13.193;source=192.168.3.118;port=18888-18889;ttl=255 Session: 1 Setup "video/H264" subsession (client ports 18888-18889) Created output file: "video-H264-1" Sending request: PLAY rtsp://192.168.3.118:8554/testStream/ RTSP/1.0 CSeq: 4 Session: 1 Range: npt=0.000- User-Agent: ./openRTSP (LIVE555 Streaming Media v2009.07.09) Received PLAY response: RTSP/1.0 200 OK CSeq: 4 Date: Mon, Aug 17 2009 15:48:38 GMT Range: npt=0.000- Session: 1 RTP-Info: url=rtsp://192.168.3.118:8554/testStream/track1;seq=64206;rtptime=3045038948 Started playing session Receiving streamed data (signal with "kill -HUP 10252" or "kill -USR1 10252" to terminate)... From finlayson at live555.com Mon Aug 17 22:32:41 2009 From: finlayson at live555.com (Ross Finlayson) Date: Mon, 17 Aug 2009 22:32:41 -0700 Subject: [Live-devel] Read h263 bytestream from a socket In-Reply-To: <3a8482a10908170642j77094532wa5e273de278ab6cd@mail.gmail.com> References: <3a8482a10908170642j77094532wa5e273de278ab6cd@mail.gmail.com> Message-ID: >does anyone know how can i use a a socket, which stream h263 raw >bytestream, as a source for a live media server?? Use "fdopen()" to create a "FILE*" that encapsulates the socket, and then pass this "FILE*" to the second version of "ByteStreamFileSource::createNew()" (see "liveMedia/include/ByteStreamFileSource.hh"). (Unfortunately, this might not work if you're on Windows, because it's lame.) Then, feed this into a "H263plusVideoStreamFramer", and then into a "H263plusVideoRTPSink". -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From finlayson at live555.com Mon Aug 17 22:34:50 2009 From: finlayson at live555.com (Ross Finlayson) Date: Mon, 17 Aug 2009 22:34:50 -0700 Subject: [Live-devel] H264 video frame problem In-Reply-To: <712d99b30908170953u5eb2bd4cpbdb9729f94f3179c@mail.gmail.com> References: <712d99b30908170953u5eb2bd4cpbdb9729f94f3179c@mail.gmail.com> Message-ID: The "sprop-parameter-sets" string in your SDP description is wrong. You must pass a proper "sprop_parameter_sets_str" parameter to "H264VideoRTPSink::createNew()". This "sprop_parameter_sets_str" should be the Base64-encoded strings for the PPS and SPS NAL units, separated by a comma (',') character. -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From silence.vincent at msa.hinet.net Tue Aug 18 00:20:46 2009 From: silence.vincent at msa.hinet.net (Vincent Chen) Date: Tue, 18 Aug 2009 15:20:46 +0800 Subject: [Live-devel] rtsp response problem Message-ID: Hi, I am developing a RTSP Client, and have problem sending SETUP or PLAY command to server with RTSPClient::setupMediaSubsession() and RTSPClient::playMediaSubsession(). If I get the SDP from server as the following message: ------------------------------------------------------------------------------------------------------------------------------------------ Sending request: DESCRIBE rtsp://172.16.2.209:554/v1 RTSP/1.0 CSeq: 1 Accept: application/sdp User-Agent: TestClient (LIVE555 Streaming Media v2009.07.09) Received DESCRIBE response: RTSP/1.0 200 OK CSeq: 1 Server: VStream Streaming Server V1.0 Content-Base: rtsp://172.16.2.209:554/v1/ Content-Type: application/sdp Content-Length: 355 Need to read 355 extra bytes Read 355 extra bytes: v=0 o=- 1 1 IN IP4 127.0.0.1 s=VStream Live i=ICL Streaming Media c=IN IP4 0.0.0.0 t=0 0 m=video 0 RTP/AVP 99 a=rtpmap:99 H264/90000 a=fmtp:99 profile-level-id=42A01E;packetization-mode=1;sprop-parameter-sets=Z0IAHukBaHsg,aM44gA== a=control:trackID=0 m=audio 0 RTP/AVP 14 a=fmtp:14 config=0050000100003e8000000fa001200000 a=control:trackID=1 ------------------------------------------------------------------------------------------------------------------------------------------ I will only SETUP and PLAY H.264 video stream as the following command: ------------------------------------------------------------------------------------------------------------------------------------------ Sending request: SETUP rtsp://172.16.2.209:554/v1/trackID=0 RTSP/1.0 CSeq: 2 Transport: RTP/AVP;unicast;client_port=60686-60687 User-Agent: TestClient (LIVE555 Streaming Media v2009.07.09) Received SETUP response: RTSP/1.0 200 OK CSeq: 2 Cache-Control: no-cache Transport: RTP/AVP;unicast;mode=play;client_port=60686-60687;server_port=51894-51895 Session: BDCED3A012717E1B5E46 Sending request: PLAY rtsp://172.16.2.209:554/v1/ RTSP/1.0 CSeq: 3 Session: BDCED3A012717E1B5E46 Range: npt=0.000- User-Agent: TestClient (LIVE555 Streaming Media v2009.07.09) Received PLAY response: RTSP/1.0 200 OK CSeq: 3 Session: BDCED3A012717E1B5E46 Range: npt=now- RTP-Info: url=rtsp://172.16.2.209:554/v1//trackID=0;seq=41204;rtptime=0 ------------------------------------------------------------------------------------------------------------------------------------------ After a while, when the VIDEO stream is still playing, I wanna SETUP another stream in the *same* RTSP connection, according to SDP, it's trackID=1. I use RTSPClient::setupMediaSubsession() to send SETUP. ------------------------------------------------------------------------------------------------------------------------------------------ Sending request: SETUP rtsp://172.16.2.209:554/v1/trackID=1 RTSP/1.0 CSeq: 4 Transport: RTP/AVP;unicast;client_port=37178-37179 Session: BDCED3A012717E1B5E46 User-Agent: TestClient (LIVE555 Streaming Media v2009.07.09) Tasot T/V;ncs;oepa;letpr=27-277;server_pot5985919 eso:07611AFC4E ------------------------------------------------------------------------------------------------------------------------------------------ you can see the Response from server is a mess, but I can be sure of one thing, the Server do response properly to client Because I capture the TCP/IP packet via software Wireshark. but livemedia seems to be failed in reading and parsing response? ps. livemedia version: 2009.07.09 thanks for reading and help! regards, Vincent -------------- next part -------------- An HTML attachment was scrubbed... URL: From Deepti.Saraswat at sdc.canon.co.in Wed Aug 19 23:46:26 2009 From: Deepti.Saraswat at sdc.canon.co.in (Deepti.Saraswat at sdc.canon.co.in) Date: Thu, 20 Aug 2009 12:16:26 +0530 Subject: [Live-devel] Regarding CODEC ID Message-ID: Hello, If I use testOnDemandRTSPServer to stream .mp3 file , it transfer the file but "MPA" codec name . Pl let me know if it is somewhere mentioned that whcih codec ID will go along with this codec name. because at the receiving end I have only this codec name information .and on the basis of this info I have to decode the audio. Regards Deepti Help save paper - do you need to print this email ? This e-mail and any files transmitted with it are confidential and intended solely for the use of the individual(s) or entity addressed above. If you are not the intended recipient of this e-mail, then (i) please notify us at cipl.administrator at canon.co.in (ii) do not use the information contained & (iii) delete it from your system . E-mail communications are not secure. Though efforts have been taken to ensure that this communication has not been tampered with; however, Canon India Pvt Ltd. is not responsible for any changes made to the contents of or any attachments to this message without its consent. All information contained in this message which are not of an official nature shall not be deemed as given or endorsed by Canon India Pvt. Ltd. From finlayson at live555.com Thu Aug 20 01:34:20 2009 From: finlayson at live555.com (Ross Finlayson) Date: Thu, 20 Aug 2009 01:34:20 -0700 Subject: [Live-devel] Regarding CODEC ID In-Reply-To: References: Message-ID: >If I use testOnDemandRTSPServer to stream .mp3 file , it transfer the file >but "MPA" codec name . Strictly speaking, "MPA" (more precisely, "audio/MPA") is a media type name (that defines a RTP payload format). >Pl let me know if it is somewhere mentioned that whcih codec ID will go >along with this codec name. See http://www.iana.org/assignments/media-types/ So, for "audio" media types, see: http://www.iana.org/assignments/media-types/audio/ Note the link for "MPA". -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From ganesh_vijayan at yahoo.com Thu Aug 20 02:11:28 2009 From: ganesh_vijayan at yahoo.com (Ganesh V) Date: Thu, 20 Aug 2009 02:11:28 -0700 (PDT) Subject: [Live-devel] Regarding CODEC ID In-Reply-To: References: Message-ID: <321599.68666.qm@web39503.mail.mud.yahoo.com> Hello Deepti, MPA means that the media sub-session is of MPEG Audio type (MPEG-1,2,3). For more information, refer RFC 3555 sec 4.1.7. Hope this helps, Ganesh ________________________________ From: "Deepti.Saraswat at sdc.canon.co.in" To: LIVE555 Streaming Media - development & use Sent: Thursday, August 20, 2009 12:16:26 PM Subject: [Live-devel] Regarding CODEC ID Hello, If I use testOnDemandRTSPServer to stream .mp3 file , it transfer the file but "MPA" codec name . Pl let me know if it is somewhere mentioned that whcih codec ID will go along with this codec name. because at the receiving end I have only this codec name information .and on the basis of this info I have to decode the audio. Regards Deepti Help save paper - do you need to print this email ? This e-mail and any files transmitted with it are confidential and intended solely for the use of the individual(s) or entity addressed above. If you are not the intended recipient of this e-mail, then (i) please notify us at cipl.administrator at canon.co.in (ii) do not use the information contained & (iii) delete it from your system . E-mail communications are not secure. Though efforts have been taken to ensure that this communication has not been tampered with; however, Canon India Pvt Ltd. is not responsible for any changes made to the contents of or any attachments to this message without its consent. All information contained in this message which are not of an official nature shall not be deemed as given or endorsed by Canon India Pvt. Ltd. _______________________________________________ live-devel mailing list live-devel at lists.live555.com http://lists.live555.com/mailman/listinfo/live-devel -------------- next part -------------- An HTML attachment was scrubbed... URL: From devaureshy at gmail.com Thu Aug 20 03:35:05 2009 From: devaureshy at gmail.com (Steve Jiekak) Date: Thu, 20 Aug 2009 12:35:05 +0200 Subject: [Live-devel] Receiver for H.264 Message-ID: <614230390908200335k1cd653b9tcb73e80b0ef7a302@mail.gmail.com> Hi, I am trying to write a receiver for H.264, but my efforts are vain. I already have a successful streamer which start an rstp server, and was trying to write a sender/receiver as for mpeg1or2. Actually my sender/receiver looks like the testMPEG1or2Streamer/testMPEG1or2Receiver without RSTP, and I took care to use the right SOurce/Sink class. FFmpeg recognise the format, with "Duration: N/A, bitrate: N/A", and vlc is not able to play it. Con someone tell me what's missing?? Regards, Steve Jiekak -------------- next part -------------- An HTML attachment was scrubbed... URL: From ganesh_vijayan at yahoo.com Thu Aug 20 07:41:47 2009 From: ganesh_vijayan at yahoo.com (Ganesh V) Date: Thu, 20 Aug 2009 07:41:47 -0700 (PDT) Subject: [Live-devel] Receiver for H.264 In-Reply-To: <614230390908200335k1cd653b9tcb73e80b0ef7a302@mail.gmail.com> References: <614230390908200335k1cd653b9tcb73e80b0ef7a302@mail.gmail.com> Message-ID: <143084.32142.qm@web39508.mail.mud.yahoo.com> Hi Steve, While implementing a streamer out and streamer in for H.264, you need to ensure the following: On Server: - SPS and PPS are used to generate sprop_parameter_sets. The 2 parameter sets i.e. SPS and PPS should be encoded in base-64 format with a comma separating the two. Do note that SPS and PPS information should not have the NALU start code. This is passed along with SDP information - While transmitting using livemedia library, you should strip off the NALU start code i.e. 0x00 00 00 01. On the receiver end: - You need to gather SPS and PPS from SDP once your media sub-session is created, which involved base64 decoding and adding a NALU start code (dependent on the decoder connected at the output of receiver - You should be receiving data NALU by NALU, but probably need to attach the NALU start code at the starting of each packet received. In general, you may require an interface to interact with H264VideoRTPSource/H264VideoRTPSink classes. Hope this helps. Ganesh ________________________________ From: Steve Jiekak To: live-devel at ns.live555.com Sent: Thursday, August 20, 2009 4:05:05 PM Subject: [Live-devel] Receiver for H.264 Hi, I am trying to write a receiver for H.264, but my efforts are vain. I already have a successful streamer which start an rstp server, and was trying to write a sender/receiver as for mpeg1or2. Actually my sender/receiver looks like the testMPEG1or2Streamer/testMPEG1or2Receiver without RSTP, and I took care to use the right SOurce/Sink class. FFmpeg recognise the format, with "Duration: N/A, bitrate: N/A", and vlc is not able to play it. Con someone tell me what's missing?? Regards, Steve Jiekak -------------- next part -------------- An HTML attachment was scrubbed... URL: From ilya_il at hotmail.com Thu Aug 20 09:32:54 2009 From: ilya_il at hotmail.com (Ilya Feldman) Date: Thu, 20 Aug 2009 16:32:54 +0000 Subject: [Live-devel] Multi-frame and multi-packet RTP In-Reply-To: References: Message-ID: Hi, Ross. I receive an RTP-H264 stream from a Sony camera. An RTP packet sometimes containes 2 completed NAL units (of SEQ and PIC types) and the part of IDR or NON-IDR slice frame. The next few packets contain the next parts of this big frame. So from one side this stream is multi-framed, from another side it's multi-packeted. Can MultiFramedRTPSource and H264VideoRTPSource properly process this RTP stream? Do I need to create them with some specific parameters? Thank you. Ilya Feldman. _________________________________________________________________ More storage. Better anti-spam and antivirus protection. Hotmail makes it simple. http://go.microsoft.com/?linkid=9671357 -------------- next part -------------- An HTML attachment was scrubbed... URL: From lanlantao at gmail.com Thu Aug 20 12:56:48 2009 From: lanlantao at gmail.com (Tao Wu) Date: Thu, 20 Aug 2009 14:56:48 -0500 Subject: [Live-devel] H264 SDP sprop_parameter_sets_str definition Message-ID: <712d99b30908201256hf07b9aen91816b518aba9dab@mail.gmail.com> Hi, I write a H264 framer and it works with openRTSP. However, it will cause VLC player to crash. Thanks for Ross's comment, I realized that my setup of SDP sprop_parameter_sets_str is not correct. I do not know the format or structure of SDP sprop_parameter_sets. I go over the RFC 3984, but not find the structure of it. Can anyone point out where I can find its definition/structure? Thanks a lot. Tao From finlayson at live555.com Thu Aug 20 16:04:07 2009 From: finlayson at live555.com (Ross Finlayson) Date: Thu, 20 Aug 2009 16:04:07 -0700 Subject: [Live-devel] Multi-frame and multi-packet RTP In-Reply-To: References: Message-ID: >I receive an RTP-H264 stream from a Sony camera. An RTP packet >sometimes containes 2 completed NAL units >(of SEQ and PIC types) and the part of IDR or NON-IDR slice frame. >The next few packets contain the next parts of this big frame. So >from one side this stream is multi-framed, from another side it's >multi-packeted. > >Can MultiFramedRTPSource and H264VideoRTPSource properly process >this RTP stream? Yes, provided that the RTP packets are fragmented properly (according to the standard defined in RFC 3984). > Do I need to create them with some specific parameters? You need only create a "H264VideoRTPSource" (because it's a subclass of "MultiFramedRTPSource"). No specific parameters (whatever that means :-) are needed. -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From kidjan at gmail.com Thu Aug 20 16:17:50 2009 From: kidjan at gmail.com (Jeremy Noring) Date: Thu, 20 Aug 2009 16:17:50 -0700 Subject: [Live-devel] H264 SDP sprop_parameter_sets_str definition In-Reply-To: <712d99b30908201256hf07b9aen91816b518aba9dab@mail.gmail.com> References: <712d99b30908201256hf07b9aen91816b518aba9dab@mail.gmail.com> Message-ID: On Thu, Aug 20, 2009 at 12:56 PM, Tao Wu wrote: > Hi, > > I write a H264 framer and it works with openRTSP. However, it will > cause VLC player to crash. > Thanks for Ross's comment, I realized that my setup of SDP > sprop_parameter_sets_str is not correct. > > I do not know the format or structure of SDP sprop_parameter_sets. I > go over the RFC 3984, but not find the structure of it. > Can anyone point out where I can find its definition/structure? It's already been discussed here extensively, but the format is: "SPS as Base64,PPS as Base64" SPS/PPS correspond with Sequence Parameter Set and Picture Parameter Set, respectively. So the SPS info base-64 encoded followed by the PPS base-64 encoded, and delimited with a ",". If you're asking about the actual format of the SPS/PPS info, that's specified in the ITU-T H.264 specification, but you really don't need to know any of that information to get streaming working. Your H.264 encoder should have some way of providing you the SPS/PPS data, either in the video stream itself or through some other interface. I'd consult the API for your encoder. -------------- next part -------------- An HTML attachment was scrubbed... URL: From ganesh_vijayan at yahoo.com Thu Aug 20 16:23:34 2009 From: ganesh_vijayan at yahoo.com (Ganesh V) Date: Thu, 20 Aug 2009 16:23:34 -0700 (PDT) Subject: [Live-devel] H264 SDP sprop_parameter_sets_str definition In-Reply-To: <712d99b30908201256hf07b9aen91816b518aba9dab@mail.gmail.com> References: <712d99b30908201256hf07b9aen91816b518aba9dab@mail.gmail.com> Message-ID: <93818.23460.qm@web39504.mail.mud.yahoo.com> Hi Tao, >From RFC 3984, (sprop-parameter-sets) The value of the parameter is the base64 [6] representation of the initial parameter set NAL units as specified in sections 7.3.2.1 and 7.3.2.2 of [1] This refers to SPS and PPS in H.264 standard. This post shows the description of sprop_parameter_sets: http://lists.live555.com/pipermail/live-devel/2009-May/010602.html When SPS and PPS are used to generate the sprop_parameter_sets, their NALU start codes should be removed. Cheers, Ganesh ________________________________ From: Tao Wu To: live-devel at ns.live555.com Sent: Friday, August 21, 2009 1:26:48 AM Subject: [Live-devel] H264 SDP sprop_parameter_sets_str definition Hi, I write a H264 framer and it works with openRTSP. However, it will cause VLC player to crash. Thanks for Ross's comment, I realized that my setup of SDP sprop_parameter_sets_str is not correct. I do not know the format or structure of SDP sprop_parameter_sets. I go over the RFC 3984, but not find the structure of it. Can anyone point out where I can find its definition/structure? Thanks a lot. Tao _______________________________________________ live-devel mailing list live-devel at lists.live555.com http://lists.live555.com/mailman/listinfo/live-devel -------------- next part -------------- An HTML attachment was scrubbed... URL: From silence.vincent at msa.hinet.net Thu Aug 20 18:51:34 2009 From: silence.vincent at msa.hinet.net (Vincent Chen) Date: Fri, 21 Aug 2009 09:51:34 +0800 Subject: [Live-devel] rtsp response problem In-Reply-To: References: Message-ID: Hi all, I think I found the problem, While the client is receiving VIDEO stream data, and want to SETUP another stream, such as AUDIO stream. In other words, it will reuse the same RTSP connection to send out SETUP/PLAY command. If the client code is as follow to send the SETUP/PLAY command in the existence RTSP connection: rtspClient->setupMediaSubsession(*subsession, False, streamUsingTCP); //send SETUP rtspClient->playMediaSubsession(*subsession); //send PLAY it will failed to recv response data from Server side and mess it up, because the Event Loop will recv the data at the same time. so my solution is to create a task, such as: env->taskScheduler().scheduleDelayedTask(); And it work fine. I hope my conclusion is right :-) 2009/8/18 Vincent Chen > Hi, > > I am developing a RTSP Client, and have problem sending SETUP or PLAY > command to server with RTSPClient::setupMediaSubsession() and > RTSPClient::playMediaSubsession(). > > If I get the SDP from server as the following message: > > ------------------------------------------------------------------------------------------------------------------------------------------ > Sending request: DESCRIBE rtsp://172.16.2.209:554/v1 RTSP/1.0 > CSeq: 1 > Accept: application/sdp > User-Agent: TestClient (LIVE555 Streaming Media v2009.07.09) > > Received DESCRIBE response: RTSP/1.0 200 OK > CSeq: 1 > Server: VStream Streaming Server V1.0 > Content-Base: rtsp://172.16.2.209:554/v1/ > Content-Type: application/sdp > Content-Length: 355 > > ----------------------------------------------------------------------------------------- > -------------- next part -------------- An HTML attachment was scrubbed... URL: From devaureshy at gmail.com Fri Aug 21 00:54:43 2009 From: devaureshy at gmail.com (Steve Jiekak) Date: Fri, 21 Aug 2009 09:54:43 +0200 Subject: [Live-devel] Receiver for H.264 In-Reply-To: <143084.32142.qm@web39508.mail.mud.yahoo.com> References: <614230390908200335k1cd653b9tcb73e80b0ef7a302@mail.gmail.com> <143084.32142.qm@web39508.mail.mud.yahoo.com> Message-ID: <614230390908210054r33b122cft15df720f9a8010eb@mail.gmail.com> Thanks for your reply Ganesh, I have some questions inline. On Server: > - SPS and PPS are used to generate sprop_parameter_sets. The 2 parameter > sets i.e. SPS and PPS should be encoded in base-64 format with a comma > separating the two. Do note that SPS and PPS information should not have the > NALU start code. This is passed along with SDP information > Thanks a lot, this is a useful information, I didn't know that the params for the sink class was used for SDP information. > > - While transmitting using livemedia library, you should strip off the NALU > start code i.e. 0x00 00 00 01. > yes, My framer already discard start sequence . > > On the receiver end: > - You need to gather SPS and PPS from SDP once your media sub-session is > created, which involved base64 decoding and adding a NALU start code > (dependent on the decoder connected at the output of receiver > So I should write it at the beginning of the file like packets?? like 0x00 00 00 01 0xSPS 0x00 00 001 0xPPS?? > > - You should be receiving data NALU by NALU, but probably need to attach > the NALU start code at the starting of each packet received. > Done by live itself :) Regards,Steve -------------- next part -------------- An HTML attachment was scrubbed... URL: From devaureshy at gmail.com Fri Aug 21 02:52:35 2009 From: devaureshy at gmail.com (Steve Jiekak) Date: Fri, 21 Aug 2009 11:52:35 +0200 Subject: [Live-devel] Receiver for H.264 In-Reply-To: <614230390908210054r33b122cft15df720f9a8010eb@mail.gmail.com> References: <614230390908200335k1cd653b9tcb73e80b0ef7a302@mail.gmail.com> <143084.32142.qm@web39508.mail.mud.yahoo.com> <614230390908210054r33b122cft15df720f9a8010eb@mail.gmail.com> Message-ID: <614230390908210252r51f98d1fvf631f694867f1ffe@mail.gmail.com> I think I might be wrong, is the NAL unit type octet respectively : 0 11 00111 for SPS so 0x67 0 11 01000 for PPS so 0x68 ?? -------------- next part -------------- An HTML attachment was scrubbed... URL: From Deepti.Saraswat at sdc.canon.co.in Fri Aug 21 05:31:42 2009 From: Deepti.Saraswat at sdc.canon.co.in (Deepti.Saraswat at sdc.canon.co.in) Date: Fri, 21 Aug 2009 18:01:42 +0530 Subject: [Live-devel] Does LIVE55 support HHTPs tunneling Message-ID: Does LIVE555 supports 1. RTP over RTSP. 2. RTP over RTSP over Http 3. RTP over RTSP over https if yes then how because the "portNumBits tunnelOverHTTPPortNum" parameter only talks about http not about https. Regards Deepti Help save paper - do you need to print this email ? This e-mail and any files transmitted with it are confidential and intended solely for the use of the individual(s) or entity addressed above. If you are not the intended recipient of this e-mail, then (i) please notify us at cipl.administrator at canon.co.in (ii) do not use the information contained & (iii) delete it from your system . E-mail communications are not secure. Though efforts have been taken to ensure that this communication has not been tampered with; however, Canon India Pvt Ltd. is not responsible for any changes made to the contents of or any attachments to this message without its consent. All information contained in this message which are not of an official nature shall not be deemed as given or endorsed by Canon India Pvt. Ltd. From finlayson at live555.com Fri Aug 21 06:50:53 2009 From: finlayson at live555.com (Ross Finlayson) Date: Fri, 21 Aug 2009 06:50:53 -0700 Subject: [Live-devel] Does LIVE55 support HHTPs tunneling In-Reply-To: References: Message-ID: >Does LIVE555 supports >1. RTP over RTSP. Yes (client and server). (Is this not obvious from the code??) >2. RTP over RTSP over Http Yes, but currently only for clients. (Server support for this has not yet been completed.) >3. RTP over RTSP over https I don't know. > >if yes then how because the "portNumBits tunnelOverHTTPPortNum" parameter >only talks about http not about https. I don't know enough about HTTPS to know what happens if you use a HTTPS port for this, with the existing client code. -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From ganesh_vijayan at yahoo.com Fri Aug 21 09:45:49 2009 From: ganesh_vijayan at yahoo.com (Ganesh V) Date: Fri, 21 Aug 2009 09:45:49 -0700 (PDT) Subject: [Live-devel] Receiver for H.264 In-Reply-To: <614230390908210054r33b122cft15df720f9a8010eb@mail.gmail.com> References: <614230390908200335k1cd653b9tcb73e80b0ef7a302@mail.gmail.com> <143084.32142.qm@web39508.mail.mud.yahoo.com> <614230390908210054r33b122cft15df720f9a8010eb@mail.gmail.com> Message-ID: <129364.18473.qm@web39507.mail.mud.yahoo.com> Steve, My answers below: >On the receiver end: >- You need to gather SPS and PPS from SDP once your media sub-session is created, which involved base64 decoding and adding a NALU start code (dependent on the decoder connected at the output > of receiver So I should write it at the beginning of the file like packets?? like 0x00 00 00 01 0xSPS 0x00 00 001 0xPPS?? >SPS and PPS together are used in Creation of the Sink i.e. sprop_parameter_sets is passed when the Sink is created. For every frame/slice, send the data without the NALU start code. The starting octet may be 65 or 21. > >Hope this helps, > >Ganesh > -------------- next part -------------- An HTML attachment was scrubbed... URL: From sharda.murthi at gmail.com Fri Aug 21 23:45:27 2009 From: sharda.murthi at gmail.com (Sharda Murthi) Date: Sat, 22 Aug 2009 02:45:27 -0400 Subject: [Live-devel] Problem faced while compiling code in Visual Studio 9 Message-ID: Hi, I am attempting to compile the latest live555 code in Microsoft VIsual Studio 9. However, while running the run.bat file, I encounter the following error: fatal error U1073: don't know how to make '../groupsock/libgroupsock.lib` Has anyone encountered this error before? A look at the code indicates that libgroupsock object file library is not present in the groupsock directory. How does one go about this? Thanks, Sharda -------------- next part -------------- An HTML attachment was scrubbed... URL: From dushi310 at 163.com Sun Aug 23 06:36:27 2009 From: dushi310 at 163.com (=?gbk?B?tsXKsQ==?=) Date: Sun, 23 Aug 2009 21:36:27 +0800 (CST) Subject: [Live-devel] A Question about 'Pause' command Message-ID: <17306885.164991251034587654.JavaMail.coremail@bj163app98.163.com> Hi ,Ross When I use RTSP client to send 'PAUSE' command, The RTSP Server work well, It will stop to send stream to client immediately. But when I send 'PLAY' command after sending 'PAUSE' command,Sometimes It can continual send the data stream. Sometimes It can not send the data again, the stream will pause forever. So I want to know If I want to continual send the data after 'PAUSE' ,I just send 'PLAY' command is right or not. -------------- next part -------------- An HTML attachment was scrubbed... URL: From finlayson at live555.com Sun Aug 23 07:36:15 2009 From: finlayson at live555.com (Ross Finlayson) Date: Sun, 23 Aug 2009 07:36:15 -0700 Subject: [Live-devel] A Question about 'Pause' command In-Reply-To: <17306885.164991251034587654.JavaMail.coremail@bj163app98.163.com> References: <17306885.164991251034587654.JavaMail.coremail@bj163app98.163.com> Message-ID: >When I use RTSP client to send 'PAUSE' command, The RTSP Server work >well, It will stop to send stream to client immediately. >But when I send 'PLAY' command after sending 'PAUSE' >command,Sometimes It can continual send the data stream. Sometimes >It can not send the data again, the stream will pause forever. >So I want to know If I want to continual send the data after 'PAUSE' >,I just send 'PLAY' command is right or not. Yes, this is correct; just sending "PLAY" should be sufficient to restart the stream. When you have problems restarting the stream, is this with our original, unmodified server code? Which media type(s) does this happen with? -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From stas at tech-mer.com Mon Aug 24 01:44:48 2009 From: stas at tech-mer.com (Stas Desyatnlkov) Date: Mon, 24 Aug 2009 11:44:48 +0300 Subject: [Live-devel] live object delete sequence Message-ID: <21E398286732DC49AD45BE8C7BE96C0795D4F84801@fs11.mertree.mer.co.il> Hi, In my app I have to create and delete live objects (scheduler, usage environment, rtp sink, rtcp, video source, stremer...) multiple times. What should be the proper delete sequence for the above? Does deleting the usage environment also destroys scheduler? Do I have to delete RTP and RTCP sockets separately? -------------- next part -------------- An HTML attachment was scrubbed... URL: From amit.yedidia at elbitsystems.com Mon Aug 24 01:56:57 2009 From: amit.yedidia at elbitsystems.com (Yedidia Amit) Date: Mon, 24 Aug 2009 11:56:57 +0300 Subject: [Live-devel] live object delete sequence In-Reply-To: <21E398286732DC49AD45BE8C7BE96C0795D4F84801@fs11.mertree.mer.co.il> Message-ID: you should call reclaim() on the usageEnviroment, and then delete the task schedualer. pEnv->reclaim(); delete pTaskSchedualer; Amit Yedidia ________________________________ From: live-devel-bounces at ns.live555.com [mailto:live-devel-bounces at ns.live555.com] On Behalf Of Stas Desyatnlkov Sent: Monday, August 24, 2009 11:45 AM To: live-devel at ns.live555.com Subject: [Live-devel] live object delete sequence Hi, In my app I have to create and delete live objects (scheduler, usage environment, rtp sink, rtcp, video source, stremer...) multiple times. What should be the proper delete sequence for the above? Does deleting the usage environment also destroys scheduler? Do I have to delete RTP and RTCP sockets separately? The information in this e-mail transmission contains proprietary and business sensitive information. Unauthorized interception of this e-mail may constitute a violation of law. If you are not the intended recipient, you are hereby notified that any review, dissemination, distribution or duplication of this communication is strictly prohibited. You are also asked to contact the sender by reply email and immediately destroy all copies of the original message. -------------- next part -------------- An HTML attachment was scrubbed... URL: From stas at tech-mer.com Mon Aug 24 02:26:07 2009 From: stas at tech-mer.com (Stas Desyatnlkov) Date: Mon, 24 Aug 2009 12:26:07 +0300 Subject: [Live-devel] live object delete sequence In-Reply-To: References: <21E398286732DC49AD45BE8C7BE96C0795D4F84801@fs11.mertree.mer.co.il> Message-ID: <21E398286732DC49AD45BE8C7BE96C0795D4F84809@fs11.mertree.mer.co.il> That is what I'm doing. Will the rest of the objects get disposed too? From: live-devel-bounces at ns.live555.com [mailto:live-devel-bounces at ns.live555.com] On Behalf Of Yedidia Amit Sent: Monday, August 24, 2009 11:57 AM To: LIVE555 Streaming Media - development & use Subject: Re: [Live-devel] live object delete sequence you should call reclaim() on the usageEnviroment, and then delete the task schedualer. pEnv->reclaim(); delete pTaskSchedualer; Amit Yedidia ________________________________ From: live-devel-bounces at ns.live555.com [mailto:live-devel-bounces at ns.live555.com] On Behalf Of Stas Desyatnlkov Sent: Monday, August 24, 2009 11:45 AM To: live-devel at ns.live555.com Subject: [Live-devel] live object delete sequence Hi, In my app I have to create and delete live objects (scheduler, usage environment, rtp sink, rtcp, video source, stremer...) multiple times. What should be the proper delete sequence for the above? Does deleting the usage environment also destroys scheduler? Do I have to delete RTP and RTCP sockets separately? sensitive information. Unauthorized interception of this e-mail may constitute a violation of law. If you are not the intended recipient, you are hereby notified that any review, dissemination, distribution or duplication of this communication is strictly prohibited. You are also asked to contact the sender by reply email and immediately destroy all copies of the original message. -------------- next part -------------- An HTML attachment was scrubbed... URL: From amit.yedidia at elbitsystems.com Mon Aug 24 02:46:46 2009 From: amit.yedidia at elbitsystems.com (Yedidia Amit) Date: Mon, 24 Aug 2009 12:46:46 +0300 Subject: [Live-devel] live object delete sequence In-Reply-To: <21E398286732DC49AD45BE8C7BE96C0795D4F84809@fs11.mertree.mer.co.il> Message-ID: Thats depends on what you wrote... if you creadted RTSP server you shuld delete it. if there are active sessions in your server you should delete them before deleting the server etc.. ________________________________ From: live-devel-bounces at ns.live555.com [mailto:live-devel-bounces at ns.live555.com] On Behalf Of Stas Desyatnlkov Sent: Monday, August 24, 2009 12:26 PM To: LIVE555 Streaming Media - development & use Subject: Re: [Live-devel] live object delete sequence That is what I'm doing. Will the rest of the objects get disposed too? From: live-devel-bounces at ns.live555.com [mailto:live-devel-bounces at ns.live555.com] On Behalf Of Yedidia Amit Sent: Monday, August 24, 2009 11:57 AM To: LIVE555 Streaming Media - development & use Subject: Re: [Live-devel] live object delete sequence you should call reclaim() on the usageEnviroment, and then delete the task schedualer. pEnv->reclaim(); delete pTaskSchedualer; Amit Yedidia ________________________________ From: live-devel-bounces at ns.live555.com [mailto:live-devel-bounces at ns.live555.com] On Behalf Of Stas Desyatnlkov Sent: Monday, August 24, 2009 11:45 AM To: live-devel at ns.live555.com Subject: [Live-devel] live object delete sequence Hi, In my app I have to create and delete live objects (scheduler, usage environment, rtp sink, rtcp, video source, stremer...) multiple times. What should be the proper delete sequence for the above? Does deleting the usage environment also destroys scheduler? Do I have to delete RTP and RTCP sockets separately? sensitive information. Unauthorized interception of this e-mail may constitute a violation of law. If you are not the intended recipient, you are hereby notified that any review, dissemination, distribution or duplication of this communication is strictly prohibited. You are also asked to contact the sender by reply email and immediately destroy all copies of the original message. The information in this e-mail transmission contains proprietary and business sensitive information. Unauthorized interception of this e-mail may constitute a violation of law. If you are not the intended recipient, you are hereby notified that any review, dissemination, distribution or duplication of this communication is strictly prohibited. You are also asked to contact the sender by reply email and immediately destroy all copies of the original message. -------------- next part -------------- An HTML attachment was scrubbed... URL: From stas at tech-mer.com Mon Aug 24 04:20:12 2009 From: stas at tech-mer.com (Stas Desyatnlkov) Date: Mon, 24 Aug 2009 14:20:12 +0300 Subject: [Live-devel] live object delete sequence In-Reply-To: References: <21E398286732DC49AD45BE8C7BE96C0795D4F84809@fs11.mertree.mer.co.il> Message-ID: <21E398286732DC49AD45BE8C7BE96C0795D4F84826@fs11.mertree.mer.co.il> I did this: rtp_sock_ = new Groupsock(*env_, destinationAddress, rtpPort, 10); rtcp_sock_ = new Groupsock(*env_, destinationAddress, rtcpPort, 10); vsink_ = SimpleRTPSink::createNew(*env_, rtp_sock_, 33, 90000, "video", "mp2t", 1, True, False /*no 'M' bit*/); RTCPInstance* rtcp = RTCPInstance::createNew(*env_, rtcp_sock_, estimatedSessionBandwidth, CNAME, vsink_, NULL, false); So in the above example do I have to delete rtp_sock & rtcp_sock? Can I safely delete rtcp pointer after the server is stopped? From: live-devel-bounces at ns.live555.com [mailto:live-devel-bounces at ns.live555.com] On Behalf Of Yedidia Amit Sent: Monday, August 24, 2009 12:47 PM To: LIVE555 Streaming Media - development & use Subject: Re: [Live-devel] live object delete sequence Thats depends on what you wrote... if you creadted RTSP server you shuld delete it. if there are active sessions in your server you should delete them before deleting the server etc.. ________________________________ From: live-devel-bounces at ns.live555.com [mailto:live-devel-bounces at ns.live555.com] On Behalf Of Stas Desyatnlkov Sent: Monday, August 24, 2009 12:26 PM To: LIVE555 Streaming Media - development & use Subject: Re: [Live-devel] live object delete sequence That is what I'm doing. Will the rest of the objects get disposed too? From: live-devel-bounces at ns.live555.com [mailto:live-devel-bounces at ns.live555.com] On Behalf Of Yedidia Amit Sent: Monday, August 24, 2009 11:57 AM To: LIVE555 Streaming Media - development & use Subject: Re: [Live-devel] live object delete sequence you should call reclaim() on the usageEnviroment, and then delete the task schedualer. pEnv->reclaim(); delete pTaskSchedualer; Amit Yedidia ________________________________ From: live-devel-bounces at ns.live555.com [mailto:live-devel-bounces at ns.live555.com] On Behalf Of Stas Desyatnlkov Sent: Monday, August 24, 2009 11:45 AM To: live-devel at ns.live555.com Subject: [Live-devel] live object delete sequence Hi, In my app I have to create and delete live objects (scheduler, usage environment, rtp sink, rtcp, video source, stremer...) multiple times. What should be the proper delete sequence for the above? Does deleting the usage environment also destroys scheduler? Do I have to delete RTP and RTCP sockets separately? sensitive information. Unauthorized interception of this e-mail may constitute a violation of law. If you are not the intended recipient, you are hereby notified that any review, dissemination, distribution or duplication of this communication is strictly prohibited. You are also asked to contact the sender by reply email and immediately destroy all copies of the original message. sensitive information. Unauthorized interception of this e-mail may constitute a violation of law. If you are not the intended recipient, you are hereby notified that any review, dissemination, distribution or duplication of this communication is strictly prohibited. You are also asked to contact the sender by reply email and immediately destroy all copies of the original message. -------------- next part -------------- An HTML attachment was scrubbed... URL: From amit.yedidia at elbitsystems.com Mon Aug 24 04:26:50 2009 From: amit.yedidia at elbitsystems.com (Yedidia Amit) Date: Mon, 24 Aug 2009 14:26:50 +0300 Subject: [Live-devel] live object delete sequence In-Reply-To: <21E398286732DC49AD45BE8C7BE96C0795D4F84826@fs11.mertree.mer.co.il> Message-ID: the answer is yes for both ... ________________________________ From: live-devel-bounces at ns.live555.com [mailto:live-devel-bounces at ns.live555.com] On Behalf Of Stas Desyatnlkov Sent: Monday, August 24, 2009 2:20 PM To: LIVE555 Streaming Media - development & use Subject: Re: [Live-devel] live object delete sequence I did this: rtp_sock_ = new Groupsock(*env_, destinationAddress, rtpPort, 10); rtcp_sock_ = new Groupsock(*env_, destinationAddress, rtcpPort, 10); vsink_ = SimpleRTPSink::createNew(*env_, rtp_sock_, 33, 90000, "video", "mp2t", 1, True, False /*no 'M' bit*/); RTCPInstance* rtcp = RTCPInstance::createNew(*env_, rtcp_sock_, estimatedSessionBandwidth, CNAME, vsink_, NULL, false); So in the above example do I have to delete rtp_sock & rtcp_sock? Can I safely delete rtcp pointer after the server is stopped? From: live-devel-bounces at ns.live555.com [mailto:live-devel-bounces at ns.live555.com] On Behalf Of Yedidia Amit Sent: Monday, August 24, 2009 12:47 PM To: LIVE555 Streaming Media - development & use Subject: Re: [Live-devel] live object delete sequence Thats depends on what you wrote... if you creadted RTSP server you shuld delete it. if there are active sessions in your server you should delete them before deleting the server etc.. ________________________________ From: live-devel-bounces at ns.live555.com [mailto:live-devel-bounces at ns.live555.com] On Behalf Of Stas Desyatnlkov Sent: Monday, August 24, 2009 12:26 PM To: LIVE555 Streaming Media - development & use Subject: Re: [Live-devel] live object delete sequence That is what I'm doing. Will the rest of the objects get disposed too? From: live-devel-bounces at ns.live555.com [mailto:live-devel-bounces at ns.live555.com] On Behalf Of Yedidia Amit Sent: Monday, August 24, 2009 11:57 AM To: LIVE555 Streaming Media - development & use Subject: Re: [Live-devel] live object delete sequence you should call reclaim() on the usageEnviroment, and then delete the task schedualer. pEnv->reclaim(); delete pTaskSchedualer; Amit Yedidia ________________________________ From: live-devel-bounces at ns.live555.com [mailto:live-devel-bounces at ns.live555.com] On Behalf Of Stas Desyatnlkov Sent: Monday, August 24, 2009 11:45 AM To: live-devel at ns.live555.com Subject: [Live-devel] live object delete sequence Hi, In my app I have to create and delete live objects (scheduler, usage environment, rtp sink, rtcp, video source, stremer...) multiple times. What should be the proper delete sequence for the above? Does deleting the usage environment also destroys scheduler? Do I have to delete RTP and RTCP sockets separately? sensitive information. Unauthorized interception of this e-mail may constitute a violation of law. If you are not the intended recipient, you are hereby notified that any review, dissemination, distribution or duplication of this communication is strictly prohibited. You are also asked to contact the sender by reply email and immediately destroy all copies of the original message. sensitive information. Unauthorized interception of this e-mail may constitute a violation of law. If you are not the intended recipient, you are hereby notified that any review, dissemination, distribution or duplication of this communication is strictly prohibited. You are also asked to contact the sender by reply email and immediately destroy all copies of the original message. The information in this e-mail transmission contains proprietary and business sensitive information. Unauthorized interception of this e-mail may constitute a violation of law. If you are not the intended recipient, you are hereby notified that any review, dissemination, distribution or duplication of this communication is strictly prohibited. You are also asked to contact the sender by reply email and immediately destroy all copies of the original message. -------------- next part -------------- An HTML attachment was scrubbed... URL: From stas at tech-mer.com Mon Aug 24 04:52:23 2009 From: stas at tech-mer.com (Stas Desyatnlkov) Date: Mon, 24 Aug 2009 14:52:23 +0300 Subject: [Live-devel] live object delete sequence In-Reply-To: References: <21E398286732DC49AD45BE8C7BE96C0795D4F84826@fs11.mertree.mer.co.il> Message-ID: <21E398286732DC49AD45BE8C7BE96C0795D4F8482D@fs11.mertree.mer.co.il> Thanx Amit, just what I thought. It's a pity the samples does not demo the full clean up code for the objects used. From: live-devel-bounces at ns.live555.com [mailto:live-devel-bounces at ns.live555.com] On Behalf Of Yedidia Amit Sent: Monday, August 24, 2009 2:27 PM To: LIVE555 Streaming Media - development & use Subject: Re: [Live-devel] live object delete sequence the answer is yes for both ... ________________________________ From: live-devel-bounces at ns.live555.com [mailto:live-devel-bounces at ns.live555.com] On Behalf Of Stas Desyatnlkov Sent: Monday, August 24, 2009 2:20 PM To: LIVE555 Streaming Media - development & use Subject: Re: [Live-devel] live object delete sequence I did this: rtp_sock_ = new Groupsock(*env_, destinationAddress, rtpPort, 10); rtcp_sock_ = new Groupsock(*env_, destinationAddress, rtcpPort, 10); vsink_ = SimpleRTPSink::createNew(*env_, rtp_sock_, 33, 90000, "video", "mp2t", 1, True, False /*no 'M' bit*/); RTCPInstance* rtcp = RTCPInstance::createNew(*env_, rtcp_sock_, estimatedSessionBandwidth, CNAME, vsink_, NULL, false); So in the above example do I have to delete rtp_sock & rtcp_sock? Can I safely delete rtcp pointer after the server is stopped? From: live-devel-bounces at ns.live555.com [mailto:live-devel-bounces at ns.live555.com] On Behalf Of Yedidia Amit Sent: Monday, August 24, 2009 12:47 PM To: LIVE555 Streaming Media - development & use Subject: Re: [Live-devel] live object delete sequence Thats depends on what you wrote... if you creadted RTSP server you shuld delete it. if there are active sessions in your server you should delete them before deleting the server etc.. ________________________________ From: live-devel-bounces at ns.live555.com [mailto:live-devel-bounces at ns.live555.com] On Behalf Of Stas Desyatnlkov Sent: Monday, August 24, 2009 12:26 PM To: LIVE555 Streaming Media - development & use Subject: Re: [Live-devel] live object delete sequence That is what I'm doing. Will the rest of the objects get disposed too? From: live-devel-bounces at ns.live555.com [mailto:live-devel-bounces at ns.live555.com] On Behalf Of Yedidia Amit Sent: Monday, August 24, 2009 11:57 AM To: LIVE555 Streaming Media - development & use Subject: Re: [Live-devel] live object delete sequence you should call reclaim() on the usageEnviroment, and then delete the task schedualer. pEnv->reclaim(); delete pTaskSchedualer; Amit Yedidia ________________________________ From: live-devel-bounces at ns.live555.com [mailto:live-devel-bounces at ns.live555.com] On Behalf Of Stas Desyatnlkov Sent: Monday, August 24, 2009 11:45 AM To: live-devel at ns.live555.com Subject: [Live-devel] live object delete sequence Hi, In my app I have to create and delete live objects (scheduler, usage environment, rtp sink, rtcp, video source, stremer...) multiple times. What should be the proper delete sequence for the above? Does deleting the usage environment also destroys scheduler? Do I have to delete RTP and RTCP sockets separately? sensitive information. Unauthorized interception of this e-mail may constitute a violation of law. If you are not the intended recipient, you are hereby notified that any review, dissemination, distribution or duplication of this communication is strictly prohibited. You are also asked to contact the sender by reply email and immediately destroy all copies of the original message. sensitive information. Unauthorized interception of this e-mail may constitute a violation of law. If you are not the intended recipient, you are hereby notified that any review, dissemination, distribution or duplication of this communication is strictly prohibited. You are also asked to contact the sender by reply email and immediately destroy all copies of the original message. sensitive information. Unauthorized interception of this e-mail may constitute a violation of law. If you are not the intended recipient, you are hereby notified that any review, dissemination, distribution or duplication of this communication is strictly prohibited. You are also asked to contact the sender by reply email and immediately destroy all copies of the original message. -------------- next part -------------- An HTML attachment was scrubbed... URL: From henxy21 at gmail.com Mon Aug 24 01:32:13 2009 From: henxy21 at gmail.com (huang) Date: Mon, 24 Aug 2009 16:32:13 +0800 Subject: [Live-devel] How to judge catch exception while parsing file Message-ID: Hi, dear all, I write a H264VideoStreamFramer and H264VideoStreamParser based on H264plusVideoStreamFramer and H264plusVideoStreamParser, when parsing file, sometime the programe catch -- "EXCEPTION (This is normal behavior - *not* an error)", I know it because there are no more data in the buffer to read or file EOF, and the question is, how do I judge file EOF cause exception but not buffer has no data ? thanks huang -------------- next part -------------- An HTML attachment was scrubbed... URL: From henxy21 at gmail.com Mon Aug 24 06:00:43 2009 From: henxy21 at gmail.com (huang) Date: Mon, 24 Aug 2009 21:00:43 +0800 Subject: [Live-devel] quicktime client for h264 Message-ID: Hi dear all, I have my own H264VideoStreamFramer and could stream h.264 to VLC and Quicktime. But when Quicktime as client, something was wrong: First, I started the server and Quicktime connected to server, after "PLAY" cmd, server sent data to Quicktime, but Quicktime had no image with increased time at left bottom concer. Then I restarted the server ( but client was still opened ), it worked normally. Do I miss something to trigger Quicktime at beginning ? Thanks Haung -------------- next part -------------- An HTML attachment was scrubbed... URL: From devaureshy at gmail.com Mon Aug 24 06:36:46 2009 From: devaureshy at gmail.com (Steve Jiekak) Date: Mon, 24 Aug 2009 15:36:46 +0200 Subject: [Live-devel] Receiver for H.264 In-Reply-To: <129364.18473.qm@web39507.mail.mud.yahoo.com> References: <614230390908200335k1cd653b9tcb73e80b0ef7a302@mail.gmail.com> <143084.32142.qm@web39508.mail.mud.yahoo.com> <614230390908210054r33b122cft15df720f9a8010eb@mail.gmail.com> <129364.18473.qm@web39507.mail.mud.yahoo.com> Message-ID: <614230390908240636y38cf7e8fjc02480b32700d623@mail.gmail.com> I am now able to compute ,from the source, the profile level and the sprop-parameter-set string (which by the way , is a huuuge string :) ). Can someone explain me again how should the receiver program can get these values and add it to the end file?? Thanks for everything, Steve -------------- next part -------------- An HTML attachment was scrubbed... URL: From amit.yedidia at elbitsystems.com Mon Aug 24 07:46:01 2009 From: amit.yedidia at elbitsystems.com (Yedidia Amit) Date: Mon, 24 Aug 2009 17:46:01 +0300 Subject: [Live-devel] Receiver for H.264 In-Reply-To: <614230390908240636y38cf7e8fjc02480b32700d623@mail.gmail.com> Message-ID: The best way is called OutOfBand during the negotiation (RTSP/SIP), the sneder sends an SDP file. this sdp conatni the sprop-parameter-set. the reciver should get it, decode it (from Base64) and save it in the beginning of the file. ________________________________ From: live-devel-bounces at ns.live555.com [mailto:live-devel-bounces at ns.live555.com] On Behalf Of Steve Jiekak Sent: Monday, August 24, 2009 4:37 PM To: LIVE555 Streaming Media - development & use Subject: Re: [Live-devel] Receiver for H.264 I am now able to compute ,from the source, the profile level and the sprop-parameter-set string (which by the way , is a huuuge string :) ). Can someone explain me again how should the receiver program can get these values and add it to the end file?? Thanks for everything, Steve The information in this e-mail transmission contains proprietary and business sensitive information. Unauthorized interception of this e-mail may constitute a violation of law. If you are not the intended recipient, you are hereby notified that any review, dissemination, distribution or duplication of this communication is strictly prohibited. You are also asked to contact the sender by reply email and immediately destroy all copies of the original message. -------------- next part -------------- An HTML attachment was scrubbed... URL: From stas.oskin at gmail.com Mon Aug 24 12:13:48 2009 From: stas.oskin at gmail.com (Stas Oskin) Date: Mon, 24 Aug 2009 22:13:48 +0300 Subject: [Live-devel] multiple instances of live555 library In-Reply-To: References: <4A727B5E.5080608@gmail.com> Message-ID: <77938bc20908241213l6a2dc7dfl42bdcfd929aa1de9@mail.gmail.com> Hi Ross. You don't do this. Please everybody, read the FAQ! > > The "LIVE555 Streaming Media" software uses an event loop (a single thread > of control) for concurrency, instead of using multiple threads. > Sorry for barging into this thread - an architecture question if I may. I expirirmented with Live555 several times, and got left with a question - if Live555 supports only a single event-loop, how it's possible to effectively process multiple real-time sources? I mean, if I get packets from 2 sources, there seems no way to process them both, but only to launch a separate thread (via callback function perhaps) which would handle them. Regards. -------------- next part -------------- An HTML attachment was scrubbed... URL: From stas.oskin at gmail.com Mon Aug 24 12:56:10 2009 From: stas.oskin at gmail.com (Stas Oskin) Date: Mon, 24 Aug 2009 22:56:10 +0300 Subject: [Live-devel] Getting encoded MP4 data and packet details Message-ID: <77938bc20908241256o67c99841s999e5594bd179a8d@mail.gmail.com> Hi. I worked out a basic RTSP client, using MPlayer code as an example. Still, I can't find a way to break-down the received data to packets, and to get both the encoded MP4 data from packet, or/and the packet details (such as the frame resolution, whether the packet is key-frame, etc...). Is there any good example out there which shows how to do this? Thanks in advance. -------------- next part -------------- An HTML attachment was scrubbed... URL: From Jerry.Johns at nuvation.com Mon Aug 24 15:08:36 2009 From: Jerry.Johns at nuvation.com (Jerry Johns) Date: Mon, 24 Aug 2009 15:08:36 -0700 Subject: [Live-devel] multiple instances of live555 library In-Reply-To: <77938bc20908241213l6a2dc7dfl42bdcfd929aa1de9@mail.gmail.com> References: <4A727B5E.5080608@gmail.com> <77938bc20908241213l6a2dc7dfl42bdcfd929aa1de9@mail.gmail.com> Message-ID: <274F7B50569A1B4C9D7BCAB17A9C7BE101B525E4@mailguy3.skynet.nuvation.com> The LiveMedia library uses the magical world of select(), which allows for monitoring multiple file handle descriptors (or in this case, sockets) to monitor for incoming/outgoing data. By blocking on this select() call, an event loop can process multiple socket handles in a single execution context, effectively giving the impression of multi-threaded behaviour. LiveMedia has a scheduler that you registers a function callback with a specific socket handle. A basic pseudo code would be: loop: { select(descriptor set) --> Blocking call for each SET file handle in descriptor set look up corresponding function handler. Invoke handler end for } Jerry Johns Design Engineer Nuvation Research Corp - Canada Tel: (519) 746-2304 ext. 221 www.nuvation.com ________________________________ From: live-devel-bounces at ns.live555.com [mailto:live-devel-bounces at ns.live555.com] On Behalf Of Stas Oskin Sent: Monday, August 24, 2009 3:14 PM To: LIVE555 Streaming Media - development & use Subject: Re: [Live-devel] multiple instances of live555 library Hi Ross. You don't do this. Please everybody, read the FAQ! The "LIVE555 Streaming Media" software uses an event loop (a single thread of control) for concurrency, instead of using multiple threads. Sorry for barging into this thread - an architecture question if I may. I expirirmented with Live555 several times, and got left with a question - if Live555 supports only a single event-loop, how it's possible to effectively process multiple real-time sources? I mean, if I get packets from 2 sources, there seems no way to process them both, but only to launch a separate thread (via callback function perhaps) which would handle them. Regards. -------------- next part -------------- An HTML attachment was scrubbed... URL: From stas.oskin at gmail.com Mon Aug 24 16:10:18 2009 From: stas.oskin at gmail.com (Stas Oskin) Date: Tue, 25 Aug 2009 02:10:18 +0300 Subject: [Live-devel] multiple instances of live555 library In-Reply-To: <274F7B50569A1B4C9D7BCAB17A9C7BE101B525E4@mailguy3.skynet.nuvation.com> References: <4A727B5E.5080608@gmail.com> <77938bc20908241213l6a2dc7dfl42bdcfd929aa1de9@mail.gmail.com> <274F7B50569A1B4C9D7BCAB17A9C7BE101B525E4@mailguy3.skynet.nuvation.com> Message-ID: <77938bc20908241610u35618274k930eea83005fdfa2@mail.gmail.com> Hi. Thanks for the explanation. 2009/8/25 Jerry Johns > The LiveMedia library uses the magical world of select(), which allows > for monitoring multiple file handle descriptors (or in this case, sockets) > to monitor for incoming/outgoing data. > > By blocking on this select() call, an event loop can process multiple > socket handles in a single execution context, effectively giving the > impression of multi-threaded behaviour. > I had a vague idea of how it works, and after your explanation have read this article: http://www.lowtek.com/sockets/select.html LiveMedia has a scheduler that you registers a function callback with a > specific socket handle. A basic pseudo code would be: > > > > loop: > > { > > select(descriptor set) ? Blocking call > > for each SET file handle in descriptor set > > look up corresponding function handler. > > Invoke handler > > end for > > } > > That's what I don't get - how the scheduler handles incoming data? It forks new processes to handle it (unlikely)? Or it just tried to process the data as fast as possible in a single loop? Regards. -------------- next part -------------- An HTML attachment was scrubbed... URL: From dushi310 at 163.com Tue Aug 25 00:36:49 2009 From: dushi310 at 163.com (=?gbk?B?tsXKsQ==?=) Date: Tue, 25 Aug 2009 15:36:49 +0800 (CST) Subject: [Live-devel] A Question about 'Pause' command Message-ID: <14578972.272861251185809534.JavaMail.coremail@bj163app30.163.com> >When I use RTSP client to send 'PAUSE' command, The RTSP Server work >well, It will stop to send stream to client immediately. >But when I send 'PLAY' command after sending 'PAUSE' >command,Sometimes It can continual send the data stream. Sometimes >It can not send the data again, the stream will pause forever. >So I want to know If I want to continual send the data after 'PAUSE' >,I just send 'PLAY' command is right or not. ///////////////////////// >Yes, this is correct; just sending "PLAY" should be sufficient to >restart the stream. >When you have problems restarting the stream, is this with our >original, unmodified server code? Which media type(s) does this >happen with? Hi,Ross, I am use the latest RTSP Server version. I want to know if I pause the stream over 10 minutes, The Server will close the client connection or not. I means I will send 'PLAY' command 10 minutes later after sending the 'PAUSE' command. If I just pause the stream about 2 minutes, the server could receive the 'PLAY' command.If pause the stream longer than 3 minute,The Server could not get the 'PLAY' command. Thank you for reply. -------------- next part -------------- An HTML attachment was scrubbed... URL: From peter.gejgus at gmail.com Tue Aug 25 04:08:58 2009 From: peter.gejgus at gmail.com (Peter Gejgus) Date: Tue, 25 Aug 2009 13:08:58 +0200 Subject: [Live-devel] vertical and horizontal image size Message-ID: Hi, I use openRTSP to download H.263 and H.264 stream from IP camera. Is it possible somehow to retrieve image resolution (width and height)? Best Regards, Peter -------------- next part -------------- An HTML attachment was scrubbed... URL: From finlayson at live555.com Tue Aug 25 05:02:26 2009 From: finlayson at live555.com (Ross Finlayson) Date: Tue, 25 Aug 2009 05:02:26 -0700 Subject: [Live-devel] A Question about 'Pause' command In-Reply-To: <14578972.272861251185809534.JavaMail.coremail@bj163app30.163.com> References: <14578972.272861251185809534.JavaMail.coremail@bj163app30.163.com> Message-ID: > I am use the latest RTSP Server version. > I want to know if I pause the stream over 10 minutes, The Server >will close the client connection or not. It shouldn't, because even when the stream is paused, the client should still continue sending RTCP "RR" packets, which will keep the stream alive. Do you still see the problem if you use VLC (the latest version) as your client? -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From devaureshy at gmail.com Tue Aug 25 05:09:59 2009 From: devaureshy at gmail.com (Steve Jiekak) Date: Tue, 25 Aug 2009 14:09:59 +0200 Subject: [Live-devel] where can I find a specification of ADTS header? Message-ID: <614230390908250509y77d8863u8a0069776215536a@mail.gmail.com> Do somebody know where I can find a document where the header format for ADTS is described?? Thanks, Steve -------------- next part -------------- An HTML attachment was scrubbed... URL: From dduFeu at MarchNetworks.com Tue Aug 25 08:46:35 2009 From: dduFeu at MarchNetworks.com (Dan DuFeu) Date: Tue, 25 Aug 2009 11:46:35 -0400 Subject: [Live-devel] quicktime client for h264 In-Reply-To: References: Message-ID: <72FCCBE2B96F01469BA67134B98FC45D0C060F54@svrkexch1.marchnetworks.com> +1 I have this same issue with my H.264 stream. My Mpeg4 stream works fine with VLC and quicktime, however my H.264 stream works only with VLC. Quicktime performs as Haung describes. As far as I know, I've initialized the profile-level-id and sprop-parameter-sets properly. I've tried to see if I could get quicktime to output logs, but haven't found any such feature yet. Dan. From: live-devel-bounces at ns.live555.com [mailto:live-devel-bounces at ns.live555.com] On Behalf Of huang Sent: Monday, August 24, 2009 6:01 AM To: live-devel at ns.live555.com Subject: [Live-devel] quicktime client for h264 Hi dear all, I have my own H264VideoStreamFramer and could stream h.264 to VLC and Quicktime. But when Quicktime as client, something was wrong: First, I started the server and Quicktime connected to server, after "PLAY" cmd, server sent data to Quicktime, but Quicktime had no image with increased time at left bottom concer. Then I restarted the server ( but client was still opened ), it worked normally. Do I miss something to trigger Quicktime at beginning ? Thanks Haung -------------- next part -------------- An HTML attachment was scrubbed... URL: From eric.flickner at gmail.com Tue Aug 25 08:49:24 2009 From: eric.flickner at gmail.com (Eric Flickner) Date: Tue, 25 Aug 2009 11:49:24 -0400 Subject: [Live-devel] vertical and horizontal image size In-Reply-To: References: Message-ID: <72ab2a680908250849v12a5260cr2f5e8435fdef5b5f@mail.gmail.com> You will need to parse the elementary stream header for this information. Refer to specs for the codecs on how to accomplish this. Eric On Tue, Aug 25, 2009 at 7:08 AM, Peter Gejgus wrote: > Hi, > I use openRTSP to download H.263 and H.264 stream from IP camera. Is it > possible somehow to retrieve image resolution (width and height)? > Best Regards, > Peter > > _______________________________________________ > live-devel mailing list > live-devel at lists.live555.com > http://lists.live555.com/mailman/listinfo/live-devel > > -- Eric Flickner -------------- next part -------------- An HTML attachment was scrubbed... URL: From neeraj.prasad at gmail.com Tue Aug 25 10:03:04 2009 From: neeraj.prasad at gmail.com (Neeraj Prasad) Date: Tue, 25 Aug 2009 22:33:04 +0530 Subject: [Live-devel] where can I find a specification of ADTS header? In-Reply-To: <614230390908250509y77d8863u8a0069776215536a@mail.gmail.com> References: <614230390908250509y77d8863u8a0069776215536a@mail.gmail.com> Message-ID: <1d413a090908251003o10a3d4bcl84ddf1403770b8f@mail.gmail.com> The ADTS header is defined below - unsigned int obj_type = 0; unsigned int num_data_block = frame_length / 1024; // include the header length also frame_length += 7; /* We want the same metadata */ /* Generate ADTS header */ if(adts_header == NULL) return; /* Sync point over a full byte */ adts_header[0] = 0xFF; /* Sync point continued over first 4 bits + static 4 bits * (ID, layer, protection)*/ adts_header[1] = 0xF1; /* Object type over first 2 bits */ adts_header[2] = obj_type << 6; /* rate index over next 4 bits */ adts_header[2] |= (rate_idx << 2); /* channels over last 2 bits */ adts_header[2] |= (channels & 0x4) >> 2; /* channels continued over next 2 bits + 4 bits at zero */ adts_header[3] = (channels & 0x3) << 6; /* frame size over last 2 bits */ adts_header[3] |= (frame_length & 0x1800) >> 11; /* frame size continued over full byte */ adts_header[4] = (frame_length & 0x1FF8) >> 3; /* frame size continued first 3 bits */ adts_header[5] = (frame_length & 0x7) << 5; /* buffer fullness (0x7FF for VBR) over 5 last bits*/ adts_header[5] |= 0x1F; /* buffer fullness (0x7FF for VBR) continued over 6 first bits + 2 zeros * number of raw data blocks */ adts_header[6] = 0xFA; // set the num_data_block On Tue, Aug 25, 2009 at 5:39 PM, Steve Jiekak wrote: > Do somebody know where I can find a document where > the header format for ADTS is described?? > > Thanks, > Steve > > _______________________________________________ > live-devel mailing list > live-devel at lists.live555.com > http://lists.live555.com/mailman/listinfo/live-devel > > -- ~neeraj 'Smoke like a hippie, drink like a pirate and code like a hacker' :D -------------- next part -------------- An HTML attachment was scrubbed... URL: From amit.yedidia at elbitsystems.com Tue Aug 25 21:38:28 2009 From: amit.yedidia at elbitsystems.com (Yedidia Amit) Date: Wed, 26 Aug 2009 07:38:28 +0300 Subject: [Live-devel] quicktime client for h264 In-Reply-To: <72FCCBE2B96F01469BA67134B98FC45D0C060F54@svrkexch1.marchnetworks.com> Message-ID: Hi, I recall such problem on my previous workplace. I am not sure but I think that the solution was to send the SPS & PPS in-band. Amit Yedidia. ________________________________ From: live-devel-bounces at ns.live555.com [mailto:live-devel-bounces at ns.live555.com] On Behalf Of Dan DuFeu Sent: Tuesday, August 25, 2009 6:47 PM To: LIVE555 Streaming Media - development & use Subject: Re: [Live-devel] quicktime client for h264 +1 I have this same issue with my H.264 stream. My Mpeg4 stream works fine with VLC and quicktime, however my H.264 stream works only with VLC. Quicktime performs as Haung describes. As far as I know, I've initialized the profile-level-id and sprop-parameter-sets properly. I've tried to see if I could get quicktime to output logs, but haven't found any such feature yet. Dan. From: live-devel-bounces at ns.live555.com [mailto:live-devel-bounces at ns.live555.com] On Behalf Of huang Sent: Monday, August 24, 2009 6:01 AM To: live-devel at ns.live555.com Subject: [Live-devel] quicktime client for h264 Hi dear all, I have my own H264VideoStreamFramer and could stream h.264 to VLC and Quicktime. But when Quicktime as client, something was wrong: First, I started the server and Quicktime connected to server, after "PLAY" cmd, server sent data to Quicktime, but Quicktime had no image with increased time at left bottom concer. Then I restarted the server ( but client was still opened ), it worked normally. Do I miss something to trigger Quicktime at beginning ? Thanks Haung The information in this e-mail transmission contains proprietary and business sensitive information. Unauthorized interception of this e-mail may constitute a violation of law. If you are not the intended recipient, you are hereby notified that any review, dissemination, distribution or duplication of this communication is strictly prohibited. You are also asked to contact the sender by reply email and immediately destroy all copies of the original message. -------------- next part -------------- An HTML attachment was scrubbed... URL: From ganesh_vijayan at yahoo.com Tue Aug 25 23:03:15 2009 From: ganesh_vijayan at yahoo.com (Ganesh V) Date: Tue, 25 Aug 2009 23:03:15 -0700 (PDT) Subject: [Live-devel] quicktime client for h264 In-Reply-To: References: Message-ID: <318801.61285.qm@web39506.mail.mud.yahoo.com> For Quicktime, at beginning, you need to ensure that you send SPS and PPS as sprop_parameter_sets. Do note that while transmitting the same, NALU headers need to be removed. Hope this helps, Ganesh -------------- next part -------------- An HTML attachment was scrubbed... URL: From henxy21 at gmail.com Wed Aug 26 01:15:45 2009 From: henxy21 at gmail.com (huang) Date: Wed, 26 Aug 2009 16:15:45 +0800 Subject: [Live-devel] quicktime client for h264 In-Reply-To: <318801.61285.qm@web39506.mail.mud.yahoo.com> References: <318801.61285.qm@web39506.mail.mud.yahoo.com> Message-ID: 2009/8/26 Ganesh V > For Quicktime, at beginning, you need to ensure that you send SPS and PPS > as sprop_parameter_sets. Do note that > Yes ! I am sure I send SPS and PPS as sprop_parameter_sets :) while transmitting the same, NALU headers need to be removed. > NALU header ? you do not mean start code ? Thanks Huang > > Hope this helps, > Ganesh > > > _______________________________________________ > live-devel mailing list > live-devel at lists.live555.com > http://lists.live555.com/mailman/listinfo/live-devel > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From zhisun.tech at gmail.com Wed Aug 26 02:19:47 2009 From: zhisun.tech at gmail.com (zhi sun) Date: Wed, 26 Aug 2009 17:19:47 +0800 Subject: [Live-devel] every 65 seconds, noteLiveness timeout handle causes the live555 send bye to QT, and disconnect the streaming. Message-ID: <54ced3240908260219u57e77cd4gf9a4a679547eede5@mail.gmail.com> Hi All, I am porting live555 to our device, it works fine, but with problem: Almost every 65 seconds, noteLiveness timeout handle causes the live555 send bye to QT. I notice that it caused by void RTSPServer::RTSPClientSession ::livenessTimeoutTask(RTSPClientSession* clientSession) { // If this gets called, the client session is assumed to have timed out, // so delete it: #if 1 //#ifdef DEBUG fprintf(stderr, "RTSP client session from %s has timed out (due to inactivity)\n", our_inet_ntoa(clientSession->fClientAddr.sin_addr)); #endif delete clientSession; } The RTCP package trace indicate there is no problem. The liveness timeout happens since there is no RTSP request from client for a while (fReclamationTestSeconds). This probelm happend on our device, I cannot verify this problem on linux since there is no live h264 stream, but it looks like to be the logical of source code. is it by design, or anything I missed? Thanks, -zhisun -------------- next part -------------- An HTML attachment was scrubbed... URL: From stas at tech-mer.com Wed Aug 26 07:45:40 2009 From: stas at tech-mer.com (Stas Desyatnlkov) Date: Wed, 26 Aug 2009 17:45:40 +0300 Subject: [Live-devel] H.264 ES streaming Message-ID: <21E398286732DC49AD45BE8C7BE96C0795D6DD88B1@fs11.mertree.mer.co.il> Hi All, I'm trying to stream (unicast) an H264 from elementary stream file. The final goal is to stream NAL packets from a hardware encoder but this should be easily adopted once the file streamer works. The ES file was created by a remux software and is playable by mplayer. The problem is my streamer exits after about 1 sec and the afterPlaying callback is called. The ByteStreamFileSource::doGetNextFrame() function fails on feof(fFid) with 16, which means the code trys to read 16 bytes past the end of file marker. This is what I do to stream it: Groupsock rtpGroupsock(*env, destinationAddress, rtpPort, ttl); Groupsock rtcpGroupsock(*env, destinationAddress, rtcpPort, ttl); videoSink = SimpleRTPSink::createNew(*env, &rtpGroupsock, 33, 90000, "video", "mp2t", 1, True, False /*no 'M' bit*/); estimatedSessionBandwidth = 5000; // in kbps; for RTCP b/w share const unsigned maxCNAMElen = 100; unsigned char CNAME[maxCNAMElen+1]; gethostname((char*)CNAME, maxCNAMElen); CNAME[maxCNAMElen] = '\0'; // just in case RTCPInstance* rtcp = RTCPInstance::createNew(*env, &rtcpGroupsock, estimatedSessionBandwidth, CNAME, videoSink, NULL /* we're a server */, false); play(); env->taskScheduler().doEventLoop(&exit_flag); // does not return Medium::close(videoSource); Medium::close(rtcp); return 0; // only to prevent compiler warning } void afterPlaying(void* /*clientData*/) { *env << "...done reading from file\n"; exit_flag = 1; } void play() { unsigned const inputDataChunkSize = 7*188; // Open the input file as a 'byte-stream file source': ByteStreamFileSource* videoFile = ByteStreamFileSource::createNew(*env, video, inputDataChunkSize); if (!videoFile ) exit(1); // Create a 'framer' for the input source (to give us proper inter-packet gaps): videoSource = MPEG2TransportStreamFromESSource::createNew(*env); ((MPEG2TransportStreamFromESSource*)videoSource)->addNewVideoSource(videoFile, 10); // Finally, start playing: *env << "Beginning to read from file...\n"; videoSink->startPlaying(*videoSource, afterPlaying, videoSink); } What am I missing here? -------------- next part -------------- An HTML attachment was scrubbed... URL: From ganesh_vijayan at yahoo.com Wed Aug 26 07:30:12 2009 From: ganesh_vijayan at yahoo.com (Ganesh V) Date: Wed, 26 Aug 2009 07:30:12 -0700 (PDT) Subject: [Live-devel] quicktime client for h264 In-Reply-To: References: <318801.61285.qm@web39506.mail.mud.yahoo.com> Message-ID: <52074.56675.qm@web39505.mail.mud.yahoo.com> Huang, while transmitting the same, NALU headers need to be removed. NALU header ? you do not mean start code ? Yes, you are correct. I meant the start code only i.e. 0x00 00 00 01. Ganesh -------------- next part -------------- An HTML attachment was scrubbed... URL: From binco at zivillian.de Wed Aug 26 08:12:52 2009 From: binco at zivillian.de (Bianco Veigel) Date: Wed, 26 Aug 2009 17:12:52 +0200 Subject: [Live-devel] Does LIVE55 support HHTPs tunneling In-Reply-To: References: Message-ID: <4A9550F4.7000806@zivillian.de> Maybe you can use stunnel (http://www.stunnel.org/) to add SSL-Encryption to RTP over RTSP over HTTP Binco Am 21.08.2009 15:50, schrieb Ross Finlayson: >> Does LIVE555 supports >> 1. RTP over RTSP. > > Yes (client and server). (Is this not obvious from the code??) > >> 2. RTP over RTSP over Http > > Yes, but currently only for clients. (Server support for this has not > yet been completed.) > >> 3. RTP over RTSP over https > > I don't know. > >> >> if yes then how because the "portNumBits tunnelOverHTTPPortNum" >> parameter >> only talks about http not about https. > > I don't know enough about HTTPS to know what happens if you use a > HTTPS port for this, with the existing client code. -- Bianco Veigel Zivillian Software Chemnitzer Stra?e 146 44139 Dortmund Tel.: 0177/6784181 http://www.zivillian.de -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/pkcs7-signature Size: 5255 bytes Desc: S/MIME Cryptographic Signature URL: From dduFeu at MarchNetworks.com Wed Aug 26 16:16:07 2009 From: dduFeu at MarchNetworks.com (Dan DuFeu) Date: Wed, 26 Aug 2009 19:16:07 -0400 Subject: [Live-devel] every 65 seconds, noteLiveness timeout handle causes the live555 send bye to QT, and disconnect the streaming. In-Reply-To: <54ced3240908260219u57e77cd4gf9a4a679547eede5@mail.gmail.com> References: <54ced3240908260219u57e77cd4gf9a4a679547eede5@mail.gmail.com> Message-ID: <72FCCBE2B96F01469BA67134B98FC45D0C2B930C@svrkexch1.marchnetworks.com> Hi, I believe the proper fix for this issue is to add a timeout=xxx to the session field in the RTSP response. If you turn off reclaiming sessions, you might run into performance/memory issues. I wrote a note about this on Aug 6 and included a change in a patch with my alternate RTSP over HTTP server code. Regards, Dan. >>>>>>>>> 3. Added ";timeout=xxx" to the Session field. It is optional in the RFC, but Quicktime was not respecting the 60 second default and currently if (reclaiming is enabled) the sessions timeout with Quicktime unless this is specified. From: live-devel-bounces at ns.live555.com [mailto:live-devel-bounces at ns.live555.com] On Behalf Of zhi sun Sent: Wednesday, August 26, 2009 2:20 AM To: live-devel at ns.live555.com Subject: [Live-devel] every 65 seconds,noteLiveness timeout handle causes the live555 send bye to QT,and disconnect the streaming. Hi All, I am porting live555 to our device, it works fine, but with problem: Almost every 65 seconds, noteLiveness timeout handle causes the live555 send bye to QT. I notice that it caused by void RTSPServer::RTSPClientSession ::livenessTimeoutTask(RTSPClientSession* clientSession) { // If this gets called, the client session is assumed to have timed out, // so delete it: #if 1 //#ifdef DEBUG fprintf(stderr, "RTSP client session from %s has timed out (due to inactivity)\n", our_inet_ntoa(clientSession->fClientAddr.sin_addr)); #endif delete clientSession; } The RTCP package trace indicate there is no problem. The liveness timeout happens since there is no RTSP request from client for a while (fReclamationTestSeconds). This probelm happend on our device, I cannot verify this problem on linux since there is no live h264 stream, but it looks like to be the logical of source code. is it by design, or anything I missed? Thanks, -zhisun -------------- next part -------------- An HTML attachment was scrubbed... URL: From amit.yedidia at elbitsystems.com Wed Aug 26 22:02:59 2009 From: amit.yedidia at elbitsystems.com (Yedidia Amit) Date: Thu, 27 Aug 2009 08:02:59 +0300 Subject: [Live-devel] every 65 seconds, noteLiveness timeout handle causes the live555 send bye to QT, and disconnect the streaming. In-Reply-To: <72FCCBE2B96F01469BA67134B98FC45D0C2B930C@svrkexch1.marchnetworks.com> Message-ID: <49B2D30CB72A5A44BCCAFB026702837805C38E@mailesl5.esl.corp.elbit.co.il> Hi I think that a better solution is to disable the liveness check. this can be easily done by calling the RTSP constructor with reclamationTestSeconds = 0; fRTSPServer = RTSPServer::createNew(*fEnv, serverPort, authDB,reclamationTestSeconds); Amit Yedidia. ________________________________ From: live-devel-bounces at ns.live555.com [mailto:live-devel-bounces at ns.live555.com] On Behalf Of Dan DuFeu Sent: Thursday, August 27, 2009 2:16 AM To: LIVE555 Streaming Media - development & use Subject: Re: [Live-devel] every 65 seconds,noteLiveness timeout handle causes the live555 send bye to QT,and disconnect the streaming. Hi, I believe the proper fix for this issue is to add a timeout=xxx to the session field in the RTSP response. If you turn off reclaiming sessions, you might run into performance/memory issues. I wrote a note about this on Aug 6 and included a change in a patch with my alternate RTSP over HTTP server code. Regards, Dan. >>>>>>>>> 3. Added ";timeout=xxx" to the Session field. It is optional in the RFC, but Quicktime was not respecting the 60 second default and currently if (reclaiming is enabled) the sessions timeout with Quicktime unless this is specified. From: live-devel-bounces at ns.live555.com [mailto:live-devel-bounces at ns.live555.com] On Behalf Of zhi sun Sent: Wednesday, August 26, 2009 2:20 AM To: live-devel at ns.live555.com Subject: [Live-devel] every 65 seconds,noteLiveness timeout handle causes the live555 send bye to QT,and disconnect the streaming. Hi All, I am porting live555 to our device, it works fine, but with problem: Almost every 65 seconds, noteLiveness timeout handle causes the live555 send bye to QT. I notice that it caused by void RTSPServer::RTSPClientSession ::livenessTimeoutTask(RTSPClientSession* clientSession) { // If this gets called, the client session is assumed to have timed out, // so delete it: #if 1 //#ifdef DEBUG fprintf(stderr, "RTSP client session from %s has timed out (due to inactivity)\n", our_inet_ntoa(clientSession->fClientAddr.sin_addr)); #endif delete clientSession; } The RTCP package trace indicate there is no problem. The liveness timeout happens since there is no RTSP request from client for a while (fReclamationTestSeconds). This probelm happend on our device, I cannot verify this problem on linux since there is no live h264 stream, but it looks like to be the logical of source code. is it by design, or anything I missed? Thanks, -zhisun The information in this e-mail transmission contains proprietary and business sensitive information. Unauthorized interception of this e-mail may constitute a violation of law. If you are not the intended recipient, you are hereby notified that any review, dissemination, distribution or duplication of this communication is strictly prohibited. You are also asked to contact the sender by reply email and immediately destroy all copies of the original message. -------------- next part -------------- An HTML attachment was scrubbed... URL: From dave at evlax.com Wed Aug 26 20:55:37 2009 From: dave at evlax.com (Dave Henning) Date: Wed, 26 Aug 2009 20:55:37 -0700 Subject: [Live-devel] openRTSP with no backchannel Message-ID: <1251345337.6149.1049.camel@dhenning-ubuntu> Part 1: I am working with a system that multicasts multiple streams over DVB-H. Normally, I receive an SDP file for each stream from the electronic service guide and I view the streams by passing the SDP file into my libav-based application. However, this did not work for any of the streams being generated by a Mango DSP system. Enter live555. By piping the output of openRTSP into my libav-based application, the video from the Mango box now pops up right away and I see no errors from libav. First, thanks so much for this library. It saved the day. Second, please explain conceptually what live555 is doing that makes it possible to view the video and why I don't need it for all of our other streams. Part 2: During this debug process, my video receiver has an ethernet back-channel to the server so openRTSP can negotiate the stream. However, in the final application, the receiver will be a mobile unit with no back channel. Assuming the ESG provides the same SDP file that openRTSP receives during its negotiation, should I still be able to write an application using live555 with no backchannel? I saw the basic outline of how to pass an SDP file into live555.com here: http://lists.live555.com/pipermail/live-devel/2006-November/005378.html Will that work for my situation also? Is there any sample code like this we can look at? For the record, this is all running on a uCLinux/Blackfin DSP-based platform. Dave ... From espen.jacobsen at gmail.com Thu Aug 27 03:44:03 2009 From: espen.jacobsen at gmail.com (Espen Jacobsen) Date: Thu, 27 Aug 2009 12:44:03 +0200 Subject: [Live-devel] Change inputFileName in testprogs Message-ID: <8e8cd9f10908270344x4bfd29c9lf5fa1ce213047af1@mail.gmail.com> Hi I am new to the live555 framework and I am trying to figure out the testprogs. I tried to change the inputFileName in testMPEG1or2AudioVideoStreamer.cpp but when i try to run it still looks for test.mpg. Anyone know why this happens? I also tried to uncomment #define USE_SSM 1 so it would use SSM but it still uses the IP: 239.255.42.42 as if SSM is not applied. Espen -------------- next part -------------- An HTML attachment was scrubbed... URL: From swalsh at impathnetworks.com Thu Aug 27 06:52:59 2009 From: swalsh at impathnetworks.com (Sandy Walsh) Date: Thu, 27 Aug 2009 10:52:59 -0300 Subject: [Live-devel] Once again, SDP support for Live555 & interaction with FFMpeg ... Message-ID: <4A968FBB.7090800@impathnetworks.com> Hi, We have a multicast stream, initiated from another process, which generates an .SDP file for the stream v=0 o=MangoDSP 126 14843616424497153183 IN IP4 192.168.0.62 s=Mango DSP Audio/Video m=video 7170 RTP/AVP 96 a=rtpmap:96 H264/90000 c=IN IP4 232.0.0.11 a=fmtp:96 packetization-mode=1;profile-level-id=42001E;sprop-parameter-sets=Z0KAHkLaAtD0QA==,aEjgGody a=control:__StreamID=270385256 We've searched through the Live555 archives and there is mention of passing this to MediaSession::createNew(), but we're sort of stumped on making this a reality. Instead let me explain what we hope to achieve and perhaps someone can give some guidance? Ultimately our plan is to pass the stream onto FFMpeg for decoding/storage. When we try to open this stream directly with FFMpeg it takes forever (and often never) for the program to lock onto the stream, so perhaps there is a problem with ffmpeg and this h264 stream. But, when we open a unicast stream with openRTSP and pipe the output to ffmpeg it works fine. My question is, what processing beyond the RTSP negotiation does openRTSP do on the actual video stream? Does it strip off some network wrapper from the stream and pass a raw h.264 stream along for processing? We're not really clear what value openRTSP brings to us solving our problem if we aren't using the RTSP handshake? Sorry for the noobish question, hopefully it was understandable. Thanks, Sandy -------------- next part -------------- A non-text attachment was scrubbed... Name: swalsh.vcf Type: text/x-vcard Size: 313 bytes Desc: not available URL: From finlayson at live555.com Thu Aug 27 11:01:12 2009 From: finlayson at live555.com (Ross Finlayson) Date: Thu, 27 Aug 2009 11:01:12 -0700 Subject: [Live-devel] Change inputFileName in testprogs In-Reply-To: <8e8cd9f10908270344x4bfd29c9lf5fa1ce213047af1@mail.gmail.com> References: <8e8cd9f10908270344x4bfd29c9lf5fa1ce213047af1@mail.gmail.com> Message-ID: >Hi >I am new to the live555 framework and I am trying to figure out the testprogs. >I tried to change the inputFileName in >testMPEG1or2AudioVideoStreamer.cpp but when i try to run it still >looks for test.mpg. >Anyone know why this happens? Probably because you didn't recompile/relink the application binary! Please, folks - this software is intended for experienced systems programmers (not people with "@gmail.com" email addresses). -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From finlayson at live555.com Thu Aug 27 12:29:50 2009 From: finlayson at live555.com (Ross Finlayson) Date: Thu, 27 Aug 2009 12:29:50 -0700 Subject: [Live-devel] every 65 seconds, noteLiveness timeout handle causes the live555 send bye to QT, and disconnect the streaming. In-Reply-To: <49B2D30CB72A5A44BCCAFB026702837805C38E@mailesl5.esl.corp.elbit.co.il> References: <49B2D30CB72A5A44BCCAFB026702837805C38E@mailesl5.esl.corp.elbit.co.il> Message-ID: >I think that a better solution is to disable the liveness check. >this can be easily done by calling the RTSP constructor with >reclamationTestSeconds = 0; > >fRTSPServer = RTSPServer::createNew(*fEnv, serverPort, >authDB,reclamationTestSeconds); Yes, disabling the liveness check will work. However, it would be better to figure out exactly why the server is not detecting your client's 'liveness'. I suspect that the server is not receiving RTCP "RR" packets from the client. You should figure out why. (Note that if it's because your client is not *sending* RTCP packets, then your client is broken, because RTCP is a required part of the RTP/RTCP standard.) -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From finlayson at live555.com Thu Aug 27 12:39:06 2009 From: finlayson at live555.com (Ross Finlayson) Date: Thu, 27 Aug 2009 12:39:06 -0700 Subject: [Live-devel] H.264 ES streaming In-Reply-To: <21E398286732DC49AD45BE8C7BE96C0795D6DD88B1@fs11.mertree.mer.co.il> References: <21E398286732DC49AD45BE8C7BE96C0795D6DD88B1@fs11.mertree.mer.co.il> Message-ID: >What am I missing here? What you're missing is that you're trying to use code that reads and streams a MPEG-2 Transport Stream file to instead read and stream a H.264 Elementary Stream video file. There's no way this can possibly work. -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From dduFeu at MarchNetworks.com Thu Aug 27 14:05:17 2009 From: dduFeu at MarchNetworks.com (Dan DuFeu) Date: Thu, 27 Aug 2009 17:05:17 -0400 Subject: [Live-devel] every 65 seconds, noteLiveness timeout handle causes the live555 send bye to QT, and disconnect the streaming. In-Reply-To: References: <49B2D30CB72A5A44BCCAFB026702837805C38E@mailesl5.esl.corp.elbit.co.il> Message-ID: <72FCCBE2B96F01469BA67134B98FC45D0C2B9507@svrkexch1.marchnetworks.com> Ross, I had similar issues with QuickTime. I suspect that it is broken (no RR packets) when using RTP/TCP. My "fix" for this issue was to include the "timeout" attribute in the "Session" field in handleCmd_SETUP(). QuickTime does not respect the 60 second default for RTSP timeout as per the RFC (section 12.37). With the timeout attribute sent, Quicktime will send RTSP blurbs every so often which keeps the connection alive. I think we both agree that simply disabling the liveness check will probably result in superfluous streams. Dan. >>>>>>>>>>>>> Index: C:/Development/ESM2/ThirdPartyLibraries/live555/overlay/liveMedia/RTSPSe rver.cpp =================================================================== --- C:/Development/ESM2/ThirdPartyLibraries/live555/overlay/liveMedia/RTSPSe rver.cpp (revision 857) +++ C:/Development/ESM2/ThirdPartyLibraries/live555/overlay/liveMedia/RTSPSe rver.cpp (revision 858) @@ -734,6 +748,21 @@ struct sockaddr_in sourceAddr; SOCKLEN_T namelen = sizeof sourceAddr; getsockname(fClientSocket, (struct sockaddr*)&sourceAddr, &namelen); char* sourceAddrStr = strDup(our_inet_ntoa(sourceAddr.sin_addr)); + + // Add the indication of timeout (from RFC 2326 section 12.37) if we are reclaiming streams. + // Note: Quicktime does not respect the 60 second default RTSP timeout. It sends nothing + // without the timeout indication in the Session field. + char timeoutAttributeStr[32]; + int timeout = fOurServer.fReclamationTestSeconds; + if(timeout > 0) + { + snprintf(timeoutAttributeStr, sizeof timeoutAttributeStr, ";timeout=%d", timeout); + } + else + { + timeoutAttributeStr[0] = '\0'; + } + if (fIsMulticast) { switch (streamingMode) { case RTP_UDP: @@ -742,11 +771,11 @@ "CSeq: %s\r\n" "%s" "Transport: RTP/AVP;multicast;destination=%s;source=%s;port=%d-%d;ttl=%d\r\n" - "Session: %d\r\n\r\n", + "Session: %d%s\r\n\r\n", cseq, dateHeader(), destAddrStr, sourceAddrStr, ntohs(serverRTPPort.num()), ntohs(serverRTCPPort.num()), destinationTTL, - fOurSessionId); + fOurSessionId, timeoutAttributeStr); break; case RTP_TCP: // multicast streams can't be sent via TCP @@ -758,11 +787,11 @@ "CSeq: %s\r\n" "%s" "Transport: %s;multicast;destination=%s;source=%s;port=%d;ttl=%d\r\n" - "Session: %d\r\n\r\n", + "Session: %d%s\r\n\r\n", cseq, dateHeader(), streamingModeString, destAddrStr, sourceAddrStr, ntohs(serverRTPPort.num()), destinationTTL, - fOurSessionId); + fOurSessionId, timeoutAttributeStr); break; } } else { @@ -773,11 +802,11 @@ "CSeq: %s\r\n" "%s" "Transport: RTP/AVP;unicast;destination=%s;source=%s;client_port=%d-%d;server_port=% d-%d\r\n" - "Session: %d\r\n\r\n", + "Session: %d%s\r\n\r\n", cseq, dateHeader(), destAddrStr, sourceAddrStr, ntohs(clientRTPPort.num()), ntohs(clientRTCPPort.num()), ntohs(serverRTPPort.num()), ntohs(serverRTCPPort.num()), - fOurSessionId); + fOurSessionId, timeoutAttributeStr); break; } case RTP_TCP: { @@ -786,11 +815,11 @@ "CSeq: %s\r\n" "%s" "Transport: RTP/AVP/TCP;unicast;destination=%s;source=%s;interleaved=%d-%d\r\n" - "Session: %d\r\n\r\n", + "Session: %d%s\r\n\r\n", cseq, dateHeader(), destAddrStr, sourceAddrStr, rtpChannelId, rtcpChannelId, - fOurSessionId); + fOurSessionId, timeoutAttributeStr); break; } case RAW_UDP: { @@ -799,11 +828,11 @@ "CSeq: %s\r\n" "%s" "Transport: %s;unicast;destination=%s;source=%s;client_port=%d;server_port=%d\r\n" - "Session: %d\r\n\r\n", + "Session: %d%s\r\n\r\n", cseq, dateHeader(), streamingModeString, destAddrStr, sourceAddrStr, ntohs(clientRTPPort.num()), ntohs(serverRTPPort.num()), - fOurSessionId); + fOurSessionId, timeoutAttributeStr); break; } } From: live-devel-bounces at ns.live555.com [mailto:live-devel-bounces at ns.live555.com] On Behalf Of Ross Finlayson Sent: Thursday, August 27, 2009 12:30 PM To: LIVE555 Streaming Media - development & use Subject: Re: [Live-devel] every 65 seconds, noteLiveness timeout handle causes the live555 send bye to QT, and disconnect the streaming. I think that a better solution is to disable the liveness check. this can be easily done by calling the RTSP constructor with reclamationTestSeconds = 0; fRTSPServer = RTSPServer::createNew(*fEnv, serverPort, authDB,reclamationTestSeconds); Yes, disabling the liveness check will work. However, it would be better to figure out exactly why the server is not detecting your client's 'liveness'. I suspect that the server is not receiving RTCP "RR" packets from the client. You should figure out why. (Note that if it's because your client is not *sending* RTCP packets, then your client is broken, because RTCP is a required part of the RTP/RTCP standard.) -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From sps.sarathy at gmail.com Sat Aug 29 02:39:08 2009 From: sps.sarathy at gmail.com (sarathy) Date: Sat, 29 Aug 2009 15:09:08 +0530 Subject: [Live-devel] live555 support for plain MPEG2-TS without RTP Message-ID: <4f706c210908290239m59d98dbr2856d24f0d8ce8f3@mail.gmail.com> Hi, Does live555 support streaming content, in which the UDP payload contains just plain MPEG2-TS, without any RTP wrapper ? Looking into the testing programs that come with live555, most of them expect MPEG2-TS over RTP. I guess this is the reason, why I'm not able to play these streams in mplayer [ linked with live555 library ], which also tries to guess RTP from the stream, and eventually crashes in its demux module. Thanks, Partha From stas at tech-mer.com Mon Aug 31 04:48:39 2009 From: stas at tech-mer.com (Stas Desyatnlkov) Date: Mon, 31 Aug 2009 14:48:39 +0300 Subject: [Live-devel] H.264 ES streaming In-Reply-To: References: <21E398286732DC49AD45BE8C7BE96C0795D6DD88B1@fs11.mertree.mer.co.il> Message-ID: <21E398286732DC49AD45BE8C7BE96C0795DDBCBDB6@fs11.mertree.mer.co.il> The problem is the lack of info, I still don't know how to send NAL packets in TS correctly. Is there a spec or RFC that can help? Can I create my own FramedFileSource that will read the NAL packets correctly and feed the data to the MPEG2TransportStreamFromESSource? Or should I strip the NAL headers and then feed it to MPEG2TransportStreamXXX? From: live-devel-bounces at ns.live555.com [mailto:live-devel-bounces at ns.live555.com] On Behalf Of Ross Finlayson Sent: Thursday, August 27, 2009 10:39 PM To: LIVE555 Streaming Media - development & use Subject: Re: [Live-devel] H.264 ES streaming What am I missing here? What you're missing is that you're trying to use code that reads and streams a MPEG-2 Transport Stream file to instead read and stream a H.264 Elementary Stream video file. There's no way this can possibly work. -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From dushi310 at 163.com Mon Aug 31 05:29:35 2009 From: dushi310 at 163.com (=?gbk?B?tsXKsQ==?=) Date: Mon, 31 Aug 2009 20:29:35 +0800 (CST) Subject: [Live-devel] pause and play problem Message-ID: <20929896.423571251721775021.JavaMail.coremail@bj163app111.163.com> Hi,Ross Today ,I test the live555 Server, and found a strange phenomena. If I countinue send pause command and then send play command once and again, about 1000~5000 times. Then the Server will get error. The error is about the memory, But It very difficult for me to find where the error. And I examine the memory ,It do not have the memory leak. So I want to know if the interval between send pause and send play is very short, and do many times, The memroy of the Server will go awry or not. Thank you! -------------- next part -------------- An HTML attachment was scrubbed... URL: