optimal video type

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

optimal video type

John Buckley
Hello,
I am running gstreamer on a small embedded Linux board with a USB 1.1 port.  I have my v4l2src source setup as mjpeg and it is then decoded and converted to the output ximagesink which I believe is video/x-raw-rgb.

#gst-launch v4l2src ! image/jpeg,width=320,framerate=\(fraction\)30/1 ! jpegdec ! ffmpegcolorspace ! ximagesink sync=false

My problem is that the video throughput is miserably slow.  There is a significant delay in the video and if I set ximagesink sync=true and attempt to hold the framerate steady at 30fps it doesn't even come close.

I thought I read that the mjpeg format would produce higher framerates than the raw video formats.
Q1:  Am I mistaken?

Q2:  Would I be better off bringing the video off the device in video/x-raw-rgb or x-raw-yuv mode?

Q3:  Are there any tricks to improving the framerates or this just typical for USB 1.1.  Is USB 2.0 that much faster?


John
Reply | Threaded
Open this post in threaded view
|

Re: [gst-devel] optimal video type

Edward Hervey
Administrator
On Wed, 2010-01-27 at 10:58 -0800, John Buckley wrote:

> Hello,
> I am running gstreamer on a small embedded Linux board with a USB 1.1 port.
> I have my v4l2src source setup as mjpeg and it is then decoded and converted
> to the output ximagesink which I believe is video/x-raw-rgb.
>
> #gst-launch v4l2src ! image/jpeg,width=320,framerate=\(fraction\)30/1 !
> jpegdec ! ffmpegcolorspace ! ximagesink sync=false
>
> My problem is that the video throughput is miserably slow.  There is a
> significant delay in the video and if I set ximagesink sync=true and attempt
> to hold the framerate steady at 30fps it doesn't even come close.

  Add a queue just after v4l2src in order to dedicate one thread to
capturing and another one to decoding/display. If critical... you could
also try adding a queue just before ximagesink (thereby creating a
dedicated thread for decoding and one for display).

>
> I thought I read that the mjpeg format would produce higher framerates than
> the raw video formats.
> Q1:  Am I mistaken?

  Depends on your hardware. The only 'advantage' to using jpeg is to be
able to cram more information through the usb 1.1 port. OTOH, you should
be able to fit 320x240@30fps in raw rgb through usb 1.1

>
> Q2:  Would I be better off bringing the video off the device in
> video/x-raw-rgb or x-raw-yuv mode?

  avoiding colorspace conversion would be a good idea, so
video/x-raw-rgb.

>
> Q3:  Are there any tricks to improving the framerates or this just typical
> for USB 1.1.  Is USB 2.0 that much faster?

   usb 1.x goes up to 12Mbit/s
   usb 2.x goes up to ... 480Mbit/s :)

 
    Edward

>
>
> John



------------------------------------------------------------------------------
The Planet: dedicated and managed hosting, cloud storage, colocation
Stay online with enterprise data centers and the best network in the business
Choose flexible plans and management services without long-term contracts
Personal 24x7 support from experience hosting pros just a phone call away.
http://p.sf.net/sfu/theplanet-com
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: [gst-devel] optimal video type

Edward Hervey
Administrator
On Wed, 2010-01-27 at 20:50 +0100, Edward Hervey wrote:

> On Wed, 2010-01-27 at 10:58 -0800, John Buckley wrote:
> > Hello,
> > I am running gstreamer on a small embedded Linux board with a USB 1.1 port.
> > I have my v4l2src source setup as mjpeg and it is then decoded and converted
> > to the output ximagesink which I believe is video/x-raw-rgb.
> >
> > #gst-launch v4l2src ! image/jpeg,width=320,framerate=\(fraction\)30/1 !
> > jpegdec ! ffmpegcolorspace ! ximagesink sync=false
> >
> > My problem is that the video throughput is miserably slow.  There is a
> > significant delay in the video and if I set ximagesink sync=true and attempt
> > to hold the framerate steady at 30fps it doesn't even come close.
>
>   Add a queue just after v4l2src in order to dedicate one thread to
> capturing and another one to decoding/display. If critical... you could
> also try adding a queue just before ximagesink (thereby creating a
> dedicated thread for decoding and one for display).
>
> >
> > I thought I read that the mjpeg format would produce higher framerates than
> > the raw video formats.
> > Q1:  Am I mistaken?
>
>   Depends on your hardware. The only 'advantage' to using jpeg is to be
> able to cram more information through the usb 1.1 port. OTOH, you should
> be able to fit 320x240@30fps in raw rgb through usb 1.1

  My bad, you can definitely not do 30fps through usb 1.1. You could
only do around 6fps with rgb or 12fps with yuv 4:2:0

>
> >
> > Q2:  Would I be better off bringing the video off the device in
> > video/x-raw-rgb or x-raw-yuv mode?
>
>   avoiding colorspace conversion would be a good idea, so
> video/x-raw-rgb.
>
> >
> > Q3:  Are there any tricks to improving the framerates or this just typical
> > for USB 1.1.  Is USB 2.0 that much faster?
>
>    usb 1.x goes up to 12Mbit/s
>    usb 2.x goes up to ... 480Mbit/s :)
>
>  
>     Edward
>
> >
> >
> > John
>
>



------------------------------------------------------------------------------
The Planet: dedicated and managed hosting, cloud storage, colocation
Stay online with enterprise data centers and the best network in the business
Choose flexible plans and management services without long-term contracts
Personal 24x7 support from experience hosting pros just a phone call away.
http://p.sf.net/sfu/theplanet-com
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel