Web カメラに接続し、リレー スクリプトを通じてデータをリレーするという探求では、'望ましくないバッファリングの問題が発生しました。この障害に対処するために、PHP のバッファリング メカニズムの詳細と、それがスクリプトに及ぼす潜在的な影響について詳しく見ていきましょう。
バッファリングの最初の層「出力バッファ」は、ヘッダーには影響を与えず、応答本文宛ての出力を排他的に管理します。デフォルトでは、PHP はこのバッファに最大 4096 バイトをバッファし、そのしきい値に違反したとき、または echo ステートメントや同様の出力生成アクションが発生したときにバッファをフラッシュします。
このデフォルトの動作をオーバーライドするには、出力を無効にすることを選択できます。 php.ini ファイルで、output_buffering ディレクティブを Off に設定することで、完全にバッファリングします。あるいは、早い段階で ob_end_clean() または ob_end_flush() を呼び出すことで、個々のスクリプトに対して無効にすることもできます。
出力を超えてバッファには、「書き込みバッファ」として知られる追加のバッファ層があり、Web サーバーで使用されるバッファと連携して機能します。 mod_php (mod_gzip なし) で Apache を利用する場合、flush() を呼び出すと出力がブラウザにフラッシュされます。他のバックエンドもこれをサポートしている可能性がありますが、PHP マニュアルでは保証はありません。
最後に、自動的にトリガーするには 2 つの方法があります。各出力アクションの後に、flush() が呼び出されます:
これらの洞察を自由に利用できるため、リレー スクリプトを悩ませているバッファリングの問題に対処し、シームレスなデータへの道を開く手段が得られます。ストリーミング。
以上がPHP で出力バッファリングを無効にして、Web カメラからデータをストリーミングするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。