[gst-devel] How to create a video recording buffer from a live broadcast and read from it at the same time

Marco Ballesio gibrovacco at gmail.com
Fri Nov 26 11:33:09 CET 2010


Hi,

a few pointers below, but I suggest you to anyway read the online
documentation/check the sources to know something more.

On Fri, Nov 26, 2010 at 11:40 AM, Zelalem Sintayehu
<zelalems at hotmail.com> wrote:
> Hi Marco Ballesio thank you again for the support. Before I start to
> implement your proposals, I want to ask you some questions. Let me respond
> to your request first
>> only. Do you have special requirements about using SIP in your AS
>> media controller?
> No, I don't have. I can use RTSP.
>
>> Wim's rtsp streaming server will probably help you with all of this:
> Thank you. I'll download and check it.
>
> My questions are:
> - Is it possible to read from a file that is being written by another
> process? I mean the second server is going to read from teh file that the
> first server is writing to.

Yes it is and it *should* work as long as the consumer is not faster
than the producer. What I don't exactly know is if the server
connected to the camera will continue recording even when no rtsp
clients are connected to it, but maybe you could give it a try.

>
>> by periodically looping (through a timer) on the first server you may
>> implement a basic way to re-start the file each n minutes.
>
> Please clarify what you mean by restart the file.

In GStreamer terms, going to NULL, and then to PLAYING again. Check
the "Application development manual":

http://www.gstreamer.net/data/doc/gstreamer/head/manual/html/index.html

for more info.

>
>> More elegant ways may involve a valve element and transitions to NULL
>> state/eos for the filesink element only.
>
> What will this (valve) element do?

Here it is:

http://www.gstreamer.net/data/doc/gstreamer/head/gst-plugins-bad-plugins/html/gst-plugins-bad-plugins-valve.html

basically you can dynamically connect/disconnect elements to a
pipeline when setting it to drop buffers. I'd suggest you to
investigate on it only after you've maturised a basic knowledge about
gstreamer.

Regards

>
> Thank you.
>
> Best regards,
>
>
> - Zelalem S.
>
>
>> Date: Thu, 25 Nov 2010 19:59:05 +0200
>> From: gibrovacco at gmail.com
>> To: gstreamer-devel at lists.sourceforge.net
>> Subject: Re: [gst-devel] How to create a video recording buffer from a
>> live broadcast and read from it at the same time
>>
>> Hi,
>>
>> On Thu, Nov 25, 2010 at 3:33 PM, Zelalem Sintayehu <zelalems at hotmail.com>
>> wrote:
>> > Hi Dear Marco Ballesio thank you for your prompt response. I'm a student
>> > and
>> > want to do this as a project. Basically I want to have a kind of network
>> > based recorder which is controlled by either SIP or RTSP from an
>> > application
>> > server. Those are the two protocols that I was thinking about to use.
>> > Currently I have an RTSP proxy that I developed which is controlled by a
>> > SIP
>> > Application Server (AS) and delivers the media to a client. So I want to
>> > extend it a little further so that when it is told to pause, it will
>> > pause
>> > the stream it gets from the server (which basically means recording it
>> > for
>> > later use) and again when told to resume starts the delivery from the
>> > place
>> > where it was paused. The client (a SIP) is just a passive media
>> > reciever.
>>
>> in my understanding it should be possible to do all of this with RTSP
>> only. Do you have special requirements about using SIP in your AS
>> media controller?
>>
>> > the media control comes from the application server. I also want to use
>> > a
>> > client with basic RTSP capability but still the media control comes from
>> > the
>> > AS or media controller. With regard to bandwith limitation I don't have
>> > badndwidth costraints, but I'm thinking that the recorder should have a
>> > limited (specified) buffer size. It can't go on recording forever. I
>> > also
>> > only want this to work for one client. Hope I have attended your
>> > queries.
>> >
>> > Once again thank you for your support.
>>
>> A few ideas. Disclaimer: I've not personally tried them, so your
>> mileage to get the thing working may vary..
>>
>> Wim's rtsp streaming server will probably help you with all of this:
>>
>> http://people.freedesktop.org/~wtay/
>>
>> in my understanding, you would need to setup two servers:
>>
>> - the first one streaming from the camera AND locally saving to file
>> (through, between the others, a tee element and an mp4mux with the
>> option "faststart" set to true).
>>
>> - the second one providing the file saved from the first one.
>>
>> by periodically looping (through a timer) on the first server you may
>> implement a basic way to re-start the file each n minutes. More
>> elegant ways may involve a valve element and transitions to NULL
>> state/eos for the filesink element only.
>>
>> Regards
>>
>> >
>> > Best regards,
>> >
>> > - Zelalem S.
>> >
>> >
>> >
>> >
>> >> Date: Thu, 25 Nov 2010 13:39:37 +0200
>> >> From: gibrovacco at gmail.com
>> >> To: gstreamer-devel at lists.sourceforge.net
>> >> Subject: Re: [gst-devel] How to create a video recording buffer from a
>> >> live broadcast and read from it at the same time
>> >>
>> >> Hi,
>> >>
>> >> On Wed, Nov 24, 2010 at 12:13 PM, Zelalem Sintayehu
>> >> <zelalems at hotmail.com> wrote:
>> >> > Hi I want to create a program using gstreamer that when activated
>> >> > starts
>> >> > to
>> >> > record a live broadcast and when requested starts to deliver what is
>> >> > being
>> >> > recorded from the beginning of the record while keeping on recording
>> >> > on
>> >> > the
>> >> > other end (the live broadcast). At some point I want to ignore
>> >> > recording
>> >> > and
>> >> > go live. I hope gstreamer could be used to do this. Basically my
>> >> > problem
>> >> > is
>> >> > to create a buffer of a file that I can read and write into it at the
>> >> > same
>> >> > time.  Please advice me how I can do this.
>> >>
>> >> Imo there are many ways for achieving this, some of which being easy,
>> >> other more difficult. The freedom you'll have in your design depends
>> >> on some variables:
>> >>
>> >> - You'll anyway have to use a signalling protocol (e.g. RTSP, SIP,
>> >> XMPP, etc..) to make it working, so you'll have to carefully pick the
>> >> one which better suits your requirements (e.g. RTSP is pretty well
>> >> supported from GStreamer from both sides, for SIP or XMPP I suggest
>> >> you to give a look to the telepathy framework).
>> >>
>> >> - Are you planning to make it compatible with standard clients? If
>> >> yes, which protocols do they use? If not, are you planning to write
>> >> the client application as well?
>> >>
>> >> - Do you have resource constraints (network bandwidth, CPU, disk,
>> >> memory)?
>> >>
>> >> - Is it possible that multiple clients will connect to the same server?
>> >>
>> >> If you can clarify the points of above it would be possible to give
>> >> you, in turn, an appropriate answer.
>> >>
>> >> Regards
>> >>
>> >> >
>> >> > Thank you.
>> >> >
>> >> > Best regards,
>> >> >
>> >> > - Zelalem S.
>> >> >
>> >> >
>> >> >
>> >> >
>> >> >
>> >> > ------------------------------------------------------------------------------
>> >> > Increase Visibility of Your 3D Game App & Earn a Chance To Win $500!
>> >> > Tap into the largest installed PC base & get more eyes on your game
>> >> > by
>> >> > optimizing for Intel(R) Graphics Technology. Get started today with
>> >> > the
>> >> > Intel(R) Software Partner Program. Five $500 cash prizes are up for
>> >> > grabs.
>> >> > http://p.sf.net/sfu/intelisp-dev2dev
>> >> > _______________________________________________
>> >> > gstreamer-devel mailing list
>> >> > gstreamer-devel at lists.sourceforge.net
>> >> > https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
>> >> >
>> >> >
>> >>
>> >>
>> >>
>> >> ------------------------------------------------------------------------------
>> >> Increase Visibility of Your 3D Game App & Earn a Chance To Win $500!
>> >> Tap into the largest installed PC base & get more eyes on your game by
>> >> optimizing for Intel(R) Graphics Technology. Get started today with the
>> >> Intel(R) Software Partner Program. Five $500 cash prizes are up for
>> >> grabs.
>> >> http://p.sf.net/sfu/intelisp-dev2dev
>> >> _______________________________________________
>> >> gstreamer-devel mailing list
>> >> gstreamer-devel at lists.sourceforge.net
>> >> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
>> >
>> >
>> > ------------------------------------------------------------------------------
>> > Increase Visibility of Your 3D Game App & Earn a Chance To Win $500!
>> > Tap into the largest installed PC base & get more eyes on your game by
>> > optimizing for Intel(R) Graphics Technology. Get started today with the
>> > Intel(R) Software Partner Program. Five $500 cash prizes are up for
>> > grabs.
>> > http://p.sf.net/sfu/intelisp-dev2dev
>> > _______________________________________________
>> > gstreamer-devel mailing list
>> > gstreamer-devel at lists.sourceforge.net
>> > https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
>> >
>> >
>>
>>
>> ------------------------------------------------------------------------------
>> Increase Visibility of Your 3D Game App & Earn a Chance To Win $500!
>> Tap into the largest installed PC base & get more eyes on your game by
>> optimizing for Intel(R) Graphics Technology. Get started today with the
>> Intel(R) Software Partner Program. Five $500 cash prizes are up for grabs.
>> http://p.sf.net/sfu/intelisp-dev2dev
>> _______________________________________________
>> gstreamer-devel mailing list
>> gstreamer-devel at lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
>
> ------------------------------------------------------------------------------
> Increase Visibility of Your 3D Game App & Earn a Chance To Win $500!
> Tap into the largest installed PC base & get more eyes on your game by
> optimizing for Intel(R) Graphics Technology. Get started today with the
> Intel(R) Software Partner Program. Five $500 cash prizes are up for grabs.
> http://p.sf.net/sfu/intelisp-dev2dev
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
>
>




More information about the gstreamer-devel mailing list