[gst-devel] newbie: multiple webcams?
Stefan Kost
ensonic at hora-obscura.de
Mon Aug 11 12:51:36 CEST 2008
hi,
Gerry Deckert schrieb:
> Stefan,
>
> Thanks for the suggestion. The result is the same, the first camera works fine, there is a pause when I switch to the second, I get a short burst of delayed video, and from then on I get about 1 frame every 10-20 seconds. I've also tried it with leaky=1 just to see, and tried different values for max_size_buffers (2, 0, ...) and the outcome is unchanged. Would a caps filter describing the video stream make a difference, or does that only affect negotiating the links between elements?
>
>
if you use videotestsrc instead would it work them. If you could make a
small standalone test app, that uses <n> sources and either videotetsrc
or v4l2src I could try to get another webcam and try with two webcams.
Best would be to file a bug and attach it there.
Also happens if you set sync=FALSE on the sink?
Stefan
> Gerry
>
> --- On Sun, 8/10/08, Stefan Kost <ensonic at hora-obscura.de> wrote:
>
>
>> From: Stefan Kost <ensonic at hora-obscura.de>
>> Subject: Re: [gst-devel] newbie: multiple webcams?
>> To: "Gerry Deckert" <gerry_deckert at yahoo.com>, "Gstreamer" <gstreamer-devel at lists.sourceforge.net>
>> Date: Sunday, August 10, 2008, 3:29 AM
>> Hi,
>>
>> please keep the list in the loop.
>>
>> Gerry Deckert schrieb:
>>
>>> Stefan,
>>>
>>> I've just given input-selector a try and ran
>>>
>> into trouble. The first camera comes up fine, but when I
>> try to switch cameras (by setting the 'active-pad'
>> property) the video on the next camera is frozen, or
>> stutters through a few frames and then freezes. If I set my
>> pipeline to STATE_NULL, then change the active-pad on the
>> input-selector, then set the pipeline back to STATE_PLAYING
>> it works as expected but there's a 1 second pause while
>> switching, which defeats the purpose.
>>
>>> Do you have any ideas why this might be the case,
>>>
>> or if there is some combination of elements I could put
>> upstream or downstream of the input-selector to improve its
>> behavior? I've tested putting queues on either end, but
>> with no visible difference. Any insight you could provide
>> would be helpful!
>>
>> I suspect timestamp issues. Can you try this:
>> v4l2src ! queue leaky=2 ! input-select name=sel ! ,,,
>> v4l2src ! queue leaky=2 ! sel.
>> ...
>>
>> Stefan
>>
>>
>>
>>> Thanks,
>>>
>>>
>>> Gerry
>>>
>>>
>>>
>>> --- On Thu, 8/7/08, Stefan Kost
>>>
>> <ensonic at hora-obscura.de> wrote:
>>
>>>> From: Stefan Kost <ensonic at hora-obscura.de>
>>>> Subject: Re: [gst-devel] newbie: multiple webcams?
>>>> To: "Discussion of the development of
>>>>
>> GStreamer"
>> <gstreamer-devel at lists.sourceforge.net>
>>
>>>> Date: Thursday, August 7, 2008, 1:30 AM
>>>> hi,
>>>>
>>>> have you tried input-selector from gst-plugin-bad?
>>>>
>>>> Stefan
>>>>
>>>> Gerry Deckert schrieb:
>>>>
>>>>> Hi all,
>>>>>
>>>>> I'm working on a Gstreamer / Python /
>>>>>
>> Gtk
>>
>>>> project to debut at Burning Man in a few weeks,
>>>>
>> and I'm
>>
>>>> hoping to get some suggestions, insight, and
>>>>
>> pointers to
>>
>>>> examples. I'm almost completely new to
>>>>
>> Gstreamer and
>>
>>>> the Python bindings, but I have gone through the
>>>>
>> App
>>
>>>> development manual and the Pygstreamer Tutorial.
>>>>
>> I'm
>>
>>>> amazed at the speed and flexibility, and I'm
>>>>
>> convinced
>>
>>>> it's the right way to go with my project.
>>>>
>>>>> Here's what I'm trying to do: I
>>>>>
>> want to
>>
>>>> take input from multiple usb webcams (v4lsrcs) at
>>>>
>> the same
>>
>>>> time, display video in a window from just one at a
>>>>
>> time, and
>>
>>>> have the ability to switch the feed smoothly from
>>>>
>> camera to
>>
>>>> camera. Why would I want to do this you ask? So
>>>>
>> I can set
>>
>>>> up a ring of cameras and create a bullet-time
>>>>
>> dance cage, of
>>
>>>> course. :)
>>>>
>>>>> I cobbled together something from various
>>>>>
>> examples
>>
>>>> that more or less works, but I'm sure
>>>>
>> there's a
>>
>>>> better approach. My initial attempt involved
>>>>
>> detaching and
>>
>>>> attaching cameras directly to xvimagesink, but
>>>>
>> this took too
>>
>>>> long for a smooth transition. In my current
>>>>
>> setup, each
>>
>>>> camera is fed through its own videobox, all the
>>>>
>> videoboxes
>>
>>>> connect to a single videomixer, and the videomixer
>>>>
>> goes
>>
>>>> through ffmpegcolorspace to xvimagesink. All the
>>>>
>> cameras
>>
>>>> are running at the same time, and I choose between
>>>>
>> them by
>>
>>>> setting the alpha channel on the videobox of the
>>>>
>> desired
>>
>>>> camera to 1 while all the others are 0. This
>>>>
>> results in
>>
>>>> smooth switching, but I'm sure is not a good
>>>>
>> use of
>>
>>>> resources.
>>>>
>>>>> So, with that, I have lots of questions.
>>>>>
>> Is there
>>
>>>> a way to switch between sinks on the videomixer to
>>>> accomplish the same effect? Is there a fast way
>>>>
>> to turn the
>>
>>>> cameras on and off, or should I try turning them
>>>>
>> on and off
>>
>>>> in groups? How could I enable recording of the
>>>>
>> video
>>
>>>> that's coming out? I'm guessing I want to
>>>>
>> use a tee
>>
>>>> element, but how do I enable it on the fly? What
>>>>
>> about
>>
>>>> toggling on/off some of the effectv plugins? How
>>>>
>> could I
>>
>>>> grab single frames from the cameras? I don't
>>>>
>> have a
>>
>>>> good understanding of what's involved in
>>>>
>> modifying the
>>
>>>> pipeline on the fly. Is there some documentation
>>>>
>> or are
>>
>>>> there some examples anyone could point me to?
>>>>
>> Suggestions?
>>
>>>> Any help would be greatly appreciated!
>>>>
>>>>> Regards,
>>>>>
>>>>>
>>>>> Gerry
>>>>>
>>>>>
>>>>>
>> -------------------------------------------------------------------------
>>
>>>>> This SF.Net email is sponsored by the Moblin
>>>>>
>> Your Move
>>
>>>> Developer's challenge
>>>>
>>>>> Build the coolest Linux based applications
>>>>>
>> with Moblin
>>
>>>> SDK & win great prizes
>>>>
>>>>> Grand prize is a trip for two to an Open
>>>>>
>> Source event
>>
>>>> anywhere in the world
>>>>
>>>>
>> http://moblin-contest.org/redirect.php?banner_id=100&url=/
>>
>> _______________________________________________
>>
>>>>> gstreamer-devel mailing list
>>>>> gstreamer-devel at lists.sourceforge.net
>>>>>
>>>>>
>> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
>>
>>>>>
>>>>>
>>>>
>> -------------------------------------------------------------------------
>>
>>>> This SF.Net email is sponsored by the Moblin Your
>>>>
>> Move
>>
>>>> Developer's challenge
>>>> Build the coolest Linux based applications with
>>>>
>> Moblin SDK
>>
>>>> & win great prizes
>>>> Grand prize is a trip for two to an Open Source
>>>>
>> event
>>
>>>> anywhere in the world
>>>>
>>>>
>> http://moblin-contest.org/redirect.php?banner_id=100&url=/
>>
>>>> _______________________________________________
>>>> gstreamer-devel mailing list
>>>> gstreamer-devel at lists.sourceforge.net
>>>>
>>>>
>> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
>>
>
> -------------------------------------------------------------------------
> This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
> Build the coolest Linux based applications with Moblin SDK & win great prizes
> Grand prize is a trip for two to an Open Source event anywhere in the world
> http://moblin-contest.org/redirect.php?banner_id=100&url=/
> _______________________________________________
> 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