Still stuck

Gary Thomas gary at mlbassoc.com
Thu Mar 7 11:28:22 PST 2013


On 2013-03-07 11:47, mattes wrote:
> On Thu, 07 Mar 2013 08:20:29 -0700 Gary Thomas <gary at mlbassoc.com> wrote
>
>> Sorry if this is an old record, but I'm getting nowhere...
>>
>> Why does this pipeline work:
>>     gst-launch -e -vvv shmsrc socket-path=/tmp/shm-stream.sock \
>>       ! "application/x-rtp, sampling=(string)YCbCr-4:2:2, width=(string)720,
>> height=(string)480, payload=(int)96" \      ! rtpvrawdepay \
>>       ! fakesink
>>
>> and this one does not?
>>     gst-launch -e -vvv shmsrc socket-path=/tmp/shm-stream.sock \
>>       ! "application/x-rtp, sampling=(string)YCbCr-4:2:2, width=(string)720,
>> height=(string)480, payload=(int)96" \      ! rtpvrawdepay \
>>       ! ffenc_mpeg4 \
>>       ! fakesink
>>
>> Note: I only added the mpeg4 encoder element which is compatible
>> and there are no errors/complaints.
>>
>> The elements all have compatible [default] caps and it should
>> just work.  If I trade the 'shmsrc'+'rtpvrawdepay' for something
>> like 'videotestsrc', both can work.
>>
>
> Why do you use 'rtpvrawdepay' in the first place?
> What type of data is the feeding end providing?
> is it a pure stream of video frame?
>
> I have used ffenc_mpeg4 successfully with yuv420 '(fourcc)I420'.
> Not sure about YCbCr-4:2:2?
>
> Have you tried to display it with e.g. xvimagesink, instead of using
> ffenc_mpeg4 + fakesink?
>
> Assure the incoming data stream is what you think it is?
>
> Could be helpful to setup a shmsink pipeline to simulate the video feed
> of yours.  Start with something you know that works and than simply
> add feature by feature:
>
>   gst-launch -v videotestsrc ! \
>   'video/x-raw-yuv, width=640, height=480, framerate=30/1, format=(fourcc)I420'
> ! \
>   shmsink socket-path=/tmp/test shm-size=10000000 wait-for-connection=0
>
>   gst-launch -e shmsrc socket-path=/tmp/test is-live=1 ! \
>   video/x-raw-yuv,format=\(fourcc\)I420,framerate=30/1,width=640,height=480 ! \
>   xvimagesink
>
> I just see shmsink/src as transparent link between the two pipe. Boils down to
> something like this:
>
>   gst-launch -v videotestsrc ! \
>    'video/x-raw-yuv, width=640, height=480, framerate=30/1,
> format=(fourcc)I420' ! \
>    xvimagesink

Precisely my point - I started with the single pipeline (using v4l2src)
and now I need more access to the data, hence the shmsink/shmsrc setups.
Look at my other thread 'Confusing pipelines' for complete details of
what I've tried.

-- 
------------------------------------------------------------
Gary Thomas                 |  Consulting for the
MLB Associates              |    Embedded world
------------------------------------------------------------


More information about the gstreamer-devel mailing list