인터넷의 빠른 발전으로 비디오 스트리밍은 사용자가 비디오를보고 공유하는 주요 방법이되었습니다. 웹 애플리케이션을 개발할 때 PHP는 비디오 스트림을 처리하는 다양한 방법을 제공하므로 개발자는 비디오 스트림의 재생 및 처리 기능을 쉽게 알 수 있도록 도와줍니다. 이 기사는 몇 가지 일반적인 PHP 비디오 스트리밍 방법을 소개하고 코드 예제를 통해이를 수행하는 방법을 보여줍니다.
PHP를 사용하면 로컬 비디오 파일을 쉽게 열고 비디오 스트림으로 변환 할 수 있습니다. 간단한 예는 다음과 같습니다.
$ filename = 'path/to/video.mp4'; 헤더 ( '내용 유형 : 비디오/mp4'); 헤더 ( 'content-length :'. filesize ($ filename)); readfile ($ filename);
위의 코드에서는 먼저 비디오 파일의 MIME 유형이 비디오/MP4임을 지정하고 컨텐츠 길이 헤더를 설정합니다. 그런 다음 readFile () 함수를 사용하여 비디오 파일 컨텐츠를 브라우저에 직접 출력하십시오.
FFMPEG는 다양한 비디오 스트리밍 미디어를 처리 할 수있는 강력한 오픈 소스 멀티미디어 처리 도구입니다. PHP의 exec () 함수를 사용하면 FFMPEG 명령을 쉽게 호출하여 비디오를 트랜스 코딩 할 수 있습니다. 다음은 FFMPEG 트랜스 코딩에 대한 예제 코드입니다.
$ inputfile = 'path/to/input.mp4'; $ outputfile = 'path/to/output.mp4'; $ ffmpegcommand = "ffmpeg -i {$ inputfile} -c : v libx264 -c : a aac -Strict 실험 {$ outputfile}"; exec ($ ffmpegcommand);
이 코드에서는 먼저 입력 및 출력 파일의 경로를 설정 한 다음 exec () 함수를 통해 FFMPEG 명령을 실행하여 비디오를 H.264 형식 비디오 및 AAC 형식 오디오로 트랜스 코딩합니다.
일부 응용 프로그램 시나리오에서는 스트리밍을 활성화하려면 청크로 비디오 파일을 전송해야 할 수도 있습니다. 다음은 PHP를 사용한 비디오 스트리밍을위한 코드 예제입니다.
$ filename = 'path/to/video.mp4'; 헤더 ( '수락-범위 : 바이트'); $ start = 0; $ end = filesize ($ filename) -1; 헤더 ( "content-range : bytes {$ start}-{$ end}/". filesize ($ filename); 헤더 ( "Content-Length :". filesize ($ filename)); $ fp = fopen ($ filename, 'rb'); if ($ fp) { fseek ($ fp, $ start, seek_set); while (! feof ($ fp) && ($ p = ftell ($ fp)) <= $ end) { $ length = ($ p + 1024> $ end)? $ end- $ p + 1 : 1024; Echo Fread ($ fp, $ 길이); ob_flush (); 플러시(); } } fclose ($ fp);
이 코드 예제는 'accept-ranges'및 'content-range'헤더를 설정하여 파일의 청크 전송을 구현합니다. `fopen ()`를 사용하려면 비디오 파일을 열고`fseek ()`를 통해 읽기 위치를 찾아`fread ()`를 사용하여 요구에 따른 데이터를 읽고`ob_flush ()`및`flush ()`를 통해 출력하십시오.
이 기사는 비디오 스트림을 직접 출력하는 방법, 비디오 트랜스 코딩에 FFMPEG를 사용하는 방법 및 비디오 파일 스트리밍 방법을 포함하여 PHP의 몇 가지 일반적인 비디오 스트리밍 방법을 소개합니다. 이러한 방법은 개발자가 다양한 비디오 처리 요구를 쉽게 달성 할 수 있으며 다양한 비디오 스트리밍 애플리케이션 시나리오에 적합합니다.