MediaConverter.ioがファイルをアップロードせずに変換する仕組み
MediaConverter.ioで動画や音声ファイルを変換すると、その処理は、お使いのコンピューターやスマートフォン上のブラウザのタブの中で行われます。ファイルが当社のサーバーに送信されることはありません。このページでは、それが何を意味するのかをわかりやすく説明し、続いて、詳しく知りたい方のために技術的な詳細を解説します。
要点
一般的なオンライン変換ツールは、ファイルをサーバーにアップロードし、そこで変換して結果を送り返します。MediaConverter.ioはこの往復を省きます。変換用のコードはページのほかの部分と同じようにブラウザにダウンロードされ、処理はお使いのデバイスが行います。
- お使いのデバイス上
ファイルを選ぶ
ページにファイルをドロップするか、ファイル選択ダイアログで選ぶと、このブラウザのタブがそのファイル1つだけを読み取れるようになります。サーバーには何もコピーされません。
- ブラウザ内
ページがファイルを読み取る
ツールはタブの中で、その場でファイルを調べます。形式、コーデック、再生時間、解像度、音声トラックや字幕トラックなどです。
- お使いのデバイス上
デバイスが変換する
ブラウザに組み込まれたメディアエンジン、またはページ内で動作するFFmpegのコピーが、ファイルをデコードして新しい形式にエンコードします。
- お使いのデバイス上
結果を保存する
完成したファイルは、タブのメモリからブラウザのダウンロードに直接保存されます。タブを閉じると、まだ保存していないものは消えます。当社側で削除すべきものは何もありません。
利用者にとっての意味
プライバシー。録画、映像作品、ボイスメモはお使いのデバイスに残ります。当社のサーバーにはコピーがないため、流出することも、想定より長く保管されることも、後から削除する必要もありません。ほとんどのWebサイトと同様に、当サイトもGoogle AnalyticsとMicrosoft Clarityを使ってサイトの利用状況を計測しています。対象は、閲覧されたページ、クリック、そして、どの形式が変換されたかや、メガバイト単位に丸めたファイルサイズといったイベントです。これらのツールがファイル自体を受け取ることはありません。
速度。アップロードを待つ必要も、結果をダウンロードする必要もありません。大きな動画では、これらに変換そのものより時間がかかることもあります。変換自体の速度は、お使いのデバイスによって決まります。ブラウザがコンピューターやスマートフォンに内蔵された動画処理用のハードウェアを使える場合は高速ですが、ツールがFFmpegに切り替える必要がある場合は、プロセッサーがすべての処理を担うため遅くなります。
制限。すべての処理がデバイスのメモリ内で行われるため、実質的な上限は当社が決めた数値ではなく、ブラウザが使えるメモリの量です。変換ツールは元のファイル全体をメモリに読み込むため(使用しているFFmpegエンジン自体の上限も約2 GBです)、1ファイルあたり約2 GBが実質的な上限で、それより大きいファイルは開けない場合があります。スマートフォンはコンピューターよりもメモリが少なくプロセッサーも遅いため、時間がかかり、上限にも早く達します。変換が終わるまでタブを開いたままにしてください。タブを閉じると変換が止まり、結果は破棄されます。
内部の仕組み:WebCodecs、mediabunny、FFmpeg
ファイルの読み込み。選んだファイルは、ブラウザのFileオブジェクトとしてページから扱えるようになります。ファイルの調査はその場で行われます。mediabunnyは必要なバイト範囲だけを読み取り、FFmpegのffprobeは、ファイルをコピーせずに遅延マウントを通じてファイルの詳細を読み取ります。その後、FFmpegを使う変換ステップでは、ファイル全体がFFmpegのメモリにコピーされます。1ファイルあたり約2 GBという上限は、ここから来ています。
高速な経路:WebCodecs。WebCodecsは、ブラウザにもともと搭載されている動画・音声のデコーダーやエンコーダーに、Webページから直接アクセスできるようにするブラウザAPIで、利用可能な場合はデバイスの動画処理用ハードウェアを使えます。各ツールはmediabunnyを通じてWebCodecsを動かします。mediabunnyはオープンソースのTypeScriptライブラリで、MP4、MOV、Matroska(MKVとWebM)、MPEG-TS、WAV、Ogg、FLAC、MP3、ADTS AACのファイルを読み込み、フレームをWebCodecsに渡して、MP4、MOV、MKV、WebMと一般的な音声コンテナを書き出します。
代替の経路:WebAssemblyにコンパイルされたFFmpeg。高速な経路でできない処理には、ページがffmpeg.wasmを実行します。これは、WebAssemblyにコンパイルされたFFmpeg 0.12.10のコアです。サードパーティのCDNではなく当社のドメインから配信され、プロセッサー上でシングルスレッドで動作し、WebCodecsにできない処理にのみ使われます。具体的には、AVI、FLV、TSファイルの書き出しとFLVの読み込み(映像はエンコードせず、コンテナ間で移し替えます)、AVIファイルやブラウザでデコードできない動画(DivX、Xvid、MPEG-2など)の変換、そしてほとんどの音声形式のエンコードです。WebCodecsより遅いものの、どのブラウザでも同じように動作します。
| 処理 | エンジン |
|---|---|
| ファイルを追加したときのファイル情報の読み取り | FFmpeg(ffprobe)。ファイルをコピーせず、その場で読み取ります |
| MP4、MOV、M4V、MKV、WebM、MPEG-TS、H.264のFLVからの映像の再エンコード(出力がAVI、FLV、TSの場合を含む) | mediabunny経由のWebCodecs。ブラウザが提供していればハードウェアアクセラレーションを使用 |
| 動画変換ツールでの音声トラックと字幕トラック | FFmpeg(映像の変換後) |
| 音声変換ツール、および動画の音声を音声ファイルとして保存する処理 | FFmpeg |
| 動画圧縮ツール(映像と音声) | mediabunny経由のWebCodecs(代替としてFFmpeg) |
| AVI、FLV、TSファイルの書き出しと、H.264のFLVの読み込み | FFmpeg。WebCodecsの前後で、映像をコンテナ間で移し替えるだけです |
| FLVからの、またはAVI、FLV、TSへの、変更しないH.264映像(AVIからは別のAVIへのみ) | FFmpegでコピー。何も再エンコードされません |
| AVIから別の形式への変換(AVIにはデコード順のフレーム時刻しか記録されないため、H.264であっても再エンコードされます)と、ブラウザでデコードできない動画(DivX/Xvid、MPEG-2、Sorenson Spark、VP6)の変換 | ファイル全体をFFmpegで処理 |
経路の選択。変換の前に、動画変換ツールと動画圧縮ツールは、mediabunnyがファイルを開けるか、映像をデコードできるか、目的の形式で書き出せるかを確認します。どれか1つでも答えが「いいえ」の場合や、ブラウザが映像トラックを捨てなければならない場合は、処理全体が代わりにFFmpegに回されます。そのため、非対応のコーデックがあっても、ファイルが壊れるのではなく、変換が遅くなるだけです。
結果。変換されたファイルはメモリ内で組み立てられ、ローカルのblob:リンクとしてブラウザに渡されます。これがダウンロードフォルダに保存されるものです。ツールに「すべてダウンロード」がある場合は、そのZIPもページ内で作成されます。
サイトのどの部分がサーバーを使うか
以下に挙げる無料ツールと、MP4からMP3への変換のような形式別の変換ページはすべて、ファイルをお使いのデバイス上でのみ処理します。当社のサーバーは、ほかのWebサイトと同じように、Webページ、ツールのコード、FFmpegエンジンを配信します。
次の2つの機能は仕組みが異なり、このページで説明している変換ツールとは別のものです:
- AIスタジオ(当社のAIアシスタントで、ToolGPTとしても提供)は、チャットのメッセージをサーバー上で動作するAIモデルに送信します。ファイル処理のほとんどは、ここで紹介するツールと同じくブラウザ内で行われますが、ノイズ除去と、声と音楽の分離はクラウドサービスで実行されます。許可すると、処理のために音声がアップロードされます。
- タイムライン動画エディターの自動字幕は、字幕を作成するために、プロジェクトの音声を文字起こしサービスに送信します。
ツールを試す
よくある質問
01
02
03
04
05
06