云澜主机单机直播如何开启?

HCRM技术_小炮 云主机 2025-08-06 1 1

📌 核心组件和流程

云澜主机单机直播怎么开

1、云澜主机: 你的服务器,负责接收推流、处理(可选转码/切片)、分发流。

2、推流软件: 在你的本地电脑或采集设备上运行(如OBS Studio, Streamlabs OBS, FFmpeg),将视频/音频推送到云主机。

3、播放端: 观众使用的设备,通过播放器(如VLC, 网页播放器)从云主机拉取流进行观看。

4、流程:推流软件 -> (网络) -> 云澜主机 (RTMP接收 + HLS/DASH切片/分发) -> (网络) -> 观众播放器

📍 详细步骤

🚀 1. 准备云澜主机

云澜主机单机直播怎么开

购买与配置

* 登录云澜平台,购买一台云服务器(ECS)。

操作系统 推荐选择Ubuntu 20.04/22.04 LTSCentOS 7/8 Stream,本文以Ubuntu为例。

配置选择 这是关键!单机处理所有任务,配置要足够。

CPU至少4核vCPU(推荐8核或更高,尤其需要转码时),直播对CPU要求较高,特别是转码。

云澜主机单机直播怎么开

内存至少4GB(推荐8GB或更高),处理流和切片需要内存。

带宽这是瓶颈! 确保你的公网出带宽足够。

计算方式单个观众的码率 (kbps) * 最大并发观众数 / 1000 * 1.2 (冗余) = 所需最小带宽 (Mbps)

例如1Mbps码率给100个观众,需要约1 * 100 / 1000 * 1.2 = 0.12 Gbps = 120 Mbps 的出带宽。务必选择足够带宽的套餐或按量付费带宽。

磁盘 至少40GB系统盘(推荐SSD),如果做HLS切片且保留时间长或观众多,可能需要更大的数据盘挂载到切片目录,SSD能显著提升切片和分发速度。

安全组配置 (防火墙)

* 在云澜控制台找到该ECS实例的安全组。

放行入方向规则

TCP: 1935 (RTMP协议默认端口,用于接收推流)

TCP: 80 (HTTP,用于HLS .m3u8/.ts文件分发) 或TCP: 443 (HTTPS,更安全)

* (可选)TCP: 8080 (或其他端口,用于HTTP状态查看或备用)

放行出方向规则 通常默认全放行即可。

连接主机 使用SSH客户端(如PuTTY, Terminal, Xshell)通过公网IP和密钥/密码登录到你的云主机。

🛠 2. 在云澜主机上安装和配置流媒体服务器 (Nginx + RTMP Module)

这是最核心的部分,我们将使用高性能的Nginx Web服务器,并为其添加RTMP模块来处理直播流。

安装依赖

    sudo apt update
    sudo apt upgrade -y
    sudo apt install build-essential libpcre3 libpcre3-dev libssl-dev zlib1g-dev -y

下载源码

    mkdir nginx-build && cd nginx-build
    wget http://nginx.org/download/nginx-1.24.0.tar.gz # 检查官网获取最新稳定版
    wget https://github.com/arut/nginx-rtmp-module/archive/refs/tags/v1.2.2.tar.gz # 检查GitHub获取最新版
    tar -zxvf nginx-1.24.0.tar.gz
    tar -zxvf v1.2.2.tar.gz # 解压后目录名通常是 nginx-rtmp-module-1.2.2

编译安装Nginx with RTMP Module

    cd nginx-1.24.0
    ./configure --prefix=/usr/local/nginx --with-http_ssl_module --add-module=../nginx-rtmp-module-1.2.2
    make -j $(nproc) # 使用所有CPU核心加速编译
    sudo make install

配置Nginx (RTMP & HTTP(S) for HLS)

编辑主配置文件sudo nano /usr/local/nginx/conf/nginx.conf

http { ... }之前,添加RTMP配置块

        # RTMP 配置
        rtmp {
            server {
                listen 1935; # 监听RTMP端口
                chunk_size 4096;
                application live { # 定义一个应用叫 'live'
                    live on; # 启用直播
                    record off; # 关闭录制,按需开启
                    # HLS 设置 - 关键!用于将RTMP流切片成HLS
                    hls on; # 开启HLS
                    hls_path /var/www/html/hls; # HLS切片文件(.ts)和索引(.m3u8)的存储目录
                    hls_fragment 5s; # 每个.ts切片时长(秒)
                    hls_playlist_length 30s; # HLS播放列表保留时长(秒)
                    # hls_cleanup on; # 自动清理旧切片 (默认开启)
                    # hls_continuous on; # 确保播放列表连续性 (可选)
                    # hls_nested on; # 为每个流创建子目录 (推荐)
                    # 访问控制 (可选但强烈推荐!)
                    # allow publish 192.168.1.0/24; # 允许推流的IP段
                    # deny publish all; # 拒绝其他所有IP推流
                    # allow play all; # 允许所有IP播放 (HLS通常走HTTP)
                }
            }
        }

http { ... } 块内的server { ... } 配置中,添加一个location 块来提供HLS文件

        http {
            server {
                listen 80; # 监听HTTP端口 (如果要用HTTPS,需配置SSL证书并监听443)
                # listen 443 ssl; # 启用HTTPS示例
                # ssl_certificate /path/to/your_domain.crt;
                # ssl_certificate_key /path/to/your_domain.key;
                server_name your_server_ip; # 替换为你的云主机公网IP或绑定的域名
                location /hls { # 匹配指向 /hls 的请求
                    types {
                        application/vnd.apple.mpegurl m3u8;
                        video/mp2t ts;
                    }
                    root /var/www/html; # 指向 hls_path 的上一级目录
                    add_header Cache-Control no-cache; # 避免播放器缓存旧切片
                    add_header Access-Control-Allow-Origin *; # 允许跨域播放 (重要!)
                }
                # (可选) 状态页面
                location /stat {
                    rtmp_stat all;
                    rtmp_stat_stylesheet stat.xsl;
                }
                location /stat.xsl {
                    root /path/to/nginx-rtmp-module; # 指向你下载解压的nginx-rtmp-module目录
                }
                # 其他配置...
            }
        }

重要配置项说明

hls_path确保该目录存在且有写入权限sudo mkdir -p /var/www/html/hls && sudo chmod -R 755 /var/www/html

hls_nested on推荐启用,这样会在hls_path下为每个流创建单独的子目录,避免冲突。

访问控制 (allow publish /deny publish)强烈建议配置!只允许你信任的IP地址(你的推流电脑的公网IP)进行推流,否则任何人都能推流到你的服务器,占用资源甚至推送非法内容。allow play all 通常没问题,因为播放走的是HTTP(S)。

HTTPS如果对外公开服务,强烈建议配置SSL证书(使用Let's Encrypt免费证书工具如certbot)并监听443端口,以加密播放流量。

server_name如果购买了域名并解析到云主机IP,这里填域名;否则填IP地址。

创建HLS存储目录并设置权限

    sudo mkdir -p /var/www/html/hls
    sudo chown -R www-data:www-data /var/www/html/hls # 根据Nginx运行用户调整 (通常是 www-data 或 nobody)
    sudo chmod -R 755 /var/www/html

启动Nginx并设置开机自启

    sudo /usr/local/nginx/sbin/nginx # 启动
    # 检查是否运行: ps aux | grep nginx
    # 测试配置文件: sudo /usr/local/nginx/sbin/nginx -t

设置开机启动 (Systemd)

创建服务文件sudo nano /etc/systemd/system/nginx.service

粘贴以下内容

            [Unit]
            Description=The NGINX HTTP and reverse proxy server
            After=network.target
            [Service]
            Type=forking
            PIDFile=/usr/local/nginx/logs/nginx.pid
            ExecStartPre=/usr/local/nginx/sbin/nginx -t
            ExecStart=/usr/local/nginx/sbin/nginx
            ExecReload=/usr/local/nginx/sbin/nginx -s reload
            ExecStop=/usr/local/nginx/sbin/nginx -s quit
            PrivateTmp=true
            [Install]
            WantedBy=multi-user.target

启用并启动服务

            sudo systemctl daemon-reload
            sudo systemctl enable nginx
            sudo systemctl start nginx
            sudo systemctl status nginx # 检查状态

📡 3. 使用推流软件 (OBS Studio) 推送直播流

下载安装 在你的本地电脑(主播端)下载并安装 [OBS Studio](https://obsproject.com/)。

配置OBS

* 打开OBS。

* 在"来源"框中添加你的视频源(如显示器采集、摄像头、视频文件等)和音频源。

* 进入设置 -> 推流

服务 选择自定义...

服务器 填写你的云澜主机RTMP地址:rtmp://你的云主机公网IP:1935/live (这里的/live 对应Nginx配置中的application live)

串流密钥这是关键且需要保密! 填写一个唯一且不易猜测的字符串。mysecretstream123,这个密钥将作为流标识符。

最终推流地址是rtmp://你的云主机公网IP:1935/live/串流密钥

开始推流 点击OBS主界面的"开始推流",OBS状态栏应显示绿色的推流速度。

📺 4. 观众观看直播 (拉流)

HLS播放地址 这是最通用、穿越防火墙能力最强的播放方式。

地址格式http://你的云主机公网IP/hls/串流密钥.m3u8 (如果启用了hls_nested on,通常是http://你的云主机公网IP/hls/串流密钥/stream.m3u8 或类似,具体看Nginx配置和生成的路径)。

示例http://123.45.67.89/hls/mysecretstream123.m3u8

播放方式

网页播放器 在你的网页中嵌入支持HLS的播放器(如video.js, hls.js, JW Player, Clappr),这是最常见的观众访问方式。

简单HTML5示例 (需要浏览器支持HLS或使用hls.js库)

            <video id="myVideo" controls width="640" height="360"></video>
            <script src="https://cdn.jsdelivr.net/npm/hls.js@latest"></script>
            <script>
              if (Hls.isSupported()) {
                var video = document.getElementById('myVideo');
                var hls = new Hls();
                hls.loadSource('http://你的云主机公网IP/hls/串流密钥.m3u8');
                hls.attachMedia(video);
                hls.on(Hls.Events.MANIFEST_PARSED, function() {
                  video.play();
                });
              } else if (video.canPlayType('application/vnd.apple.mpegurl')) {
                video.src = 'http://你的云主机公网IP/hls/串流密钥.m3u8';
                video.addEventListener('loadedmetadata', function() {
                  video.play();
                });
              }
            </script>

VLC 播放器 打开VLC -> 媒体 -> 打开网络串流 -> 粘贴上面的HLS地址。

其他支持HLS的播放器 如手机上的VLC、MX Player,或智能电视/盒子上的支持HLS的App。

📌 重要注意事项和优化建议

1、带宽瓶颈: 这是单机方案最大的限制,所有观众的流量都从这台云主机出。**务必确保购买的云主机出带宽 > (观众峰值数 * 单个观众所需码率)**,超售会导致所有观众卡顿。

2、CPU瓶颈:

不转码 如果OBS推流的编码格式(如H.264)和分辨率/码率就是最终观众需要的格式,Nginx只是接收RTMP并切片HLS,CPU消耗较低。

需要转码 如果你需要在服务器上将推流转码成不同的分辨率/码率(如生成720p, 480p等多路流),或者改变编码格式,CPU消耗会急剧上升!单机转码能力有限,通常只能处理少量并发转码任务,考虑:

在OBS端输出最终需要的格式/码率,避免服务器转码。

* 如果必须服务器转码,选择非常强大的CPU实例

* 使用更高效的编码器(如libx264 vssoftware编码器)或硬件加速(如果云主机支持GPU或Intel QSV/AMD AMF)。

3、延迟: HLS为了兼容性和流畅性,默认有较长的延迟(通常在hls_playlist_length + 几个切片时长,比如30s+),如果需要低延迟(<10s),需:

* 调小hls_fragment (如2s) 和hls_playlist_length (如6s)。

* 使用低延迟HLS配置 (LL-HLS),但这需要播放器和CDN支持。

* 考虑使用WebRTC(延迟最低,但搭建更复杂)或RTMP/FLV播放(延迟较低,但浏览器支持差)。

4、安全:

RTMP推流鉴权 务必在Nginx RTMP配置中使用allow publish/deny publish 限制推流IP

文章摘自:https://idc.huochengrm.cn/zj/12459.html

评论

精彩评论
  • 2025-08-06 12:34:35

    云澜主机单机直播开启方法如下:首先确保你的主机系统支持直播功能,然后在控制面板中找到直播选项,按照提示安装直播软件,设置直播参数,连接摄像头和麦克风,最后点击开始直播即可。