# MP4に変換 WebM・MKV・MOVを送れる形式へ

録画、取り込み、カメラの動画をH.264とAACのMP4に。使える部分はコピーし、必要な部分だけ再エンコードします。

> WebM、MKV、MOV、MP4を、電話やブラウザやフォームで広く使えるH.264とAACのMP4にします。すでにH.264やAACならそのままコピーし、それ以外だけ端末で再エンコードします。アップロード不要です。

このページは、ブラウザの中だけで動く対話型のツールです（https://abox.tools/ja/convert-to-mp4/）。渡したものが送信されることはありません。以下は、このページがツールについて言葉で説明している内容のすべてです。使うには、このアドレスを開いてください。

## 動画が**アップロードされることはありません**。サーバーが存在しないからです。

選んだ動画を端末で読み、分解し、ブラウザ自身のコーデックとこのアドレスのコードでメモリにMP4を書きます。アップロード機能も受け取るサーバーもなく、大きなファイルを送って別のファイルを受け取る必要はありません。

- ✗ アップロードなし
- ✗ アカウント不要
- ✓ オフラインで動作
- ✓ ソース公開
- ✓ ファイルは端末の中だけ

## 動画をMP4に変換する手順

1. **動画を選びます。** WebM、MKV、MOV、M4V、MP4を1つずつ扱います。ブラウザがディスクから直接読み、長さ、容量、大きさ、コンテナを表示します。
2. **2つの説明文を読みます。** 映像と音声のそれぞれについて、そのままコピーするか、何から何へ再エンコードするかを説明します。ファイルから決まるので、設定は不要です。音声を読めない場合や無音で送りたい場合は除けます。
3. **変換し、確認結果を読みます。** 使える部分をコピーし、必要な部分だけフレームごとに再エンコードして進捗を表示します。完成したファイルを開き直し、元の長さ、H.264映像、必要な音声を確認します。結果はメモリから再生できます。

## 詳しい解説

[受け付けてもらえるMP4に動画を変換する方法](https://abox.tools/ja/guides/convert-a-video-to-mp4/): 広く受け付けられるMP4の条件、WebM、MKV、iPhoneのMOVが拒否される理由、情報を失わない変換と再エンコードの違い、アップロードせずにブラウザーで変換する方法を説明します。

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

- [動画回転ツール](https://abox.tools/ja/rotate-video/): 右に90度、180度、左に90度。ヘッダーに回転を書き、フレームはデコードせず画質を保ちます。
- [画像→動画変換ツール](https://abox.tools/ja/images-to-video/): 画像の入ったフォルダを、1本の動画に変えます。
- [動画カットツール](https://abox.tools/ja/trim-video/): 再生しながら残す場所に印を付けるだけ。まとめて1本の動画で返します。
- [動画トリミングツール](https://abox.tools/ja/crop-video/): 肝心なところだけを残します。

## よくある質問

### 画質は落ちますか？

コピーするH.264フレームとAACパケットはバイト単位で同じです。H.264入りMKVなら同じ映像のMP4になります。VP9、VP8、AV1、HEVC映像やOpus、Vorbis、MP3、FLAC音声の再エンコードには1世代の変化があります。元のビットレートに合わせて変化を抑えますが、原本は残してください。

### 小さいHEVCやVP9をMP4に残さないのはなぜですか？

開ける場所を広げるためです。HEVCには端末のライセンスが必要で、MP4内のVP9やAV1を拒否するフォームやメールソフトも多くあります。H.264とAACの組み合わせを書き、その画質の変化を事前に説明します。

### WebMの画面録画の音声は残りますか？

はい。ブラウザのOpus音声はMP4に入れられないので、AAC、160kbit/sへ再エンコードします。マイク音声には十分な値です。VP8やVP9映像はH.264にします。端末で処理し、開き直して長さと音声を確かめます。

### MOVはMP4と違うのですか？

設計はほぼ同じです。H.264とAAC入りのMOVなら、数秒で再エンコードせずコンテナだけ変えます。拡張子で拒否するフォームへの対応です。iPhoneのHEVC入りMOVは違い、ブラウザがHEVCを読める場合にH.264へ再エンコードします。

### どのファイルを読めますか？

WebM・MKVのVP8、VP9、AV1、H.264、HEVC映像とOpus、Vorbis、AAC、MP3、FLAC音声、MP4・MOV・M4VのH.264、HEVC、VP9、AV1映像とAAC音声です。映像が読めなければ変換を止め、音声が読めなければ除いて伝えます。AVI、WMV、FLV、MPEG-2は扱いません。

### どれくらい時間がかかりますか？

コピーは約2回読む時間で、通常は数秒です。再エンコードは端末によります。ハードウェアエンコーダーがあれば通常は動画の長さより速く、ない場合は長くなります。長い4Kは時間が必要です。進捗を表示し、キャンセルすると直ちに止まって書き出しません。

### 動画は送信されますか？

いいえ。ブラウザと端末で読み、必要な部分だけデコードしてエンコードし、書き出します。`Content-Security-Policy`の接続先に、このサイト自身のものはありません。通信を切って確認できます。大きなファイルでは送信を省くことも速さにつながります。

### 電話でも動きますか？

動画のデコードとエンコードに対応するブラウザなら動きます。電話のハードウェアエンコーダーは高速ですが、結果をメモリに保持するため、長い動画では足りない場合があります。先に[動画トリミングツール](https://abox.tools/ja/trim-video/)で短くするか、パソコンで変換してください。

### 容量制限や料金はありますか？

入力は分割して読むのでメモリより大きくても使えますが、結果はメモリに保持し、ここで書き出すMP4は4GB未満に限られます。無料で、アカウント、ログイン、お試し期間はありません。広告で運営しますが、動画の情報は渡しません。

### オフラインでも動きますか？

はい。一度開いて通信を切っても動きます。動画を別の場所へ送って変換するツールなら止まるので、送信しないことの確認になります。

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

- **時間のかかるアップロードがありません。** オンライン変換では1GBを送って別の1GBを受け取る前に、全ファイルの送信が必要です。送信時間が変換より長くなることもあります。ここではこのサイトのコードとブラウザのコーデックで、ディスクとメモリの間だけで読み書きします。`Content-Security-Policy`の接続先に、このサイト自身のものはなく、通信を切っても動きます。
- **ここでのMP4は、広く使える組み合わせです。** 通常のMP4コンテナにH.264映像とAAC音声を入れたものは、電話、ブラウザ、チャット、メール、フォームで広く使えます。WebM、MKV、HEVCやVP9やAV1入りのMP4には拒否する相手があります。そのためこの組み合わせだけを書きます。元より開ける場所の少ないファイルにしないよう、H.264以外の映像をそのまま入れることはありません。
- **使える部分をコピーし、必要な部分だけ再エンコードします。** 変換に必ずしも再エンコードは必要ありません。MKVのH.264フレームとAAC音声はMP4でも同じバイトなのでコピーできます。WebMのVP9やVP8、iPhoneのHEVC、OpusやVorbis音声はデコードと再エンコードが必要で、1世代の画質変化があります。開始前に各トラックでどちらを行うか説明します。
- **結果を開き直して確認します。** 末尾や音声が欠けてもMP4は作れてしまいます。そこで完成したファイルを同じリーダーで開き直し、元の長さ、H.264映像、必要な音声を確かめます。メモリから再生し、保存前に見られます。
- **端末に必要な時間とメモリ。** コピーは構造の読み込みと書き出し時の読み込みだけで速く進みます。再エンコードは端末によります。ハードウェアエンコーダーがあれば通常は動画の長さより速く、なければ長くなります。4Kの長い動画には時間が必要です。入力は分割して読み、結果は保存までメモリに保持します。いつでもキャンセルできます。
- **読める形式と、扱わない形式。** WebMとMKVのVP8、VP9、AV1、H.264、HEVC映像とOpus、Vorbis、AAC、MP3、FLAC音声、MP4・MOV・M4VのH.264、HEVC、VP9、AV1映像とAAC音声を扱います。ブラウザが映像を読めない場合は名前を示して拒否し、音声だけ読めない場合は示して除きます。AVI、WMV、FLV、MPEG-2は対応しません。
- **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/plan.js`、コピーと書き出しの`src/convert.js`、WebMやMKVを読む`src/shared/mkv-reader.js`をご覧ください。読み込み・書き出し処理も含めて通信機能はありません。
