MP4 という形式の特徴
H.264 で符号化した MP4 は、いちばん対応環境が広い動画形式です。ブラウザ・スマートフォン・編集ソフトのほぼどれでも再生できます。
どうやって「ちょうど」にしているか
末尾に free ボックス(ISO BMFF で「読み飛ばしてよい」と決められた領域)を足して容量を合わせています。パディング後も ffmpeg でフレームを取り出せることを確認済みです。
そのため、容量を変えても見える映像は変わりません。アップロード上限・転送・保存の確認には最適ですが、長時間の再生やビットレートに依存する処理の確認には向かない点に注意してください。
容量ごとの目安
| 容量 | 現実の目安 | 実際に当たりやすい上限・設定 |
|---|---|---|
| 500 KB | スマートフォンの写真を Web 用に縮小した 1 枚ぶんです。画像アップロードの上限を 500KB に設定しているサービスもあります。 | アイコンやプロフィール画像の上限として 500KB を採る設計はよくあります。上限ちょうどを通すか弾くかは実装で割れます。 |
| 1 MB | メール添付でも軽い部類です。フォームの画像アップロード上限としてよく設定される値でもあります。 | nginx の client_max_body_size は既定が 1MB です。設定を変えていないリバースプロキシの後ろにアプリを置くと、ちょうどこの辺りから 413 Request Entity Too Large が返り始めます。 |
| 5 MB | スマートフォンで撮った写真をそのままアップロードすると、だいたいこのくらいになります。 | PHP の既定は upload_max_filesize が 2MB、post_max_size が 8MB です。5MB のファイルは前者だけを超えるので、「設定を 1 つ直したのにまだ通らない」という事故が起きやすい容量です。 |
| 10 MB | 添付ファイルの上限としてよく設定される値です。この辺りから転送時間とタイムアウトが現実の問題になります。 | アプリ側は受け付けても、前段のリバースプロキシやロードバランサが先に切ることがある容量です。413 がどの層から返っているのかを確かめるのに向きます。 |
| 25 MB | Gmail の添付上限として広く知られている値です。「25MB まで」と書かれた仕様で、ちょうど 25MB を含むのかどうかは実装で割れます。 | Gmail の添付上限が 25MB で、これを超えるとファイルは Google ドライブのリンクに置き換えられます。添付として送れる最後の容量帯です。 |
| 50 MB | 一般的なアップロード上限としては大きい部類で、分割アップロードを検討し始めるサイズです。 | GitHub は 50MB を超えるファイルをプッシュすると警告を出し、100MB を超えると拒否します。50MB はその警告がちょうど始まる容量です。 |
| 100 MB | GitHub が 1 ファイルに課している上限がちょうど 100MB です。この容量を単発で扱えるかどうかは、実装の作りがはっきり出ます。 | GitHub の 1 ファイル上限がちょうど 100MB で、これを超えるものは Git LFS に逃がす必要があります。HTTP でも一括読み込みが現実的でなくなる境目です。 |
コマンドで取得
curl -o sample-10mb.mp4 https://naqto.com/api/dl/video/mp4/10mb/curl -o sample-62914560.mp4 https://naqto.com/api/dl/custom/video/mp4/62914560/ほかの形式: WebM / アップロード上限を 1 バイト単位で確かめるなら 境界値のテストファイル