vp8 v/s vp9 encoder in terms of performance

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

vp8 v/s vp9 encoder in terms of performance

Saurabh Bora
Hi Experts!

I am using a dummy pipeline below to test performance of vp8 encoder v/s vp9 encoder
gst-launch-1.0 videotestsrc ! autovideoconvert ! vp8enc ! vp8dec ! autovideosink

Just replace vp8 by vp9 to use vp9 encoder in the pipeline.

My observation is that, video streaming in case of vp9 encoder lags significantly as compared to vp8 encoder.

Can you please help me understand, when should one use vp9 over vp8 or vice versa?

--
Thanks and Regards,
Saurabh Bora

PH NO : 7038166900
             [hidden email]

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

Re: vp8 v/s vp9 encoder in terms of performance

Nicolas Dufresne-5
Le lundi 25 mars 2019 à 18:35 +0530, Saurabh Bora a écrit :
Hi Experts!

I am using a dummy pipeline below to test performance of vp8 encoder v/s vp9 encoder
gst-launch-1.0 videotestsrc ! autovideoconvert ! vp8enc ! vp8dec ! autovideosink

Just replace vp8 by vp9 to use vp9 encoder in the pipeline.

My observation is that, video streaming in case of vp9 encoder lags significantly as compared to vp8 encoder.

Can you please help me understand, when should one use vp9 over vp8 or vice versa?

For live streaming with vp8/vp9 encoder, you could configured the deadline, otherwise the encoder will run in "offline" mode and will take quite variable amount of time per frame and may not be real-time in the end. Try deadline=1 as an example.


--
Thanks and Regards,
Saurabh Bora

PH NO : 7038166900
             [hidden email]
_______________________________________________
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: vp8 v/s vp9 encoder in terms of performance

Saurabh Bora
Hi, 
As suggested I added the property deadline=1 to the pipeline
gst-launch-1.0 videotestsrc ! autovideoconvert ! vp8enc deadline=1 ! vp8dec ! autovideosink

Still video streaming lags significantly when vp9 encoder is used.

Can you please help understand when must one use vp9 over vp8 and vice versa?
Or is there a way to use vp9 encoder and achieve same performance as that of vp8 encoder?

On Mon, Mar 25, 2019 at 8:35 PM Nicolas Dufresne <[hidden email]> wrote:
Le lundi 25 mars 2019 à 18:35 +0530, Saurabh Bora a écrit :
Hi Experts!

I am using a dummy pipeline below to test performance of vp8 encoder v/s vp9 encoder
gst-launch-1.0 videotestsrc ! autovideoconvert ! vp8enc ! vp8dec ! autovideosink

Just replace vp8 by vp9 to use vp9 encoder in the pipeline.

My observation is that, video streaming in case of vp9 encoder lags significantly as compared to vp8 encoder.

Can you please help me understand, when should one use vp9 over vp8 or vice versa?

For live streaming with vp8/vp9 encoder, you could configured the deadline, otherwise the encoder will run in "offline" mode and will take quite variable amount of time per frame and may not be real-time in the end. Try deadline=1 as an example.


--
Thanks and Regards,
Saurabh Bora

PH NO : 7038166900
             [hidden email]
_______________________________________________
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


--
Thanks and Regards,
Saurabh Bora

PH NO : 7038166900
             [hidden email]

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

Re: vp8 v/s vp9 encoder in terms of performance

Nicolas Dufresne-5
Le lundi 25 mars 2019 à 21:50 +0530, Saurabh Bora a écrit :
Hi, 
As suggested I added the property deadline=1 to the pipeline
gst-launch-1.0 videotestsrc ! autovideoconvert ! vp8enc deadline=1 ! vp8dec ! autovideosink

Still video streaming lags significantly when vp9 encoder is used.

Can you please help understand when must one use vp9 over vp8 and vice versa?
Or is there a way to use vp9 encoder and achieve same performance as that of vp8 encoder?

VP9 is a much more complex CODEC. Did you consider of checking your CPU usage ? Maybe your CPU is just not fast enough for real-time vp9.


On Mon, Mar 25, 2019 at 8:35 PM Nicolas Dufresne <[hidden email]> wrote:
Le lundi 25 mars 2019 à 18:35 +0530, Saurabh Bora a écrit :
Hi Experts!

I am using a dummy pipeline below to test performance of vp8 encoder v/s vp9 encoder
gst-launch-1.0 videotestsrc ! autovideoconvert ! vp8enc ! vp8dec ! autovideosink

Just replace vp8 by vp9 to use vp9 encoder in the pipeline.

My observation is that, video streaming in case of vp9 encoder lags significantly as compared to vp8 encoder.

Can you please help me understand, when should one use vp9 over vp8 or vice versa?

For live streaming with vp8/vp9 encoder, you could configured the deadline, otherwise the encoder will run in "offline" mode and will take quite variable amount of time per frame and may not be real-time in the end. Try deadline=1 as an example.


--
Thanks and Regards,
Saurabh Bora

PH NO : 7038166900
             [hidden email]
_______________________________________________
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


_______________________________________________
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: vp8 v/s vp9 encoder in terms of performance

Saurabh Bora
Hi,

Following are my CPU specs:
Name -  Intel(R) Core(TM) i5-7300U CPU @ 2.60GHz   
MaxClockSpeed - 2712
Number of Cores - 2
Number of Logical Processors - 4
Physical RAM - 16 GB

Following are cpu usage details:
1) With vp8 encoder, I get 100% CPU usage
2) With vp9 encoder, I get 100% CPU usage along with following additional messages:
//------------------------------------------------------------------------------------------------------------
WARNING: from element /GstPipeline:pipeline0/GstAutoVideoSink:autovideosink0/GstD3DVideoSink:autovideosink0-actual-sink-d3dvideo: A lot of buffers are being dropped.
Additional debug info:
gstbasesink.c(2902): gst_base_sink_is_too_late (): /GstPipeline:pipeline0/GstAutoVideoSink:autovideosink0/GstD3DVideoSink:autovideosink0-actual-sink-d3dvideo:
There may be a timestamping problem, or this computer is too slow.
//---------------------------------------------------------------------------------------------------------------



Thanks and Regards,
Saurabh Bora

On Mon, Mar 25, 2019 at 10:18 PM Nicolas Dufresne <[hidden email]> wrote:
Le lundi 25 mars 2019 à 21:50 +0530, Saurabh Bora a écrit :
Hi, 
As suggested I added the property deadline=1 to the pipeline
gst-launch-1.0 videotestsrc ! autovideoconvert ! vp8enc deadline=1 ! vp8dec ! autovideosink

Still video streaming lags significantly when vp9 encoder is used.

Can you please help understand when must one use vp9 over vp8 and vice versa?
Or is there a way to use vp9 encoder and achieve same performance as that of vp8 encoder?

VP9 is a much more complex CODEC. Did you consider of checking your CPU usage ? Maybe your CPU is just not fast enough for real-time vp9.


On Mon, Mar 25, 2019 at 8:35 PM Nicolas Dufresne <[hidden email]> wrote:
Le lundi 25 mars 2019 à 18:35 +0530, Saurabh Bora a écrit :
Hi Experts!

I am using a dummy pipeline below to test performance of vp8 encoder v/s vp9 encoder
gst-launch-1.0 videotestsrc ! autovideoconvert ! vp8enc ! vp8dec ! autovideosink

Just replace vp8 by vp9 to use vp9 encoder in the pipeline.

My observation is that, video streaming in case of vp9 encoder lags significantly as compared to vp8 encoder.

Can you please help me understand, when should one use vp9 over vp8 or vice versa?

For live streaming with vp8/vp9 encoder, you could configured the deadline, otherwise the encoder will run in "offline" mode and will take quite variable amount of time per frame and may not be real-time in the end. Try deadline=1 as an example.


--
Thanks and Regards,
Saurabh Bora

PH NO : 7038166900
             [hidden email]
_______________________________________________
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


_______________________________________________
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


--
Thanks and Regards,
Saurabh Bora

PH NO : 7038166900
             [hidden email]

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

Re: vp8 v/s vp9 encoder in terms of performance

Nicolas Dufresne-5


Le mar. 26 mars 2019 06 h 25, Saurabh Bora <[hidden email]> a écrit :
Hi,

Following are my CPU specs:
Name -  Intel(R) Core(TM) i5-7300U CPU @ 2.60GHz   
MaxClockSpeed - 2712
Number of Cores - 2
Number of Logical Processors - 4
Physical RAM - 16 GB

Following are cpu usage details:
1) With vp8 encoder, I get 100% CPU usage
2) With vp9 encoder, I get 100% CPU usage along with following additional messages:
//------------------------------------------------------------------------------------------------------------
WARNING: from element /GstPipeline:pipeline0/GstAutoVideoSink:autovideosink0/GstD3DVideoSink:autovideosink0-actual-sink-d3dvideo: A lot of buffers are being dropped.
Additional debug info:
gstbasesink.c(2902): gst_base_sink_is_too_late (): /GstPipeline:pipeline0/GstAutoVideoSink:autovideosink0/GstD3DVideoSink:autovideosink0-actual-sink-d3dvideo:
There may be a timestamping problem, or this computer is too slow.
//---------------------------------------------------------------------------------------------------------------

So it's quite clear your cpu is not fast enough. That being said, these encoder can use multiple threads. Use gst-inspect-1.0 vp9enc to find information about which property to set.





Thanks and Regards,
Saurabh Bora

On Mon, Mar 25, 2019 at 10:18 PM Nicolas Dufresne <[hidden email]> wrote:
Le lundi 25 mars 2019 à 21:50 +0530, Saurabh Bora a écrit :
Hi, 
As suggested I added the property deadline=1 to the pipeline
gst-launch-1.0 videotestsrc ! autovideoconvert ! vp8enc deadline=1 ! vp8dec ! autovideosink

Still video streaming lags significantly when vp9 encoder is used.

Can you please help understand when must one use vp9 over vp8 and vice versa?
Or is there a way to use vp9 encoder and achieve same performance as that of vp8 encoder?

VP9 is a much more complex CODEC. Did you consider of checking your CPU usage ? Maybe your CPU is just not fast enough for real-time vp9.


On Mon, Mar 25, 2019 at 8:35 PM Nicolas Dufresne <[hidden email]> wrote:
Le lundi 25 mars 2019 à 18:35 +0530, Saurabh Bora a écrit :
Hi Experts!

I am using a dummy pipeline below to test performance of vp8 encoder v/s vp9 encoder
gst-launch-1.0 videotestsrc ! autovideoconvert ! vp8enc ! vp8dec ! autovideosink

Just replace vp8 by vp9 to use vp9 encoder in the pipeline.

My observation is that, video streaming in case of vp9 encoder lags significantly as compared to vp8 encoder.

Can you please help me understand, when should one use vp9 over vp8 or vice versa?

For live streaming with vp8/vp9 encoder, you could configured the deadline, otherwise the encoder will run in "offline" mode and will take quite variable amount of time per frame and may not be real-time in the end. Try deadline=1 as an example.


--
Thanks and Regards,
Saurabh Bora

PH NO : 7038166900
             [hidden email]
_______________________________________________
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


_______________________________________________
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


--
Thanks and Regards,
Saurabh Bora

PH NO : 7038166900
             [hidden email]
_______________________________________________
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: vp8 v/s vp9 encoder in terms of performance

VPoddubchak
Hi! I faced with the same problem.
I have i7 CPU and try to find configuration of vp9enc to achieve "live"
speed.
I tried many combinations and have the same results.
For now, I run this command:

gst-launch-1.0 -v autovideosrc ! videoconvert !
video/x-raw,colorimetry=bt601,width=640,height=480 ! vp9enc deadline=1
threads=3 cpu-used=5 end-usage=1 target-bitrate=1000000 ! vp9dec !
autovideosink

resulting video has delay about 5 sec and about 1-2 fps

If my PC is slow then how Chrome encodes my video in realtime in VP9 codec
when I connect by it to webconference?
Is it because of hardware acceleration in Chrome ?




--
Sent from: http://gstreamer-devel.966125.n4.nabble.com/
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel