ネットワークテクノロジーの継続的な進歩により、ライブビデオは主流のメディアコミュニケーション方法になりました。柔軟なWeb開発言語として、PHPはリアルタイムの転送およびビデオのライブブロードキャスト機能をサポートすることもできます。ビデオのリアルタイム転送は、ビデオソースデータをユーザー側にすばやく渡して、動画の再生をスムーズに確保することです。ライブブロードキャスト関数は、ビデオソースをリアルタイムでサーバーにプッシュし、視聴者に配布することです。
ビデオのリアルタイム転送にはPHPソケットプログラミングが必要であり、ビデオストリームがソケット接続を介して取得および出力されます。次の例コードは、FSOCOPEN関数を介してビデオソースを接続し、データを転送する方法を示しています。
<?php
$videoSource = 'http://example.com/video_source'; // ビデオソースアドレス
$fp = fsockopen("example.com", 80, $errno, $errstr, 30);
if (!$fp) {
echo "$errstr ($errno)";
} else {
$out = "GET /video_source HTTP/1.1\r\n";
$out .= "Host: example.com\r\n";
$out .= "Connection: Close\r\n\r\n";
fwrite($fp, $out);
while (!feof($fp)) {
echo fgets($fp, 128);
flush();
}
fclose($fp);
}
?>
コードでは、ビデオソースアドレスが最初に定義され、次にサーバーへの接続がFSOCOPENを介して確立され、ビデオストリームを取得するためにHTTPリクエストが送信されます。データをループして出力することにより、ビデオストリームのリアルタイム転送が実現されます。
通常、ライブストリーミング機能には、FFMPEGなどのプロフェッショナルストリーミングメディア処理ツールの助けが必要です。 PHPを介してFFMPEGコマンドを実行すると、ビデオソースをライブブロードキャストサーバーにプッシュする機能を実現できます。例は次のとおりです。
<?php
$videoSource = 'rtmp://example.com/live/video'; // ビデオソースアドレス
$videoDestination = 'rtmp://example.com/live/destination'; // ライブサーバーアドレス
$ffmpegPath = '/usr/local/bin/ffmpeg'; // FFmpeg実行可能ファイルパス
$cmd = "$ffmpegPath -i $videoSource -c copy -f flv $videoDestination 2>&1";
exec($cmd, $output);
foreach ($output as $line) {
echo $line . "<br>";
}
?>
このコードでは、PHPはexec関数を介してFFMPEGを呼び出して、ビデオソースをターゲットライブブロードキャストアドレスにプッシュします。使用する前に、サーバーにFFMPEGが正しくインストールされ、パス設定が正しいことを確認してください。
上記の2つの方法により、PHPはビデオのリアルタイム転送およびライブブロードキャスト機能を効果的に実現できます。ソケットプログラミングを使用してビデオストリームをすばやく転送し、FFMPEGを組み合わせて効率的なライブストリーミングを実現して、さまざまなシナリオのニーズを満たします。実際のビジネスニーズに応じたコードの柔軟な調整と最適化は、安定したスムーズなライブビデオエクスペリエンスを作成できます。