nginx配置
worker_processes 1;
error_log logs/error.log debug;
events {
worker_connections 1024;
}
rtmp {
server {
listen 1935;
application hls {
live on;
on_publish http://127.0.0.1/auth_client.php;
hls on;
hls_path nginx-rtmp-module/tmp/app/;
hls_fragment 5s;
recorder rec {
record all manual;
record_suffix _rec.flv;
record_path nginx-rtmp-module/tmp/rec/;
record_unique on;
}
}
application vod2{
play nginx-rtmp-module/tmp/rec/;
}
}
}
http {
server {
listen 80;
location /stat {
rtmp_stat all;
rtmp_stat_stylesheet stat.xsl;
}
location /stat.xsl {
root nginx-rtmp-module/;
}
location /control {
rtmp_control all;
}
location /hls/ {
types{
application/vnd.apple.mpegurl m3u8;
video/mp2t ts;
}
alias nginx-rtmp-module/tmp/app/;
expires -1;
}
location /vod/{
alias nginx-rtmp-module/tmp/rec/;
}
location / {
root nginx-rtmp-module/test/www/;
}
location ~ \.mp4$ {
mp4;
}
location ~ \.php$ {
root /usr/local/nginx/html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name;
include fastcgi_params;
}
}
}
测试
开始录制
http://127.0.0.1:18080/control/record/start?app=hls&name=mystream&rec=rec
停止录制
http://127.0.0.1:18080/control/record/stop?app=hls&name=mystream&rec=rec
推流地址:
rmtp:
直播地址:
rmtp:
http:
MP4拖动播放
.mp4?start=60
.mp4?start=60&end=180
auth_client.php
$user = isset($_GET['user']) ? $_GET['user'] : '';
$pass = isset($_GET['pass']) ? $_GET['pass'] : '';
if (empty($user) || empty($pass)) {
echo "wrong query input";
header('HTTP/1.0 404 Not Found');
exit();
}
$saveuser = user;
$savepass = pass;
if (strcmp($user, $saveuser) == 0 && strcmp($pass, $savepass) == 0) {
echo "Username and Password OK";
} else {
echo "Username or Password wrong";
header('HTTP/1.0 404 Not Found');
exit();
}