結論
FFmpegは-vf "scale=1920:1080:flags=lanczos"を使ってビデオをアップスケールします。Lanczosはアップスケーリングに最適なスケーリングアルゴリズムです。デノイズには、hqdn3dがエッジを保持しながらノイズを低減します。手ぶれ補正には、vidstabが2パス処理でカメラの揺れに対応します。これら3つすべてを単一のフィルターチェーンに結合して、品質向上パイプラインを構築します。
はじめに
FFmpegを使ったビデオ品質向上は、解像度変更だけにとどまりません。真の強化は、解像度アップスケーリングとインテリジェントなデノイズ、オプションの手ぶれ補正を組み合わせることで実現します。各ステップは、ソフトまたはピクセル化した映像、粒子の粗いまたはノイズの多いフレーム、不安定なカメラの動きといった異なる品質問題に対処します。
このガイドでは、各技術を個別に説明し、それらを組み合わせる方法を示します。
スケーリングアルゴリズム
スケーリングアルゴリズムは、FFmpegがアップスケーリング時に新しいピクセルをどのように埋めるかを決定します。その選択は出力品質に直接影響します。
| アルゴリズム | 速度 | 品質 | 最適な用途 |
|---|---|---|---|
neighbor |
最速 | 最低 | ピクセルアート |
bilinear |
速い | 低い | 速度が重要な場合 |
bicubic |
中程度 | 良い | 一般的なダウンサイジング |
lanczos |
遅い | 最高 | アップスケーリング |
Lanczosで1080pにアップスケール:
ffmpeg -i input_720p.mp4 -vf "scale=1920:1080:flags=lanczos" -c:v libx264 -crf 20 output_1080p.mp4
アスペクト比を維持:
ffmpeg -i input.mp4 -vf "scale=1920:-2:flags=lanczos" -c:v libx264 -crf 20 output.mp4
-2はアスペクト比を維持しつつ、高さを自動で2の倍数に調整します。
4Kにスケール:
ffmpeg -i input.mp4 -vf "scale=3840:-2:flags=lanczos" -c:v libx264 -crf 18 -preset slow output_4k.mp4
-preset slowは圧縮効率を高め、高解像度での品質向上に有効です。
hqdn3dによるデノイズ
hqdn3dフィルターは高品質な3Dデノイズで、エッジを保ちながら粒状性やノイズを除去します。
ffmpeg -i noisy_video.mp4 -vf "hqdn3d=4:3:6:4.5" -c:v libx264 -crf 20 denoised.mp4
パラメータ(luma_spatial:chroma_spatial:luma_temporal:chroma_temporal):
-
luma_spatial(0-16): 輝度チャンネルの空間ノイズ(デフォルト4) -
chroma_spatial(0-16): 色チャンネルの空間ノイズ(デフォルト3) -
luma_temporal(0-16): 輝度の時間的平滑化(デフォルト6) -
chroma_temporal(0-16): 色の時間的平滑化(デフォルト4.5)
強力なデノイズ例:
ffmpeg -i grainy.mp4 -vf "hqdn3d=10:8:15:10" -c:v libx264 -crf 20 clean.mp4
値を大きくするとノイズ除去が強くなりますが、細部が失われることもあるので調整が必要です。
軽いデノイズ(ディテール重視):
ffmpeg -i video.mp4 -vf "hqdn3d=2:1.5:3:2.5" -c:v libx264 -crf 20 output.mp4
vidstabによる手ぶれ補正
vidstabフィルターは2パス方式です。まず動きを分析し、次に補正を適用します。
インストールの確認:
ffmpeg -filters | grep vidstab
macOSならbrew install ffmpegでサポートされます。
パス1: 動き分析
ffmpeg -i shaky_video.mp4 -vf "vidstabdetect=stepsize=6:shakiness=8:accuracy=9:result=transform.trf" -f null -
-
shakiness=8(1-10): 揺れの大きさ -
accuracy=9(1-15): 検出精度
パス2: 手ぶれ補正
ffmpeg -i shaky_video.mp4 -vf "vidstabtransform=input=transform.trf:zoom=1:smoothing=10" -c:v libx264 -crf 20 stabilized.mp4
-
zoom=1: エッジのクロッピング補正 -
smoothing=10: パスの滑らかさ
積極的な手ぶれ補正:
ffmpeg -i video.mp4 -vf "vidstabtransform=input=transform.trf:zoom=3:smoothing=30:optzoom=1" -c:v libx264 -crf 20 stable.mp4
-
optzoom=1: ズーム量を自動最適化
品質向上パイプラインの結合
3つの操作(デノイズ→スケール→手ぶれ補正)を単一のフィルターチェーンで処理できます。
ffmpeg -i source.mp4 \
-vf "hqdn3d=4:3:6:4.5,scale=1920:-2:flags=lanczos,vidstabtransform=input=transform.trf:zoom=1:smoothing=10" \
-c:v libx264 -crf 18 -preset slow \
-c:a copy \
enhanced.mp4
この順序で適用することで、ノイズが高解像度に拡大されるのを防ぎます。
事前に
vidstabdetectパスを実行してtransform.trfを生成してください。
シャープネスフィルター
映像がソフトに見える場合はシャープネスを活用しましょう。
ffmpeg -i video.mp4 -vf "unsharp=5:5:1.5:5:5:0.5" -c:v libx264 -crf 20 sharpened.mp4
-
lx:ly:la:cx:cy:ca(輝度/色差のサイズ・量)-
lx:ly— 輝度マトリックスサイズ -
la— 輝度量(正=シャープ、負=ぼかし) -
cx:cy:ca— 色差
-
軽め: unsharp=3:3:0.5:3:3:0.0
強め: unsharp=5:5:2.5:5:5:0.0
パフォーマンスに関する考慮事項
各種強化処理はCPU負荷が高いです。10分の1080p動画でのおおよその処理時間:
- 単純なスケール: 2-5分
- スケール + hqdn3d: 5-10分
- スケール + hqdn3d + vidstab: 15-25分
-presetで速度と容量を制御できます:
-
ultrafast— 最速・大容量 -
fast— 中間 -
slow— 高品質・最小容量 -
veryslow— 追加効果は少なめ
バッチ処理は並列化で高速化できます。例:
ls *.mp4 | parallel ffmpeg -i {} -vf "scale=1920:-2:flags=lanczos" -c:v libx264 -crf 20 enhanced_{/}
AIビデオアップスケーリングAPIへの接続
AI駆動のアップスケーリングは、FFmpegよりも優れた結果を得たい場合に有効です。APIを使ってニューラルアップスケーリングを実行できます。
WaveSpeedAIの例:
POST https://api.wavespeed.ai/api/v2/wavespeed-ai/video-enhance
Authorization: Bearer {{WAVESPEED_API_KEY}}
Content-Type: application/json
{
"video_url": "https://storage.example.com/source-video.mp4",
"scale": 2,
"enhance": true
}
Apidogでテストする際のアサーション例:
Status code is 200
Response body has field id
出力の完成をステータスエンドポイントでポーリングし、AI出力とFFmpegのLanczos出力を比較しましょう。AIアップスケーリングはテクスチャやディテールの再現に強みがありますが、FFmpegは高速・無料です。標準用途はFFmpeg、最高品質が必要な場合はAI APIを使い分けましょう。
よくある質問
Lanczosは常にバイキュービックより優れていますか?
アップスケーリングではLanczosが最適です。ダウンサイジングではバイキュービックも十分な品質で高速です。
vidstabはスマートフォン映像にも使えますか?
はい。スマホ動画にはshakinessを8-10に上げると効果的です。
手ぶれ補正の縁取りにはどれくらいズームが必要?
揺れの大きさによりますが、通常3-8%。optzoom=1で自動設定できます。
FFmpegで低解像度の歴史的映像も強化できる?
ある程度可能ですが、AIベースのアップスケーリング(例: ESRGANやAPI)はより優れた結果を出します。
デノイズは再生を遅くしますか?
いいえ。デノイズは変換時の処理で、出力動画の再生には影響しません。
Top comments (0)