再エンコードせずに動画をトリミング・分割・結合する方法
更新
動画から数秒を切り取るのは、一瞬で、劣化もなく済みそうに思えますし、実際にそうなることもあります。一方で、ツールがクリップ全体をデコードして圧縮し直すこともあり、その場合は時間がかかり、画質も少し落ちます。この違いは、ストリームコピーと再エンコードという2つの手法と、圧縮された動画がキーフレームをもとにどう構成されているかによって生まれます。
このガイドでは両方を説明し、ロスレスのカットができるのはどんな場合かを示したうえで、当サイトのどのツールがストリームをコピーし、どのツールが再エンコードするのかを率直にお伝えします。
ストリームコピーと再エンコードの違い
ストリームコピー(リマックスやパススルーとも呼ばれます)は、すでに圧縮されている映像と音声のパケットを、デコードせずに新しいファイルに書き込みます。圧縮処理を行わないので非常に高速で、パケットは元とビット単位で同一なのでロスレスです。制約は、パケット単位で残すか捨てるかしかできないことで、コーデック、解像度、ビットレート、ピクセルの向きは変更できません。
再エンコードでは、映像を個々のフレームにデコードしてから、再び圧縮します。時間がかかり、非可逆圧縮のコーデックでは再エンコードのたびにディテールが少しずつ失われますが、どのフレームからでも開始・終了でき、動画のあらゆる要素を変更できます。
ロスレスのカットがキーフレームに合わせられる理由
最近のコーデックは、すべてのフレームを完全な画像として保存しているわけではありません。キーフレーム(Iフレーム)は完全な画像ですが、その後に続くフレームの多くは変化した部分だけを保存し、前のフレームを参照しています。キーフレームから始まるフレームのまとまりはGOPと呼ばれ、スマートフォンやカメラの映像では、通常1〜数秒ごとにキーフレームが現れます。
GOPの途中にあるフレームは、それが依存しているフレームがなければ表示できません。そのため、ストリームコピーによるカットは、キーフレームからしかきれいに開始できません。ロスレスでカットするツールは、開始位置を最も近いキーフレームに移動するか(指定した位置から1〜2秒ずれることがあるのはこのためです)、前のフレームを含めたうえで非表示にします(後者は一部のプレーヤーでは無視されます)。クリップの終わりはどのフレームの後でも止められるので、より簡単です。
一部の編集ソフトはスマートレンダリングを使います。カット位置から次のキーフレームまでの数フレームだけを再エンコードし、残りはストリームコピーします。これにより、画質をほとんど落とさずにフレーム単位の精度が得られますが、エンコーダーの設定を元のファイルに慎重に合わせる必要があります。
再エンコードせずに結合する
ストリームコピーでファイルをつなげられるのは、すべてのクリップのコーデック、解像度、フレームレート、ピクセルフォーマット、音声形式が同じ場合だけです。たとえば、同じカメラで続けて録画した複数のクリップなどです。スマートフォンのクリップと画面録画をつなげる場合のように、何か1つでも違えば、各部分を共通の形式に再エンコードしなければならず、ツールは異なるサイズをどう扱うかを決める必要があります。通常は黒帯を追加します。
当サイトのツールの動作
これらのツールはすべてブラウザ内で動作するため、ファイルはアップロードされません。ここでは、各ツールが、ブラウザに組み込まれたWebCodecsのサポートを使うメインエンジンで、再エンコードをどう扱うかを説明します。ブラウザがその方法で特定のファイルを処理できない場合、ツールはWebAssembly版のffmpegに切り替わり、映像を再エンコードします。
- 動画カットツールの「トリミング」モード:残す部分が動画のいちばん最初から始まり、出力形式が元のコーデックに対応している場合は、映像と音声がストリームコピーされます。残す部分がそれより後から始まる場合は映像が再エンコードされ、キーフレームに合わせるのではなく、フレーム単位で正確にカットされます。音声も再エンコードされます。
- 動画カットツールの「カット」モード(途中の区間を削除する場合):残った2つの部分が同じ設定で再エンコードされ、その後さらに再エンコードすることなくつなげられます。削除する区間が最初または最後にかかっている場合は、トリミングと同じ動作になります。
- 動画分割ツール:各パートが別々のトリミングとして作成されるため、最初のパートはストリームコピーでき、2つ目以降のパートはすべて再エンコードされます。パート数、長さ、または自由に決めたポイントで分割でき、MP4、MOV、MKV、WebMで出力できます。
- 結合:動画結合ツールは動画エディターを開き、タイムライン上でクリップを並べます。書き出しでは必ず、選んだ解像度、フレームレート、ビットレートで新しい動画がレンダリングされるため、サイズやコーデックの異なるクリップも組み合わせられます。
- 動画回転ツール:クラシック回転ツールでは、コンテナが対応しているコーデックのMP4やMOVを回転する場合、プレーヤーが読み取る回転フラグを設定することで、再エンコードせずに回転します。反転、MKVやWebMで出力する回転、そしてAIアシスタントが行うすべての回転では、ピクセルが再エンコードされます。
再エンコードが避けられない場合に画質を保つには
適切なビットレートでの1回の再エンコードなら、違いを見分けるのは非常に困難です。画質の問題は、処理を繰り返したり、ビットレートを下げすぎたりすることから生まれます。
- 書き出したファイルをさらに書き出したものではなく、元のファイルからカットしましょう。
- トリミングしてから分割し、さらにトリミングし直すのではなく、できるだけトリミングは1回の作業でまとめて行いましょう。
- ファイルを小さくしたい場合を除き、出力の解像度は元のファイルと同じにしましょう。
- 別のコンテナが必要でなければ、元のファイルと同じコンテナを選びましょう。そうすれば、ツールが可能な場合にストリームをコピーできる可能性が最も高くなります。
完全にロスレスなキーフレームでのカットが必要な場合
非常に長い録画があり、残りの部分には手を加えずに冒頭だけを切り落としたいなら、ストリームコピーだけで動作するデスクトップツールが適しています。オープンソースのLosslessCutアプリはまさにこの用途のために作られており、ffmpegのコマンドラインでもcopyオプションを使って実行できます。例:ffmpeg -ss 00:01:00 -i input.mp4 -t 30 -c copy output.mp4。開始位置は、指定した時間より前の最も近いキーフレームに合わせられることを想定しておいてください。
再エンコードを1回避けることよりフレーム単位の精度のほうが重要な日常的なクリップなら、動画カットツールのほうが手軽に使え、インストールも不要です。同時にサイズも小さくしたい場合は、最後に動画圧縮ツールで仕上げましょう。
このガイドで使うツール
よくある質問
01
02
03