From finlayson at live555.com Tue Apr 1 00:22:53 2008 From: finlayson at live555.com (Ross Finlayson) Date: Tue, 1 Apr 2008 00:22:53 -0700 Subject: [Live-devel] A question about reading video frames from memory In-Reply-To: <694252.92704.qm@web73710.mail.tp2.yahoo.com> References: <694252.92704.qm@web73710.mail.tp2.yahoo.com> Message-ID: >I try to modified testMPEG4VideoStreamer and find the FramedSource >is file-base. It does not fit my need because video frames are in >memory. I try to find other FramedSource, but no one seems to be >suitable for it. > >So, my question is what FramedSource that can fit my need or any >suggestion can give. I suggest writing your own "FramedSource" subclass - using the code from the existing "ByteStreamFileSource" class as a model, to implement the "doGetNextFrame()" virtual function (assume that "READ_FROM_FILES_SYNCHRONOUSLY" is defined). In your case - because you're reading from frames stored in memory - it should be very simple. (Be sure to set "fPresentationTime" and "fDurationInMicroseconds" for each frame.) -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From lodewijk at waag.org Tue Apr 1 02:01:26 2008 From: lodewijk at waag.org (lodewijk) Date: Tue, 1 Apr 2008 11:01:26 +0200 Subject: [Live-devel] rtp over http Message-ID: <993E5641-563E-4DFA-9090-79F1C707DEF5@waag.org> hi, It seems like i'm not able anymore to receive rtp over http. While an older build of openRTSP receives data properly, a build with the latest source only results in empty files (audio-MPEG4-GENERIC-1 and video-MP4V-ES-2) and network traffic stopping almost directly after the session has been setup. I'm running MacOSX and receiving data from a Quicktime streaming server. The command I was using : ./openRTSP -t rtsp://x.x.x.x/test.sdp regards, Lodewijk From finlayson at live555.com Tue Apr 1 02:09:58 2008 From: finlayson at live555.com (Ross Finlayson) Date: Tue, 1 Apr 2008 02:09:58 -0700 Subject: [Live-devel] rtp over http In-Reply-To: <993E5641-563E-4DFA-9090-79F1C707DEF5@waag.org> References: <993E5641-563E-4DFA-9090-79F1C707DEF5@waag.org> Message-ID: >hi, > >It seems like i'm not able anymore to receive rtp over http. While an >older build of openRTSP receives data properly, a build with the >latest source only results in empty files (audio-MPEG4-GENERIC-1 and >video-MP4V-ES-2) and network traffic stopping almost directly after >the session has been setup. >I'm running MacOSX and receiving data from a Quicktime streaming >server. The command I was using : > >./openRTSP -t rtsp://x.x.x.x/test.sdp The "-t" option requests RTP-over-TCP, but using the RTSP TCP connection - *not* HTTP. To request RTP-over-HTTP (really, RTP-and-RTSP-over-HTTP), as used by QuickTime Streaming Server (aka. Darwin Streaming Server), use "-T " (note, upper-case T), where is usually 80 or 8000. -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From lodewijk at waag.org Tue Apr 1 02:43:19 2008 From: lodewijk at waag.org (lodewijk) Date: Tue, 1 Apr 2008 11:43:19 +0200 Subject: [Live-devel] rtp over http In-Reply-To: References: <993E5641-563E-4DFA-9090-79F1C707DEF5@waag.org> Message-ID: thanks for the quick reply. This option results for me in the same empty files. The exact same options (-t and -T 80) both work on my older (v2007.08.03) build of openRTSP . So I would say that something must have changed. On Apr 1, 2008, at 11:09 AM, Ross Finlayson wrote: >> hi, >> >> It seems like i'm not able anymore to receive rtp over http. While an >> older build of openRTSP receives data properly, a build with the >> latest source only results in empty files (audio-MPEG4-GENERIC-1 and >> video-MP4V-ES-2) and network traffic stopping almost directly after >> the session has been setup. >> I'm running MacOSX and receiving data from a Quicktime streaming >> server. The command I was using : >> >> ./openRTSP -t rtsp://x.x.x.x/test.sdp > > The "-t" option requests RTP-over-TCP, but using the RTSP TCP > connection - *not* HTTP. > > To request RTP-over-HTTP (really, RTP-and-RTSP-over-HTTP), as used by > QuickTime Streaming Server (aka. Darwin Streaming Server), use > "-T " > (note, upper-case T), where is usually 80 or 8000. > -- > > 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 faerber at pi4.informatik.uni-mannheim.de Tue Apr 1 03:12:59 2008 From: faerber at pi4.informatik.uni-mannheim.de (=?ISO-8859-1?Q?Andreas_F=E4rber?=) Date: Tue, 1 Apr 2008 12:12:59 +0200 Subject: [Live-devel] Receiving subsessions with custom codec Message-ID: Hello, When implementing a new video streaming codec, in order to receive its data in a custom client, is the only way to do so to hack MediaSubsession::initiate to recognize and handle the codec? Regards, Andreas From mean.while.mw at gmail.com Tue Apr 1 03:42:16 2008 From: mean.while.mw at gmail.com (mean while) Date: Tue, 1 Apr 2008 18:42:16 +0800 Subject: [Live-devel] stream mp3 Message-ID: hi, I want to stream mp3 with livemedia. The source does not base on file but comes from memory one frame per time. Should I modify the MP3FileSource.cpp & MP3StreamState.cpp to read and parse the data? Should I use mp3adu format? Thanks very much. yours, mw -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.live555.com/pipermail/live-devel/attachments/20080401/b9220e5b/attachment.html From bellaj1 at gmail.com Tue Apr 1 06:29:38 2008 From: bellaj1 at gmail.com (l'alchemiste) Date: Tue, 1 Apr 2008 15:29:38 +0200 Subject: [Live-devel] stream mp3 In-Reply-To: References: Message-ID: hi i want to use live media fo streaming video on windows mobile can yo help me -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.live555.com/pipermail/live-devel/attachments/20080401/ac49aab7/attachment.html From finlayson at live555.com Tue Apr 1 16:50:23 2008 From: finlayson at live555.com (Ross Finlayson) Date: Tue, 1 Apr 2008 16:50:23 -0700 Subject: [Live-devel] Receiving subsessions with custom codec In-Reply-To: References: Message-ID: >When implementing a new video streaming codec, in order to receive its >data in a custom client, is the only way to do so to hack >MediaSubsession::initiate to recognize and handle the codec? Yes. (This is not ideal, but for now it's the only way to do this.) -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From finlayson at live555.com Tue Apr 1 16:53:02 2008 From: finlayson at live555.com (Ross Finlayson) Date: Tue, 1 Apr 2008 16:53:02 -0700 Subject: [Live-devel] rtp over http In-Reply-To: References: <993E5641-563E-4DFA-9090-79F1C707DEF5@waag.org> Message-ID: >thanks for the quick reply. This option results for me in the same >empty files. The exact same options (-t and -T 80) both work on my >older (v2007.08.03) build of openRTSP . >So I would say that something must have changed. Please send us a (publically-accessible) "rtsp://" URL of a stream that illustrates this problem, so we can test this for ourselves. -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From finlayson at live555.com Tue Apr 1 17:01:26 2008 From: finlayson at live555.com (Ross Finlayson) Date: Tue, 1 Apr 2008 17:01:26 -0700 Subject: [Live-devel] stream mp3 In-Reply-To: References: Message-ID: >From: "mean while" You will be more likely to get an answer to your question if you start conducting yourself in a more professional manner. -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From sanathkumar at winfoware.com Tue Apr 1 20:01:28 2008 From: sanathkumar at winfoware.com (sanathkumar) Date: Wed, 2 Apr 2008 08:31:28 +0530 Subject: [Live-devel] Streaming from TV-Tuner Via Live Message-ID: <001301c8946d$dc9927f0$ff240a0a@ss> Hi I refered to wis-streamer code which implements a FramedSource for go7007 tv-tuner I am using the live & wis-streamer on Windows XP service pack 2 I am attempting to build a Windows DirectShow filter which feeds video / audio frames to a custom FramedSource which implements the readfile() which in turn gets framedata from the DirectShow filter I am feeding my Filter from Microsoft MPEG-4 VKI Codec V3 ( Output PIn shows type as MP43) Even though I recve the data in Framed Source , when I connect using VLC nothing happens Please I need some help in understanding - what format the frams should be fed using Framed Source ? Should be in Raw or any specific codec ? Looking forward to any kind of support Thanks in advance Sanath -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.live555.com/pipermail/live-devel/attachments/20080401/7a6b2a78/attachment.html From lodewijk at waag.org Wed Apr 2 01:07:43 2008 From: lodewijk at waag.org (lodewijk) Date: Wed, 2 Apr 2008 10:07:43 +0200 Subject: [Live-devel] rtp over http In-Reply-To: References: <993E5641-563E-4DFA-9090-79F1C707DEF5@waag.org> Message-ID: ah, that would be a live stream from the ceiling of my office: rtsp://qt2.waag.org/test.sdp it should be running all day except for the moments that my computer crashes or network hickups occur On Apr 2, 2008, at 1:53 AM, Ross Finlayson wrote: >> thanks for the quick reply. This option results for me in the same >> empty files. The exact same options (-t and -T 80) both work on my >> older (v2007.08.03) build of openRTSP . >> So I would say that something must have changed. > > Please send us a (publically-accessible) "rtsp://" URL of a stream > that illustrates this problem, so we can test this for ourselves. > -- > > 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 lodewijk at waag.org Wed Apr 2 01:24:25 2008 From: lodewijk at waag.org (lodewijk) Date: Wed, 2 Apr 2008 10:24:25 +0200 Subject: [Live-devel] Streaming from TV-Tuner Via Live In-Reply-To: <001301c8946d$dc9927f0$ff240a0a@ss> References: <001301c8946d$dc9927f0$ff240a0a@ss> Message-ID: <44AAF65D-8AFF-4A73-A8A6-B4FC55E8966B@waag.org> On Apr 2, 2008, at 5:01 AM, sanathkumar wrote: > Hi > I refered to wis-streamer code which implements a FramedSource > for go7007 tv-tuner > I am using the live & wis-streamer on Windows XP service pack 2 > > I am attempting to build a Windows DirectShow filter which > feeds video / audio frames to a custom > FramedSource which implements the readfile() which in turn gets > framedata from the DirectShow filter > I am feeding my Filter from Microsoft MPEG-4 VKI Codec V3 > ( Output PIn shows type as MP43) > > Even though I recve the data in Framed Source , when I connect > using VLC nothing happens > > Please I need some help in understanding - what format the > frams should be fed using Framed Source ? Should be in Raw or any > specific codec ? I would say the format of the frames your FramedSource should deliver depends on which Framer you use. I've made a subclass of FramedSource which encodes MPEG4V frames using Ffmpeg in the doGetNextFrame function. It feeds it frames to an MPEG4ESVideoRTPSink and from then on i did about the same as in the testMPEG4VideoStreamer test program. in short: RTPSink* videoSink = MPEG4ESVideoRTPSink::createNew (*live555usageEnvironment, rtpGroupsock, 96); MySubclassFramedSource* liveVideoSource = MySubclassFramedSource::createNew(*live555usageEnvironment); // encodes the frames using FFMpeg MPEG4VideoStreamFramer *videoFramer = MPEG4VideoStreamFramer::createNew(*live555usageEnvironment, live555VideoSource); videoSink->startPlaying(*videoFramer, live555AfterPlayingFunc, NULL / *clientData*/); > Looking forward to any kind of support > > Thanks in advance > > > Sanath > > > _______________________________________________ > live-devel mailing list > live-devel at lists.live555.com > http://lists.live555.com/mailman/listinfo/live-devel -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.live555.com/pipermail/live-devel/attachments/20080402/dc7d5f21/attachment-0001.html From cha.gascon at gmail.com Wed Apr 2 01:26:43 2008 From: cha.gascon at gmail.com (Cha Gascon) Date: Wed, 2 Apr 2008 16:26:43 +0800 Subject: [Live-devel] Axis camera In-Reply-To: References: <2830135d0802200612i7017bf6ch2396258324246bc4@mail.gmail.com> <47BC3B7A.9080605@totalwire.it> <2830135d0802210131w25fc2249uc4e12ea324858ef2@mail.gmail.com> <47F0C5EE.9020503@totalwire.it> Message-ID: Reverting back to an older version of liveMedia (live.2007.07.25.tar.gz) solved to the problem. Something to do with the current liveMedia (live.2008.02.03)? On Tue, Apr 1, 2008 at 8:46 AM, Ross Finlayson wrote: > >Cha Gascon wrote: > >>I can connect and play the stream but after a while, it will stop > >>streaming. When it actually stops is random, sometimes a few > >>frames, sometimes after getting a lot of frames. > >The axis camera sends a "BYE" after some time. I do not know whether > >it is a bug or a feature... but for sure it is off-standard (the > >axis server is not live555). > > No, the RTCP "BYE" message is a standard. If the camera is sending > this, then it's explicitly telling the client that it's ending the > stream. So the question now becomes: Why is the Axis server choosing > to end the stream? The only reason I can think of is that perhaps it > is timing out because it thinks that the client is inactive. But the > client ("openRTSP") sends RTCP "RR" reports, and these should be > received by the server (because you're using RTP/RTCP-over-TCP), and > the server should be using these as a sign of client liveness. > > So I think your next step should be to ask Axis why their server is > ending the stream (by sending RTCP "BYE" packets). (Because the Axis > camera is not our product, this is not something that we can really > help you with.) > -- > > 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 > -- Marie Charisse L. Gascon http://www.chasys.net -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.live555.com/pipermail/live-devel/attachments/20080402/d3674f7f/attachment.html From finlayson at live555.com Wed Apr 2 01:28:58 2008 From: finlayson at live555.com (Ross Finlayson) Date: Wed, 2 Apr 2008 01:28:58 -0700 Subject: [Live-devel] rtp over http In-Reply-To: References: <993E5641-563E-4DFA-9090-79F1C707DEF5@waag.org> Message-ID: >ah, that would be a live stream from the ceiling of my office: > >rtsp://qt2.waag.org/test.sdp This works perfectly for me with "openRTSP" built with the latest version (2008.02.08) of the code, using RTP/UDP, RTP/TCP ("-t"), or RTP/HTTP ("-T 80"). I have no idea why it might not be working for you. Sorry. -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From finlayson at live555.com Wed Apr 2 01:38:16 2008 From: finlayson at live555.com (Ross Finlayson) Date: Wed, 2 Apr 2008 01:38:16 -0700 Subject: [Live-devel] Streaming from TV-Tuner Via Live In-Reply-To: <001301c8946d$dc9927f0$ff240a0a@ss> References: <001301c8946d$dc9927f0$ff240a0a@ss> Message-ID: >Hi > I refered to wis-streamer code which implements a FramedSource >for go7007 tv-tuner > I am using the live & wis-streamer on Windows XP service pack 2 > > I am attempting to build a Windows DirectShow filter which feeds >video / audio frames to a custom > FramedSource which implements the readfile() which in turn gets >framedata from the DirectShow filter > I am feeding my Filter from Microsoft MPEG-4 VKI Codec V3 ( >Output PIn shows type as MP43) > > Even though I recve the data in Framed Source , when I connect >using VLC nothing happens > > Please I need some help in understanding - what format the frams >should be fed using Framed Source ? Because your input data is a sequence of MPEG-4 video frames, it should be fed to a "MPEG4VideoStreamDiscreteFramer", which in turn is fed to a "MPEG4ESVideoRTPSink". -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.live555.com/pipermail/live-devel/attachments/20080402/fb653266/attachment.html From faerber at pi4.informatik.uni-mannheim.de Wed Apr 2 01:57:56 2008 From: faerber at pi4.informatik.uni-mannheim.de (=?ISO-8859-1?Q?Andreas_F=E4rber?=) Date: Wed, 2 Apr 2008 10:57:56 +0200 Subject: [Live-devel] Receiving subsessions with custom codec In-Reply-To: References: Message-ID: <68BCB686-0C71-422D-8F63-A4F5B2F1FD52@pi4.informatik.uni-mannheim.de> Am 02.04.2008 um 01:50 schrieb Ross Finlayson: >> When implementing a new video streaming codec, in order to receive >> its >> data in a custom client, is the only way to do so to hack >> MediaSubsession::initiate to recognize and handle the codec? > > Yes. (This is not ideal, but for now it's the only way to do this.) Okay, thanks for the clarification. (A possible improvement might then be a hashtable mapping the codec to some callback function.) Andreas From dconan0404 at yahoo.com.tw Wed Apr 2 02:09:39 2008 From: dconan0404 at yahoo.com.tw (=?big5?B?1t/Eo6Tl?=) Date: Wed, 2 Apr 2008 17:09:39 +0800 (CST) Subject: [Live-devel] The problem about streaming from TCP connections Message-ID: <737856.53137.qm@web73710.mail.tp2.yahoo.com> Dear all, I have writen a program to get video frames from IP camera and then want to build a TCP socket connection to testMPEG4VideoStreamer. After the connection is built, these live video frames will be sent to live555 through this connection. For this condition, what FramedSource should be used. BasicUDPSource? RTPSource? They don't seem so suitable for it. Thanks for your answer. Best Regards, Conan ______________________________________________________________________________________________________ ?????????Yahoo!??????2.0????????????? http://tw.mg0.mail.yahoo.com/dc/landing From lodewijk at waag.org Wed Apr 2 02:54:43 2008 From: lodewijk at waag.org (lodewijk) Date: Wed, 2 Apr 2008 11:54:43 +0200 Subject: [Live-devel] rtp over http In-Reply-To: References: <993E5641-563E-4DFA-9090-79F1C707DEF5@waag.org> Message-ID: <2E8F71D8-8395-48CC-891B-F0436910F7B2@waag.org> Interesting .... it seems like the MacOSX build acts different from the Linux build, my Linux build works exactly as you say. My MacOSX build does only receive RTP over UDP. When I tell it to use RTSP-over-HTTP tunneling (on port 80), the program finally outputs: ... .... Started playing session Receiving streamed data (signal with "kill -HUP 2349" or "kill -USR1 2349" to terminate)... but no data is coming in. Also the option "-t" and "-T 80" give the same result on MacOSX, while different result on Linux Any idea? gr. Lodewijk On Apr 2, 2008, at 10:28 AM, Ross Finlayson wrote: >> ah, that would be a live stream from the ceiling of my office: >> >> rtsp://qt2.waag.org/test.sdp > > This works perfectly for me with "openRTSP" built with the latest > version (2008.02.08) of the code, using RTP/UDP, RTP/TCP ("-t"), or > RTP/HTTP ("-T 80"). I have no idea why it might not be working for > you. Sorry. > -- > > 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 Wed Apr 2 05:18:15 2008 From: finlayson at live555.com (Ross Finlayson) Date: Wed, 2 Apr 2008 05:18:15 -0700 Subject: [Live-devel] rtp over http In-Reply-To: <2E8F71D8-8395-48CC-891B-F0436910F7B2@waag.org> References: <993E5641-563E-4DFA-9090-79F1C707DEF5@waag.org> <2E8F71D8-8395-48CC-891B-F0436910F7B2@waag.org> Message-ID: >Interesting .... it seems like the MacOSX build acts different from >the Linux build, my Linux build works exactly as you say. >My MacOSX build does only receive RTP over UDP. When I tell it to use >RTSP-over-HTTP tunneling (on port 80), the program finally outputs: >... >.... >Started playing session >Receiving streamed data (signal with "kill -HUP 2349" or "kill -USR1 >2349" to terminate)... > >but no data is coming in. > >Also the option "-t" and "-T 80" give the same result on MacOSX, >while different result on Linux That's strange, because when I did my own testing on your stream, I did so on a computer running Mac OS X (version 10.4.11). > >Any idea? Sorry, no. -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From finlayson at live555.com Wed Apr 2 05:48:45 2008 From: finlayson at live555.com (Ross Finlayson) Date: Wed, 2 Apr 2008 05:48:45 -0700 Subject: [Live-devel] The problem about streaming from TCP connections In-Reply-To: <737856.53137.qm@web73710.mail.tp2.yahoo.com> References: <737856.53137.qm@web73710.mail.tp2.yahoo.com> Message-ID: >I have writen a program to get video frames from IP camera and then >want to build a TCP socket connection to testMPEG4VideoStreamer. "testMPEG4VideoStreamer" streams using multicast, which cannot be carried via TCP. If you want to stream via TCP, then you should use "testOnDemandRTSPServer" (a unicast application) as a starting point. Please read the FAQ for hints on how to adapt "testOnDemandRTSPServer" to accept MPEG-4 video input from your camera. -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From Ambra.Cristaldi at elsagdatamat.com Wed Apr 2 06:33:55 2008 From: Ambra.Cristaldi at elsagdatamat.com (Cristaldi Ambra) Date: Wed, 2 Apr 2008 15:33:55 +0200 Subject: [Live-devel] Recording mjpeg on http Message-ID: <268315E5844A704AB431589863FE8EEF01188618@els00wmx04.elsag.it> Hi Ross, I have an Axis camera that can send video frames in MJPEG format using an HTTP url. My question is: can we record this kind of video stream with Live555 sources? There are classes or functions that support video streaming over http? (I work on Windows platform). Thanks in advance. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.live555.com/pipermail/live-devel/attachments/20080402/96b8c9e8/attachment-0001.html From eric.flickner at gmail.com Wed Apr 2 06:48:34 2008 From: eric.flickner at gmail.com (Eric Flickner) Date: Wed, 2 Apr 2008 09:48:34 -0400 Subject: [Live-devel] Recording mjpeg on http In-Reply-To: <268315E5844A704AB431589863FE8EEF01188618@els00wmx04.elsag.it> References: <268315E5844A704AB431589863FE8EEF01188618@els00wmx04.elsag.it> Message-ID: <72ab2a680804020648w39153f32k99c35e14215fefb1@mail.gmail.com> Since you are on Windows and if you can use .NET try this: http://www.codeproject.com/KB/audio-video/cameraviewer.aspx Eric Flickner 2008/4/2 Cristaldi Ambra : > Hi Ross, > > I have an Axis camera that can send video frames in MJPEG format using an > HTTP url. > > My question is: can we record this kind of video stream with Live555 > sources? > > There are classes or functions that support video streaming over http? > > (I work on Windows platform). > > Thanks in advance. > > > > _______________________________________________ > 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: http://lists.live555.com/pipermail/live-devel/attachments/20080402/741cc12d/attachment.html From bellaj1 at gmail.com Wed Apr 2 07:08:08 2008 From: bellaj1 at gmail.com (l'alchemiste) Date: Wed, 2 Apr 2008 14:08:08 +0000 Subject: [Live-devel] Recording mjpeg on http In-Reply-To: <268315E5844A704AB431589863FE8EEF01188618@els00wmx04.elsag.it> References: <268315E5844A704AB431589863FE8EEF01188618@els00wmx04.elsag.it> Message-ID: no -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.live555.com/pipermail/live-devel/attachments/20080402/e42ff8bf/attachment.html From syoon7 at gatech.edu Wed Apr 2 07:35:58 2008 From: syoon7 at gatech.edu (syoon7 at gatech.edu) Date: Wed, 02 Apr 2008 10:35:58 -0400 Subject: [Live-devel] [Question] Streaming transmission rate of liveMedia Server Message-ID: <1207146958.47f399ce2df3a@webmail.mail.gatech.edu> Hi all, First of all, I'm totally a beginner in Streaming world. So, please forgive me if I say incorrect or meaningless things. I'm analyzing Live555MediaServer to find out how the server decides its transmission rate! For a research purpose, I'd like to fix the transmission rate of a specfic RTP streaming service for MPEG video regardless of any environmental changes including the change of an available network bandwidth. To simplfy my work, I'm focused on MPEG1 Video with VLC client player. When I reviewed some source codes, I saw some clues such as fDurationInMicroseconds, but I'm now sure even those are real clues for my work. Q1. I'd like to know how liveMediaServer adjusts the interval of each packets that will be streamed to the client through the network, However what I want is to fix its interval manually (not dynamically adjusted but statically fixed) without concerning even the status of the buffer on the client side. Q2. On the other hand, are there any effective ways for the client to report its desired transmission rate to the server? Probably, sending a RTCP packet ? or any other ways welcome. Thanks in advance. -- ----- ?? ?? ? ----- -- From lodewijk at waag.org Wed Apr 2 13:02:01 2008 From: lodewijk at waag.org (Lodewijk Loos) Date: Wed, 2 Apr 2008 22:02:01 +0200 Subject: [Live-devel] rtp over http In-Reply-To: References: <993E5641-563E-4DFA-9090-79F1C707DEF5@waag.org> <2E8F71D8-8395-48CC-891B-F0436910F7B2@waag.org> Message-ID: I found what makes it work for me: If in the following piece of code I call readSocket WITHOUT the timeout parameter everything works fine again .... void SocketDescriptor::tcpReadHandler(SocketDescriptor* socketDescriptor, int mask) { do { UsageEnvironment& env = socketDescriptor->fEnv; // abbrev int socketNum = socketDescriptor->fOurSocketNum; // Begin by reading and discarding any characters that aren't '$'. // Any such characters are probably regular RTSP responses or // commands from the server. At present, we can't do anything with // these, because we have taken complete control of reading this socket. // (Later, fix) ##### unsigned char c; struct sockaddr_in fromAddress; struct timeval timeout; do { int result = readSocket(env, socketNum, &c, 1, fromAddress, &timeout); if (result != 1) { // error reading TCP socket if (result < 0) { env.taskScheduler().turnOffBackgroundReadHandling(socketNum); // stops further calls to us } return; } } while (c != '$'); gr. Lodewijk On 2-apr-2008, at 14:18, Ross Finlayson wrote: >> Interesting .... it seems like the MacOSX build acts different from >> the Linux build, my Linux build works exactly as you say. >> My MacOSX build does only receive RTP over UDP. When I tell it to use >> RTSP-over-HTTP tunneling (on port 80), the program finally outputs: >> ... >> .... >> Started playing session >> Receiving streamed data (signal with "kill -HUP 2349" or "kill -USR1 >> 2349" to terminate)... >> >> but no data is coming in. >> >> Also the option "-t" and "-T 80" give the same result on MacOSX, >> while different result on Linux > > That's strange, because when I did my own testing on your stream, I > did so on a computer running Mac OS X (version 10.4.11). > >> >> Any idea? > > Sorry, no. > -- > > 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 Wed Apr 2 23:08:31 2008 From: finlayson at live555.com (Ross Finlayson) Date: Wed, 2 Apr 2008 23:08:31 -0700 Subject: [Live-devel] rtp over http In-Reply-To: References: <993E5641-563E-4DFA-9090-79F1C707DEF5@waag.org> <2E8F71D8-8395-48CC-891B-F0436910F7B2@waag.org> Message-ID: >I found what makes it work for me: > >If in the following piece of code I call readSocket WITHOUT the >timeout parameter everything works fine again .... Ah, you've discovered a bug in the code. Instead of omitting the "&timeout" parameter, change the line struct timeval timeout; to struct timeval timeout; timeout.tv_sec = 0; timeout.tv_usec = 0; That should fix your problem. I have now installed a new version of the code that includes this fix. If you're having problems with RTP-over-TCP(or HTTP) streaming, then you should upgrade to the latest version. -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From finlayson at live555.com Wed Apr 2 23:11:04 2008 From: finlayson at live555.com (Ross Finlayson) Date: Wed, 2 Apr 2008 23:11:04 -0700 Subject: [Live-devel] Axis camera In-Reply-To: References: <2830135d0802200612i7017bf6ch2396258324246bc4@mail.gmail.com> <47BC3B7A.9080605@totalwire.it> <2830135d0802210131w25fc2249uc4e12ea324858ef2@mail.gmail.com> <47F0C5EE.9020503@totalwire.it> Message-ID: >Reverting back to an older version of liveMedia >(live.2007.07.25.tar.gz) solved to the problem. Please upgrade to the latest version (2008.04.03) of the code, and try again. If contains a fix that will likely solve your problem. (Note that, in general, no support is given for old versions of the code.) -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From finlayson at live555.com Wed Apr 2 23:13:49 2008 From: finlayson at live555.com (Ross Finlayson) Date: Wed, 2 Apr 2008 23:13:49 -0700 Subject: [Live-devel] [Question] Streaming transmission rate of liveMedia Server In-Reply-To: <1207146958.47f399ce2df3a@webmail.mail.gatech.edu> References: <1207146958.47f399ce2df3a@webmail.mail.gatech.edu> Message-ID: >I'm analyzing Live555MediaServer to find out how >the server decides its transmission rate! It's determined by the "fDurationInMicroseconds" parameter set for the source object that feeds into each "RTPSink" (subclass). I.e., its the data sources that determine the transmission rate. The "fDurationInMicroseconds" parameter is usually determined within the "*Framer" object that lies between the data source object and the "*RTPSink" object. (Note the numerous examples of this in the source code.) -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From eric.flickner at gmail.com Thu Apr 3 01:08:39 2008 From: eric.flickner at gmail.com (Eric Flickner) Date: Thu, 3 Apr 2008 04:08:39 -0400 Subject: [Live-devel] Recording mjpeg on http In-Reply-To: <268315E5844A704AB431589863FE8EEF01188618@els00wmx04.elsag.it> References: <268315E5844A704AB431589863FE8EEF01188618@els00wmx04.elsag.it> Message-ID: <47f49095.1238400a.0e19.ffffb764@mx.google.com> IP Cameras Many network-enabled cameras provide M-JPEG streams that network clients can connect to. Mozilla -based browsers have native support for viewing these M-JPEG streams. Some network-enabled cameras provide their own M-JPEG interfaces as part of the normal feature set. For cameras that don't provide this feature natively, a server can be used to transcode the camera pictures into an M-JPEG stream and then provide that stream to other network clients. Some popular M-JPEG server software includes: * Motion [1] * Zoneminder [2] * MJPG-streamer [3] * Palantir [4] [edit ] M-JPEG over HTTP HTTP streaming separates each image into individual HTTP replies on a specified marker. RTP streaming creates packets of a sequence of JPEG images that can be received by clients such as Quicktime or VLC . The server software mentioned above stream the sequence of JPEGs over HTTP . A special mime-type content type multipart/x-mixed-replace;boundary= informs the browser to expect several parts as answer separated by a special boundary. This boundary is defined within the MIME-type. For M-JPEG streams the JPEG data is send to the client with a correct HTTP-header. The TCP connection is not closed as long as the client wants to receive new frames and the server wants to provide new frames. Two basic implementations of such a server are the test-server of cambozola and the webcam server MJPG-Streamer. Source : http://en.wikipedia.org/wiki/MJPEG#M-JPEG_over_HTTP Thanks, Eric From: live-devel-bounces at ns.live555.com [mailto:live-devel-bounces at ns.live555.com] On Behalf Of Cristaldi Ambra Sent: Wednesday, April 02, 2008 9:34 AM To: live-devel at ns.live555.com Subject: [Live-devel] Recording mjpeg on http Hi Ross, I have an Axis camera that can send video frames in MJPEG format using an HTTP url. My question is: can we record this kind of video stream with Live555 sources? There are classes or functions that support video streaming over http? (I work on Windows platform). Thanks in advance. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.live555.com/pipermail/live-devel/attachments/20080403/13229b8f/attachment-0001.html From wouterbin at gmail.com Thu Apr 3 03:04:58 2008 From: wouterbin at gmail.com (Wouter Bin) Date: Thu, 3 Apr 2008 12:04:58 +0200 Subject: [Live-devel] SIP and RTP with network cam Message-ID: <1b04fe540804030304l52ca525x3af155b3071f80cc@mail.gmail.com> Hi Ross, Im doing some research on a project to make a audio/video RTP stream with a networkcam as video-source (delivers a MotionJPEG stream) and a microphone as audio source. The stream has to be controlled by SIP commands. As far as I understood from the website and the mailing-lists it should all be possible with the Live555 library's? And is it possible to do some audio editting (echo canceling, equalizing) in Live555? Or should i do this outside Live555? Thanks in advance, From faerber at pi4.informatik.uni-mannheim.de Thu Apr 3 06:00:30 2008 From: faerber at pi4.informatik.uni-mannheim.de (=?ISO-8859-1?Q?Andreas_F=E4rber?=) Date: Thu, 3 Apr 2008 15:00:30 +0200 Subject: [Live-devel] Groupsock and non-socket communication? Message-ID: Hello, Has anyone looked into extending or replacing the Groupsock implementation? I would need to support writing to and reading from a custom multicast library, with the underlying sockets being inaccessible (i.e. there are custom classes+methods for sending/ receiving data and virtually no options to set). Would it work to compile libliveMedia as-is and, only when using/ linking it, replace the libGroupsock.a with a fully custom implementation? Unfortunately Groupsock does not seem truly inheritable, and I would need to overwrite all GroupsockHelper functionality. Any other suggestions? Regards, Andreas From finlayson at live555.com Thu Apr 3 18:33:56 2008 From: finlayson at live555.com (Ross Finlayson) Date: Thu, 3 Apr 2008 18:33:56 -0700 Subject: [Live-devel] Groupsock and non-socket communication? In-Reply-To: References: Message-ID: >Has anyone looked into extending or replacing the Groupsock >implementation? Yes, it's on our 'to do' list (but I can't give an ETA). The plan will be to make network sockets 'source' or 'sink' objects, just like most of the other objects defined by the "LIVE555 Streaming Media" libraries. This will allow people to use virtual networks (including network simulators) in place of real networks, if desired. It will also make it easier to support IPv6. Again, this will be a lot of work, and unfortunately I can't estimate when it's likely to happen. -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From finlayson at live555.com Thu Apr 3 19:14:53 2008 From: finlayson at live555.com (Ross Finlayson) Date: Thu, 3 Apr 2008 19:14:53 -0700 Subject: [Live-devel] SIP and RTP with network cam In-Reply-To: <1b04fe540804030304l52ca525x3af155b3071f80cc@mail.gmail.com> References: <1b04fe540804030304l52ca525x3af155b3071f80cc@mail.gmail.com> Message-ID: >Im doing some research on a project to make a audio/video RTP stream >with a networkcam as video-source (delivers a MotionJPEG stream) and a >microphone as audio source. The stream has to be controlled by SIP >commands. >As far as I understood from the website and the mailing-lists it >should all be possible with the Live555 library's? Not without some work, unfortunately, because we don't have any SIP server functionality in our libraries. However, if your client can use RTSP (rather than SIP), then you could do this using our existing RTSP server implementation. >And is it possible to do some audio editting (echo canceling, >equalizing) in Live555? Or should i do this outside Live555? We don't have any audio or video codec software, so this would need to be written separately (but perhaps encapsulated as a LIVE555 "FramedFilter"). -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From howard.robert4 at gmail.com Thu Apr 3 23:33:07 2008 From: howard.robert4 at gmail.com (Robert Howard) Date: Fri, 4 Apr 2008 12:03:07 +0530 Subject: [Live-devel] Audio and Video Streaming Message-ID: <8ffea5380804032333o3b4194fmb22a8f7322bd9e87@mail.gmail.com> Hi I have two streams - one for audio and one for video. Is there is anything I have to do for synchronisation? Currently when I stream both of them, both audio and video appear with lot of jerks. Any suggestion? - Rob -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.live555.com/pipermail/live-devel/attachments/20080403/78213123/attachment.html From lcj.liu at gmail.com Thu Apr 3 23:56:19 2008 From: lcj.liu at gmail.com (lcj.liu at gmail.com) Date: Fri, 4 Apr 2008 14:56:19 +0800 Subject: [Live-devel] Many streams to one RTP port Message-ID: <47f5d122.1b068e0a.4395.0cee@mx.google.com> Hello, I am working on a server which should receive many RTP streams on the same port. The cameras may be distributed everywhere, but they send the stream back to same port of the same server. Could liveMedia be used to implement such a server? thanks -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.live555.com/pipermail/live-devel/attachments/20080403/868eef9d/attachment.html From finlayson at live555.com Fri Apr 4 01:00:42 2008 From: finlayson at live555.com (Ross Finlayson) Date: Fri, 4 Apr 2008 01:00:42 -0700 Subject: [Live-devel] Audio and Video Streaming In-Reply-To: <8ffea5380804032333o3b4194fmb22a8f7322bd9e87@mail.gmail.com> References: <8ffea5380804032333o3b4194fmb22a8f7322bd9e87@mail.gmail.com> Message-ID: >I have two streams - one for audio and one for video. Is there is >anything I have to do for synchronisation? Currently when I stream >both of them, both audio and video appear with lot of jerks. Any >suggestion? 1/ Make sure that the presentation times for each frame in the source streams are accurate, and are aligned with 'wall clock' time (i.e., the time that you'd get by calling "gettimeofday()". 2/ Make sure that each "RTPSink" has a corresponding "RTCPInstance". (If you're using our RTSP server implementation, then this happens automatically.) -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From finlayson at live555.com Fri Apr 4 01:02:45 2008 From: finlayson at live555.com (Ross Finlayson) Date: Fri, 4 Apr 2008 01:02:45 -0700 Subject: [Live-devel] Many streams to one RTP port In-Reply-To: <47f5d122.1b068e0a.4395.0cee@mx.google.com> References: <47f5d122.1b068e0a.4395.0cee@mx.google.com> Message-ID: > I am working on a server which should receive many RTP >streams on the same port. The cameras may be distributed everywhere, >but they send the stream back to same port of the same server. Could >liveMedia be used to implement such a server? Not at present. We currently have no mechanism for demultiplexing incoming RTP packets based on SSRC (which is what would be needed for your application). -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From howard.robert4 at gmail.com Fri Apr 4 01:22:29 2008 From: howard.robert4 at gmail.com (Robert Howard) Date: Fri, 4 Apr 2008 13:52:29 +0530 Subject: [Live-devel] Audio and Video Streaming In-Reply-To: References: <8ffea5380804032333o3b4194fmb22a8f7322bd9e87@mail.gmail.com> Message-ID: <8ffea5380804040122o72b25b26p1815c32af359428c@mail.gmail.com> I have created a instance of ServerMediaSession, and added one audio and one video session to it using addSubsession. PTS for the video is well taken care off by the encoder but for audio, since its wav file, I am not sure is there is PTS in the audio frame. Is there is anything else I am missing. Rob. On Fri, Apr 4, 2008 at 1:30 PM, Ross Finlayson wrote: > >I have two streams - one for audio and one for video. Is there is > >anything I have to do for synchronisation? Currently when I stream > >both of them, both audio and video appear with lot of jerks. Any > >suggestion? > > > 1/ Make sure that the presentation times for each frame in the source > streams are accurate, and are aligned with 'wall clock' time (i.e., > the time that you'd get by calling "gettimeofday()". > 2/ Make sure that each "RTPSink" has a corresponding "RTCPInstance". > (If you're using our RTSP server implementation, then this happens > automatically.) > -- > > Ross Finlayson > Live Networks, Inc. > http://www.live555.com/ > _______________________________________________ > live-devel mailing list > live-devel at lists.live555.com > http://lists.live555.com/mailman/listinfo/live-devel > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.live555.com/pipermail/live-devel/attachments/20080404/5d485cba/attachment.html From finlayson at live555.com Fri Apr 4 01:38:04 2008 From: finlayson at live555.com (Ross Finlayson) Date: Fri, 4 Apr 2008 01:38:04 -0700 Subject: [Live-devel] Audio and Video Streaming In-Reply-To: <8ffea5380804040122o72b25b26p1815c32af359428c@mail.gmail.com> References: <8ffea5380804032333o3b4194fmb22a8f7322bd9e87@mail.gmail.com> <8ffea5380804040122o72b25b26p1815c32af359428c@mail.gmail.com> Message-ID: >I have created a instance of ServerMediaSession, and added one audio >and one video session to it using addSubsession. PTS for the video >is well taken care off by the encoder but for audio, since its wav >file, I am not sure is there is PTS in the audio frame. Is there is >anything else I am missing. As I said, you'll need to give your audio frames PTSs, and they - along with the PTSs of the video frames - must be in sync, and aligned with wall-clock time. -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From belloni at imavis.com Fri Apr 4 03:06:33 2008 From: belloni at imavis.com (Cristiano Belloni) Date: Fri, 04 Apr 2008 12:06:33 +0200 Subject: [Live-devel] [Question] Streaming transmission rate of liveMedia Server In-Reply-To: References: <1207146958.47f399ce2df3a@webmail.mail.gatech.edu> Message-ID: <47F5FDA9.4060807@imavis.com> Ross Finlayson wrote: >> I'm analyzing Live555MediaServer to find out how >> the server decides its transmission rate! >> > > It's determined by the "fDurationInMicroseconds" parameter set for > the source object that feeds into each "RTPSink" (subclass). I.e., > its the data sources that determine the transmission rate. > > The "fDurationInMicroseconds" parameter is usually determined within > the "*Framer" object that lies between the data source object and the > "*RTPSink" object. (Note the numerous examples of this in the source > code.) > I've always wondered what value "fDurationInMicroseconds" should take in video frames. A simple answer is probably 1 sec / framerate. Is it toio simple or am I correct? Anyway, I set it to 0 in my framer, for now, and it seems it works perfectly. Cristiano. -- Belloni Cristiano Imavis Srl. www.imavis.com belloni at imavis.com From finlayson at live555.com Fri Apr 4 04:40:40 2008 From: finlayson at live555.com (Ross Finlayson) Date: Fri, 4 Apr 2008 04:40:40 -0700 Subject: [Live-devel] [Question] Streaming transmission rate of liveMedia Server In-Reply-To: <47F5FDA9.4060807@imavis.com> References: <1207146958.47f399ce2df3a@webmail.mail.gatech.edu> <47F5FDA9.4060807@imavis.com> Message-ID: > >> I'm analyzing Live555MediaServer to find out how >>> the server decides its transmission rate! >>> >> >> It's determined by the "fDurationInMicroseconds" parameter set for >> the source object that feeds into each "RTPSink" (subclass). I.e., >> its the data sources that determine the transmission rate. >> >> The "fDurationInMicroseconds" parameter is usually determined within >> the "*Framer" object that lies between the data source object and the >> "*RTPSink" object. (Note the numerous examples of this in the source >> code.) >> >I've always wondered what value "fDurationInMicroseconds" should take in >video frames. >A simple answer is probably 1 sec / framerate. Is it toio simple or am I >correct? You mean 1000000/framerate, of course. > >Anyway, I set it to 0 in my framer, for now, and it seems it works >perfectly. That must be because you are streaming from a live source. If you are streaming from a live source, then it's perfectly OK (in fact, preferred) to not set "fDurationInMicroseconds" (which means that it retains its default value of 0), because in that case each frame will be delivered to the downstream "RTPSink" object when it becomes available, even though the "RTPSink" object asked for it immediately after the previous frame was transmitted. -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From belloni at imavis.com Fri Apr 4 07:58:08 2008 From: belloni at imavis.com (Cristiano Belloni) Date: Fri, 04 Apr 2008 16:58:08 +0200 Subject: [Live-devel] [Question] Streaming transmission rate of liveMedia Server In-Reply-To: References: <1207146958.47f399ce2df3a@webmail.mail.gatech.edu> <47F5FDA9.4060807@imavis.com> Message-ID: <47F64200.3010204@imavis.com> Ross Finlayson wrote: >> >> I'm analyzing Live555MediaServer to find out how >> >>>> the server decides its transmission rate! >>>> >>>> >>> It's determined by the "fDurationInMicroseconds" parameter set for >>> the source object that feeds into each "RTPSink" (subclass). I.e., >>> its the data sources that determine the transmission rate. >>> >>> The "fDurationInMicroseconds" parameter is usually determined within >>> the "*Framer" object that lies between the data source object and the >>> "*RTPSink" object. (Note the numerous examples of this in the source >>> code.) >>> >>> >> I've always wondered what value "fDurationInMicroseconds" should take in >> video frames. >> A simple answer is probably 1 sec / framerate. Is it toio simple or am I >> correct? >> > > You mean 1000000/framerate, of course. > > Yeah :) >> Anyway, I set it to 0 in my framer, for now, and it seems it works >> perfectly. >> > > That must be because you are streaming from a live source. If you > are streaming from a live source, then it's perfectly OK (in fact, > preferred) to not set "fDurationInMicroseconds" (which means that it > retains its default value of 0), because in that case each frame will > be delivered to the downstream "RTPSink" object when it becomes > available, even though the "RTPSink" object asked for it immediately > after the previous frame was transmitted. > Great. Thanks, Cristiano. -- Belloni Cristiano Imavis Srl. www.imavis.com belloni at imavis.com From ken.seo at gmail.com Fri Apr 4 08:44:42 2008 From: ken.seo at gmail.com (Ken Seo) Date: Fri, 4 Apr 2008 11:44:42 -0400 Subject: [Live-devel] Implementing FramedSource Message-ID: <5e008ff40804040844y101c38bs9ab51479dcf0eadd@mail.gmail.com> Hi, I'm trying to implement a FramedSource which will get next frames from a Queue. From my digging so far, "doGetNextFrame()" should be blocking until the next frame is available, so my current implementation looks like, void QueueSource::doGetNextFrame() { //CAutoLock cAutolock(&m_Lock); SampleData* sampleData = NULL; while(true) { sampleData = m_pMediaSampleQueue->Pop(); if (sampleData == NULL) continue; if (sampleData->endOfStream) { handleClosure(this); return; } if (IsBadReadPtr(sampleData->pSample, sizeof(UCHAR))) continue; break; } printf("sample: %d\n", sampleData->sampleSize); fMaxSize = sampleData->maxSize; fFrameSize = sampleData->sampleSize; fNumTruncatedBytes = sampleData->numTruncatedBytes; fPresentationTime.tv_sec = sampleData->presentationTime.tv_sec; fPresentationTime.tv_usec = sampleData->presentationTime.tv_usec; fDurationInMicroseconds = sampleData->durationInMicroseconds; memcpy(fTo, sampleData->pSample, fFrameSize); delete sampleData; afterGetting(this); //nextTask() = envir().taskScheduler().scheduleDelayedTask(0, (TaskFunc*)FramedSource::afterGetting, this); } And there will be another thread filling the Queue, (this shouldn't interfere with with live555's single threaded model), But it seems to me that this implementation too expensive (cpu intensive) and I do experience jitters in streaming (a lot). And if I make non-blocking (without loop) then no samples retrieved, Considering, live555 is single threaded, how else do I implement blocking ?? and who's responsible to call GetNextFrame()? Regards, Ken Seo From wouterbin at gmail.com Fri Apr 4 09:00:12 2008 From: wouterbin at gmail.com (Wouter Bin) Date: Fri, 4 Apr 2008 18:00:12 +0200 Subject: [Live-devel] SIP and RTP with network cam In-Reply-To: References: <1b04fe540804030304l52ca525x3af155b3071f80cc@mail.gmail.com> Message-ID: <1b04fe540804040900q453f67d5s6014ef4f0541f2be@mail.gmail.com> We have a SIP server already. We have to make a client which calls another client with SIP. And then the client has to make a connection with the other client and send a audio/video RTP stream. The video stream gets it's data from a network camera (Motion JPEG) and the audio stream has to get its data from a microphone which is connected to the computer on which the client is running. I understand that I have to do some work but most of the functions I need are supported by Live555 not? Thanks Wouter On Fri, Apr 4, 2008 at 4:14 AM, Ross Finlayson wrote: > >Im doing some research on a project to make a audio/video RTP stream > >with a networkcam as video-source (delivers a MotionJPEG stream) and a > >microphone as audio source. The stream has to be controlled by SIP > >commands. > >As far as I understood from the website and the mailing-lists it > >should all be possible with the Live555 library's? > > Not without some work, unfortunately, because we don't have any SIP > server functionality in our libraries. However, if your client can > use RTSP (rather than SIP), then you could do this using our existing > RTSP server implementation. > > > >And is it possible to do some audio editting (echo canceling, > >equalizing) in Live555? Or should i do this outside Live555? > > We don't have any audio or video codec software, so this would need > to be written separately (but perhaps encapsulated as a LIVE555 > "FramedFilter"). > -- > > 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 lodewijk at waag.org Fri Apr 4 09:21:34 2008 From: lodewijk at waag.org (Lodewijk Loos) Date: Fri, 4 Apr 2008 18:21:34 +0200 Subject: [Live-devel] presentation times Message-ID: <64A08541-B5D5-45AC-92D5-0EDF06674FF7@waag.org> hi, I am receiving a stream from Quicktime Broadcaster via Darwin Streaming Server, where do the presentation times I get in my MediaSink originate from? My guess is that DSS adapts the presentation times of frames from QTB. I am asking this because I would like to be able to calculate the latency between sending from QTB and receiving in Live555, is this made impossible by relaying via DSS? gr. Lodewijk From finlayson at live555.com Fri Apr 4 14:17:38 2008 From: finlayson at live555.com (Ross Finlayson) Date: Fri, 4 Apr 2008 14:17:38 -0700 Subject: [Live-devel] Implementing FramedSource In-Reply-To: <5e008ff40804040844y101c38bs9ab51479dcf0eadd@mail.gmail.com> References: <5e008ff40804040844y101c38bs9ab51479dcf0eadd@mail.gmail.com> Message-ID: >I'm trying to implement a FramedSource which will get next frames from >a Queue. From my digging so far, "doGetNextFrame()" should be blocking >until the next frame is available No, it should *not* be blocking until the next frame is available, because if you block, you'll be starving out any other events that need to be handled. Instead, if no frame is immediately available, "doGetNextFrame()" should return. Later, when a frame becomes available, this will be triggered as an event that can get handled within the event loop. You can use the "watchVariable" parameter to "doEventLoop()" for this purpose (e.g., have your separate queue-filling thread set the 'watchVariable' when a new frame becomes available. (See the FAQ for more information.) -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From finlayson at live555.com Fri Apr 4 14:37:16 2008 From: finlayson at live555.com (Ross Finlayson) Date: Fri, 4 Apr 2008 14:37:16 -0700 Subject: [Live-devel] presentation times In-Reply-To: <64A08541-B5D5-45AC-92D5-0EDF06674FF7@waag.org> References: <64A08541-B5D5-45AC-92D5-0EDF06674FF7@waag.org> Message-ID: >I am receiving a stream from Quicktime Broadcaster via Darwin >Streaming Server, where do the presentation times I get in my >MediaSink originate from? I think you mean "RTPSource" (subclass), not "MediaSink". The presentation times returned by the "RTPSource" object originated in the server (provided that you have a "RTCPInstance" associated with the "RTPSource". See http://www.live555.com/liveMedia/faq.html#separate-rtp-streams >My guess is that DSS adapts the presentation times of frames from >QTB. I am asking this because I would like to be able to calculate >the latency between sending from QTB and receiving in Live555, is >this made impossible by relaying via DSS? I don't know; you will have to ask a DSS mailing list about that. In any case, even if the QTB presentation timestamps were passed through the DSS unchanged, you would only be able to calculate the latency accurately if the receiver's clock were synchronized with that of the QTB. -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From rajeshkumar.r at imimobile.com Fri Apr 4 23:33:36 2008 From: rajeshkumar.r at imimobile.com (rajesh) Date: Sat, 5 Apr 2008 12:03:36 +0530 Subject: [Live-devel] live555 rtsp server supports Live Media Message-ID: <09f201c896e6$fa6310e0$6902000a@imidomain.com> Hi Ross, can we use rtsp server of Live555 to transfer Live Media. Thanks in Advance Thanks and Regards Rajesh Kumar Sr. Software Engineer R & D - Network Group +91 40 23555945 - 235 +91 99084 00027 www.imimobile.com -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.live555.com/pipermail/live-devel/attachments/20080404/fe190d77/attachment.html From finlayson at live555.com Fri Apr 4 23:45:23 2008 From: finlayson at live555.com (Ross Finlayson) Date: Fri, 4 Apr 2008 23:45:23 -0700 Subject: [Live-devel] live555 rtsp server supports Live Media In-Reply-To: <09f201c896e6$fa6310e0$6902000a@imidomain.com> References: <09f201c896e6$fa6310e0$6902000a@imidomain.com> Message-ID: >can we use rtsp server of Live555 to transfer Live Media. Do you mean "serve streams from a live input source" (e.g., a camera connected to a video encoder)? If so, the answer is yes. Although our "LIVE555 Media Server" product currently only serves files, it is possible to modify our demo application "testOnDemandRTSPServer" to stream from a live input source. Read the FAQ for details. -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.live555.com/pipermail/live-devel/attachments/20080404/7aebe7af/attachment.html From manzoor505 at yahoo.com Sun Apr 6 02:31:14 2008 From: manzoor505 at yahoo.com (Manzoor Ahmed) Date: Sun, 6 Apr 2008 02:31:14 -0700 (PDT) Subject: [Live-devel] LiveMedia and Visual Studio 2005 Message-ID: <991017.20846.qm@web52408.mail.re2.yahoo.com> Hey Everyone, I have downloaded the LiveMedia library but was unable to build it using visual studio 2005. I imported the old header files and libraries but it didn't work. Is LiveMedia compatible with VS 2005? Manzoor Ahmed NIIT-NUST Pakistan +92-333-9500230 manzoor505 at yahoo.com ____________________________________________________________________________________ You rock. That's why Blockbuster's offering you one month of Blockbuster Total Access, No Cost. http://tc.deals.yahoo.com/tc/blockbuster/text5.com -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.live555.com/pipermail/live-devel/attachments/20080406/cf9f09ab/attachment-0001.html From eric.flickner at gmail.com Sun Apr 6 04:48:06 2008 From: eric.flickner at gmail.com (Eric Flickner) Date: Sun, 6 Apr 2008 07:48:06 -0400 Subject: [Live-devel] LiveMedia and Visual Studio 2005 In-Reply-To: <991017.20846.qm@web52408.mail.re2.yahoo.com> References: <991017.20846.qm@web52408.mail.re2.yahoo.com> Message-ID: <47f8b879.0108400a.3dcc.ffff85a4@mx.google.com> Read this From: live-devel-bounces at ns.live555.com [mailto:live-devel-bounces at ns.live555.com] On Behalf Of Manzoor Ahmed Sent: Sunday, April 06, 2008 5:31 AM To: live-devel at ns.live555.com Subject: [Live-devel] LiveMedia and Visual Studio 2005 Hey Everyone, I have downloaded the LiveMedia library but was unable to build it using visual studio 2005. I imported the old header files and libraries but it didn't work. Is LiveMedia compatible with VS 2005? Manzoor Ahmed NIIT-NUST Pakistan +92-333-9500230 manzoor505 at yahoo.com _____ You rock. That's why Blockbuster's offering you one month of Blockbuster Total Access, No Cost. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.live555.com/pipermail/live-devel/attachments/20080406/0edad7e0/attachment.html From dconan0404 at yahoo.com.tw Sun Apr 6 20:16:50 2008 From: dconan0404 at yahoo.com.tw (Conan) Date: Mon, 7 Apr 2008 11:16:50 +0800 (CST) Subject: [Live-devel] PC to PC streaming question Message-ID: <81409.54913.qm@web73702.mail.tp2.yahoo.com> Hi all, I have a question about streaming between two PCs. 'A' PC is receiving the camera video frames and 'B' PC will receive these frames from 'A' PC as a relay. These two PCs are in local LAN and can create UDP/TCP socket to send/receive frames from each other. 'A' PC used a special protocol to get video frames from camera and does not run live555 on it. (only use sockets) My question is what source is suitable for this condition on 'B' PC. I found MPEG4ESVideoRTPSource, but it is incompleted. Is any other source better? Thanks. Best Regards, Conan ______________________________________________________________________________________________________ ?????????Yahoo!??????2.0????????????? http://tw.mg0.mail.yahoo.com/dc/landing -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.live555.com/pipermail/live-devel/attachments/20080406/abd8a55e/attachment.html From mean.while.mw at gmail.com Mon Apr 7 00:54:35 2008 From: mean.while.mw at gmail.com (mean while) Date: Mon, 7 Apr 2008 15:54:35 +0800 Subject: [Live-devel] a question about MP3StreamState Message-ID: Hello, Thanks for your help. I have a question about MP3StreamState. In this Class it calls waitUntilSocketIsReadable() to wait for the source data, and this function allows other tasks to run while waiting, but this may cause some problem. If the client close the connection, the MP3StreamState will be destruct, if the wait function doesn't returns before this , when it returns after the destruction, the program may crash. Is this right? If so, is there a way to solve this? Thnaks and best reguards. Yours sincerely. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.live555.com/pipermail/live-devel/attachments/20080407/61bd03a7/attachment.html From kan at pisem.net Mon Apr 7 03:42:00 2008 From: kan at pisem.net (akarlov) Date: Mon, 07 Apr 2008 14:42:00 +0400 Subject: [Live-devel] VLC and stb don't play "trick play" streams Message-ID: <47F9FA78.3090403@pisem.net> Hello! Sorry if this question already discussed before, but I've not found this in older mail-lists. I have a problem with trick play operations in LiveMedia server. I have got a mpeg2-TS file, index file .tsx and try to play it using live555MediaServer as a server and VLC as a client. VLC playback this stream fine, pause works fine too, but then I try to do FastFoward or FastBackward the stream starts play fast for about a one second and after that picture disappears. Furthermore, I've tried do do FastFoward or FastBackward on amino stb and trick play didn't work fine there too: the picture is broken after I've press FF or FW ... It seems what MPEG2TransportStreamTrickModeFilter produce non-standard transport stream. Could you explain little, how this filter create "FastFoward" or "FastBackward" streams? Is is contain only "I" frames? How this filter creates PTS timestamps in result stream? I'm very thankfull to your help! Sorry for awful English =) Karlov Andrey From mlopez at linceo.es Mon Apr 7 03:45:09 2008 From: mlopez at linceo.es (=?iso-8859-1?Q?Miguel_=C1ngel_L=F3pez?=) Date: Mon, 7 Apr 2008 12:45:09 +0200 Subject: [Live-devel] Live555 and gstreamer Message-ID: Hi, Has anyone used live555 from gstreamer framework? Does it exist a gstreamer plugin for live555 RTSP server?. It seems that it was into the gstreamer ugly-plugins once. Thanks in advance mangel -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.live555.com/pipermail/live-devel/attachments/20080407/a6de8b9e/attachment.html From finlayson at live555.com Mon Apr 7 09:10:12 2008 From: finlayson at live555.com (Ross Finlayson) Date: Mon, 7 Apr 2008 09:10:12 -0700 Subject: [Live-devel] VLC and stb don't play "trick play" streams In-Reply-To: <47F9FA78.3090403@pisem.net> References: <47F9FA78.3090403@pisem.net> Message-ID: >VLC playback this stream fine, pause works fine too, but then >I try to do FastFoward or FastBackward the stream starts play fast for >about a one second and after that picture disappears. > >Furthermore, I've tried do do FastFoward or FastBackward on amino stb >and trick play didn't work fine there too: the picture is broken >after I've press FF or FW ... This seems to be a problem for some - although not all - transport stream files. >It seems what MPEG2TransportStreamTrickModeFilter produce non-standard >transport stream. No, that's not correct at all. If you run "testMPEG2TransportStreamTrickPlay", you will see that the resulting Transport Stream files (for fast-forward or reverse play) are OK. However, their bitrate is significantly larger than than the original file, and that may cause problems (e.g., network packet loss) on some networks/systems. -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From tonjefr at ifi.uio.no Mon Apr 7 14:29:36 2008 From: tonjefr at ifi.uio.no (Tonje Fredrikson) Date: Mon, 7 Apr 2008 23:29:36 +0200 (CEST) Subject: [Live-devel] (no subject) Message-ID: <57624.129.240.228.53.1207603776.squirrel@webmail.uio.no> Hi, Is it possible for live555 to seek to an arbitrary point in an MPEG2 Program file, find the next GOP in the file, and stream from there? If yes, which class supports this? Thanks, Tonje From finlayson at live555.com Mon Apr 7 16:21:17 2008 From: finlayson at live555.com (Ross Finlayson) Date: Mon, 7 Apr 2008 16:21:17 -0700 Subject: [Live-devel] (no subject) In-Reply-To: <57624.129.240.228.53.1207603776.squirrel@webmail.uio.no> References: <57624.129.240.228.53.1207603776.squirrel@webmail.uio.no> Message-ID: >Is it possible for live555 to seek to an arbitrary point in an MPEG2 >Program file, find the next GOP in the file, and stream from there? Yes, this is already implemented (but doesn't work particularly well, because the resulting presentation timestamps (from the audio and video substreams) aren't always in sync). For example, our "live555MediaServer" already supports seeking on MPEG Program Stream files. >If yes, which class supports this? MPEG1or2DemuxedServerMediaSubsession::seekStreamSource() Note that - for a typical MPEG Program Stream that contains both an audio and video substream - this function ends up getting called twice - once for each substream. -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From brainlai at gmail.com Tue Apr 8 03:04:23 2008 From: brainlai at gmail.com (Brain Lai) Date: Tue, 8 Apr 2008 18:04:23 +0800 Subject: [Live-devel] Vulnerabilities in RTPInterface::handleRead() Message-ID: Dear Sir: In RTPInterface::handleRead(), the following code may cause vulnerabilities due to type inconsistency: Boolean RTPInterface::handleRead(unsigned char* buffer, unsigned bufferMaxSize, unsigned& bytesRead, struct sockaddr_in& fromAddress) { ...... unsigned curBytesRead; while ((curBytesRead = readSocket(envir(), fNextTCPReadStreamSocketNum, &buffer[bytesRead], curBytesToRead, fromAddress)) > 0) { bytesRead += curBytesRead; if (bytesRead >= totBytesToRead) break; curBytesToRead -= curBytesRead; } if (curBytesRead <= 0) { bytesRead = 0; readSuccess = False; RTPOverTCP_OK = False; // HACK ##### } else { readSuccess = True; } ....... } Here, ReadSocket() returns int while curBytesRead is declared unsigned. If ReadSocket() returns -1, the above code may cause problem. BR. Brain Lai -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.live555.com/pipermail/live-devel/attachments/20080408/8b97ca53/attachment-0001.html From lcj.liu at gmail.com Tue Apr 8 03:22:16 2008 From: lcj.liu at gmail.com (Changjin Liu) Date: Tue, 8 Apr 2008 18:22:16 +0800 Subject: [Live-devel] two questions about liveMedia source code Message-ID: <47fb475f.1c078e0a.5216.7cfa@mx.google.com> Hello, Ross I'm reading liveMedia source code(version 2008.4.3), and have two questions about it (1) in RTSPClient::setupMediaSubsession (RTSPClient.cpp, line 956): subsession.connectionEndpointName() = serverAddressStr; where the serverAddressStr comes from the transport section of SDP response of Server. But in the same function(line 983), "subsession.setDestinations(fServerAddress)" set the destination address of the client subsession to fServerAddress I searched fServerAddress and found that it is set in RTSPClient::openConnectionFromURL( line 1792). fServerAddress comes from the RTSP URL. So why not set the mediaSubSession destination address to the address of SETUP response? If the RTSP URL is more appropriate, then is line 956 redundant? (2) In rtcp_from_spec.c, line 286, the OnReceive function, if (TypeOfEvent(e) == EVENT_BYE) { *members += 1; } I read RFC3550 A.7, it has the same code above. Why not should it be: if (TypeOfEvent(e) == EVENT_BYE) { *members -= 1; } Thanks. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.live555.com/pipermail/live-devel/attachments/20080408/92c628ab/attachment.html From crv713 at gmail.com Tue Apr 8 14:00:39 2008 From: crv713 at gmail.com (Sudhir Kumar Srinivasan) Date: Tue, 8 Apr 2008 14:00:39 -0700 Subject: [Live-devel] RTCP Extended Report Support in Live 555 Message-ID: <754664c30804081400w4162a3eaw3a22d5732fa82672@mail.gmail.com> Hi, I need to implement the RTCP XR packet type. Is this support already there in Live 555 ? If not, do I just add another 'packet type' in the RTCP.hh file and give implementations to it ? Thanks in advance ! Sudhir -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.live555.com/pipermail/live-devel/attachments/20080408/a0d5bccc/attachment.html From ken.seo at gmail.com Tue Apr 8 16:28:26 2008 From: ken.seo at gmail.com (Ken Seo) Date: Tue, 8 Apr 2008 19:28:26 -0400 Subject: [Live-devel] Implementing FramedSource In-Reply-To: References: <5e008ff40804040844y101c38bs9ab51479dcf0eadd@mail.gmail.com> Message-ID: <5e008ff40804081628m7c496e1bxcaf76891942e2d37@mail.gmail.com> Hi, Ross, Thank you for your reply, if "doGetNextFrame()" returns immediately, I'm not quite sure how it would work, the following is my understanding of RTP cycle, RTSPServer - upon start playing - calls GetNextFrame() -> calls doGetNextFrame() -> calls afterGetting() -> sends packets all that -> calls GetNextFrame() So, in the cycle above, once doGetNextFrame() returns without scheduling afterGetting(), then the cycle stops there. Also, doGetNextFrame() should be called only by "GetNextFrame()" which takes many parameters and has some initialization steps. So, from your explanation "Later, when a frame becomes available, this will be triggered as an event that can get handled within the event loop.", once I have a sample, how should I *handle* that in the event loop?, I can create a callback function or a watch variable to get notified, but, I'm not exactly sure what to do with it, should I manually call "doGetNextFrame()"? Here is what I tried, my doGetNextFrame() is empty. void QueueSource::doGetNextFrame() { } And I have a function that gets invoked when a sample arrives, HRESULT ReceivedSample(IMediaSample *pSample) { On Fri, Apr 4, 2008 at 5:17 PM, Ross Finlayson wrote: > >I'm trying to implement a FramedSource which will get next frames from > >a Queue. From my digging so far, "doGetNextFrame()" should be blocking > >until the next frame is available > > No, it should *not* be blocking until the next frame is available, > because if you block, you'll be starving out any other events that > need to be handled. Instead, if no frame is immediately available, > "doGetNextFrame()" should return. Later, when a frame becomes > available, this will be triggered as an event that can get handled > within the event loop. > > You can use the "watchVariable" parameter to "doEventLoop()" for this > purpose (e.g., have your separate queue-filling thread set the > 'watchVariable' when a new frame becomes available. (See the FAQ for > more information.) > -- > > 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 ken.seo at gmail.com Tue Apr 8 16:38:24 2008 From: ken.seo at gmail.com (Ken Seo) Date: Tue, 8 Apr 2008 19:38:24 -0400 Subject: [Live-devel] Implementing FramedSource In-Reply-To: <5e008ff40804081628m7c496e1bxcaf76891942e2d37@mail.gmail.com> References: <5e008ff40804040844y101c38bs9ab51479dcf0eadd@mail.gmail.com> <5e008ff40804081628m7c496e1bxcaf76891942e2d37@mail.gmail.com> Message-ID: <5e008ff40804081638u7e97276fp6817730739f93d78@mail.gmail.com> Hi, Ross, ** Sorry I pressed wrong button and email was sent accidently, please disregard the first email. Thank you for your reply, if "doGetNextFrame()" returns immediately, I'm not quite sure how it would work, the following is my understanding of RTP cycle, RTSPServer - upon start playing - calls GetNextFrame() -> calls doGetNextFrame() -> calls afterGetting() -> sends packets all that -> calls GetNextFrame() So, in the cycle above, once doGetNextFrame() returns without scheduling afterGetting(), then the cycle stops there. Also, doGetNextFrame() should be called only by "GetNextFrame()" which takes many parameters and has some initialization steps. So, from your explanation "Later, when a frame becomes available, this will be triggered as an event that can get handled within the event loop.", once I have a sample, how should I *handle* that in the event loop?, I can create a callback function or a watch variable to get notified, but, I'm not exactly sure what to do with it, should I manually call "doGetNextFrame()"? Here is what I tried, my doGetNextFrame() is empty. void QueueSource::doGetNextFrame() { } And I have a function in my FramedSource that gets invoked when a sample arrives, HRESULT ReceivedSample(IMediaSample *pSample) { ... fMaxSize = bufSize; fFrameSize = frameSize; fNumTruncatedBytes = (frameSize <= bufSize) ? 0 : (frameSize - bufSize); fPresentationTime.tv_sec = tv.tv_sec; fPresentationTime.tv_usec = tv.tv_usec; fDurationInMicroseconds = (unsigned) ((pEnd - pStart) / 10); memcpy(fTo, ptr, frameSize); nextTask() = envir().taskScheduler().scheduleDelayedTask(0, (TaskFunc*)FramedSource::afterGetting, this); //clean up } However, I'm getting AccessViolation, when afterGetting is called 00000001() ken.exe!FramedSource::afterGetting(FramedSource * source=0x010668a8) Line 118 + 0x31 bytes C++ ken.exe!AlarmHandler::handleTimeout() Line 34 + 0x11 bytes C++ ken.exe!DelayQueue::handleAlarm() Line 179 + 0xf bytes C++ ken.exe!BasicTaskScheduler::SingleStep(unsigned int maxDelayTime=0x00000000) Line 99 C++ ken.exe!BasicTaskScheduler0::doEventLoop(char * watchVariable=0x00000000) Line 76 + 0x11 bytes C++ ken.exe!wmain(int argc=0x00000001, wchar_t * * argv=0x00b0ac58, wchar_t * * envp=0x00b0cf00) Line 79 + 0x25 bytes C++ ken.exe!__tmainCRTStartup() Line 583 + 0x19 bytes C ken.exe!wmainCRTStartup() Line 403 C kernel32.dll!7c816fd7() [Frames below may be incorrect and/or missing, no symbols loaded for kernel32.dll] Any suggestions or ideas are greatly appreciated, Best Regards, Ken S. On Tue, Apr 8, 2008 at 7:28 PM, Ken Seo wrote: > Hi, Ross, > > Thank you for your reply, > > if "doGetNextFrame()" returns immediately, I'm not quite sure how it > would work, the following is my understanding of RTP cycle, > > RTSPServer > - upon start playing - calls GetNextFrame() -> calls doGetNextFrame() > -> calls afterGetting() -> sends packets all that -> calls > GetNextFrame() > > So, in the cycle above, once doGetNextFrame() returns without > scheduling afterGetting(), then the cycle stops there. Also, > doGetNextFrame() should be called only by "GetNextFrame()" which takes > many parameters and has some initialization steps. > > So, from your explanation "Later, when a frame becomes available, this > > will be triggered as an event that can get handled within the event > loop.", once I have a sample, how should I *handle* that in the event > loop?, I can create a callback function or a watch variable to get > notified, but, I'm not exactly sure what to do with it, should I > manually call "doGetNextFrame()"? > > Here is what I tried, my doGetNextFrame() is empty. > > void QueueSource::doGetNextFrame() > { > } > > And I have a function that gets invoked when a sample arrives, > > HRESULT ReceivedSample(IMediaSample *pSample) > { > > > > > On Fri, Apr 4, 2008 at 5:17 PM, Ross Finlayson wrote: > > >I'm trying to implement a FramedSource which will get next frames from > > >a Queue. From my digging so far, "doGetNextFrame()" should be blocking > > >until the next frame is available > > > > No, it should *not* be blocking until the next frame is available, > > because if you block, you'll be starving out any other events that > > need to be handled. Instead, if no frame is immediately available, > > "doGetNextFrame()" should return. Later, when a frame becomes > > available, this will be triggered as an event that can get handled > > within the event loop. > > > > You can use the "watchVariable" parameter to "doEventLoop()" for this > > purpose (e.g., have your separate queue-filling thread set the > > 'watchVariable' when a new frame becomes available. (See the FAQ for > > more information.) > > -- > > > > 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 Tue Apr 8 22:35:24 2008 From: finlayson at live555.com (Ross Finlayson) Date: Tue, 8 Apr 2008 22:35:24 -0700 Subject: [Live-devel] RTCP Extended Report Support in Live 555 In-Reply-To: <754664c30804081400w4162a3eaw3a22d5732fa82672@mail.gmail.com> References: <754664c30804081400w4162a3eaw3a22d5732fa82672@mail.gmail.com> Message-ID: >I need to implement the RTCP XR packet type. Is this support >already there in Live 555 ? No, not yet. Feel free to try implementing it. -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From finlayson at live555.com Tue Apr 8 23:04:03 2008 From: finlayson at live555.com (Ross Finlayson) Date: Tue, 8 Apr 2008 23:04:03 -0700 Subject: [Live-devel] Vulnerabilities in RTPInterface::handleRead() In-Reply-To: References: Message-ID: >Here, ReadSocket() returns int while curBytesRead is declared >unsigned. If ReadSocket() returns -1, the above code may cause >problem. You're right - thanks for noting this. Changing the declaration of "curBytesRead" from "unsigned" to "int" fixes the problem. (This will be included in the next release.) -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From manas_ec007in at yahoo.co.in Wed Apr 9 03:47:26 2008 From: manas_ec007in at yahoo.co.in (manas lenka) Date: Wed, 9 Apr 2008 11:47:26 +0100 (BST) Subject: [Live-devel] Implementing Video Telephony using live555 Media Server Message-ID: <162175.75882.qm@web8909.mail.in.yahoo.com> Hi, I am new to 'live555 Media Server' I am planning to implement video telephony using live555 Media Server. What I found at the first glance, it is meant for streaming Media files. Can i stream live audio and video packets to the client and in the same way receive the live audio and video packets from the client by using 'live555 Media Server'. If i can what modifiacations to be done.. I hope people might have done this before.. Your suggestions and help will be highly appreciated.. THANKS In Advance MANAS --------------------------------- Explore your hobbies and interests. Click here to begin. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.live555.com/pipermail/live-devel/attachments/20080409/6fd17ac1/attachment-0001.html From RGlobisch at csir.co.za Wed Apr 9 04:19:21 2008 From: RGlobisch at csir.co.za (Ralf Globisch) Date: Wed, 09 Apr 2008 13:19:21 +0200 Subject: [Live-devel] Implementing Video Telephony using live555 Media Server Message-ID: <47FCC259.5DA9.004D.0@csir.co.za> Yes it is possible. See the faq for more info: http://www.live555.com/liveMedia/faq.html#liveInput and do a search on the archives to find out more details. AFAIK there's been a couple of threads regarding this. -- This message is subject to the CSIR's copyright terms and conditions, e-mail legal notice, and implemented Open Document Format (ODF) standard. The full disclaimer details can be found at http://www.csir.co.za/disclaimer.html. This message has been scanned for viruses and dangerous content by MailScanner, and is believed to be clean. MailScanner thanks Transtec Computers for their support. From manas_ec007in at yahoo.co.in Wed Apr 9 05:57:02 2008 From: manas_ec007in at yahoo.co.in (manas lenka) Date: Wed, 9 Apr 2008 13:57:02 +0100 (BST) Subject: [Live-devel] H.264 encoding... Message-ID: <284966.36066.qm@web8908.mail.in.yahoo.com> Hi, I have an H.264 encoder which gives me enocded frames after frames(NOT BYTES) (The frames are I and P frames). For streaming, I came to know we have to add NAL header. Is there anything extra we have to add. Can anybody say or refer about NAL HEADERs. THANKS In Advance MANAS --------------------------------- Best Jokes, Best Friends, Best Food. Get all this and more on Best of Yahoo! Groups. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.live555.com/pipermail/live-devel/attachments/20080409/42d92e6e/attachment.html From gbonneau at matrox.com Wed Apr 9 08:34:09 2008 From: gbonneau at matrox.com (Guy Bonneau) Date: Wed, 9 Apr 2008 11:34:09 -0400 Subject: [Live-devel] Missing File in latest release ? Message-ID: <073201c89a57$27ba4450$8642a8c0@dorvalmatrox.matrox.com> I believe a file might be missing in the lastest release of the liveMedia library since I cannot compile the application testGSMStreamer. The file missing must be implementing the class createNewGSMAudioSource. Could please check Thanks Guy Bonneau From gbonneau at matrox.com Wed Apr 9 11:23:03 2008 From: gbonneau at matrox.com (Guy Bonneau) Date: Wed, 9 Apr 2008 14:23:03 -0400 Subject: [Live-devel] Missing File in latest release ? In-Reply-To: <073201c89a57$27ba4450$8642a8c0@dorvalmatrox.matrox.com> References: <073201c89a57$27ba4450$8642a8c0@dorvalmatrox.matrox.com> Message-ID: <076301c89a6e$bfd86890$8642a8c0@dorvalmatrox.matrox.com> O.K. I found the answer to my question in the documentation Of the code. Sorry GB > -----Original Message----- > From: live-devel-bounces at ns.live555.com > [mailto:live-devel-bounces at ns.live555.com] On Behalf Of Guy Bonneau > Sent: Wednesday, April 09, 2008 11:34 AM > To: live-devel at ns.live555.com > Subject: [Live-devel] Missing File in latest release ? > > I believe a file might be missing in the lastest release of > the liveMedia library since I cannot compile the application > testGSMStreamer. The file > missing must be implementing the class createNewGSMAudioSource. > > Could please check > Thanks > Guy Bonneau > > _______________________________________________ > live-devel mailing list > live-devel at lists.live555.com > http://lists.live555.com/mailman/listinfo/live-devel From raphael.kindt at seldes.com Thu Apr 10 02:19:56 2008 From: raphael.kindt at seldes.com (=?iso-8859-1?Q?Rapha=EBl_KINDT?=) Date: Thu, 10 Apr 2008 11:19:56 +0200 Subject: [Live-devel] JPEGVideoRTPSource and JPEGVideoSource Message-ID: Hello What's the difference between JPEGVideoRTPSource and JPEGVideoSource? What JPEGVideoRTPSource do that JPEGVideoSource doesn't do (and vice-versa)? Thanks in advance. ------------------------------ Ing. KINDT Rapha?l Software R&D Manager Rue des Bleuets, 1b E-Mail : raphael.kindt at seldes.com B-7000 Mons (Belgium) Phone : +32 (0)65 352 252 Web site: www.seldes.com Fax : +32 (0)65 352 253 From lodewijk at waag.org Thu Apr 10 03:24:25 2008 From: lodewijk at waag.org (lodewijk) Date: Thu, 10 Apr 2008 12:24:25 +0200 Subject: [Live-devel] Darwin Injector Message-ID: <23A5524B-E6C1-4684-BED3-C6B0DD27D80C@waag.org> hello, I note that DarwinInjector in the testMPEG4VideoToDarwin example is streaming its RTP data via TCP. Is there way to make it stream RTP via UDP? gr. Lodewijk From gbonneau at matrox.com Thu Apr 10 06:18:27 2008 From: gbonneau at matrox.com (Guy Bonneau) Date: Thu, 10 Apr 2008 09:18:27 -0400 Subject: [Live-devel] Visual 2005 Message-ID: <07e401c89b0d$5cd9d900$8642a8c0@dorvalmatrox.matrox.com> Ross, I have seen a few request asking how to compile the LiveMedia library for Microsoft Visual 2005. I know the FAQ provides a link for this purpose. But you have to go through many steps. I have a Visual 2005 solution file (.sln) as well as the associated project files (.vcproj) for visual 2005 that compiles the whole LiveMedia library as well as the associated applications. I keep these project files in a separate folder in the tree folders of the library. I use these projects files to compile each LiveMedia source code release with Visual Studio 2005. Are you interested to integrate these projects file into the library? I believe there is enough people using Microsoft Visual Studio to help support these files for future release. Regards Guy From finlayson at live555.com Thu Apr 10 06:21:32 2008 From: finlayson at live555.com (Ross Finlayson) Date: Thu, 10 Apr 2008 06:21:32 -0700 Subject: [Live-devel] Darwin Injector In-Reply-To: <23A5524B-E6C1-4684-BED3-C6B0DD27D80C@waag.org> References: <23A5524B-E6C1-4684-BED3-C6B0DD27D80C@waag.org> Message-ID: >I note that DarwinInjector in the testMPEG4VideoToDarwin example is >streaming its RTP data via TCP. Is there way to make it stream RTP >via UDP? No. -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From finlayson at live555.com Thu Apr 10 06:32:46 2008 From: finlayson at live555.com (Ross Finlayson) Date: Thu, 10 Apr 2008 06:32:46 -0700 Subject: [Live-devel] JPEGVideoRTPSource and JPEGVideoSource In-Reply-To: References: Message-ID: >What's the difference between JPEGVideoRTPSource and JPEGVideoSource? >What JPEGVideoRTPSource do that JPEGVideoSource doesn't do (and vice-versa)? "JPEGVideoRTPSource" encapsulates an incoming stream of motion-JPEG RTP packets. This class is used by clients that receive network packets. "JPEGVideoSource" encapsulates a stream of motion-JPEG frames that are *not* RTP packets. For example, if you have a video camera, or video encoder, that produces a sequence of JPEG frames, then you would use a subclass of this class to encapsulate it. (Note that "JPEGVideoSource" is an abstract base class that you would need to subclass, and implement a handful of virtual functions, for your own JPEG source.) -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From finlayson at live555.com Thu Apr 10 06:36:36 2008 From: finlayson at live555.com (Ross Finlayson) Date: Thu, 10 Apr 2008 06:36:36 -0700 Subject: [Live-devel] Visual 2005 In-Reply-To: <07e401c89b0d$5cd9d900$8642a8c0@dorvalmatrox.matrox.com> References: <07e401c89b0d$5cd9d900$8642a8c0@dorvalmatrox.matrox.com> Message-ID: >I have seen a few request asking how to compile the LiveMedia library for >Microsoft Visual 2005. I know the FAQ provides a link for this purpose. But >you have to go through many steps. I have a Visual 2005 solution file (.sln) >as well as the associated project files (.vcproj) for visual 2005 that >compiles the whole LiveMedia library as well as the associated applications. >I keep these project files in a separate folder in the tree folders of the >library. I use these projects files to compile each LiveMedia source code >release with Visual Studio 2005. > >Are you interested to integrate these projects file into the library? No, because I don't want to include something that I don't use (and therefore can't test, or upgrade) myself. However, if you have something that's available on a web site, then I would be happy to add a link to this under (e.g., there's already a 'hints' link there.) -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From finlayson at live555.com Thu Apr 10 06:44:24 2008 From: finlayson at live555.com (Ross Finlayson) Date: Thu, 10 Apr 2008 06:44:24 -0700 Subject: [Live-devel] two questions about liveMedia source code In-Reply-To: <47fb475f.1c078e0a.5216.7cfa@mx.google.com> References: <47fb475f.1c078e0a.5216.7cfa@mx.google.com> Message-ID: >I'm reading liveMedia source code(version 2008.4.3), and have two >questions about it > >(1) in RTSPClient::setupMediaSubsession (RTSPClient.cpp, line 956): >subsession.connectionEndpointName() = serverAddressStr; >where the serverAddressStr comes from the transport section of SDP >response of Server. > >But in the same function(line 983), >"subsession.setDestinations(fServerAddress)" set the destination >address of the client subsession to fServerAddress > >I searched fServerAddress and found that it is set in >RTSPClient::openConnectionFromURL( line 1792). fServerAddress comes >from the RTSP URL. > >So why not set the mediaSubSession destination address to the >address of SETUP response? > >If the RTSP URL is more appropriate, then is line 956 redundant? Actually, line 983 was incorrect. It should be subsession.setDestinations(subsession.connectionEndpointAddress()); (to match what the preceding comment says :-) Thanks for noticing this. It has now been fixed in the latest software release (2008.04.09). > (2) In rtcp_from_spec.c, line 286, the OnReceive function, > >if (TypeOfEvent(e) == EVENT_BYE) { > *members += 1; >} > >I read RFC3550 A.7, it has the same code above. > >Why not should it be: > >if (TypeOfEvent(e) == EVENT_BYE) { > *members -= 1; >} I was unsure about this, so I asked people on the "avt at ietf.org" mailing list (the mailing list for the group that standardizes RTP/RTCP). This was their response (which, I admit, I don't fully understand :-) "Because there is a special rule for when a end-point is leaving a session, i.e. waiting to send BYE. Which the comment in the code indicates. In that face one retargets the members counter to count number of BYE messages received to make the correct back off to avoid floods of RTCP BYE." -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From raphael.kindt at seldes.com Thu Apr 10 08:43:02 2008 From: raphael.kindt at seldes.com (=?us-ascii?Q?Raphael_KINDT?=) Date: Thu, 10 Apr 2008 17:43:02 +0200 Subject: [Live-devel] JPEGVideoRTPSource and JPEGVideoSource In-Reply-To: Message-ID: Hello and thank you for your reply. I'm trying to develop a streamer process that send JPEG images receive from another process (I use pipes to do it) to a remote client (VLC client, etc). I must be able to add new stream to this streamer. To do it I use a pipe control (with mine protocol). This pipe control indicate to the streamer to add a pipe for the new streaming AND add a new server media session (addServerMediaSession) for this new stream. I use the same name for the new pipe and the new session (i.e. "Process0", etc) Here a representation of this architecture: APPLICATION PIPES APPLICATION +-----------+ +-----------+ | Grabber |<----- ctrl ------>| | | + | | Streamer | | image |--- stream 0 --->| LIVE |--- Process 0 ---> | processs |--- stream ... --->| |--- Process ... ---> +-----------+ +-----------+ At this time we must use JPEG image (because it's simple) but after we want to send raw image... I hope you understand the global mechanism I want to construct. Could you tell me if it's possible to do that for the LIVE side? In short, the main point is to add new server media session dynamicaly. This means that the scheduler is already started like this env->taskScheduler().doEventLoop(&watch_scheduler) before the call of rtspServer->addServerMediaSession and sink->startPlaying Thanks in advance for your help. Best regards, Raphael -----Message d'origine----- De : live-devel-bounces at ns.live555.com [mailto:live-devel-bounces at ns.live555.com]De la part de Ross Finlayson Envoye : jeudi 10 avril 2008 15:33 A : LIVE555 Streaming Media - development & use Objet : Re: [Live-devel] JPEGVideoRTPSource and JPEGVideoSource >What's the difference between JPEGVideoRTPSource and JPEGVideoSource? >What JPEGVideoRTPSource do that JPEGVideoSource doesn't do (and vice-versa)? "JPEGVideoRTPSource" encapsulates an incoming stream of motion-JPEG RTP packets. This class is used by clients that receive network packets. "JPEGVideoSource" encapsulates a stream of motion-JPEG frames that are *not* RTP packets. For example, if you have a video camera, or video encoder, that produces a sequence of JPEG frames, then you would use a subclass of this class to encapsulate it. (Note that "JPEGVideoSource" is an abstract base class that you would need to subclass, and implement a handful of virtual functions, for your own JPEG source.) -- 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 Thu Apr 10 17:26:42 2008 From: finlayson at live555.com (Ross Finlayson) Date: Thu, 10 Apr 2008 17:26:42 -0700 Subject: [Live-devel] JPEGVideoRTPSource and JPEGVideoSource In-Reply-To: References: Message-ID: >I'm trying to develop a streamer process that send JPEG images receive from >another process (I use pipes to do it) to a remote client (VLC client, etc). OK, so you will need to first parse the stream into discrete JPEG images, and feed these to a subclass of "JPEGVideoSource" - that you would write. (Or alternatively, you could do the parsing within your "JPEGVideoSource" subclass.) >In short, the main point is to add new server media session dynamicaly. Yes, you can call "RTSPServer::addServerMediaSession()" (or "RTSPServer::removeServerMediaSession()") at any time. -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From rajeshkumar.r at imimobile.com Thu Apr 10 22:11:28 2008 From: rajeshkumar.r at imimobile.com (rajesh) Date: Fri, 11 Apr 2008 10:41:28 +0530 Subject: [Live-devel] rtsp server Message-ID: <089501c89b92$7f6dc550$6902000a@imidomain.com> Hi all, whether Live555 rtsp server supports Live Streaming. Please reply. Thanks and Regards Rajesh Kumar Sr. Software Engineer R & D - Network Group +91 40 23555945 - 235 +91 99084 00027 www.imimobile.com -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.live555.com/pipermail/live-devel/attachments/20080410/9afd81b6/attachment.html From finlayson at live555.com Thu Apr 10 22:38:38 2008 From: finlayson at live555.com (Ross Finlayson) Date: Thu, 10 Apr 2008 22:38:38 -0700 Subject: [Live-devel] rtsp server In-Reply-To: <089501c89b92$7f6dc550$6902000a@imidomain.com> References: <089501c89b92$7f6dc550$6902000a@imidomain.com> Message-ID: >Hi all, >whether Live555 rtsp server supports Live Streaming. What do you mean by "Live Streaming"? -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.live555.com/pipermail/live-devel/attachments/20080410/fdb105e2/attachment.html From rajeshkumar.r at imimobile.com Thu Apr 10 23:02:38 2008 From: rajeshkumar.r at imimobile.com (rajesh) Date: Fri, 11 Apr 2008 11:32:38 +0530 Subject: [Live-devel] rtsp server References: <089501c89b92$7f6dc550$6902000a@imidomain.com> Message-ID: <092801c89b99$a5297bc0$6902000a@imidomain.com> Re: [Live-devel] rtsp serverHi Ross, We are taking TV channel signal into Capture card and output of capture card is fed into Helix mobile Producer. Instead of Helix Mobile Producer can we use RTSP Server of Live555 to Process the TV channel Data. Thanks for reply Thanks and Regards Rajesh Kumar Sr. Software Engineer R & D - Network Group +91 40 23555945 - 235 +91 99084 00027 www.imimobile.com ----- Original Message ----- From: Ross Finlayson To: LIVE555 Streaming Media - development & use Sent: Friday, April 11, 2008 11:08 AM Subject: Re: [Live-devel] rtsp server Hi all, whether Live555 rtsp server supports Live Streaming. What do you mean by "Live Streaming"? -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ ------------------------------------------------------------------------------ _______________________________________________ live-devel mailing list live-devel at lists.live555.com http://lists.live555.com/mailman/listinfo/live-devel -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.live555.com/pipermail/live-devel/attachments/20080410/e2df5f82/attachment.html From artemgoryunov at gmail.com Thu Apr 10 23:48:11 2008 From: artemgoryunov at gmail.com (Artem Goryunov) Date: Fri, 11 Apr 2008 10:48:11 +0400 Subject: [Live-devel] LIVE555 Media Server and Windows Media Player Message-ID: <116198ab0804102348p4d34b1d6xf63b65e5f450b56@mail.gmail.com> Hello All! Please help I don't understand why the stream (rtsp://xx.xx.xx.xx/test.mpg) from LIVE555 Media Server does not open by Windows Media Player? How it is possible to repair it? ---- Artem -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.live555.com/pipermail/live-devel/attachments/20080410/274774bc/attachment.html From lucabe72 at email.it Thu Apr 10 23:53:43 2008 From: lucabe72 at email.it (Luca Abeni) Date: Fri, 11 Apr 2008 08:53:43 +0200 Subject: [Live-devel] LIVE555 Media Server and Windows Media Player In-Reply-To: <116198ab0804102348p4d34b1d6xf63b65e5f450b56@mail.gmail.com> References: <116198ab0804102348p4d34b1d6xf63b65e5f450b56@mail.gmail.com> Message-ID: <47FF0AF7.6070201@email.it> Artem Goryunov wrote: > Hello All! > > Please help > I don't understand why the stream (rtsp://xx.xx.xx.xx/test.mpg) from > LIVE555 Media Server does not open by Windows Media Player? Because Windows Media Player does not support MPEG over RTP? > How it is possible to repair it? Fix Windows Media Player (or switch to vlc) Luca From fay2002hifi at 163.com Thu Apr 10 23:53:24 2008 From: fay2002hifi at 163.com (fay) Date: Fri, 11 Apr 2008 14:53:24 +0800 Subject: [Live-devel] LIVE555 Media Server and Windows Media Player In-Reply-To: <116198ab0804102348p4d34b1d6xf63b65e5f450b56@mail.gmail.com> References: <116198ab0804102348p4d34b1d6xf63b65e5f450b56@mail.gmail.com> Message-ID: <200804111453.24562.fay2002hifi@163.com> ? Friday 11 April 2008 14:48:11?Artem Goryunov ??? > Hello All! > > Please help > I don't understand why the stream (rtsp://xx.xx.xx.xx/test.mpg) from > LIVE555 Media Server does not open by Windows Media Player? > How it is possible to repair it? > > ---- > Artem hi, try real player first From finlayson at live555.com Thu Apr 10 23:24:29 2008 From: finlayson at live555.com (Ross Finlayson) Date: Thu, 10 Apr 2008 23:24:29 -0700 Subject: [Live-devel] rtsp server In-Reply-To: <092801c89b99$a5297bc0$6902000a@imidomain.com> References: <089501c89b92$7f6dc550$6902000a@imidomain.com> <092801c89b99$a5297bc0$6902000a@imidomain.com> Message-ID: >Hi Ross, >We are taking TV channel signal into Capture card and output of capture >card is fed into Helix mobile Producer. >Instead of Helix Mobile Producer can we use RTSP Server of Live555 >to Process the TV channel Data. You will need an encoder to compress the software (e.g., into MPEG-4 or H.264) before you feed it into the server. But once you've done that, it's possible - with a little extra coding - to stream such data using our server. For some more details, see the FAQ. -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.live555.com/pipermail/live-devel/attachments/20080411/9c49d36f/attachment.html From finlayson at live555.com Fri Apr 11 00:51:34 2008 From: finlayson at live555.com (Ross Finlayson) Date: Fri, 11 Apr 2008 00:51:34 -0700 Subject: [Live-devel] LIVE555 Media Server and Windows Media Player In-Reply-To: <116198ab0804102348p4d34b1d6xf63b65e5f450b56@mail.gmail.com> References: <116198ab0804102348p4d34b1d6xf63b65e5f450b56@mail.gmail.com> Message-ID: >I don't understand why the stream (rtsp://xx.xx.xx.xx/test.mpg) from >LIVE555 Media Server does not open by Windows Media Player? It's because Windows Media Player is not standards-compliant. Use VLC instead. -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From rajeshkumar.r at imimobile.com Fri Apr 11 01:16:15 2008 From: rajeshkumar.r at imimobile.com (rajesh) Date: Fri, 11 Apr 2008 13:46:15 +0530 Subject: [Live-devel] rtsp server References: <089501c89b92$7f6dc550$6902000a@imidomain.com><092801c89b99$a5297bc0$6902000a@imidomain.com> Message-ID: <0a2701c89bac$5009f850$6902000a@imidomain.com> Re: [Live-devel] rtsp serverHi Ross, Can U suggest me any encoder for H.263 + AMR , must be compatible with Live555. Thanks and Regards Rajesh Kumar Sr. Software Engineer R & D - Network Group +91 40 23555945 - 235 +91 99084 00027 www.imimobile.com ----- Original Message ----- From: Ross Finlayson To: LIVE555 Streaming Media - development & use Sent: Friday, April 11, 2008 11:54 AM Subject: Re: [Live-devel] rtsp server Hi Ross, We are taking TV channel signal into Capture card and output of capture card is fed into Helix mobile Producer. Instead of Helix Mobile Producer can we use RTSP Server of Live555 to Process the TV channel Data. You will need an encoder to compress the software (e.g., into MPEG-4 or H.264) before you feed it into the server. But once you've done that, it's possible - with a little extra coding - to stream such data using our server. For some more details, see the FAQ. -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ ------------------------------------------------------------------------------ _______________________________________________ live-devel mailing list live-devel at lists.live555.com http://lists.live555.com/mailman/listinfo/live-devel -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.live555.com/pipermail/live-devel/attachments/20080411/ec7e1476/attachment-0001.html From eric.flickner at gmail.com Fri Apr 11 04:40:31 2008 From: eric.flickner at gmail.com (Eric Flickner) Date: Fri, 11 Apr 2008 06:40:31 -0500 Subject: [Live-devel] Visual 2005 In-Reply-To: References: <07e401c89b0d$5cd9d900$8642a8c0@dorvalmatrox.matrox.com> Message-ID: <47ff4032.051d400a.4029.613a@mx.google.com> Ross, Both of these versions of Visual Studio are free are compatible with the "full" Visual Studio versions. Therefore you can use one of these provided below to maintain and test with. Visual Studio 2008 C++ Express http://www.microsoft.com/express/vc Visual Studio 2005 C++ Express http://www.microsoft.com/express/2005/download/default.aspx Thanks, Eric Flickner -----Original Message----- From: live-devel-bounces at ns.live555.com [mailto:live-devel-bounces at ns.live555.com] On Behalf Of Ross Finlayson Sent: Thursday, April 10, 2008 8:37 AM To: LIVE555 Streaming Media - development & use Subject: Re: [Live-devel] Visual 2005 >I have seen a few request asking how to compile the LiveMedia library for >Microsoft Visual 2005. I know the FAQ provides a link for this purpose. But >you have to go through many steps. I have a Visual 2005 solution file (.sln) >as well as the associated project files (.vcproj) for visual 2005 that >compiles the whole LiveMedia library as well as the associated applications. >I keep these project files in a separate folder in the tree folders of the >library. I use these projects files to compile each LiveMedia source code >release with Visual Studio 2005. > >Are you interested to integrate these projects file into the library? No, because I don't want to include something that I don't use (and therefore can't test, or upgrade) myself. However, if you have something that's available on a web site, then I would be happy to add a link to this under (e.g., there's already a 'hints' link there.) -- 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 faerber at pi4.informatik.uni-mannheim.de Fri Apr 11 05:21:10 2008 From: faerber at pi4.informatik.uni-mannheim.de (=?ISO-8859-1?Q?Andreas_F=E4rber?=) Date: Fri, 11 Apr 2008 14:21:10 +0200 Subject: [Live-devel] Visual 2005 In-Reply-To: <47ff4032.051d400a.4029.613a@mx.google.com> References: <07e401c89b0d$5cd9d900$8642a8c0@dorvalmatrox.matrox.com> <47ff4032.051d400a.4029.613a@mx.google.com> Message-ID: Am 11.04.2008 um 13:40 schrieb Eric Flickner: > Ross, > > Both of these versions of Visual Studio are free are compatible with > the > "full" Visual Studio versions. Therefore you can use one of these > provided > below to maintain and test with. No, only when running Windows. And he mentioned OSX recently. > Visual Studio 2008 C++ Express > http://www.microsoft.com/express/vc > > Visual Studio 2005 C++ Express > http://www.microsoft.com/express/2005/download/default.aspx Regards, Andreas From finlayson at live555.com Fri Apr 11 05:34:33 2008 From: finlayson at live555.com (Ross Finlayson) Date: Fri, 11 Apr 2008 05:34:33 -0700 Subject: [Live-devel] Visual 2005 In-Reply-To: References: <07e401c89b0d$5cd9d900$8642a8c0@dorvalmatrox.matrox.com> <47ff4032.051d400a.4029.613a@mx.google.com> Message-ID: >No, only when running Windows. And he mentioned OSX recently. No, noone mentioned building for Windows on OS X. When I build the code for Windows, I do so on Windows (XP), using a version of "Visual Studio" that understands Makefiles - which has been the standard mechanism for specifying software build rules for more than 25 years now. If - for whatever reason - Microsoft chooses not to support Makefiles in their newer versions of "Visual Studio", then that's their problem, not mine. -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From raphael.kindt at seldes.com Fri Apr 11 07:06:07 2008 From: raphael.kindt at seldes.com (=?iso-8859-1?Q?Rapha=EBl_KINDT?=) Date: Fri, 11 Apr 2008 16:06:07 +0200 Subject: [Live-devel] Remove a session... Message-ID: Hello Ross, What are the situations where DynamicRTSPServer is usefull to use? How to wake up env->taskScheduler().doEventLoop(&watch_scheduler) when no server media session is added? The loop is waiting at a 'select()' call and thus doesn't check my watch_scheduler. To do that I must be able to wake this 'select()' instruction... In short, how to stop the server gracefully when no streaming has been performed? I've some difficulty to add and remove session properly. Sometimes the server crashes because I've a memory violation. I can show remote video with VLC. But when I remove a session, the server crashes (sometimes, with or without a connected VLC client)... I do my best to understand the LIVE library but it's not very easy... Below I send you a part of my test code. The class SeldesJPEGVideoSource is derived from JPEGVideoSource. This class reads some JPEG files to simulate video (all JPEG files are saved into the RAM for the video simulation). The struct I used for my test: typedef struct _sessionState_t { FramedSource* source; RTPSink* sink; RTCPInstance* rtcpInstance; Groupsock* rtpGroupsock; Groupsock* rtcpGroupsock; ServerMediaSession * sms; } sessionState_t; typedef std::map sessions_map_t; typedef sessions_map_t::iterator sessions_map_it; sessions_map_t sessionMap; ... and some other global variable ... The thread that executes the scheduler: DWORD WINAPI Scheduler(LPVOID pParam) { // Begin by setting up our usage environment: TaskScheduler* scheduler = BasicTaskScheduler::createNew(); env = BasicUsageEnvironment::createNew(*scheduler); // Allow for up to 100 RTP packets per JPEG frame //OutPacketBuffer::numPacketsLimit = 100; OutPacketBuffer::maxSize = MAX_BUFFER_SIZE; timePerFrame = 1000000 / fps; // microseconds averageFrameSizeInBytes = 35000; // estimate totalSessionBandwidth = (8 * 1000 * averageFrameSizeInBytes) / timePerFrame; // in kbps //gethostname((char*)CNAME, maxCNAMElen); sprintf((char*)CNAME, "Seldes camera"); // "gethostname()" isn't supported CNAME[maxCNAMElen] = '\0'; // just in case rtpPortNum = 2222; rtcpPortNum = rtpPortNum+1; ttl = 255; // time to live (for client buffer) // Create and start a RTSP server to serve this stream: UserAuthenticationDatabase* authDB = NULL; rtspServer = RTSPServer::createNew(*env, 7070, authDB); if (rtspServer == NULL) { *env << "Failed to create RTSP server: " << env->getResultMsg() << "\n"; exit(1); } //--------------------------------------------------- env->taskScheduler().doEventLoop(&watch_scheduler); //--------------------------------------------------- sessions_map_it it; for(it = sessionMap.begin(); it != sessionMap.end(); ++it) { RemoveSession(it->first); sessionMap.erase(it++); } Medium::close(rtspServer); delete scheduler; env->reclaim(); return true; } To add a session (called by another thread): bool AddSession(const std::string & _session_name) { // verifie si la session existe deja sessions_map_it it; for(it = sessionMap.begin(); it != sessionMap.end(); ++it) { if(it->first == _session_name) { std::cout << "This session already exist...\n"; return false; } } // Create 'groupsocks' for RTP and RTCP: struct in_addr destinationAddress; destinationAddress.s_addr = chooseRandomIPv4SSMAddress(*env); const Port rtpPort(rtpPortNum); const Port rtcpPort(rtcpPortNum); sessionMap[_session_name].rtpGroupsock = new Groupsock(*env, destinationAddress, rtpPort, ttl); sessionMap[_session_name].rtpGroupsock->multicastSendOnly(); sessionMap[_session_name].rtcpGroupsock = new Groupsock(*env, destinationAddress, rtcpPort, ttl); sessionMap[_session_name].rtcpGroupsock->multicastSendOnly(); // Create an appropriate RTP sink from the RTP 'groupsock': sessionMap[_session_name].sink = JPEGVideoRTPSink::createNew(*env, sessionMap[_session_name].rtpGroupsock); // Create (and start) a 'RTCP instance' for this RTP sink: sessionMap[_session_name].rtcpInstance = RTCPInstance::createNew( *env, sessionMap[_session_name].rtcpGroupsock, totalSessionBandwidth, CNAME, sessionMap[_session_name].sink, NULL /* we're a server */, True /* we're a SSM source*/); // Note: This starts RTCP running automatically sessionMap[_session_name].sms = ServerMediaSession::createNew( *env, _session_name.c_str(), progName, "Session streamed by the Seldes camera 1", True/*SSM*/); sessionMap[_session_name].sms->addSubsession(PassiveServerMediaSubsession::c reateNew(*sessionMap[_session_name].sink, sessionMap[_session_name].rtcpInstance)); rtspServer->addServerMediaSession(sessionMap[_session_name].sms); announceStream(rtspServer, sessionMap[_session_name].sms, _session_name.c_str()); // Open the Seldes camera: sessionMap[_session_name].source = SeldesJPEGVideoSource::createNew(*env, timePerFrame, _session_name); if (sessionMap[_session_name].source == NULL) { *env << "Unable to open Seldes camera: " << env->getResultMsg() << "\n"; exit(1); } // Finally, start the streaming: *env << "\nBeginning streaming...\n"; sessionMap[_session_name].sink->startPlaying(*sessionMap[_session_name].sour ce, afterPlaying, &sessionMap[_session_name]); return true; } To close a session (called by another thread): bool RemoveSession(const std::string & _session_name) { sessionMap[_session_name].sink->stopPlaying();// important sinon bug dans startplaying au reboot du server sessionMap[_session_name].source->stopGettingFrames(); rtspServer->removeServerMediaSession(sessionMap[_session_name].sms); Medium::close(sessionMap[_session_name].sink); Medium::close(sessionMap[_session_name].source); Medium::close(sessionMap[_session_name].rtcpInstance); delete sessionMap[_session_name].rtpGroupsock; delete sessionMap[_session_name].rtcpGroupsock; std::cout << "Session \"" << _session_name << "\" removed...\n"; return true; } Quickly... Do you found mistakes? Sorry for this long mail. Thanks for your help. ------------------------------ Ing. KINDT Rapha?l Software R&D Manager Rue des Bleuets, 1b E-Mail : raphael.kindt at seldes.com B-7000 Mons (Belgium) Phone : +32 (0)65 352 252 Web site: www.seldes.com Fax : +32 (0)65 352 253 From s27672 at gmail.com Fri Apr 11 07:24:23 2008 From: s27672 at gmail.com (s s) Date: Fri, 11 Apr 2008 07:24:23 -0700 Subject: [Live-devel] how do we run a live MPEG4 (aud/vid) RTP-over-http stream in VLC (live555)? Message-ID: <2cb73b4a0804110724w6798b89ex80e32fd644bae189@mail.gmail.com> Hi, We are trying to run a live MPEG4 (aud/vid) stream in VLC (0.8.6) but have not had success. The stream is in RTP-over-http format. I understand VLC uses the live555 library. Upon seeing a RTP stream, does live555 get invoked properly in VLC? or are there additional steps? Please advise what are the proper steps/parameters to use. The packets from the stream are listed below Thank you very much. Regards ---------------------------- This is some of the info from the RTP stream - Audio is G.726 Media description - audio 0 RTP/AVP 99 Bandwidth information - AS:32.00 Media attribute - rtpmap:99 G726-32/8000/1 Media attribute - control:rtpoverHttp:// ... Media description - video 0 RTP/AVP 96 Bandwidth information - AS:3000.0 Media attribute - rtpmap:96 MP4V-ES/90000 0 Media attribute - control:rtpoverhttp:// ... Media attribute - fmtp:96 profile-level-id-1;cpresent=0;config=... then GET http ... -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.live555.com/pipermail/live-devel/attachments/20080411/be35d2f3/attachment.html From faerber at pi4.informatik.uni-mannheim.de Fri Apr 11 07:38:58 2008 From: faerber at pi4.informatik.uni-mannheim.de (=?ISO-8859-1?Q?Andreas_F=E4rber?=) Date: Fri, 11 Apr 2008 16:38:58 +0200 Subject: [Live-devel] Visual 2005 In-Reply-To: References: <07e401c89b0d$5cd9d900$8642a8c0@dorvalmatrox.matrox.com> <47ff4032.051d400a.4029.613a@mx.google.com> Message-ID: <045FD025-ADAA-4529-BD0B-7CAEB1CD3D38@pi4.informatik.uni-mannheim.de> Am 11.04.2008 um 14:34 schrieb Ross Finlayson: >> No, only when running Windows. And he mentioned OSX recently. > > No, noone mentioned building for Windows on OS X. When I build the > code for Windows, I do so on Windows (XP), using a version of "Visual > Studio" that understands Makefiles You did mention testing the previous bugfix on OSX. And my point is, just because Microsoft makes something available free- as-in-beer it's no compelling reason for everyone to actually use it, especially not in a multi-platform environment, such as yours apparently. Rather than running Visual Studio 2005 Express and maintaining separate project files here or elsewhere, it might work better to generate the project files from the Makefiles. The Mono project does that with a shell script. Andreas From bonheur.cheung at seldes.com Fri Apr 11 08:47:06 2008 From: bonheur.cheung at seldes.com (cheung bonheur) Date: Fri, 11 Apr 2008 17:47:06 +0200 Subject: [Live-devel] Live555 about ServerMediaSession Message-ID: <004501c89beb$4bf0c7f0$8401a8c0@rhea> Hello Ross, I use Live555 to stream mjpeg from camera live. I wish add and remove dynamically a ServerMediaSession but usually during remove a ServerMediaSession from a rtspserver , I found some bugs exception memory. I read previous mail where you say it is possible. So i think the trouble is how i delete my Object Medium. The instance before the exception, is the state where i remove a MediaSession and i proceed like that: Firstly, i stop the sink by a sink->stopPlaying(), and the i can remove the source media source->stopGettingFrames(). Secondly, i remove fthe mediasession by invoke rtspserver method "removeServerMediaSession" and then i close the sink, the source,the rtcpInstance and all groupsock. Can you help me about the order of remove Element (Medium) and how ( because there are a lot of manner to remove a Medium...) . If there are existing replys , forward me. Thank you very much. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.live555.com/pipermail/live-devel/attachments/20080411/55940209/attachment-0001.html -------------- next part -------------- A non-text attachment was scrubbed... Name: Cheung bonheur.vcf Type: text/x-vcard Size: 136 bytes Desc: not available Url : http://lists.live555.com/pipermail/live-devel/attachments/20080411/55940209/attachment-0001.vcf From tonjefr at ifi.uio.no Fri Apr 11 11:30:31 2008 From: tonjefr at ifi.uio.no (Tonje Fredrikson) Date: Fri, 11 Apr 2008 20:30:31 +0200 (CEST) Subject: [Live-devel] (no subject) In-Reply-To: References: <57624.129.240.228.53.1207603776.squirrel@webmail.uio.no> Message-ID: <57006.129.240.228.53.1207938631.squirrel@webmail.uio.no> Thank you for the reply! >>Is it possible for live555 to seek to an arbitrary point in an MPEG2 >>Program file, find the next GOP in the file, and stream from there? > > Yes, this is already implemented (but doesn't work particularly well, > because the resulting presentation timestamps (from the audio and > video substreams) aren't always in sync). Is it possible to do this with a Transport File instead, and stream it with multicast using an rtsp server (hence not implementing the trick play features, but starting the file at a given offset) ? -- Tonje From finlayson at live555.com Fri Apr 11 15:55:39 2008 From: finlayson at live555.com (Ross Finlayson) Date: Fri, 11 Apr 2008 15:55:39 -0700 Subject: [Live-devel] (no subject) In-Reply-To: <57006.129.240.228.53.1207938631.squirrel@webmail.uio.no> References: <57624.129.240.228.53.1207603776.squirrel@webmail.uio.no> <57006.129.240.228.53.1207938631.squirrel@webmail.uio.no> Message-ID: >Is it possible to do this with a Transport File instead, and stream it >with multicast using an rtsp server (hence not implementing the trick play >features, but starting the file at a given offset) ? Sure - see . First, you will need to create an index file for the Transport Stream file - using our "MPEG2TransportStreamIndexer" tool. Then run testMPEG2TransportStreamTrickPlay 1 to generate a new Transport Stream file that's at the given offset () from the original. -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ From finlayson at live555.com Fri Apr 11 16:29:34 2008 From: finlayson at live555.com (Ross Finlayson) Date: Fri, 11 Apr 2008 16:29:34 -0700 Subject: [Live-devel] how do we run a live MPEG4 (aud/vid) RTP-over-http stream in VLC (live555)? In-Reply-To: <2cb73b4a0804110724w6798b89ex80e32fd644bae189@mail.gmail.com> References: <2cb73b4a0804110724w6798b89ex80e32fd644bae189@mail.gmail.com> Message-ID: At 7:24 AM -0700 4/11/08, "s s" wrote >We are trying to run a live MPEG4 (aud/vid) stream in VLC (0.8.6) Who's "we"? GMail? I don't think so. Your use of a "@gmail.com" email address tells me that you're a casual hobbyist rather than a serious professional. That's OK, but be warned that people who use unprofessional email addresses (e.g., "@gmail.com", "@yahoo.com", "@hotmail.com") are less likely to be supported on this mailing list. >but have not had success. >The stream is in RTP-over-http format. I understand VLC uses the >live555 library. > >Upon seeing a RTP stream, does live555 get invoked properly in VLC? Yes, provided, of course that you're using the RTSP protocol. >Media attribute - control:rtpoverHttp:// ... This is not a standard. In VLC, if you want to use RTP-over-HTTP streaming, then you must explicitly configure it: Preferences... -> Input/Codecs -> Demuxers -> RTP/RTSP Then click the "Advanced" check box Then click the "Tunnel RTSP and RTP over HTTP" check box If this doesn't work, then please post the (publically-accessible) "rtsp://" URL of the stream, so I can test this myself. -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.live555.com/pipermail/live-devel/attachments/20080411/73d6c260/attachment.html From finlayson at live555.com Fri Apr 11 20:07:36 2008 From: finlayson at live555.com (Ross Finlayson) Date: Fri, 11 Apr 2008 20:07:36 -0700 Subject: [Live-devel] Live555 about ServerMediaSession In-Reply-To: <004501c89beb$4bf0c7f0$8401a8c0@rhea> References: <004501c89beb$4bf0c7f0$8401a8c0@rhea> Message-ID: >Can you help me about the order of remove Element (Medium) and how ( >because there are a lot of manner to remove a Medium...) . In general, it's safest to remove/delete objects in the reverse order to the order in which they were created. -- Ross Finlayson Live Networks, Inc. http://www.live555.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.live555.com/pipermail/live-devel/attachments/20080411/6623c241/attachment.html From finlayson at live555.com Fri Apr 11 20:23:01 2008 From: finlayson at live555.com (Ross Finlayson) Date: Fri, 11 Apr 2008 20:23:01 -0700 Subject: [Live-devel] Remove a session... In-Reply-To: References: Message-ID: >What are the situations where DynamicRTSPServer is usefull to use? From the header file: "DynamicRTSPServer" is // A subclass of "RTSPServer" that creates "ServerMediaSession"s on demand, // based on whether or not the specified stream name exists as a file I.e., instead of creating, in advance, a set of