まえがき
ブラウザがいい感じに再生してくれるので便利なんですよね。
safariは未対応だけどね。
インストール
macportsでパッケージ管理しているので、それ経由でインストールする。
$ sudo port install ffmpeg +nonfree
h.264, h.265扱いたい場合は +nonfree を入れておいた方が良い。
変換設定
こだわりなければ、
Webm WikiのガイドのVOD Recommended Settings通りで良いと思う。
強制上書きの -y
オプションを加えると楽。
$ ffmpeg -i <source> -c:v libvpx-vp9 -pass 1 -b:v 1000K -threads 8 -speed 4 \
-tile-columns 6 -frame-parallel 1 \
-an -f webm -y /dev/null
$ ffmpeg -i <source> -c:v libvpx-vp9 -pass 2 -b:v 1000K -threads 8 -speed 1 \
-tile-columns 6 -frame-parallel 1 -auto-alt-ref 1 -lag-in-frames 25 \
-c:a libopus -b:a 64k -f webm -y out.webm
ビットレートは適切な値を指定した方が良いかもしれない。
必要であれば-r
でフレームレート、-s
で解像度、-ss
で開始点、-t
で対象時間をそれぞれ変える。
FFmpeg wikiにもガイドがある。
(WebMサイトの方が分かりやすいと思う)
ビットレートについて
変換元動画も圧縮済みである場合は、同じくらいの値を指定すれば良い。
ビットレートはffprobe
で見ることができる。
わからない場合の目安としては以下参照
- 映像部分については、youtubeの推奨エンコード設定
- 音声部分については、OpusのRecommended Settings
Opusは優秀なようで、音質にこだわりがないのであれば最大でも 96kb/sで十分っぽい。
動画情報の取得
ffprobeで得られる
$ ffprove file.webm
オプション概説
オプション | 内容 |
---|---|
-i | 入力ファイルを指定する。 URL(http://….)も指定できる。 |
-f | 出力フォーマットを指定する。ffmpeg -formats で一覧が見られる。 |
-c:v, -c:a | 映像, 音声のコーデックを指定する。変換しない場合は copy を指定。ffmpeg -codecs で一覧が見られる。 |
-b:v, -b:a | 映像, 音声のビットレートを指定する。 |
-vn, -an | 映像, 音声を出力しない。-vn すると音声のみ取リ出す |
-pass | 2-passエンコード時するときに何番目のパスかを指定する。 |
-s | 解像度を指定。(例: 640x380など) |
-r, -ar | 映像, 音声のフレームレートを指定する。映像であれば24、25、30、48、50、60。音声であれば、44100、48000が一般的。 |
-ss, -t | 指定部分のみを出力する。例えば-ss 10 -t 5 で開始10秒めから5秒間のみを出力する。-i オプションより前にあると入力ファイルから切り出しを行い、後ろにあると変換出力結果から切り出しを行う。 |
-y | 出力ファイルが存在していた場合に、上書きする |
詳細はドキュメント参照のこと。
上述の変換設定の節にあって、ここに書かなかったものは、エンコード/デコード時の負荷、速度、品質に関わるオプション(たぶん)。