DV capture pipeline frozen

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

DV capture pipeline frozen

Gregory Petrosyan
Hello,

I am having some problems with GStreamer. Basically, I have a
pipeline, which used to work (with Ubuntu 9.04 GStreamer packages).
Here it is:

gst-launch-0.10 -v -e dv1394src ! queue ! tee name=raw ! queue !
dvdemux name=demux ! ffdec_dvvideo ! ffmpegcolorspace ! deinterlace
tff=bff ! queue ! tee name=deint ! queue ! ffvideoscale method=9 !
video/x-raw-yuv,height=288,pixel-aspect-ratio=1/1 ! queue ! videorate
! ffmpegcolorspace ! x264enc threads=0 key-int-max=10 me=umh subme=6
trellis=false b-adapt=false ! flutsmux name=mux demux. ! queue !
audioconvert ! faac profile=2 ! mux. mux. ! filesink location=test.avi
deint. ! queue ! ffmpegcolorspace ! xvimagesink sync=false raw. !
queue ! filesink location=raw.test.dv

Basically, it captures video from a DV camera, stores raw DV data,
encodes it to H.264 on the fly and shows video preview window.

Now, this pipeline does nothing: preview window displays only the
first frame, and all files are 0 size. I see no errors or warnings in
the gst-launch output.

Here's the pipeline, updated to today's GStreamer (the only thing
changed is flutsmux -> mpegtsmux):

gst-launch-0.10 -v -e dv1394src ! queue ! tee name=raw ! queue !
dvdemux name=demux ! ffdec_dvvideo ! ffmpegcolorspace ! deinterlace
tff=bff ! queue ! tee name=deint ! queue ! ffvideoscale method=9 !
video/x-raw-yuv,height=288,pixel-aspect-ratio=1/1 ! queue ! videorate
! ffmpegcolorspace ! x264enc threads=0 key-int-max=10 me=umh subme=6
trellis=false b-adapt=false ! mpegtsmux name=mux demux. ! queue !
audioconvert ! faac profile=2 ! mux. mux. ! queue ! filesink
location=test.avi deint. ! queue ! ffmpegcolorspace ! xvimagesink
sync=false raw. ! queue ! filesink location=raw.test.dv

And, by the way, this simple pipeline works as intended:

gst-launch-0.10 -e dv1394src ! queue ! tee name=raw ! queue ! dvdemux
! ffdec_dvvideo ! ffmpegcolorspace ! deinterlace tff=bff ! queue !
ffmpegcolorspace ! xvimagesink sync=false  raw. ! queue ! filesink
location=raw.test.dv

Can anybody please help me in debugging this issue?

                Gregory

------------------------------------------------------------------------------
This SF.net email is sponsored by

Make an app they can't live without
Enter the BlackBerry Developer Challenge
http://p.sf.net/sfu/RIM-dev2dev 
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: DV capture pipeline frozen

Gregory Petrosyan
On Mon, Aug 16, 2010 at 11:35 PM, Gregory Petrosyan
<[hidden email]> wrote:
> I am having some problems with GStreamer. Basically, I have a
> pipeline, which used to work (with Ubuntu 9.04 GStreamer packages).
> Here it is:
>
> ...
>
> Basically, it captures video from a DV camera, stores raw DV data,
> encodes it to H.264 on the fly and shows video preview window.

Here are the minimal pipelines, which reproduce the problem:

This works:
gst-launch-0.10 -e dv1394src ! queue ! dvdemux ! ffdec_dvvideo ! queue
! ffmpegcolorspace ! x264enc ! mpegtsmux ! queue ! filesink
location=test.avi

And this:
gst-launch-0.10 -e dv1394src ! queue ! dvdemux ! ffdec_dvvideo ! tee
name=t ! queue ! ffmpegcolorspace ! x264enc ! mpegtsmux ! queue !
filesink location=test.avi t. ! queue ! ffmpegcolorspace ! xvimagesink
sync=false

results in frozen preview window + zero-length test.avi file.

                Gregory

------------------------------------------------------------------------------
This SF.net email is sponsored by

Make an app they can't live without
Enter the BlackBerry Developer Challenge
http://p.sf.net/sfu/RIM-dev2dev 
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: DV capture pipeline frozen

startoftext
I am having a similar problem. I have a program written in C that uses x264enc and some other stuff and after the upgrade to Ubuntu 10.04, from 9.something, it stopped working and would only show the first frame in preview window with 0 byte size output file. After playing around with things I was able to re-produce the same results with something as simple as the pipeline below in gst-launch:

gst-launch v4l2src ! tee name="vtee" ! x264enc ! flvmux ! filesink location=vid.flv vtee. ! xvimagesink

Interesting thing is if I just send the video to xvimage sink, it plays. If i only send video to the encoder and mux part of the pipeline that records a file just fine. Combine them and FREEZE. I dont mean to steal this post but I think our problems may be related.
Reply | Threaded
Open this post in threaded view
|

Re: DV capture pipeline frozen

Andoni Morales
In reply to this post by Gregory Petrosyan
2010/8/16 Gregory Petrosyan <[hidden email]>:

> On Mon, Aug 16, 2010 at 11:35 PM, Gregory Petrosyan
> <[hidden email]> wrote:
>> I am having some problems with GStreamer. Basically, I have a
>> pipeline, which used to work (with Ubuntu 9.04 GStreamer packages).
>> Here it is:
>>
>> ...
>>
>> Basically, it captures video from a DV camera, stores raw DV data,
>> encodes it to H.264 on the fly and shows video preview window.
>
> Here are the minimal pipelines, which reproduce the problem:
>
> This works:
> gst-launch-0.10 -e dv1394src ! queue ! dvdemux ! ffdec_dvvideo ! queue
> ! ffmpegcolorspace ! x264enc ! mpegtsmux ! queue ! filesink
> location=test.avi
>
> And this:
> gst-launch-0.10 -e dv1394src ! queue ! dvdemux ! ffdec_dvvideo ! tee
> name=t ! queue ! ffmpegcolorspace ! x264enc ! mpegtsmux ! queue !
> filesink location=test.avi t. ! queue ! ffmpegcolorspace ! xvimagesink
> sync=false

The x264 encoder needs some buffers before the pushing first one
downstream, which full the queue before the video sink.

Disable the limits in the queue (queue max-size-bytes=0
max-size-buffers=0 max-size-time=0) and that will fix you problem:
gst-launch-0.10 -e dv1394src ! queue ! dvdemux ! ffdec_dvvideo ! tee
name=t ! queue ! ffmpegcolorspace ! x264enc ! mpegtsmux ! queue !
filesink location=test.avi t. ! queue max-size-bytes=0
max-size-buffers=0 max-size-time=0 ! ffmpegcolorspace ! xvimagesink
sync=false

Next time you can debug it naming the queues and using GST_DEBUG=*queue*:5:
queue_dataflow gstqueue.c:930:gst_queue_chain:<sink_queue> received
buffer 0xb53029f0 of size 153600, time 0:00:01.033333333, duration
0:00:00.033333333
queue_dataflow gstqueue.c:963:gst_queue_chain:<sink_queue> queue is
full, waiting for free space
queue_dataflow gstqueue.c:968:gst_queue_chain:<sink_queue>
(sink_queue:sink) wait for DEL: 30 of 0-200 buffers, 4608000 of
0-10485760 bytes, 1000000000 of 0-1000000000 ns, 30 items

As you see the limit in time was reached in the queue "1000000000 of
0-1000000000 ns"

Andoni

>
> results in frozen preview window + zero-length test.avi file.
>
>                 Gregory
>
> ------------------------------------------------------------------------------
> This SF.net email is sponsored by
>
> Make an app they can't live without
> Enter the BlackBerry Developer Challenge
> http://p.sf.net/sfu/RIM-dev2dev
> _______________________________________________
> gstreamer-devel mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
>



--
Andoni Morales Alastruey

LongoMatch:The Digital Coach
http://www.longomatch.ylatuya.es

------------------------------------------------------------------------------
Download new Adobe(R) Flash(R) Builder(TM) 4
The new Adobe(R) Flex(R) 4 and Flash(R) Builder(TM) 4 (formerly
Flex(R) Builder(TM)) enable the development of rich applications that run
across multiple browsers and platforms. Download your free trials today!
http://p.sf.net/sfu/adobe-dev2dev
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel