[FFmpeg-user] libvpx-vp9 not using all 4 real cores (no HT CPU) like libx264 does (in top: ~250% vs ~387%)

D dcmhoybdpzkh at web.de
Thu Nov 26 19:06:59 CET 2015

Thanks. I added these options. However, I forgot to see and mention that 
in both cases the output b.webm is corrupted.
ffmpeg's output file is not corrupted but the 4-core usage is only at 
the mentioned ~250%.
So, yeah, vpxenc uses ~350% but file output is always corrupted and 
ffmpeg uses only ~250% and file is not corrupted.

Another problem is the filesize:
Good -- 144MB: $ ./ffmpeg -i a.mp4 -c:v libvpx-vp9 -crf 23 -cpu-used 2 
-threads 4 -c:a libvorbis a.webm
Bad -- 18.8MB: $ ./vpxenc a.mp4 -o a.webm --codec=vp9 -w 1920 -h 1080 -p 
1 --cpu-used=2 --threads=4 --end-usage=vbr --end-usage=cq --cq-level=23

The output file was still corrupted when trying a different input file. 
No problems using ffmpeg (except for the only ~250% 4-core usage of 
course). So, there's this other new problem now.

Some of the settings I tried were from here: 
http://www.webmproject.org/docs/encoder-parameters/ "10. Sample Command 
Lines". You think they should be working. I tried e.g. adding and 
removing "--i420" and "--yv12" both with "--codec=vp8" and "--codec=vp9" 
and removing some of the other parameter but not a single $vpxenc 
command produced a valid, non-corrupt, file.
Now same test with latest master:
$ make distclean
$ git pull
$ git checkout master
$ ./configure
$ make -j4
I did less tries this time because if it produced a corrupt file on the 
first command, the same is going to happen with other commands.
Anyway this command e.g. did not work:
/libvpx$ ./vpxenc a.mp4 -o a.webm --codec=vp9 -w 1920 -h 1080 -p 1 -t 4  
--good --cpu-used=2 --end-usage=vbr --end-usage=cq --cq-level=23

Don't know why it's not working. May someone post their working 
commands. Or as already asked, see how much % top displays with the 
ffmpeg commands in the first post (a >=4-core CPU is needed).

I'm not sure if VP9-v1.5 should not be more like VP9-v0.5-alpha.

On 26.11.2015 16:59, Moritz Barsnick wrote:
> On Thu, Nov 26, 2015 at 15:14:16 +0100, D wrote:
>> It seems that --cpu-used is a bit similar to the -crf option. And
> ffmpeg's "-crf" maps to vpxenc's "--cq-level=" and, in your use case,
> "--end-usage=cq".
> ffmpeg's "-cpu-used" maps to vpxenc's "--cpu-used".
> I think "-threads" maps directly.
> How do I know? I checked the source. ;-) If you use "-loglevel debug"
> to ffmpeg, the libvpx encoder will also dump quite a lot of information
> about the configuration it is using!
> Just to make sure you have comparable options...
> Moritz
> _______________________________________________
> ffmpeg-user mailing list
> ffmpeg-user at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-user

More information about the ffmpeg-user mailing list