네트워크 기술의 지속적인 발전으로 라이브 비디오는 주류 미디어 커뮤니케이션 방법이되었습니다. 유연한 웹 개발 언어로서 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가 올바르게 설치되었는지 확인하고 경로 설정이 올바른지 확인하십시오.
위의 두 가지 방법을 통해 PHP는 비디오의 실시간 전달 및 라이브 방송 기능을 효과적으로 실현할 수 있습니다. 소켓 프로그래밍을 사용하여 비디오 스트림을 신속하게 전달하고 FFMPEG를 결합하여 효율적인 라이브 스트리밍을 달성하여 다양한 시나리오의 요구를 충족시킵니다. 실제 비즈니스 요구에 따른 코드의 유연한 조정 및 최적화는 안정적이고 매끄럽게 라이브 비디오 경험을 만들 수 있습니다.