要使用 PHP 處理 RTMP 視頻流,您需要使用一些第三方庫和工具。這里有一個簡單的步驟來實現這個功能:
安裝 RTMP 服務器軟件,例如 Nginx with RTMP module 或 SRS (Simple RTMP Server)。
配置 RTMP 服務器以接收視頻流。例如,對于 Nginx with RTMP module,您需要在配置文件中添加以下內容:
rtmp {
server {
listen 1935;
chunk_size 4000;
application live {
live on;
record off;
}
}
}
對于 SRS,您需要在配置文件中添加以下內容:
listen 1935;
max_connections 1000;
vhost __defaultVhost__ {
mode remote;
hls {
enabled on;
hls_path ./objs/nginx/html;
hls_fragment 10;
hls_window 60;
}
}
shell_exec()
函數運行 FFmpeg 命令以處理 RTMP 視頻流。例如,將 RTMP 視頻流轉換為 HLS(HTTP Live Streaming)格式:<?php
$ffmpeg_path = '/usr/bin/ffmpeg'; // 根據您的系統更改 FFmpeg 路徑
$input_stream = 'rtmp://your_rtmp_server_ip/live/stream_name';
$output_stream = 'http://your_web_server_ip/hls/stream_name.m3u8';
$command = "{$ffmpeg_path} -i {$input_stream} -c:v libx264 -crf 28 -preset veryfast -hls_time 10 -hls_list_size 6 -hls_wrap 10 -start_number 1 -hls_allow_cache 0 -threads auto -loglevel quiet -f hls {$output_stream}";
shell_exec($command);
?>
<!DOCTYPE html>
<html>
<head>
<title>RTMP to HLS using PHP</title>
<link href="https://vjs.zencdn.net/7.11.4/video-js.min.css" rel="stylesheet" />
<script src="https://vjs.zencdn.net/7.11.4/video.min.js"></script>
</head>
<body>
<video id="my-video" class="video-js" controls preload="auto" width="640" height="264">
<source src="http://your_web_server_ip/hls/stream_name.m3u8" type="application/x-mpegURL">
</video>
<script>
var player = videojs('my-video');
</script>
</body>
</html>
這樣,您就可以使用 PHP 處理 RTMP 視頻流并在網頁上播放了。請注意,這只是一個簡單的示例,您可能需要根據您的需求進行調整和優化。