この記事でわかること
- 横動画(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
この方法の処理の流れ:
[bg]: 元動画を1080×1920に引き伸ばし(アスペクト比無視)、ぼかし背景を作成[fg]: 元動画を幅1080に縮小(アスペクト比維持)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 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 はどちらにアップが先?
プラットフォームの「最初の投稿者」を判定するアルゴリズムがあるため、メインプラットフォームに先にアップして、他はあとで投稿することをおすすめします。