GoLang Web サーバー ストリーミング ビデオ
Q: HTML、CSS、JavaScript、および画像を提供するように構成された GoLang Web サーバーが失敗しますMP4 ビデオをストリーミングしようとしています。
この問題は、大きなビデオ ファイルの処理によって発生します。 Chrome では、サーバーが特定のサイズを超えるビデオの Range リクエストをサポートする必要がありますが、提供されているコードはこれに対応していません。 Range リクエストのサポートを実装することで、サーバーはビデオのリクエストされた部分のみを送信し、再生できるようになります。
A: Range リクエストをサポートするようにコードを強化します。
変更MP4 ファイルのチェックを組み込み、適切なヘッダーと応答コードを送信するコード:
if contentType == "video/mp4" {
size := binary.Size(data)
if size > 0 {
requestedBytes := r.Header.Get("Range")
w.Header().Add("Accept-Ranges", "bytes")
w.Header().Add("Content-Length", strconv.Itoa(size))
w.Header().Add("Content-Range", "bytes " requestedBytes[6:len(requestedBytes)] strconv.Itoa(size-1) "/" strconv.Itoa(size))
w.WriteHeader(206)
}
}
さらに、範囲リクエストをサポートするビデオ ファイルの提供に http.ServeFile() の使用を検討してください。
if contentType == "video/mp4" {
http.ServeFile(w, r, path)
}
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3