PHP で出力バッファリングを無効にする方法
問題
PHP の印刷機能を使用して Web カメラからデータをストリーミングすると、バッファリングが発生するようです。フレーム レートが低いと、フィードがフリーズし、複数のフレームが急速に表示されます。この問題は、出力バッファに起因すると考えられます。
解決策
ステップ 1: 出力バッファリングを無効にする
ステップ 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 サイトの他の関連記事を参照してください。