Safariでパイプを使った動画ストリーミングがPiping Server経由でできない理由
#Piping_Server #Safari #video
きっかけはこのissue: Unable to play video streamed using piping server on safari. · Issue #171 · nwtgck/piping-server
プログレッシブダウンロードな動画を使えば、Google Chromeでは一つのmp4動画をストリーミングできる。
https://gyazo.com/2b2fc0f7777e513cb44428ae52f23c8c
ただ、Safariだと以下のようになって、上記のChromeと同じようにしても再生できない。
https://gyazo.com/36ecb555fef86518974218c47eb4ddc2
Safariを見ると、「Failed to load resource」と言っている。
そこでNetworkでリクエストを調べ見ると、以下のようにRange: ...が含まれていた。
https://gyazo.com/9bd643c4b436187a5098a2de4d300282
そこで、Range: 関連な気がして調べてみるとSafariで動画を表示する際、サーバーのHTTP Range Request対応が必須になっている - Qiitaが見つかった。
ということで、Rangeヘッダ対応がSafariだと必須な様子。データをサーバー上に保存せずに経由することが目的なPiping ServerでRangeをサポートするのは矛盾している思う。そのため、Safariではパイプ使った動画ストリーミングはできないということで良い気がする。したいなら他のGoogle Chromeとかのブラウザを使おうということ。
パイプにこだわらなければ、Piping Screen Shareのように動画を短いチャンクに分けて送信して受信することで、リアルタイムな画面共有(動画共有)も可能。