この記事でわかること

  • 横動画(16:9)を縦動画(9:16)に変換する方法
  • 中央クロップ(crop)で縦動画を切り出す方法
  • 黒帯(pad)や背景でパディングする方法
  • ぼかし背景付きで縦動画に変換する方法
  • Instagram Reels / TikTok向けの推奨解像度設定

テスト済みバージョン: FFmpeg 6.1で確認済み
対象 OS: Windows / macOS / Linux


縦動画フォーマットの基本

項目
アスペクト比9:16
解像度(標準)1080×1920 px
解像度(最小)540×960 px
フレームレート24〜60fps

方法1: 中央クロップ(crop)

横動画から中央を縦動画サイズで切り出します。被写体が中央にある場合に最適です。

1920×1080 → 1080×1920 中央クロップ

まず高さを1920にスケールアップし、そこから幅1080で中央クロップします:

ffmpeg -i input.mp4 -vf "scale=-1:1920,crop=1080:1920:(iw-1080)/2:0" output_vertical.mp4

横動画から9:16サイズを中央で切り出す(スケールなし)

1920×1080の動画から中央の1080×1080を切り出し、縦長にする場合:

ffmpeg -i input.mp4 -vf "crop=1080:1080:(iw-1080)/2:(ih-1080)/2,scale=1080:1920:force_original_aspect_ratio=decrease,pad=1080:1920:(1080-iw)/2:(1920-ih)/2" output_vertical.mp4

方法2: 黒帯パディング(pad)

動画全体を縮小して上下に黒帯を加えます。全体が見えますが黒帯が目立ちます。

横動画を縦フォーマットに黒帯付きで収める

ffmpeg -i input.mp4 -vf "scale=1080:-2,pad=1080:1920:0:(1920-ih)/2:black" output_padded.mp4

カラー背景でパディング

ffmpeg -i input.mp4 -vf "scale=1080:-2,pad=1080:1920:0:(1920-ih)/2:color=0x1a1a2e" output_padded_color.mp4

方法3: ぼかし背景パディング(推奨)

元の動画をぼかして背景に使い、その上に元の動画を重ねます。黒帯がなく視覚的に自然です。

ffmpeg -i input.mp4 -filter_complex "[0:v]scale=1080:1920:force_original_aspect_ratio=increase,crop=1080:1920,boxblur=20:3[bg];[0:v]scale=1080:-2[fg];[bg][fg]overlay=(W-w)/2:(H-h)/2[out]" -map "[out]" -c:v libx264 -b:v 8M -pix_fmt yuv420p -c:a copy output_blur_bg.mp4

この方法の処理の流れ:

  1. [bg]: 元動画を1080×1920に引き伸ばし(アスペクト比無視)、ぼかし背景を作成
  2. [fg]: 元動画を幅1080に縮小(アスペクト比維持)
  3. overlay: ぼかし背景の上に中央配置で合成

方法4: 特定位置でのクロップ

被写体が中央でない場合、クロップ位置を調整します。

左側を優先してクロップ(x=0)

ffmpeg -i input.mp4 -vf "scale=-1:1920,crop=1080:1920:0:0" output_left.mp4

右側を優先してクロップ

ffmpeg -i input.mp4 -vf "scale=-1:1920,crop=1080:1920:iw-1080:0" output_right.mp4

任意のx座標でクロップ

ffmpeg -i input.mp4 -vf "scale=-1:1920,crop=1080:1920:300:0" output_custom.mp4

アスペクト比を正確に確認する

ffmpeg -i input.mp4 -vf "crop=iw:ih*9/16:(iw-iw)/2:(ih-ih*9/16)/2" output.mp4

音声を維持する

すべてのコマンドで -c:a copy または -c:a aac -b:a 256k を追加することで音声を保持できます:

ffmpeg -i input.mp4 -vf "scale=-1:1920,crop=1080:1920:(iw-1080)/2:0" -c:v libx264 -b:v 8M -pix_fmt yuv420p -c:a aac -b:a 256k output_vertical.mp4

crop フィルタの基本構文

crop=w:h:x:y
パラメータ説明
w切り出す幅
h切り出す高さ
x切り出し開始位置(左から)
y切り出し開始位置(上から)

iw(元の幅)、ih(元の高さ)などの変数が使用できます。


関連リソース

よく使うオプション・フィルタ・コーデック設定をまとめた PDF チートシートです。手元に置いておくと調べる時間を短縮できます。

FFmpeg チートシート

関連記事


動作確認: ffmpeg 6.1 / Ubuntu 24.04 (GitHub Actions runner)
一次ソース: ffmpeg.org/ffmpeg-filters.html#crop / ffmpeg.org/ffmpeg-filters.html#pad


よくある質問

TikTok の推奨解像度は?

1080×1920(9:16)が最も無難です。TikTok 側で再エンコードされるため、ビットレートは 5〜8 Mbps で十分です。

横動画を縦に変換すると画質が落ちる?

解像度が下がる方向(クロップ)なら劣化はほぼ無視できます。逆に上下に黒帯を付けて 9:16 にする方法は推奨しません — 視聴体験が悪くなります。

iPhone で撮った縦動画が横向きで再生される

iPhone は撮影時に「回転メタデータ」を埋め込みます。一部のプレーヤーがこれを読まずに横向き再生します。ffmpeg -i in.mov -metadata:s:v rotate=0 -vf transpose=1 out.mp4 で物理回転して保存するのが確実です。

YouTube Shorts と TikTok で別々に作るべき?

基本同じファイルで OK です。両プラットフォームとも 1080×1920 推奨で、長さ上限が違うだけ(Shorts 60秒 / TikTok 10分)。動画の長さで使い分けてください。

Reels と Shorts はどちらにアップが先?

プラットフォームの「最初の投稿者」を判定するアルゴリズムがあるため、メインプラットフォームに先にアップして、他はあとで投稿することをおすすめします。