HTML5 にはvideo タグがあり、いくつかの形式のビデオをブラウザで再生させることができる。
私のデプロイパイプラインでは、静的なファイルはzopfli という高圧縮を実現できるgzip エンコーダを通して、圧縮結果が圧縮前よりも小さければ、事前に圧縮したファイルをストレージ(AWS S3)に配置する構成になっていた。
mp4 (H.264) 形式とWebM (VP9)のビデオを上記デプロイ方法で配置したところ、iOS 13.5 Safari およびWindows 10 Chrome 83.0.4103.61 にて再生が行えない状況が発生した。特に、Windows 10のChrome 83.0.4103.61においては、「コンソール」に以下表示が出力されていることを確認した。
net::ERR_CONTENT_DECODING_FAILED
一方、Firefox 77.0 では問題なく再生できていた。
結果として、上記ビデオを content-encoding: gzip
で送らなければ、全環境で再生できることが検証された。私のようにビデオファイルを事前にgzip する場合は少ないと思うが、ちょっとハマるので注意が必要。