New Google VP9 Guide

1,000 views
Skip to first unread message

Jai Krishnan

unread,
Mar 2, 2017, 4:14:17 PM3/2/17
to webm-d...@webmproject.org
Google Developer Relations has published a new VP9 guide which features an introduction to ffmpeg encoding. This includes recommended settings for video on demand encodes done in FFMPEG. We are planning to publish more advanced modules, and would appreciate your input on which topics to address first (detailed parameter settings, live encoding, HDR / profile 2, 360 / VR, etc).

Reply to this email with any feedback about the current site or recommendations for future topics. 

Thanks, 
Jai Krishnan
Google Product Manager

matthew....@gmail.com

unread,
Mar 13, 2017, 1:50:06 PM3/13/17
to WebM Discussion


On Thursday, March 2, 2017 at 9:14:17 PM UTC, Jai Krishnan wrote:
Google Developer Relations has published a new VP9 guide which features an introduction to ffmpeg encoding. This includes recommended settings for video on demand encodes done in FFMPEG. We are planning to publish more advanced modules, and would appreciate your input on which topics to address first (detailed parameter settings, live encoding, HDR / profile 2, 360 / VR, etc).

Hi Jai,

Thanks for the updated docs.  They seem a lot more comprehensive than the previous set I'd been using at http://wiki.webmproject.org/ffmpeg/vp9-encoding-guide.

Firstly, a couple of points of note where the updated docs differ from the previous guide. As I don't have much experience of encoding, I don't know whether these are because of errors, omissions or simply changes in the encoder:

1) No use of '-an' in the first pass to prevent processing the audio stream (frustratingly, this appears to make ffmpeg refuse to update the 'time=' counter during pass 1, so it's hard to tell how much progress is being made)
2) The previous guide output to /dev/null during the 1st pass to save needlessly writing to disk.
3) The parameter combo of '--auto-alt-ref 1 --lag-in-frames 25' that turn on VP9's alt-ref feature is omitted in the new guide; are these no longer necessary?
4) The multi-core decoding related parameter, '--frame-parallel' is omitted in the new guide; again, is this no longer necessary?

There's also a few mistakes in the example commands, where they don't match up with the recommendations given earlier in the documentation:

1) 640x360 - the pass 2 speed should be 1, not 4
2) 640x480 (both LQ & MQ) - the pass 2 speed should be 1, not 4
3) 1280x720 (both FPS) - the pass 2 speed should be 2, not 4
4) 1920x1080 (both FPS) - the pass 2 tile-columns should be 2, not 4
5) 1920x1080 (both FPS) - the pass 2 speed should be 2, not 4
6) 2560x1440 (both FPS) - the pass 2 speed should be 2, not 4
7) 3840x2160 (both FPS) - the pass 2 speed should be 2, not 4

Finally, I think there's a typo in the 'Tiling and Threading Recommendations' section: "For example, a 640x480 encode would use the command-line --tile-columns 2 --threads 4"

But, given the table above it, I think it should be '--tile-columns 1 --threads 4'.

Kind Regards,

Matt.

Jiang Yixing

unread,
Apr 5, 2017, 6:39:01 PM4/5/17
to webm-d...@webmproject.org, j...@fb.com
Hi Jai,

Thanks for the updates. This page looks great.

A couple of feedbacks:
1. When I search for "VP9 encoding guide", this page is not on the first page :) I only found it through my gmail. 
2. Would you be able to add vpxenc commands there, or also update the usage documentation on vpxenc's commands? I have been following https://www.webmproject.org/docs/encoder-parameters/ but this is really outdated. Currently I am making some customization on libvpx and got stuck in even getting vpxenc encoding correctly.

Thank you very much,
Yixing

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

Bib Fortuna

unread,
Apr 7, 2017, 4:00:22 AM4/7/17
to WebM Discussion
Hi Jai,

I just noticed that the VP9 guide has not been updated since February 22. Is the guide still under review? It is a very helpful ressource, and I would appreciate it very much if  there would be updates!

Thank you very much for your support!

Bib

phantom....@gmail.com

unread,
May 9, 2017, 2:00:42 AM5/9/17
to WebM Discussion
Who wrote samples? There are mistakes.

Look here:
ffmpeg -i tears_of_steel_1080p.webm -vf scale=320x240 -b:v 150k \
  -minrate 75k -maxrate 218k -tile-columns 0 -g 240 -threads 2 \
  -quality good -crf 37 -c:v libvpx-vp9 -c:a libopus \
  -pass 1 -speed 4 tos-320x240.webm && \
ffmpeg -i tears_of_steel_1080p.webm -vf scale=320x240 -b:v 150k \
  -minrate 75k -maxrate 218k -tile-columns 0 -g 240 -threads 2 \
  -quality good -crf 37 -c:v libvpx-vp9 -c:a libopus \
  -pass 2 -speed 1 -y tos-320x240.webm

A bitrate (-minrate 75k -maxrate 218k) mode and CRF mode cannot be enabled at the same time.


ffmpeg -i tears_of_steel_1080p.webm -vf scale=320x240 -b:v 150k \
 
-minrate 75k -maxrate 218k -tile-columns 0 -g 240 -threads 2 \
 
-quality good -crf 37 -c:v libvpx-vp9 -c:a libopus \
 
-pass 1 -speed 4 tos-320x240.webm && \
ffmpeg
-i tears_of_steel_1080p.webm -vf scale=320x240 -b:v 150k \
 
-minrate 75k -maxrate 218k -tile-columns 0 -g 240 -threads 2 \
 
-quality good -crf 37 -c:v libvpx-vp9 -c:a libopus \
 
-pass 2 -speed 1 -y tos-320x240.webm
ffmpeg -i tears_of_steel_1080p.webm -vf scale=320x240 -b:v 150k \
 
-minrate 75k -maxrate 218k -tile-columns 0 -g 240 -threads 2 \
 
-quality good -crf 37 -c:v libvpx-vp9 -c:a libopus \
 
-pass 1 -speed 4 tos-320x240.webm && \
ffmpeg
-i tears_of_steel_1080p.webm -vf scale=320x240 -b:v 150k \
 
-minrate 75k -maxrate 218k -tile-columns 0 -g 240 -threads 2 \
 
-quality good -crf 37 -c:v libvpx-vp9 -c:a libopus \
 
-pass 2 -speed 1 -y tos-320x240.webm
ffmpeg -i tears_of_steel_1080p.webm -vf scale=320x240 -b:v 150k \
 
-minrate 75k -maxrate 218k -tile-columns 0 -g 240 -threads 2 \
 
-quality good -crf 37 -c:v libvpx-vp9 -c:a libopus \
 
-pass 1 -speed 4 tos-320x240.webm && \
ffmpeg
-i tears_of_steel_1080p.webm -vf scale=320x240 -b:v 150k \
 
-minrate 75k -maxrate 218k -tile-columns 0 -g 240 -threads 2 \
 
-quality good -crf 37 -c:v libvpx-vp9 -c:a libopus \
 
-pass 2 -speed 1 -y tos-320x240.webm
Reply all
Reply to author
Forward
0 new messages