HandBrakeで動画をMP4へ圧縮するなら、先に再生先と残したい解像度・fpsを決め、プリセットを選びます。1080p・30fps以下の一般的な再生用コピーではFast 1080p30から試せますが、4Kや60fpsを残したい素材には、その上限に合った設定が必要です。
容量はVideo(動画)のConstant Qualityで調整します。H.264(x264)・H.265(x265)ではRFの数字を上げると画質を下げ、容量を減らす方向になります。まず短いプレビューを書き出して、文字・輪郭・動きと音声を比べ、使える画質を決めます。RFを指定しても完成サイズは固定されません。
画面の手順はHandBrake公式ドキュメントに基づき、項目名は英語表示を併記しています。今回の実行確認はHandBrakeCLI 1.11.2で、画面版の操作・画質の目視比較は未実施です。以下の20秒の表は2026年9月29日のWindows 11での既存記録、6秒の表は10月2日の別入力の記録です。
ダウンロードとMP4変換の手順
ソフトはHandBrake公式ダウンロードから入手できます。画面版とHandBrakeCLIは別の操作方法です。次は画面版で、手元の動画を再生用MP4へ変換する流れです。
- Open Source(変換元)で動画を開く。入力と出力は別のファイルにする
- Preset(プリセット)で再生先に合う設定を選び、Summary(概要)のFormatでMP4などの出力形式を確認する
- Dimensions(寸法)で解像度の上限とクロップを確認する。黒帯の自動検出で必要な端が切れていないかをPreviewで見る
- Video(動画)でエンコーダー・fps・Constant Qualityを確認する。x264の1080pならRF 20〜24は公式の出発点
- Audio(音声)とSubtitles(字幕)で必要なトラックが選ばれているかを確認する。プリセット変更後にも見直す
- Preview(プレビュー)で動きや文字を含む短い部分を書き出し、音声と画質を確認する
- Save As(ファイル名)・To(保存先)で未使用の出力名とフォルダーを決め、Start(エンコード開始)を実行する
- 完了後に保存先のファイルを開き、冒頭・中間・末尾、解像度・fps・必要な音声を確認する
自動クロップは黒帯を推測して削る機能で、常に正しい判定とは限りません。端を残したい場合はCustomで調整します。画面の表示名称や配置はOS・版で違うため、公式の寸法・クロップの説明と保存先と開始操作も参照してください。
用途からプリセットを選ぶ
| 目的 | 選び方・確認点 |
|---|---|
| PCで再生する1080p・30fps以下のコピー | Fast 1080p30を出発点に、音声・画質を短く確認する |
| 4K・60fpsなどを残す | 名前の解像度・fps上限を確認し、対象に合うプリセットを選ぶ。1080p30では上限を下げる |
| 容量をさらに減らす | 同じプリセットでRFを調整する。720pで足りる用途ならFast 720p30も比較する |
| 特定の機器で再生する | Devices内の対応する設定を選び、実際の機器で出力を確認する |
| 投稿先の容量上限が決まっている | RFだけでサイズを指定せず、尺と平均ビットレートも検討する |
720p30や1080p30の数字は、常にその値へ拡大・固定化するという意味ではなく、解像度とfpsの上限です。入力が上限を超えると縮小やfps制限が行われます。プリセットには音声などの設定も含まれ、Surroundがない設定で元のサラウンド音声をそのまま残せるとは限りません。公式プリセットの仕様を確認して選びます。
プリセットごとに書き出して比べた
| プリセット | 映像/画質の決め方 |
|---|---|
| Fast 1080p30 | H.264・1920×1080/RF 22 |
| Very Fast 1080p30 | H.264・1920×1080/RF 24 |
| Fast 720p30 | H.264・1280×720/RF 21 |
| HQ 1080p30 Surround | H.264・1920×1080/RF 20 |
| Social 10 MB 30 Seconds 720p60 | H.264・1280×720/平均 2,250kbps |
| プリセット | 大きさ/時間 |
|---|---|
| Fast 1080p30 | 17,080,655 バイト/9.9秒 |
| Very Fast 1080p30 | 12,159,811 バイト/6.2秒 |
| Fast 720p30 | 7,006,273 バイト/6.8秒 |
| HQ 1080p30 Surround | 21,938,088 バイト/15.2秒 |
| Social 10 MB 30 Seconds 720p60 | 5,941,219 バイト/10.3秒 |
画質の決め方と x264 の速さの設定は、それぞれのプリセットを書き出した設定ファイルから読み取りました。
この20秒の入力ではVery Fastのほうが速く小さくなりましたが、RFも22から24へ変わっているため、速さの設定だけの比較ではありません。
Social のプリセットは、画質ではなく平均のビットレートで決めるので、大きさを予想しやすくなっています。
元の動画が30fpsのとき、名前に 60 と付いた Social のプリセットでも、書き出しは30fpsのままでした(上限が60という意味)。
上の時間は過去の入力・環境の結果です。CPU/GPU条件が表にないため、今回のPCや撮影動画での処理時間の予測には使いません。画質評価をした値でもありません。
RFで画質と容量を調整する
次の範囲はx264・x265についての公式の画質設定の目安です。どの素材でも同じ画質・圧縮率になる指定ではありません。
| 解像度 | x264・x265のRFの出発点 |
|---|---|
| 480p・576p | 18〜22 |
| 720p | 19〜23 |
| 1080p | 20〜24 |
| 2160p(4K) | 22〜28 |
x264・x265ではRFを下げると高画質・大容量、上げると低画質・小容量の方向です。小さくしたい場合は数段ずつ上げ、Previewの短い書き出しで細い文字、輪郭、暗い場面、動きのある部分を確認します。このRF範囲をAV1やハードウェアエンコーダーへそのまま移せません。例えばApple VideoToolboxでは数字と品質の向きも異なります。
RFを変えて書き出した
Fast 1080p30 のまま、RF だけを変えて書き出しました。
| RF | 大きさ |
|---|---|
| 18 | 24,929,657 バイト |
| 22(初期値) | 17,080,655 バイト |
| 26 | 10,095,873 バイト |
| 30 | 5,789,969 バイト |
この20秒の同じ入力・x264設定では、RFを4上げるごとに大きさがおよそ3分の2から半分ほどになりました。別の映像で同じ減少率になるとは限りません。
公式ドキュメントは、まず数段ずつ変えて、プレビュー(Preview)で見比べるよう勧めています。
H.265へ変更すると必ず小さくなるか
2026年9月29日の20秒入力で、Fast 1080p30から映像だけH.265(x265)へ変更した既存記録は21,258,940バイトで、x264の17,080,655バイトより大きくなりました。同じRFでもエンコーダー間で画質の尺度が違うため、この比較を同画質の圧縮効率の比較とは扱いません。再生先の対応を確かめたうえで、それぞれの画質と容量を確認します。
完成サイズの上限がある場合
Constant Qualityは映像に応じてビットレートが変わるため、同じ尺とRFでも完成サイズは変わります。上限を狙う場合はAverage Bitrate(平均ビットレート)を検討しますが、サイズを優先する分、場面によって画質が不足することがあります。
概算のサイズ(バイト)は「映像と音声の合計ビットレート(kbps)×1000×秒数÷8」です。コンテナ情報などの分も加わるので、上限ぴったりを狙わず余裕を取って出力を確認します。上のSocial 10 MB 30 Seconds 720p60の結果は20秒入力の5,941,219バイトで、任意の尺で10MBを保証する試験ではありません。公式のConstant Qualityと平均ビットレートの説明も参照してください。
フレームレートはVFR・PFR・CFRを区別する
| 設定 | 動作 |
|---|---|
| Same as Source+VFR | 元のフレームの時刻を保持する方向。CFR指定ではない |
| 特定のfps+PFR | 指定fpsを上限として、上限以下の部分は保持する |
| 特定のfps+CFR | 全体をその固定fpsに揃える。編集先などが固定fpsを必要とする場合に選ぶ |
一般の再生用コピーに、音ズレ予防だけを理由として一律にCFRを指定しません。編集用のVFR変換では目標fpsを指定してCFRを選びます。設定の根拠は公式フレームレート資料です。調査方法とFFmpegとの比較はVFRをCFRへ変換する手順で確認できます。
出力が大きい・読めない・音がずれる場合
| 症状 | 次の確認 |
|---|---|
| RFを上げても期待したサイズにならない | 同じエンコーダーとプリセットで比較したか、Constant Qualityか平均ビットレートかを確認する |
| 元より小さい解像度になった/端が切れた | 解像度の上限と自動クロップを確認し、短いPreviewで修正結果を見る |
| 再生先で読めない | 拡張子だけで判断せず、再生先が出力コーデック・解像度・fps・音声に対応するかを確認する |
| 音声がずれる | 入力と出力の両方を同じ環境で比較する。固定のずれと後半で広がるずれを分ける |
| 出力が途中で止まった | Activity Log、保存先の空き容量、入力と設定を確認する。途中の出力を完成ファイルとして使わない |
再生設定やfpsだけであらゆる音ズレが解消するとは限りません。Premiereへ読み込んでずれる場合はPremiereの音ズレの切り分けに進みます。
コマンドで使う
HandBrake には、画面の無いコマンドライン版(HandBrakeCLI)もあります。
winget install --id HandBrake.HandBrake.CLI -eHandBrakeCLI -i input.mp4 -o fast22.mp4 --preset "Fast 1080p30"HandBrakeCLI -i input.mp4 -o fast26.mp4 --preset "Fast 1080p30" -q 26| 指定 | 意味 |
|---|---|
| -i / -o | 入力と出力 |
| -Z, –preset | プリセットの名前(大文字小文字を区別) |
| -q, –quality | 画質(RF) |
| -e, –encoder | 映像の方式(x264・x265 など) |
| -b, –vb | ビットレート(kbps) |
| -w / -l | 幅と高さ |
| –preset-list | プリセットの一覧 |
同じことを ffmpeg で行う方法は、ffmpegのよく使うコマンド集で紹介しています。
出力を上書きせずRFを比較する
2026年10月2日に作った模様と合成音で、人物や撮影素材は含みません。
展開したフォルダーから実行します。
既存の20秒の表は9月29日の測定記録です。
次は別の6秒・1080p30の入力でRF 22と26を比べます。
HandBrakeCLIが導入済みでPATHから実行できるWindows PowerShell 5.1を前提にします。
同梱のhandbrake-safe.ps1は、入力と同じ場所や既存の出力を指定すると変換前に止まります。
自分で保存する場合はUTF-8(BOM付き)にします。
param([Parameter(Mandatory=$true)][string]$InputFile,
[Parameter(Mandatory=$true)][string]$OutputFile,
[int]$Quality = 22,
[string]$Preset = 'Fast 1080p30')
$ErrorActionPreference = 'Stop'
$src = Get-Item -LiteralPath $InputFile
if ($src.PSIsContainer) { throw 'Input must be a file' }
$dst = [IO.Path]::GetFullPath($OutputFile)
if ($dst -eq $src.FullName) { throw 'Input and output must differ' }
if (Test-Path -LiteralPath $dst) { throw 'Output already exists' }
if (-not (Test-Path -LiteralPath ([IO.Path]::GetDirectoryName($dst)) -PathType Container)) { throw 'Output folder missing' }
if ($Quality -lt 0 -or $Quality -gt 51) { throw 'Quality must be 0 to 51 for these x264 presets' }
$before = (Get-FileHash -LiteralPath $src.FullName -Algorithm SHA256).Hash
$arguments = @('-i',$src.FullName,'-o',$dst,'--preset',$Preset,'-q',"$Quality")
& HandBrakeCLI @arguments
if ($LASTEXITCODE -ne 0) { throw 'Encoding failed; any new output is incomplete' }
if (-not (Test-Path -LiteralPath $dst) -or (Get-Item -LiteralPath $dst).Length -eq 0) { throw 'Output missing or empty' }
if ((Get-FileHash -LiteralPath $src.FullName -Algorithm SHA256).Hash -ne $before) { throw 'Input changed; inspect before using output' }
Write-Host 'Encoded; original bytes retained'
powershell.exe -NoProfile -ExecutionPolicy RemoteSigned -File ".\handbrake-safe.ps1" -InputFile ".\sdr-input.mp4" -OutputFile ".\compare22.mp4" -Quality 22
powershell.exe -NoProfile -ExecutionPolicy RemoteSigned -File ".\handbrake-safe.ps1" -InputFile ".\sdr-input.mp4" -OutputFile ".\compare26.mp4" -Quality 26
| 6秒の出力 | サイズ |
|---|---|
| RF 22 | 5328136バイト |
| RF 26 | 3295391バイト |
どちらもH.264・1920×1080・30fps、48kHzのステレオ音声として書き出し、デコードできることと元ファイルのバイト保持を確認しました。
画質を目視で比較した結果ではないため、実際に使う素材の短い範囲を再生してRFを決めます。
止まった場合はエラーと出力先を確認します。
変換中の失敗では新しい出力が一部だけできている可能性があるため、完成したファイルと扱わず、別の新しい名前でやり直します。
元に戻すときは保持した入力を使います。
可変フレームレートの素材は、一定のfpsになっただけでは同期確認が済みません。
光と音の位置で同期を確認する例も確認してください。
画面版HandBrakeの操作と画質評価は今回未検証です。
関連する変換と編集の手順
コマンドをまとめて確認するならFFmpegの基本コマンド、固定fpsへの変換ならVFR→CFR変換、編集ソフトの操作一覧は動画編集のまとめへ進んでください。
公式資料確認:2026年10月3日。HandBrakeCLIの指定。既存の20秒・6秒の生成動画による実測、公式仕様、未実施の画面版・画質評価を分けて掲載しています。
