General Simple Question

Sean McNamara smcnam at gmail.com
Fri Sep 23 16:26:22 PDT 2011


Hi,

On Fri, Sep 23, 2011 at 6:58 PM, Rafael Guerra <rafael at lanline.com> wrote:
> I am looking to write a process under Unix that will record 5 minutes of
> video input from various ip cameras, of different types,  and save them into
> files, to be
>
> played back later.

What's "Unix"? AT&T UNIX from the 70s? Solaris? BSD? Linux? The term
"Unix" doesn't really refer to anything anymore unless you're actually
running that proprietary operating system from the 70s.

The good news however, is that almost any platform "with Unix-like
interfaces" does support Gstreamer. :) So almost regardless of whether
you meant Solaris, BSD, Linux, HP-UX or any of the other platforms
supported by Gstreamer, the core libraries at least will work, and
most of the plugins should also be available.

>
>
>
> I am new to gstreamer but from a brief look at the documentation it looks
> like it might be a good fit for my requirement.

Yes, Gstreamer is a good library for writing programs with complex
business logic, but with the desire to not have to deal with the
implementations of codecs and other such low level stuff. As long as
gstreamer elements exist for the file formats, codecs, and devices
you'll be working with, the API itself is extremely flexible. And
there's already a lot of existing code out there for a variety of
codecs and devices.

>
>
>
> I would appreciate any feedback and guidance. I am also interested in how
> growable and versatile this solution would be.

For a general question, you'll get a general answer ;) Gstreamer is
about as flexible as they come. It's as flexible as you want to make
it, mainly because it's open source, so if it doesn't do what you
want, you can make it do so with some code. The extent that your
program will be "growable" will depend on the flexibility of your
software architecture, choice of programming language / environment,
etc.

My biggest immediate concern with your description is "ip cameras".
What do you mean? I assume you mean a standalone device that
communicates using network packets over IP. Well that's great, but the
range of possible ways that they could interface with other computers
over IP is too broad for me to know if gstreamer would support your
particular devices.

One possible "IP camera" implementation that would be supported almost
out of the box in gstreamer would be if it broadcasts streaming video
over a well-known protocol, such as RTP or even just plain HTTP.
Provided that gstreamer has a codec that can decode the encoded file
received from the camera, the protocol layers I mentioned are already
well-supported in gstreamer.

But of course, it's entirely possible (and probable, I guess) that any
random IP camera would use some proprietary network protocol that's
only designed to work with some proprietary software distributed only
to run on Windows. That wouldn't surprise me one bit. The bad news
then, is that gstreamer probably would not support that out of the
box, and you'd have to actually write a source element implementation
for the camera's custom wire protocol (which might involve reverse
engineering it from the network packets, etc). If you can do *that*,
then the modular nature of gstreamer's elements will seamlessly take
care of transferring your data stream to decoders, encoders, and any
output element (a file, in your case) that you want.

Hard to be any more specific than that with the very little info
you've provided, but hope it helps.

Sean

>
>
>
> Thank you in advance for your help.
>
>
>
> Rafael Guerra
>
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>
>


More information about the gstreamer-devel mailing list