用电脑摄像头照人像,OBS Studio 推流, nginx 作流服务端,直播
需求:想让别人看到我在电脑上的操作界面。
步骤:
- apt install libnginx-mod-rtmp # 在debian 11里安装nginx的rtmp模块
在合适的位置,如nginx.conf文件中,添加以下内容,目的是启用rtmp直播及hls
rtmp { server { listen 1935; application live { live on; interleave on; hls on; hls_path /var/www/hls; hls_fragment 15s; } } }
添加相关的站点设置内容,如:
server { listen 443 ssl http2; listen [::]:443 ssl; ssl_certificate /etc/nginx/ssl/fullchain.cer; ssl_certificate_key /etc/nginx/ssl/anqun.org.key; server_name hls.anqun.org; root /var/www/hls; } server { listen 80; listen [::]:80; server_name hls.anqun.org; return 301 https://$server_name$request_uri; }
下载ckplayer,放到站点目录中,添加 index.html 文件,内容如下。其中kf.m3u8是obs直播时推送的串流密钥
<html> <head> <link rel="stylesheet" type="text/css" href="ckplayer/css/ckplayer.css"> <script type="text/javascript" charset="utf-8" src="ckplayer/js/ckplayer.js"></script> </head> <body> <div class="video" ></div> <script type="text/javascript"> //定义一个变量:videoObject,用来做为视频初始化配置 var videoObject = { container: '.video', //容器的ID或className live:true,//指定为直播 plug:'hls.js',//使用hls.js插件播放m3u8 video:'/kf.m3u8'//视频地址 } new ckplayer(videoObject); </script> </body> </html>
- obs的“推流”设置:服务器为“rtmp://hls.anqun.org/live”;串流密钥为“kf”(这里是测试,所以密钥设置得很简单)
- 如果顺利,用vlc播放器可以直接播放rtmp://hls.anqun.org/live/kf 的网络地址;其它端可以通过浏览器访问https://hls.anqun.org 播放
- 本地测试,浏览器播放约有1分钟的延迟
参考: