16

I am trying to convert input.mp4 video to output.mkv using vp9 codec. I have install development version of ffmpeg via: brew install ffmpeg --devel.

ffmpeg -i input.mp4 -vcodec vp9 output.mkv

But I am getting error: Unknown encoder 'vp9' even the vp9 is included: ffmpeg -codecs

2
  • 1
    brew install ffmpeg --with-libvpx --with-opus Commented Feb 21, 2015 at 18:54
  • @JoelPurra Usage: brew install [options] formula|cask [...] Error: invalid option: --with-libvpx Commented Dec 18, 2021 at 17:58

2 Answers 2

13

The most basic command is:

ffmpeg -i input.mp4 -c:v libvpx-vp9 -c:a libopus output.webm

See FFmpeg Wiki: VP9 for more info.

3
3

With my version of ffmpeg,

$ ffmpeg -version
ffmpeg version 2.3.3 Copyright (c) 2000-2014 the FFmpeg developers

the command looks like this

ffmpeg -y -i input.mkv -c:v libvpx-vp9 -b:v 2000k -pass 1 -an -f webm /dev/null
ffmpeg    -i input.mkv -c:v libvpx-vp9 -b:v 2000k -pass 2 -c:a opus -b:a 64k -f webm output.webm

i.e.

  • leave out the experimental flags
  • do a two pass encoding, because the first two seconds of the output are blurry otherwise. Doing a two pass encoding is also faster than single pass.
  • when doing 2 pass, you do not need to encode the audio in the first pass as @FrankGalligan noted in a comment

Single pass is/was broken, according to http://wiki.webmproject.org/vp9/known-issues

2
  • Do not set -strict experimental. That was for older FFmpeg. When doing 2 pass, you do not need to encode the audio in the first pass. ffmpeg -y -i input.mkv -c:v libvpx-vp9 -b:v 2000k -pass 1 -an -f webm /dev/null ffmpeg -i input.mkv -c:v libvpx-vp9 -b:v 2000k -pass 2 -c:a opus -b:a 64k -f webm output.webm Commented Mar 3, 2015 at 1:32
  • Its odd no one uses cq. What is your reason to use webm vs mkv? Commented May 26, 2022 at 16:01

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.