Format ofYUY2 stream

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

Format ofYUY2 stream

ob.lutz
Hey all

I'm attempting to write an application that will send a YUV (YUY2)
stream out on udp and have gstreamer take it in and do some
precessing. For starters, I'm trying to simply view the output with:

gst-launch -v udpsrc port=1234 buffer-size=0 !
video/x-raw-yuv,format=\(fourcc\)YUY2,width=640,height=480,framerate=25/1
! ffmpegcolorspace ! xvimagesink sync=false

Only problem is I don't know how the stream should be formated. All I
get is a green window with a few garbled rows of pixels at the top.
I'm writing out YUYV, where each part one is a 8bit uint for YUYV
being a full 32 bits. Are there some sort of header information that
need to be sent along with this? Is there a site that details the
format of the stream, better yet as it pertains to a UDP stream?

Thanks

-------------------------------------------------------------------------
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
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Format ofYUY2 stream

David Schleef
On Tue, Nov 11, 2008 at 04:23:04PM -0500, OB Lutz wrote:

> Hey all
>
> I'm attempting to write an application that will send a YUV (YUY2)
> stream out on udp and have gstreamer take it in and do some
> precessing. For starters, I'm trying to simply view the output with:
>
> gst-launch -v udpsrc port=1234 buffer-size=0 !
> video/x-raw-yuv,format=\(fourcc\)YUY2,width=640,height=480,framerate=25/1
> ! ffmpegcolorspace ! xvimagesink sync=false
>
> Only problem is I don't know how the stream should be formated. All I
> get is a green window with a few garbled rows of pixels at the top.
> I'm writing out YUYV, where each part one is a 8bit uint for YUYV
> being a full 32 bits. Are there some sort of header information that
> need to be sent along with this? Is there a site that details the
> format of the stream, better yet as it pertains to a UDP stream?

The obvious problem is that 640x480x2 = 614400, which is much larger
than the largest UDP packet size.  So you'll have to do some sort
of framing to get raw video into UDP packets.  There aren't really
any standards or examples to go by here -- people generally don't
send raw video over the network.

One simple solution would be to use GDP (GStreamer Data Protocol),
but that's GStreamer specific, and would require GStreamer on both
ends.



dave...


-------------------------------------------------------------------------
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
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Format ofYUY2 stream

ob.lutz
I'm sending out data in 512byte chunks, so max UDP size shouldnt be an
issue.Actually, I'm not sending it over the network, jfrom my app to
gstreamer on the same machine. Using the udpsource seemed like the
fastest way to go about moving the YUV sample to gstreamer.

On Tue, Nov 11, 2008 at 6:53 PM, David Schleef <[hidden email]> wrote:

> On Tue, Nov 11, 2008 at 04:23:04PM -0500, OB Lutz wrote:
>> Hey all
>>
>> I'm attempting to write an application that will send a YUV (YUY2)
>> stream out on udp and have gstreamer take it in and do some
>> precessing. For starters, I'm trying to simply view the output with:
>>
>> gst-launch -v udpsrc port=1234 buffer-size=0 !
>> video/x-raw-yuv,format=\(fourcc\)YUY2,width=640,height=480,framerate=25/1
>> ! ffmpegcolorspace ! xvimagesink sync=false
>>
>> Only problem is I don't know how the stream should be formated. All I
>> get is a green window with a few garbled rows of pixels at the top.
>> I'm writing out YUYV, where each part one is a 8bit uint for YUYV
>> being a full 32 bits. Are there some sort of header information that
>> need to be sent along with this? Is there a site that details the
>> format of the stream, better yet as it pertains to a UDP stream?
>
> The obvious problem is that 640x480x2 = 614400, which is much larger
> than the largest UDP packet size.  So you'll have to do some sort
> of framing to get raw video into UDP packets.  There aren't really
> any standards or examples to go by here -- people generally don't
> send raw video over the network.
>
> One simple solution would be to use GDP (GStreamer Data Protocol),
> but that's GStreamer specific, and would require GStreamer on both
> ends.
>
>
>
> dave...
>
>
> -------------------------------------------------------------------------
> 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
> [hidden email]
> 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
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Format ofYUY2 stream

David Schleef
On Tue, Nov 11, 2008 at 07:36:36PM -0500, OB Lutz wrote:
> I'm sending out data in 512byte chunks, so max UDP size shouldnt be an
> issue.Actually, I'm not sending it over the network, jfrom my app to
> gstreamer on the same machine. Using the udpsource seemed like the
> fastest way to go about moving the YUV sample to gstreamer.

Then it is probably sufficient to use videoparse to reframe the
raw data stream from udpsrc into a video stream.  Of course, you
are still losing timing information, as well as size, frame rate,
etc.



dave...


-------------------------------------------------------------------------
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
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Format ofYUY2 stream

Wim Taymans
In reply to this post by ob.lutz
On Tue, 2008-11-11 at 16:23 -0500, OB Lutz wrote:
> Hey all
>
> I'm attempting to write an application that will send a YUV (YUY2)
> stream out on udp and have gstreamer take it in and do some
> precessing. For starters, I'm trying to simply view the output with:
>
> gst-launch -v udpsrc port=1234 buffer-size=0 !
> video/x-raw-yuv,format=\(fourcc\)YUY2,width=640,height=480,framerate=25/1
> ! ffmpegcolorspace ! xvimagesink sync=false

You could use the raw video rtp (de)pay loaders together with udp, like
this:

  gst-launch videotestsrc ! rtpvrawpay ! udpsink

and

  gst-launch udpsrc caps="application/x-rtp, media=(string)video,
  clock-rate=(int)90000, encoding-name=(string)RAW,
  sampling=(string)YCbCr-4:2:2, depth=(string)8, width=(string)320,
  height=(string)240, colorimetry=(string)SMPTE240M" ! rtpvrawdepay !
  xvimagesink

YUYV is unfortunatly not a supported format for RFC 4175 but UYVY is.

Wim

>
> Only problem is I don't know how the stream should be formated. All I
> get is a green window with a few garbled rows of pixels at the top.
> I'm writing out YUYV, where each part one is a 8bit uint for YUYV
> being a full 32 bits. Are there some sort of header information that
> need to be sent along with this? Is there a site that details the
> format of the stream, better yet as it pertains to a UDP stream?
>
> Thanks
>
> -------------------------------------------------------------------------
> 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
> [hidden email]
> 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
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Format ofYUY2 stream

ob.lutz
Got everything working with the videoparse and switching to a
tcpserversink (with udpsink packets were either dropped or swapped,
oddsince its all the same machine...)

Thanks all!

On Wed, Nov 12, 2008 at 5:05 AM, Wim Taymans <[hidden email]> wrote:

> On Tue, 2008-11-11 at 16:23 -0500, OB Lutz wrote:
>> Hey all
>>
>> I'm attempting to write an application that will send a YUV (YUY2)
>> stream out on udp and have gstreamer take it in and do some
>> precessing. For starters, I'm trying to simply view the output with:
>>
>> gst-launch -v udpsrc port=1234 buffer-size=0 !
>> video/x-raw-yuv,format=\(fourcc\)YUY2,width=640,height=480,framerate=25/1
>> ! ffmpegcolorspace ! xvimagesink sync=false
>
> You could use the raw video rtp (de)pay loaders together with udp, like
> this:
>
>  gst-launch videotestsrc ! rtpvrawpay ! udpsink
>
> and
>
>  gst-launch udpsrc caps="application/x-rtp, media=(string)video,
>  clock-rate=(int)90000, encoding-name=(string)RAW,
>  sampling=(string)YCbCr-4:2:2, depth=(string)8, width=(string)320,
>  height=(string)240, colorimetry=(string)SMPTE240M" ! rtpvrawdepay !
>  xvimagesink
>
> YUYV is unfortunatly not a supported format for RFC 4175 but UYVY is.
>
> Wim
>
>>
>> Only problem is I don't know how the stream should be formated. All I
>> get is a green window with a few garbled rows of pixels at the top.
>> I'm writing out YUYV, where each part one is a 8bit uint for YUYV
>> being a full 32 bits. Are there some sort of header information that
>> need to be sent along with this? Is there a site that details the
>> format of the stream, better yet as it pertains to a UDP stream?
>>
>> Thanks
>>
>> -------------------------------------------------------------------------
>> 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
>> [hidden email]
>> 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
> [hidden email]
> 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
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel