ffmpeg よく使うコマンド

📢 この記事は gemini-3-flash-preview によって翻訳されました

音声や動画の処理といえば、ffmpegっていうオープンソースツールは外せないよね。前から使ってはいたんだけど、メモもバラバラだったし、たまにしか使わないから記事にしようとは思ってなかったんだ。でも、今回は溜まってたメモをまとめてみようと思うよ(記録してなかったのも多いから、自分で補足しながらね)。

動画のフォーマット変換

1
ffmpeg -i video.mp4 video.avi

動画を音声に変換

1
ffmpeg -i input.mp4 -vn output.mp3
  • -vn:出力ファイルで動画の記録を無効にするっていう意味。

動画の再エンコード

たまに動画のエンコード形式が壊れてて、一部のデバイスで再生するとカクつくことがあるんだ。そういう時は再エンコードが必要になるよ。

1
ffmpeg -i "video.mp4" -c:v libx264 -c:a aac -preset fast "video_re.mp4"

これで、動画を x264、音声を aac で再エンコードできる。

音なしの webm 動画に変換

1
ffmpeg -i input.mp4 -an -c:v libvpx-vp9 -crf 30 -b:v 0 output.webm

各パラメータの意味はこんな感じ:

  • -an:音を消すための重要なパラメータ。
  • -c:v libvpx-vp9:動画エンコード形式を指定(vp9 は汎用性が高い形式。爆速で変換したいなら libvpx を使ってもいいよ)。
  • -crf 30:画質をコントロールする。普通は 0-63 の間で、数字が小さいほど高画質でファイルが大きくなるよ。
  • -b:v 0:vp9 エンコードの時は、普通ビットレートを 0 にして -crf パラメータに画質を任せるんだ。

GIF に変換

-loop 0 パラメータを使うとループ再生になるよ。

1
ffmpeg -i input.mp4 -loop 0 output.gif

もし背景を透明にしたいなら、2つのパターンがあるんだ。

1つ目は、元の動画にすでに透過チャネル(ProRes 4444.mov とか)がある場合。そのまま変換するとノイズが出ることがあるから、パレット(Palette)フィルタを使って透明色が正しくマッピングされるようにするのが一般的だよ。

1
ffmpeg -i input.mov -vf "fps=15,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" -loop 0 output.gif

パラメータの詳細はこれ:

  • fps=15:フレームレートの設定。書かなければ元の動画と同じになる。

  • split[s0][s1]:動画を2系統に分ける。ここでは s0 をパレット作成に、s1 を画像出力に使うんだ。

  • [s0]palettegen[p]s0 ストリームから専用の 256 色パレットを作って p と命名。デフォルトでパレット生成時に透明色は自動で維持されるよ。

  • [s1][p]paletteuse:作ったパレット p を動画ストリーム s1 に適用する。

2つ目は、元の動画が単色背景の場合。colorkey フィルタを使って背景を抜くことができるよ。

1
ffmpeg -i input.mp4 -vf "fps=15,colorkey=0x00FF00:0.1:0.1,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" -loop 0 output.gif

colorkey=0x00FF00:0.1:0.1 の具体的な意味は:

  • 0x00FF00:抜きたい色。これは純粋な緑。黒なら 0x000000 だね。
  • 最初の 0.1:近似度(Similarity)。0.01-1.0 で、一致度を完全一致から広範囲まで設定できる。だいたい 0.1-0.3 くらいに設定するのが一般的。
  • 2番目の 0.1:混合度(Blend)。境界線をなめらかにするために使うよ。

動画と音声を合成

まずは音声エンコードの互換性があるか確認しよう(AAC とか)。

1
ffprobe audio.mp3

互換性があるなら、そのままコピーして合成すればOK。

1
ffmpeg -i video.mp4 -i audio.mp3 -c:v copy -c:a copy output.mp4

もし音声に互換性がないなら、音声形式を変換する必要があるよ。

1
ffmpeg -i video.mp4 -i audio.mp3 -c:v copy -c:a aac output.mp4

画像フォーマット

ffmpeg は画像のフォーマット変換にも使えるんだ。一番簡単なのはこれ。

1
ffmpeg -i input.png output.jpg

ちょっと形式を変えたい時にすごく便利だよ。

This post is licensed under CC BY-NC-SA 4.0 by the author.

Visits Since 2025-02-28

Hugo で構築されています。 | テーマ StackJimmy によって設計されています。