ホームページ  >  記事  >  バックエンド開発  >  出力バッファリングが原因で Web カメラのフィードがフリーズしますか?

出力バッファリングが原因で Web カメラのフィードがフリーズしますか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-01 14:03:30864ブラウズ

Is Output Buffering Causing My Web Camera Feed to Freeze?

PHP で出力バッファリングを無効にする方法

問題

PHP の印刷機能を使用して Web カメラからデータをストリーミングすると、バッファリングが発生するようです。フレーム レートが低いと、フィードがフリーズし、複数のフレームが急速に表示されます。この問題は、出力バッファに起因すると考えられます。

解決策

ステップ 1: 出力バッファリングを無効にする

  • php.ini または Apache config:

    php_flag "output_buffering" Off
  • で、output_buffering を無効にします。特定のスクリプトについては、ob_end_flush() または ob_end_clean() を呼び出します。

ステップ 2: サーバー レベルの出力バッファリングを無効にする

  • スクリプトの開始時に ob_implicit_flush() を呼び出します。
  • 出力を生成するすべてのステートメントの後に flash() を呼び出します。

説明

PHP は、出力バッファーと書き込みバッファー/サーバー バッファーという 2 つのバッファリング層を使用します。

出力バッファー

  • ob_start()、ob_end_flush()、および ob_end_clean() によって制御されます。
  • 応答本文への出力をバッファーします。
  • デフォルトの制限は 4096 バイトです。
  • output_buffering を Off に設定してグローバルに無効にするか、ob_end_clean()/ob_end_flush() を呼び出してローカルに無効にします。

書き込みバッファーとサーバー バッファー

  • flush() によって制御されます。
  • PHP およびバックエンド (Web サーバーまたは CGI) からの出力をバッファーします。
  • Web サーバーのバッファリング スキームの影響を受ける可能性があります。
  • 有効にするob_implicit_flush() を呼び出すか、php.ini で implicit_flush を On に設定することによる暗黙的なフラッシュ (パフォーマンスに影響する可能性があるため推奨されません)。

以上が出力バッファリングが原因で Web カメラのフィードがフリーズしますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。