How to get vaapih265dec output as opencv BGR mat?

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

How to get vaapih265dec output as opencv BGR mat?

jeyp4
This post was updated on .
Hello

I am building an application which emulates below command except
'xvimagesink'.

gst-launch-1.0 -v v4l2src  !
'video/x-raw,format=(string)YV12,width=1280,height=720' ! vaapih265enc !
vaapidecode ! xvimagesink


I checked vaapidecode caps through verbose

vaapidecode0.GstPad:src: caps = "video/x-raw\,\ format\=\(string\)I420\,\
width\=\(int\)1280\,\ height\=\(int\)736\,\
interlace-mode\=\(string\)progressive\,\
pixel-aspect-ratio\=\(fraction\)1/1\,\ chroma-site\=\(string\)mpeg2\,\
colorimetry\=\(string\)bt709\,\ framerate\=\(fraction\)25/1"


*What is the efficient way to replace  'xvimagesink' and get the buffer as
opencv BGR mat?*



--
Sent from: http://gstreamer-devel.966125.n4.nabble.com/
_______________________________________________
gstreamer-devel mailing list
gstreamer-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: How to get vaapidech265 output as opencv BGR mat?

Victor Jaquez
On Tue, 29 Oct 2019 at 16:57, jeyp4 wrote:
> Hello
>
> I am building an application which emulates below command except
> 'xvimagesink'.
>
> gst-launch-1.0 -v v4l2src  !
> 'video/x-raw,format=(string)YV12,width=1280,height=720' ! vaapih265enc !
> vaapidecode ! xvimagesink

vaapidecode doesn't exist anymore. Are using gstreamer-1.8?

>
>
> I checked vaapidecode caps through verbose
>
> vaapidecode0.GstPad:src: caps = "video/x-raw\,\ format\=\(string\)I420\,\
> width\=\(int\)1280\,\ height\=\(int\)736\,\
> interlace-mode\=\(string\)progressive\,\
> pixel-aspect-ratio\=\(fraction\)1/1\,\ chroma-site\=\(string\)mpeg2\,\
> colorimetry\=\(string\)bt709\,\ framerate\=\(fraction\)25/1"
>
>
> *What is the efficient way to replace  'xvimagesink' and get the buffer as
> opencv BGR mat?*

You would need vaapipostproc to do the color transformation and set the BGR
format.

>
>
>
> --
> Sent from: http://gstreamer-devel.966125.n4.nabble.com/
> _______________________________________________
> gstreamer-devel mailing list
> [hidden email]
> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: How to get vaapidech265 output as opencv BGR mat?

jeyp4
This post was updated on .
I tried vaapipostproc for I420 -> BGRx.

It is working. But costs an overhead of ~5ms for 720p.

I was wondering that both

vaapidecode

 and

vaapih265dec

 offer

video/x-raw(meta:GstVideoGLTextureUploadMeta)

 format: { RGBA, BGRA }.

Can I use this option and to get ready-made BGRA data for cv::Mat? If Yes, then How?



--
Sent from: http://gstreamer-devel.966125.n4.nabble.com/
_______________________________________________
gstreamer-devel mailing list
gstreamer-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: How to get vaapidech265 output as opencv BGR mat?

Stephenwei
 format              : The forced output pixel format
                        flags: 可讀, 可寫
                        Enum "GstVideoFormat" Default: 1, "encoded"
                           (0): unknown          - GST_VIDEO_FORMAT_UNKNOWN
                           (1): encoded          - GST_VIDEO_FORMAT_ENCODED
                           (2): i420             - GST_VIDEO_FORMAT_I420
                           (3): yv12             - GST_VIDEO_FORMAT_YV12
                           (4): yuy2             - GST_VIDEO_FORMAT_YUY2
                           (5): uyvy             - GST_VIDEO_FORMAT_UYVY
                           (6): ayuv             - GST_VIDEO_FORMAT_AYUV
                           (7): rgbx             - GST_VIDEO_FORMAT_RGBx
                           (8): bgrx             - GST_VIDEO_FORMAT_BGRx
                           (9): xrgb             - GST_VIDEO_FORMAT_xRGB
                           (10): xbgr             - GST_VIDEO_FORMAT_xBGR
                           (11): rgba             - GST_VIDEO_FORMAT_RGBA
                           (12): bgra             - GST_VIDEO_FORMAT_BGRA




-----
GStreamer is a convenient multimedia platform, I like it.
Develop the NVR system on ARM/x86(c/python)
Use python to generate NVR is crazy, of course works fine.

--
Sent from: http://gstreamer-devel.966125.n4.nabble.com/
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: How to get vaapidech265 output as opencv BGR mat?

Victor Jaquez
In reply to this post by jeyp4
On Mon, 30 Dec 2019 at 06:33, jeyp4 wrote:
> I tried vaapipostproc for I420 -> BGRx.
>
> It is working. But cost an overhead of 5ms for 720p.
>
> I was wondering that both vaapidecode and vaapih265dec offers
> video/x-raw(meta:GstVideoGLTextureUploadMeta) format: { RGBA, BGRA }.

I suggest you not using it, since that caps feature is going to be deprecated en
2.0. Also that format is just to be used for GL textures, not raw frames. And
the output differs from the used platform: EGL or GLX.

>
> Can I use this option and to get ready-made BGRA data for cv::Mat? If Yes,
> then How?
>
>
>
> --
> Sent from: http://gstreamer-devel.966125.n4.nabble.com/
> _______________________________________________
> gstreamer-devel mailing list
> [hidden email]
> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel