Use vpxdec and show on Linux Framebuffer

21 views
Skip to first unread message

xxu...@gmail.com

unread,
Oct 10, 2017, 2:18:47 PM10/10/17
to Application Developers
Hello

I'm starting an application which will need to show VP9 streams on Linux framebuffer. I'm using a Raspberry Pi 3 to do it.
I built libvpx on it, I took a video and converted it to vp9 succesfully.
Now I'm trying to understand how can I use vpxdec to decode and show the video.
What I did so far was using the vpxdec to decode raw yuv frames. I did manage how to show those frames on the framebuffer, but the conversion is a bit slow (I need to convert from YUV to RGB, and all those multiplication needed takes some time). The video is 480x640, and I can convert and play about to 35 frames per second.
What I am trying to do is to output vpxdec to my program, I tried with a pipe, vpxdec sends the output to the stdout, and my program catches the data from stdin, convert to RGB and show on framebuffer. It worked nice, but it is really slow (I think I see 3 to 5 frames per second). 

I would like to know if there is a better method to output the decoded video to framebuffer.
Sorry if this is a dumb question, I'm pretty new to this topic of VP9 and video streaming.

Best Regards!

Christian Schultz

Johnny McCullough

unread,
Mar 31, 2018, 6:01:21 AM3/31/18
to apps-...@webmproject.org
Hi,
You need to use a graphics shader program to convert YUV to RGB.  Check out opengl, or if you're on the M$ platform, DirectX is a better choice.

--
You received this message because you are subscribed to the Google Groups "Application Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to apps-devel+unsubscribe@webmproject.org.
To post to this group, send email to apps-...@webmproject.org.
Visit this group at https://groups.google.com/a/webmproject.org/group/apps-devel/.
For more options, visit https://groups.google.com/a/webmproject.org/d/optout.

Johnny McCullough

unread,
Mar 31, 2018, 6:03:23 AM3/31/18
to apps-...@webmproject.org
Here's a stackoverflow link that talks about using opengl's shader langugage (glsl) to do that very job, maybe it'll point you in the right direction.
https://stackoverflow.com/questions/17105386/using-opengl-es-shader-to-convert-yuv-to-rgb

On 10 October 2017 at 19:15, <xxu...@gmail.com> wrote:

--
Reply all
Reply to author
Forward
0 new messages