# 動画カット｜動画から必要なところだけ切り出す

再生しながら残す場所に印を付けるだけ。まとめて1本の動画で返します。

> 残したい部分をマークし、ブラウザで1本の動画に保存します。コピーモードは符号化済みフレームを保持し、正確なカットや録画では再エンコードします。アップロード不要、オフラインでも使えます。

これはhttps://abox.tools/ja/trim-video/にあるブラウザー用の対話型ツールです。ファイルはそのブラウザーを実行する端末上で処理します。意図した共有や任意の通信機能はページ内で説明します。以下は文章による説明です。利用するにはアドレスを開いてください。

## 動画は**ブラウザー内で処理**されます。処理のためのアップロードはありません。

動画の読み込みも、印付けも、切り出しも、書き出しも、お使いのブラウザが手元のハードウェア上で行います。何かを取りに行ったり送ったりできる部分はここにありません。このツールにはネットワーク機能が一切なく、仮にあったとしても、このページの向こう側に動画を受け取るサーバーが存在しません。

- ✗ アップロードなし
- ✗ 登録なし
- ✗ 透かしなし
- ✓ 残す場所はいくつでも
- ✓ 対応条件内で劣化なくコピー
- ✓ オフラインで動作

## 動画をカットする手順

1. **動画を選びます。** MP4、MOV、M4V、WebMを選択欄にドロップしてください。ブラウザがディスクから直接読み出します。その間に何かがどこかへ送られることはありません。複数入れると、入れた順につながります。
2. **再生して、残したい場所に印を付けます。** 残す部分の始まりで`I`、終わりで`O`を押します。何度でも構いません。1組ごとに下の表の1行になり、タイムライン上の帯になります。`U`で直前のものを取り消し、`Space`で再生と一時停止、矢印キーで5秒ずつ飛べます。その瞬間を捕まえにくければ、再生速度を落としてください。
3. **印を整えます。** 各行は単独で再生でき、正確な時刻を打ち込んで調整でき、順番を上下に動かせ、削除もできます。選択中の部分の両端は、タイムライン上でドラッグすることもできます。上部の合計が、できあがる動画の長さです。
4. **残すか、切り取るかを選びます。** ふつうは残すほうです。できあがる動画は、印を付けた部分を順につないだものになります。切り取るほうは、多くの人が求めながら、めったに見つからない機能です。広告や、無音や、言い直しに印を付ければ、それを抜いた残りがつながります。
5. **カットして、ダウンロードします。** 「1バイトも変えずに移す」はフレームをそのまま移します。最初の区間には前のキーフレームからの非表示フレームを含められますが、2つ目以降はキーフレームから始める必要があります。「ここちょうどで切る」は選んだタイミングを保つため、残す映像フレームをすべてデコードしてエンコードし直します。使う方式とその代償は、ボタンを押す前に表示します。

## 詳しい解説

[動画をエンコードし直さずにカットする方法](https://abox.tools/ja/guides/trim-a-video/): 映像を切るのに、画質を1バイトも失う必要はありません。印を付けた位置より前から始まってしまうことがある理由、そこにキーフレームがどう関わるのか、そしていつエンコードし直しを受け入れるべきか。

## 箱の中のほかのツール

- [動画トリミングツール](https://abox.tools/ja/crop-video/): 肝心なところだけを残します。
- [動画の逆再生](https://abox.tools/ja/reverse-video/): 最後のコマから、音も一緒に。
- [タイムラプス作成ツール](https://abox.tools/ja/timelapse-video/): 1時間の素材が20秒に。
- [動画のコマ切り出し](https://abox.tools/ja/grab-frame/): どの瞬間でも、画質を落とさずに1枚。

## よくある質問

### 動画はどこかにアップロードされますか？

されません。読み込みも、印付けも、切り出しも、書き出しも、お使いのブラウザが手元のハードウェア上で行います。このツールにサーバー側は存在しません。ページの`Content-Security-Policy`には接続してよいアドレスがすべて挙がっていますが、そのどれも当サイトのものではありません。言われるより確かめたい方は、回線を抜いてからカットしてみてください。

### 同じ動画から複数の場所を残せますか？

それこそがこのツールの目的です。再生しながら`I`と`O`を好きなだけ押してください。1組ごとに1行になり、できあがる動画はすべての行を順につないだもので、ほかは消えます。オンラインのカットツールの多くは1組のつまみだけを渡して、どの一続きを残すかを尋ねます。映像の頭と尻を落とすには十分ですが、1時間の記録を一度見ながら、価値のある6つの瞬間を残すにはまったく役に立ちません。

### カットすると画質は落ちますか？

「1バイトも変えずに移す」は元のエンコード済みフレームと音声を保つため、画質を落としません。区間が1つの場合、または2つ目以降の区間がすべてキーフレームから始まる場合に使えます。「ここちょうどで切る」は残す映像フレームをすべてエンコードし直し、可能なら音声を複製します。「再生しながら録画する」は映像も音声もエンコードし直します。書き出す前に、選んだ方式がどの処理を行うか表示します。

### 印を付けた位置より前から始まってしまうのはなぜですか？

複製する最初の区間には、後のフレームをデコードするために前のキーフレームからのフレームを含める場合があります。編集用の印は再生機に冒頭のフレームを飛ばすよう求めますが、それを無視する再生機では早く始まることがあります。ブラウザは途中のつなぎ目の非表示フレームも誤処理することがあるため、2つ目以降の区間がキーフレームの間から始まる場合は複製を使えません。その場合は「ここちょうどで切る」を選んでください。残す映像フレームをすべてエンコードし直します。書き出す前に、方式と冒頭の非表示時間を示します。

### 逆に、広告を切り取ることもできますか？

できます。広告に印を付けて「印の部分を切り取る」を選べば、印を付け*なかった*ほうが順につながります。同じ印の一覧が両方の問いに答えるので、二度印を付けることなく切り替えて、長さの変化を見比べられます。

### 印を保存して、あとで戻ってこられますか？

できます。「印を保存」は素のテキストファイルを書き出します。1行が1つの部分で、開始と終了をカンマで区切ったものです。「印を読み込む」がそれを読み戻します。形式は素の秒数と`HH:MM:SS.mmm`の2つを用意しており、どちらも同じやり方をするほかのツールがすでに使っている並べ方に従っています。ですからここで書いたファイルをそちらへ渡せますし、そちらで書いたファイルをこのページに入れられます。印付けは慎重を要する作業で、二度やらされるべきではありません。

### どの動画形式をカットできますか？

MP4、M4V、MOVは中身が何であれ直接読みます。H.264、HEVC、AV1、VP9のいずれもです。フレームの複製にデコードは関わらないので、この経路はブラウザにデコーダーがまったくないコーデックでも動きます。それ以外でブラウザが再生できるもの、いちばん多いのはWebMですが、それらは再生しながら録画する方法でカットします。これでも動きますが、できあがる長さと同じだけ時間がかかり、残せる部分は1か所だけです。ブラウザが読むことも再生することもできないファイル、実際にはAVI、WMV、FLV、そして大半のMKVは、途中で失敗するのではなく、その旨のメッセージを出して断ります。

### 動画のサイズや長さに制限はありますか？

ツールに組み込まれた制限はありません。複製の経路では、ファイルはほとんど読まれもしません。残すフレームは読み込まれるのではなく参照されるだけなので、4ギガバイトの記録から4分を残す手間は、その4分をディスクに書く手間とほぼ同じです。正確なカットは、ファイルを数メガバイトずつ辿っていきます。いずれの場合も現実的な上限は、ダウンロード前にメモリ上で組み立てる完成後のファイルです。

### 音声は残りますか？

MP4の2つの経路とも、音声は一度もデコードせずにサンプル単位で複製するので、ファイルの中にあったものと1バイトも違いませんし、編集用の印によって、どの部分も1000分の1秒の精度で映像と揃ったままです。唯一の例外は、音声の記述が異なる、たとえばサンプリング周波数が違う別々の動画をつなぐ場合で、デコードせずに両方を1本のトラックに入れる方法がありません。その場合はページが、実行前にそう伝えます。録画の経路では再生から取り込んでエンコードし直します。どちらの場合も、音声を丸ごと外すチェックボックスがあります。

### 無料ですか。アカウントは必要ですか？

無料です。アカウントも、ログインも、試用期間も、透かしもありません。このサイトには広告があり、それが費用を賄っています。広告に動画の情報が渡されることはありません。

## この主張を確かめる方法

- **処理はこのブラウザー内で行います。** 入力と結果はブラウザー内で処理し、処理コードはそれらを処理用にアップロードしません。Content-Security-Policyは資源と接続先を制限しますが、許可済みの相手はリクエストを受け取れます。内容は検査せず、何も送られないことを単独で証明しません。具体的な操作の要求とソースを比較するか、切断中にローカル操作を完了してください。
- **何かを取りに行くコードがありません。** このツールにはネットワーク機能が一切ありません。貼り付けるアドレスも、ダウンロードするものも、初回に取りに行くエンジンもありません。動画に触れるコードは、1バイト残らずページを読み込んだときにこのオリジンから届いたものです。
- **通常の経路では、そもそもデコードすら行いません。** コピーモードでは、互換性のある符号化済みフレームを変更せず出力へ移します。デコードせず元のバイトを参照するファイルの断片を保持します。正確なカットと録画は異なり、ローカルで映像をデコードして再エンコードします。書き出しの操作部にその選択を表示します。
- **印のファイルは、このページの中で作ります。** 印を保存すると、すでに画面に出ている数値からテキストファイルを書き出し、そのままダウンロードへ渡します。読み込むときも、ここで読みます。どちらもネットワークには近づきませんし、どちらも時刻以外は何も運びません。
- **互換性のある音声をコピーします。** MP4のコピーと正確なカットでは、互換性のある音声サンプルを変更せずコピーします。音声が非互換のクリップの結合では、ローカルでデコード、再サンプリング、再エンコードする場合があります。録画も音声を再エンコードします。書き出す前に該当ケースを説明し、音声はアップロードしません。
- **フレームをデコードする場合も、それはここで起きます。** 正確なカットと、このブラウザが再生できないファイルのプレビューは、手元の端末のWebCodecsを通ります。そもそもその動画を見せるのに使われるのと同じデコーダーが、同じ場所で動いているだけです。
- **Googleが読み込むものと、渡されないもの。** 広告と計測のスクリプトはGoogleから来ています。そのどちらにも、動画に関する情報は渡されません。ファイルも、フレームも、名前も、サイズも、長さも、どこで切ったかもです。読み込み、切り出し、書き出しを行うコードはすべてこのオリジンから配信され、リポジトリに載っています。
- **寄付ボタンが読み込むものと、渡されないもの。** ヘッダーの「Buy me a coffee」ボタンは、cdnjs.buymeacoffee.comのスクリプトが描き、書体をGoogle Fontsから取っています。これはリンク以上のものではありません。訪問を報告しませんし、閲覧者や動画に関する情報も渡されません。
- **オフラインで動きます。** 通信を切っても、このページの機能はすべてそのまま動きます。これがいちばん単純な証明です。

**自分で確かめてください。**以上のどれも、鵜呑みにする必要はありません。このページは、リポジトリにあるテンプレートと設定から、誰でも読んで実行できるビルドスクリプトが生成しています。その結果は`dist`ブランチに置いてあるので、配信されているものと、ソースをビルドした結果とを差分で比べられます。 https://github.com/A-Box-of-Tools/website

まず読むとよいのは、Content-Security-Policyについては`config/site.toml`、印とその保存先ファイルについては`src/segments.js`、MP4の中からフレームを見つけ出す読み取り側については`src/shared/mp4-reader.js`、印を一続きのサンプルに変える計算については`src/ranges.js`、そのサンプルを新しいファイルへ移すループについては`src/copy.js`です。どれもリクエストを出せるものを読み込んでいません。
