動画をブラウザ内で圧縮する — /tools/video-compress の思想と使い方
Zerosend の動画圧縮ツールは、動画ファイルをサーバーに送らずブラウザ内で再エンコードしてサイズを削減します。WebCodecs で GPU 支援、未対応環境では ffmpeg.wasm にフォールバック。設計思想と使い方、仕組みを Zerosend 編集部が解説します。
打ち合わせ動画、商品撮影、画面録画、子供の運動会。日常で動画を扱う場面は増える一方で、SNS やメッセンジャーのサイズ制限、メールの添付上限、サーバーのストレージコストといった現実的な壁にぶつかります。
Zerosend は 動画圧縮ツール (/tools/video-compress) を、この「軽くしたいだけなのに、動画を他人のサーバーに預ける必要はない」という素朴な違和感を起点に作りました。この記事では、なぜ作ったのか、どう使うのか、裏で何が起きているのかを Zerosend 編集部が整理します。
なぜブラウザ内で動画を圧縮するのか
動画は個人情報そのものです。顔・声・背景・位置情報、ときには画面録画の中にパスワードや顧客名まで写り込みます。これをオンラインの圧縮サービスにアップロードするということは、事実上その内容を一度他人のサーバーに預けることを意味します。
多くのサービスは「一定時間で自動削除」を謳いますが、その削除は利用者から検証できません。削除完了のスクリーンショットを送ってくれるわけでもなく、ログがどこまで残るかも不透明です。未公開の企画映像や社内会議の録画を、無料ツールに放り込むことに抵抗を感じたことがある人は多いはずです。
Zerosend は逆のアプローチを取ります。動画ファイルを最初から外に出さない。処理はすべて、あなたがいま開いているこのブラウザ、ローカル端末の CPU と GPU の中だけで完結します。DevTools の Network タブを開いたまま圧縮を実行すれば、動画そのものがアップロードされていないことを自分の目で確認できます。信用してもらう代わりに、検証可能にする — これが Zerosend の基本方針です。
使い方
操作はシンプルです。
/tools/video-compressを開く- 画面中央のドロップゾーンに動画ファイルをドラッグ&ドロップ、またはクリックして選択 (MP4 / WebM / MOV、最大 500MB)
- 圧縮強度 (CRF) と解像度を選ぶ
- 「圧縮を開始する」をクリック
- 処理が終わると「処理完了。あなたのファイルは外に出ていません。」と表示され、ダウンロードボタンから結果を保存できる
設定の目安
- 高画質 (CRF 23): 画質維持を最優先。削減率は 10〜30% 程度。保存用のマスター映像向け
- 標準 (CRF 28): 視覚的な劣化は軽微。削減率 40〜70%。ウェブ掲載・SNS 共有に
- 小さめ (CRF 32): 多少ぼやけるが容量優先。チャット添付・LINE・メール向け
- 最小 (CRF 36): 輪郭が甘くなる。品質より「とにかく送れる」が最優先なとき
解像度は 100 / 75 / 50% から選べます。1080p の素材を 75% にすると、CRF を 1〜2 下げるより確実にサイズが落ちます。
仕組み — 二段構えのエンジン
Zerosend の動画圧縮は、単一のエンジンに依存していません。ブラウザの能力を見て、もっとも速い経路を自動で選びます。
1. WebCodecs (高速パス)
Chrome / Edge / 最近の Safari には WebCodecs API が実装されており、GPU 支援の H.264 エンコーダをブラウザから直接呼び出せます。Zerosend は対応環境では次のパイプラインで処理します。
mp4box.jsで MP4 ファイルを demuxVideoDecoderでフレームを復号 (ハードウェアアクセラレーション)- 必要なら
OffscreenCanvasでリサイズ VideoEncoderで H.264 に再エンコード (GPU)- 音声はロスレスコピー (AAC のチャンクをそのまま維持)
mp4-muxerで MP4 に mux し、Blob として出力
これにより、数百 MB の動画も数十秒で処理できます。処理後の結果カードに「エンジン: webcodecs」と表示されれば、このパスが走っています。
2. ffmpeg.wasm (フォールバック)
WebCodecs が未対応のブラウザ、HEVC などの特殊なコーデック入力、mp4box が parse できない特殊コンテナのときは、自動的に ffmpeg.wasm に切り替わります。こちらは完全に CPU で処理するため速度は落ちますが、対応できるフォーマットの幅が段違いに広いのが強みです。ffmpeg-core は Cloudflare R2 から、同一オリジンのパスを経由して 32MB の WASM を取得します。初回のみ時間がかかりますが、2 回目以降はブラウザのキャッシュから復元されます。
よくある質問
Q. 処理中にインターネット接続が切れたら? A. 動画本体の送受信は発生しないため、圧縮処理自体は継続します。エンジン (ffmpeg.wasm) が未ロードの状態だと初回ダウンロードで失敗しますが、一度読み込んだあとはオフラインでも動作します。
Q. 結果のファイルはどこに保存されますか? A. ダウンロードボタンを押したときのブラウザの保存先です。サーバーには何も残りません。結果ファイルはタブを閉じるとメモリから消えます。
Q. 画質が思ったより落ちます。 A. CRF を下げる (例: 28 → 23)、または解像度の縮小をやめる (50% → 100%) と改善します。素材が 4K なら、100% のまま CRF を下げるより 75% + CRF 25 の方が視覚的なバランスが取れやすいです。
Q. iPhone で撮った MOV も処理できますか? A. はい。HEVC (H.265) の場合は ffmpeg.wasm 側のフォールバックに回るため時間がかかりますが、H.264 にトランスコードされた MP4 として出力されます。
関連ツール
Zerosend は「日常のちょっとした加工を、あなたの端末で完結させる」ことに徹したツール集です。動画の中身があなたの手元から離れないことを、DevTools で自分の目で確かめてから使ってみてください。
関連記事
PDF を圧縮する — /tools/pdf-compress の思想と使い方
Zerosend の PDF 圧縮ツールは、PDF をサーバーに送らずブラウザ内でページをラスタライズして再構築し、サイズを削減します。メール添付上限に引っかかる PDF を軽くしたいときに。
動画形式を変換する — /tools/video-convert の思想と使い方
Zerosend の動画形式変換ツールは、MOV / WebM / MKV / AVI などの動画をサーバーに送らずブラウザ内で MP4 など互換性の高い形式に変換します。Zerosend 編集部が解説。
動画を GIF に変換する — /tools/video-to-gif の思想と使い方
Zerosend の 動画 → GIF 変換ツールは、動画をサーバーに送らずブラウザ内で GIF アニメに変換します。SNS・ドキュメント・Slack 用の短尺アニメ作成に。Zerosend 編集部が解説。