キーフレームと、コピーがどこからでも始められない理由
圧縮された動画は、完全な絵をときどきしか保存しません。このキーフレーム(Iフレーム)は単独でデコードでき、その間のフレームは変化だけを持つため、前のフレームがないとデコードできません。キーフレームの間隔はエンコーダーと設定次第で、1秒未満のファイルも数秒のファイルもあります。
そのためパケットをコピーする切り出しはキーフレームから始める必要があり、ツールによって選び方が違います。FFmpegのドキュメントでは、ストリームコピーでは指定時刻の手前のシーク位置へ移動し、その余分を残すため、クリップが早めに始まります。Nerulioの高速は逆に縮めます。映像は選択範囲内の最初のキーフレームから始まるので除いた部分は入りませんが、先頭でキーフレーム間隔1つ分までが失われることがあります。終わりは終了点のままです。
精密は区間の全フレームをデコードし、開始点に独自のキーフレームを置いた新しいストリームを書きます。解像度の上限と音声の削除も使えます。高速でも音声は削除できますが、再エンコードしないため解像度の上限は無視されます。
- キーフレーム(Iフレーム)
- 完全な絵として保存されたフレーム。ここからデコードを始められます。
- GOP
- グループ・オブ・ピクチャー。キーフレームとそれに依存するフレームで、次のキーフレームの直前までです。
- ストリームコピー(リマックス)
- 圧縮済みのパケットをデコードせずに新しいコンテナへ移すこと。速く劣化しませんが、キーフレームに縛られます。
例:2秒ごとのキーフレーム、選択範囲3.40秒〜9.00秒
同じ範囲を3通りに切り出すと:
元動画のキーフレーム 0.00 2.00 4.00 6.00 8.00 10.00 s
選択範囲 3.40 → 9.00 s 5.60 s
Nerulio 高速 4.00 → 9.00 s 5.00 s 先頭0.60 sが落ちる
手前のキーフレームからコピー 2.00 → 9.00 s 7.00 s 先頭に1.40 s余分
(FFmpeg -iの前に-ss、-c copy)
Nerulio 精密 3.40 → 9.00 s 5.60 s 再エンコード
先頭の0.60秒が大事なら、開始点を2.00秒のキーフレームへずらすか精密を使ってください。Nerulioのテストでは、高速カットは指定の長さから1.1秒以内、精密カットは0.12秒以内を合格としています。
高速と精密の比較
| 高速 · キーフレーム | 精密 · 再エンコード |
|---|
| 開始位置 | 選択範囲内の最初のキーフレーム | 指定した開始点どおり |
|---|
| 速さ | パケットのコピー。主にファイルの読み込み速度で決まる | 全フレームをデコード・エンコード |
|---|
| 画質 | 元と同じ | 圧縮が1回増える |
|---|
| 結果のコーデック | 元のコーデック | MP4はH.264、WebMはVP9・VP8・AV1 |
|---|
| 解像度の上限・音声の削除 | 音声の削除だけ有効、上限は無視 | どちらも有効 |
|---|
| デコーダーの要否 | 不要 | 必要(映像と音声の両方) |
|---|
結果の確認
- プレーヤーで結果の長さを、タイムライン下の区間の長さと比べます。高速は先頭が短くなることがあり、精密は一致するはずです。
- 高速で切った結果の最初の1秒を再生します。きれいな完全なフレームから始まり、開始点にキーフレームがなければそれより遅れて始まります。
- 音声の削除を選んでいなければ、音があるか確認します。トラックが失われる場合は黙って外さず、エラーで止まります。
トラブルシューティング
| 症状 | 考えられる原因 | 確認方法 | 対処 |
|---|
| WebMへの高速カットで「A required video/audio track cannot be preserved」と出る | WebMはVP8・VP9・AV1の映像とOpus・Vorbisの音声しか受け付けず、MP4・MOVのH.264・HEVC・AACはコピーできない | 元がMP4かMOV | 高速カットはMP4で保存するか、精密を使う |
|---|
| 高速カットが開始点より遅れて始まる | 開始点にキーフレームがなく、次のキーフレームからコピーした | 結果の長さと選択範囲を比べる | 開始点を前にずらすか、精密を使う |
|---|
| 形式の一覧にMP4がない | ブラウザがH.264エンコーダーなしと報告している | 詳細設定にWebMしかない | WebMで保存するか、H.264エンコーダーのあるブラウザを使う |
|---|
| タブを切り替えたら保存が止まった | WebCodecsがない場合に使う互換録画だけは、タブの表示が必要 | 互換モードの案内が出ている | タブを表示したままにするか、WebCodecsのあるブラウザを使う |
|---|
| WebMから高速カットしたMP4が一部のアプリで再生できない | コピーしたVP9・AV1の映像とOpusの音声がMP4に入っており、すべてのプレーヤーが想定しているわけではない | ffprobeでコーデックを確認 | WebMの元動画はWebMで切り出すか、精密でH.264にする |
|---|
ほかの方法
| 方法 | こんなときに向いています |
|---|
-iの前に-ss、そして-c copyを使うFFmpeg | スクリプトや一括の切り出し。ドキュメントによれば、コピーの切り出しは手前のキーフレームからの部分を残すので、失う代わりに少し余分に入ります。 |
|---|
| デスクトップの動画編集ソフト | 複数のクリップ、トランジション、区間全体を再エンコードせずにフレーム単位で正確さが必要な編集。 |
|---|
| 動画を圧縮 | 短くするのではなく小さくするのが目的のとき。 |
|---|
この方法の限界
- 高速カットはキーフレームから始まります。先頭の不完全なGOPだけを再エンコードするスマートモードはありません。
- 1回の書き出しで連続した区間1つだけです。区間をつなぐにはデスクトップの編集ソフトが必要です。
- 主な映像と音声のトラック1本ずつだけが残ります。
バージョンと出典
tests/media-browser.mjsで、Chromium 153とFirefox 155を使って確認しました。1920 × 1080のH.264/AAC MP4から1〜4秒を高速で切ると音声が保たれ、指定の長さと1.1秒以内で一致し、1.25〜3.75秒の精密カットは0.12秒以内です。任意の大容量テストでは、500MBを超える1時間のファイルの最後の1分を高速カットし、音声付きで60秒±1秒になりました。エンジンはMediabunny 1.58.1とWebCodecsです。FFmpegの動作は公式ドキュメントからの引用です。
参照した公式ドキュメント
動画を切り出し
キーフレーム高速カットまたは再エンコード。対応環境でMP4・WebM保存。
使い方
- 元ファイルを開く
- 処理方式と設定を選ぶ
- 実行して結果を確認し保存
対応形式
MP4 / WebM / MOV → MP4 / WebM — 読み込み・書き出しはブラウザの対応状況によります。
このツールでできること
内側キーフレームの再格納、または再エンコードで区間を保存します。
処理方式と検証状況
advanced · keyframe remux / WebCodecs precise re-encode. 品質検証中です。Pro・Flagship水準はまだ実証されていません。
書き出す前に
高速カットは範囲内のキーフレームに短縮します。精密モードは再エンコードし、コーデック対応は環境次第です。可能なら端末の一時保存を使います。互換録画の短時間制限は残ります。
よくある質問
対応サイズは何で決まりますか?
端末のメモリ・保存容量・コーデック対応によります。テスト例はすべてのファイルの動作保証ではありません。
ファイルはアップロードされますか?
このツールで開いたファイルはアップロードせず端末で処理します。コミュニティの投稿に明示的に添付する画像は別途アップロードされます。一部のエンジンやモデルは外部から取得するため、IPアドレスなどの接続情報は配信元に伝わります。
作業は自動保存されますか?
いいえ。画像と編集状態はこのタブに保持され、メディア出力は端末の一時保存を利用する場合があります。言語を変えても作業は残りますが、再読み込み、タブを閉じる操作、別のページへの移動で失われることがあります。