We are still actively working on the spam issue.
Difference between revisions of "User:Ergopon/WebM Tutorial"
(Created page with "This guide assumes that you have installed gentoo. == The basic command == <code>ffmpeg -i input.mkv output.webm</code> Wow! Is it really that easy? Yes. Yes it is. Ho...") |
|||
Line 27: | Line 27: | ||
For webms, quality is controlled by 2 general settings: | For webms, quality is controlled by 2 general settings: | ||
− | + | === Bitrate === | |
− | |||
− | |||
Bitrate is simply the amount of data that goes into each second. Higher bitrates mean higher quality, but also with a bigger filesize. | Bitrate is simply the amount of data that goes into each second. Higher bitrates mean higher quality, but also with a bigger filesize. | ||
Line 37: | Line 35: | ||
− | + | === CRF === | |
− | |||
CRF is a setting that tries to make each second meet a certain amount of "quality." Some scenes need less data to look good, so the extra data can be used for other scenes. | CRF is a setting that tries to make each second meet a certain amount of "quality." Some scenes need less data to look good, so the extra data can be used for other scenes. | ||
Line 46: | Line 43: | ||
− | Place your settings after your input. For example: | + | Place your settings after your input. In general, this is where your options should always go. For example: |
− | <code>ffmpeg -i input.mkv -b:v 2M -crf 10 output.webm</code> | + | <code>ffmpeg -i input.mkv <span style="color:blue">-b:v 2M -crf 10</span> output.webm</code> |
You should always set both a bitrate and a CRF or else it will default to something really shitty. Optimizing these two settings will make your webm pretty decent already. | You should always set both a bitrate and a CRF or else it will default to something really shitty. Optimizing these two settings will make your webm pretty decent already. | ||
+ | |||
+ | |||
+ | == 2 pass encoding == | ||
+ | You should use 2 pass encoding whenever possible. During 2 pass encoding, ffmpeg scans the file once before encoding it. This makes the encoding faster and more efficient. | ||
+ | |||
+ | You need to use two commands to tell Ffmpeg to use 2 pass encoding. | ||
+ | |||
+ | <code>ffmpeg -i input.mkv <span style="color:blue">-pass 1</span> output.webm</code> | ||
+ | <code>ffmpeg -i input.mkv <span style="color:blue">-pass 2</span> output.webm</code> | ||
+ | |||
+ | Enter the second after the first has finished. Answer "yes" when ffmpeg asks to overwrite. It will generate a log file that you can delete after your webm has finished encoding. | ||
+ | |||
+ | The rule for 2 pass encodings is that all of your options must be the same except for <code>-pass</code>. If you don't want to keep answering "yes," add <code>-y</code> to your options. |
Revision as of 05:09, 23 April 2014
This guide assumes that you have installed gentoo.
The basic command
ffmpeg -i input.mkv output.webm
Wow! Is it really that easy? Yes. Yes it is. However, this will give you a really shitty webm that everyone will mock you for. You might as well be posting gifs. In order to make good quality webms, we need to add extra options to fine-tune it.
First, let's examine the structure of an ffmpeg command.
ffmpeg
Starts the ffmpeg program you have on your computer. Pretty straightforward.
-i input.mkv
The file you want to convert. You always need an -i in front. If the filename has space you need to enclose it in quotes: -i "my file.mkv"
output.webm
The name of the converted webm.
Basic options
Look at your webm. It is really shitty. How are you going to make it less shitty? By increasing the quality.
For webms, quality is controlled by 2 general settings:
Bitrate
Bitrate is simply the amount of data that goes into each second. Higher bitrates mean higher quality, but also with a bigger filesize.
-b:v BITRATE
"BITRATE" can be values such as 320K, 2M, and so on.
CRF
CRF is a setting that tries to make each second meet a certain amount of "quality." Some scenes need less data to look good, so the extra data can be used for other scenes.
-crf NUMBER
"NUMBER" can be a value from 4 - 63, where lower is better quality.
Place your settings after your input. In general, this is where your options should always go. For example:
ffmpeg -i input.mkv -b:v 2M -crf 10 output.webm
You should always set both a bitrate and a CRF or else it will default to something really shitty. Optimizing these two settings will make your webm pretty decent already.
2 pass encoding
You should use 2 pass encoding whenever possible. During 2 pass encoding, ffmpeg scans the file once before encoding it. This makes the encoding faster and more efficient.
You need to use two commands to tell Ffmpeg to use 2 pass encoding.
ffmpeg -i input.mkv -pass 1 output.webm
ffmpeg -i input.mkv -pass 2 output.webm
Enter the second after the first has finished. Answer "yes" when ffmpeg asks to overwrite. It will generate a log file that you can delete after your webm has finished encoding.
The rule for 2 pass encodings is that all of your options must be the same except for -pass
. If you don't want to keep answering "yes," add -y
to your options.