5分钟教你利用服务器,打造1个 7*24H直播的直播间

最近在折腾无人直播。觉得还挺有意思,接下来就分享一下如何实现。实现后就可以给一些主流的平台直播间不间断推流,达到无人直播的效果。
前提:拥有一台服务器。最好流量是1T或者以上。直播对流量要求比较高,视频码率越大,越费流量,所以最好买个国外的服务器。流量相对便宜。
接下来开始整,以centos作为演示搭建平台:

  1. 先vim创建文件,然后复制lala大佬的写的比较傻瓜式的操作的脚本,给放到服务器上,脚本内容如下:我这里创建的文件名字是test.sh。( 就是vim test.sh 。然后输入i进入编辑模式,然后复制粘贴以下内容,然后:wq 保存退出即可应该都会用vim吧,不会的可以留言~ )
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
#=================================================================#
#   System Required: CentOS7 X86_64                               #
#   Description: FFmpeg Stream Media Server                       #
#   Author: LALA                                    #
#   Website: https://www.lala.im                                  #
#=================================================================#

# 颜色选择
red='\033[0;31m'
green='\033[0;32m'
yellow='\033[0;33m'
font="\033[0m"

ffmpeg_install(){
# 安装FFMPEG
read -p "你的机器内是否已经安装过FFmpeg4.x?安装FFmpeg才能正常推流,是否现在安装FFmpeg?(yes/no):" Choose
if [ $Choose = "yes" ];then
    yum -y install wget
    wget --no-check-certificate https://www.johnvansickle.com/ffmpeg/old-releases/ffmpeg-4.0.3-64bit-static.tar.xz
    tar -xJf ffmpeg-4.0.3-64bit-static.tar.xz
    cd ffmpeg-4.0.3-64bit-static
    mv ffmpeg /usr/bin && mv ffprobe /usr/bin && mv qt-faststart /usr/bin && mv ffmpeg-10bit /usr/bin
fi
if [ $Choose = "no" ]
then
    echo -e "${yellow} 你选择不安装FFmpeg,请确定你的机器内已经自行安装过FFmpeg,否则程序无法正常工作! ${font}"
    sleep 2
fi
    }

stream_start(){
# 定义推流地址和推流码
read -p "输入你的推流地址和推流码(rtmp协议):" rtmp

# 判断用户输入的地址是否合法
if [[ $rtmp =~ "rtmp://" ]];then
    echo -e "${green} 推流地址输入正确,程序将进行下一步操作. ${font}"
      sleep 2
    else
      echo -e "${red} 你输入的地址不合法,请重新运行程序并输入! ${font}"
      exit 1
fi

# 定义视频存放目录
read -p "输入你的视频存放目录 (格式仅支持mp4,并且要绝对路径,例如/opt/video):" folder

# 判断是否需要添加水印
read -p "是否需要为视频添加水印?水印位置默认在右上方,需要较好CPU支持(yes/no):" watermark
if [ $watermark = "yes" ];then
    read -p "输入你的水印图片存放绝对路径,例如/opt/image/watermark.jpg (格式支持jpg/png/bmp):" image
    echo -e "${yellow} 添加水印完成,程序将开始推流. ${font}"
    # 循环
    while true
    do
        cd $folder
        for video in $(ls *.mp4)
        do
        ffmpeg -re -i "$video" -i "$image" -filter_complex overlay=W-w-5:5 -c:v libx264 -c:a aac -b:a 192k -strict -2 -f flv ${rtmp}
        done
    done
fi
if [ $watermark = "no" ]
then
    echo -e "${yellow} 你选择不添加水印,程序将开始推流. ${font}"
    # 循环
    while true
    do
        cd $folder
        for video in $(ls *.mp4)
        do
        ffmpeg -re -i "$video" -preset ultrafast -c:v copy -c:a aac -b:a 192k -strict -2 -f flv ${rtmp}
       # ffmpeg -re -i "$video" -preset ultrafast -vcodec libx264 -g 60 -b:v 8500k -c:a aac -b:a 128k -strict -2 -f flv ${rtmp}

        done
    done
fi
    }

# 停止推流
stream_stop(){
    screen -S stream -X quit
    killall ffmpeg
    }

# 开始菜单设置
echo -e "${yellow} CentOS7 X86_64 FFmpeg无人值守循环推流 For LALA.IM ${font}"
echo -e "${red} 请确定此脚本目前是在screen窗口内运行的! ${font}"
echo -e "${green} 1.安装FFmpeg (机器要安装FFmpeg才能正常推流) ${font}"
echo -e "${green} 2.开始无人值守循环推流 ${font}"
echo -e "${green} 3.停止推流 ${font}"
start_menu(){
    read -p "请输入数字(1-3),选择你要进行的操作:" num
    case "$num" in
        1)
        ffmpeg_install
        ;;
        2)
        stream_start
        ;;
        3)
        stream_stop
        ;;
        *)
        echo -e "${red} 请输入正确的数字 (1-3) ${font}"
        ;;
    esac
    }

# 运行开始菜单
start_menu

  1. 第一步如果折腾好的话是这样的

然后执行bash test.sh。显示这样

  1. 选择1,回车,yes,先安装FFmpeg。
    安装完成之后,再次允许脚本。这次我们选择2.

  2. 这一步我们需要准备推流地址和推流码。这里我以youtube的为例子,把推流地址和推流码复制过来。

注意先复制1,然后复制2,这中间要有斜杠。有的直播平台会自己带,有的没有。最后服务器上是这样的。

一定要注意推流地址和推流码之间的’/’
5. 然后回车进入下一步。把MP4格式的视频准备好,就是把你想直播的mp4放到服务器上,不会命令行操作的可用moba这些的ssh终端操作。最好放在和这个脚本一个路径的地方,当然别的地方也可以,随意~
6. 至此,我们推流脚本和要推流的视频都已经准备好了。其实已经开始直播了,但是我们这里要再使用一个screen工具来实现后台执行这个命令,让我们可以在服务器上可以继续干别的事情 yum -y install screen 。安装即可。
7.接着我们还是在当前路径,即视频和脚本所在的路径输入 screen。新建一个屏幕。然后执行bash test.sh 然后 输入2.然后输入推流地址和推流码。然后回车,然后输入你视频存放的路径。继续回车,选择是否要添加水印。如果服务器cpu不错。,可以开启,否则不开启。继续回车,就开始推流了

  1. 此时我们按住CTRL + A +D。即可让程序后台运行。
  2. 若是想中断直播,输入,screen -ls 。

看到前面的进程号之后,kill掉即可。 若要重新回去这个屏幕 screen -r 进程号 即可。

14:20欢迎访问我的博客站,有更多开源项目分享:vwo50

<think>好的,用户之前询问了如何申请企业白名单API,现在又问如何从零开始搭建无人直播服务器。我需要先回顾之前的对话,确保回答连贯。用户可能是在申请白名单API后,打算实际搭建自己的直播服务器,所以需要详细的步骤指导。 首先,用户可能对直播技术不太熟悉,所以需要从基础开始解释。要拆解无人直播服务器的关键组成部分:推流端、服务器、流媒体服务和播放端。可能需要分步骤讲解,每个部分的作用和实现方法。 用户的需求是“从0开始搭建”,所以需要详细列出每一步需要的工具和操作,比如使用OBS推流,搭建Nginx RTMP服务器,配置流媒体服务如SRS,以及如何测试和优化。同时,用户可能关心成本问题,所以需要提到免费和付费的选项,比如云服务器的选择。 另外,用户可能遇到技术难点,比如服务器配置错误或推流延迟,需要给出常见问题解决方法。还要考虑无人直播的特殊需求,比如自动化播放视频列表,可能需要使用FFmpeg或脚本循环播放。 还需要注意安全性和合规性,提醒用户遵守平台规则,避免侵权或违规内容。可能用户之前申请了抖音的企业白名单API,现在想用在自己的服务器上,需要确认是否需要相关权限,或者是否需要使用其他平台如YouTube或Twitch的API。 最后,总结步骤,确保用户能跟随操作,并给出替代方案,以防某些步骤不可行。比如,如果自己搭建服务器太复杂,可以使用第三方服务,但可能需要费用。</think>--- ### **从零搭建无人直播服务器详细** 无人直播核心流程:**视频推流→服务器转码→分发到平台**,以下是分步操作指南(含代码/工具配置): --- ### **一、基础架构与工具准备** #### 1. **核心组件** - **推流端**:OBS Studio(免费开源,支持Windows/macOS/Linux) - **流媒体服务器**:Nginx + RTMP模块 / SRS(Simple-RTMP-Server) - **分发平台**:YouTube Live/Twitch/抖音直播伴侣(需白名单API) #### 2. **服务器选择** - **最低配置**(测试环境): - CPU:2核 - 内存:2GB - 带宽:10Mbps(上行) - **推荐云服务商**: - 阿里云/腾讯云(国内低延迟) - AWS Lightsail(全球节点) --- ### **二、搭建流媒体服务器(以Nginx+RTMP为例)** #### **步骤1:安装Nginx与RTMP模块** ```bash # Ubuntu/Debian系统 sudo apt update sudo apt install build-essential libpcre3 libpcre3-dev libssl-dev zlib1g-dev wget https://nginx.org/download/nginx-1.25.3.tar.gz wget https://github.com/arut/nginx-rtmp-module/archive/refs/tags/v1.2.2.tar.gz # 解压并编译 tar -zxvf nginx-1.25.3.tar.gz tar -zxvf v1.2.2.tar.gz cd nginx-1.25.3 ./configure --add-module=../nginx-rtmp-module-1.2.2 --with-http_ssl_module make && sudo make install ``` #### **步骤2:配置RTMP服务** 编辑配置文件 `/usr/local/nginx/conf/nginx.conf`,添加: ```nginx rtmp { server { listen 1935; # RTMP默认端口 chunk_size 4096; application live { live on; record off; # 推流鉴权(可选) # on_publish http://your-server.com/auth; } } } ``` 启动服务: ```bash sudo /usr/local/nginx/sbin/nginx ``` #### **步骤3:验证服务器状态** 打开OBS → 设置「推流」→ 服务器地址填 `rtmp://你的服务器IP/live`,流密钥自定义(如`test123`)→ 点击「开始推流」。若OBS显示绿色状态条,则服务器搭建成功。 --- ### **三、实现无人值守直播** #### 方案1**本地视频循环推流(OBS自动化)** 1. **配置OBS场景**: - 添加「媒体源」→ 选择视频文件 → 勾选「循环播放」 2. **设置定时任务**(Windows任务计划程序 / macOS crontab): - 每日固定时间启动OBS并自动推流 #### 方案2:**服务器端自动化(FFmpeg推流)** ```bash # 安装FFmpeg sudo apt install ffmpeg # 循环推流本地视频文件 ffmpeg -re -stream_loop -1 -i input.mp4 -c:v libx264 -preset fast -c:a aac -f flv rtmp://localhost/live/stream_key ``` **参数说明**: - `-stream_loop -1`:无限循环视频 - `-c:v libx264`:H.264编码 - `-f flv`:输出为FLV格式(兼容RTMP) --- ### **四、分发到直播平台(以抖音为例)** 若已申请企业白名单API,可直接调用接口推流: ```python # 使用抖音API推流(需access_token) import requests url = "https://open.douyin.com/api/live/create/" headers = {"access-token": "YOUR_TOKEN"} data = { "title": "无人直播测试", "cover_url": "http://your-domain.com/cover.jpg", "orientation": 0 } response = requests.post(url, headers=headers, json=data) stream_url = response.json()["data"]["stream_url"] # 获取推流地址 # 使用FFmpeg推送视频到抖音 ffmpeg -re -i input.mp4 -c copy -f flv "{stream_url}" ``` --- ### **五、关键问题解决方案** #### 1. **推流卡顿** - **优化编码参数**: ```bash ffmpeg -i input.mp4 -c:v libx264 -b:v 2500k -maxrate 2500k -bufsize 5000k \ -c:a aac -b:a 128k -f flv rtmp://server/live/stream_key ``` - **降低分辨率**:使用`-vf scale=1280:-1`缩放至720P #### 2. **多平台同步直播** 使用NGINX RTMP的`push`功能,将流同时转发到多个平台: ```nginx rtmp { server { application live { live on; # 转发到抖音+YouTube push rtmp://live-push.douyin.com/your_stream_key; push rtmp://a.rtmp.youtube.com/live2/your_youtube_key; } } } ``` #### 3. **24小时稳定运行** - 使用`systemd`守护进程(示例配置): ```bash # 创建服务文件 /etc/systemd/system/livestream.service [Unit] Description=24h无人直播服务 After=network.target [Service] User=root ExecStart=/usr/bin/ffmpeg -re -stream_loop -1 -i /videos/loop.mp4 -c copy -f flv rtmp://localhost/live/stream_key Restart=always [Install] WantedBy=multi-user.target # 启动服务 sudo systemctl daemon-reload sudo systemctl start livestream ``` --- ### **六、成本估算(以腾讯云为例)** | 项目 | 配置 | 月成本 | |--------------------|--------------------|------------| | 云服务器 | 2核4G/10M带宽 | ¥300~500 | | 存储空间 | 500GB视频存储 | ¥80 | | CDN加速(可选) | 1TB流量 | ¥150 | --- ### **替代方案(低成本)** 1. **使用第三方托管服务**: - Restream.io(支持50+平台同步,免费版有分辨率限制) - OBS Ninja(WebRTC直推,无需服务器) 2. **旧电脑改造**: - 安装Linux + SRS,利用家庭宽带推流(需公网IP+端口映射) --- 按照上述步骤,即可实现从零搭建无人直播服务器。若有具体技术问题(如防火墙配置、编解码优化),可进一步沟通!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值