Blog.wlens.top
1114 字
6 分钟
闲置VPS直播:一键搭建教程,轻松实现低成本直播

闲置 VPS 直播:一键搭建教程
推荐 CentOS 7/Ubuntu/Debian 系统,包含 FFmpeg 安装、推流配置及视频文件管理,助力低成本直播实现。
一、系统准备
- 推荐系统: CentOS 7、Ubuntu 18、Debian 9 或以上版本。
- 更新系统:
- CentOS:
yum update -y && yum install vim screen -y
- Ubuntu/Debian:
apt update -y && apt install vim screen -y
- CentOS:
二、安装 FFmpeg
参考 FFmpeg
三、准备服务器文件
stream.sh
脚本: 该脚本用于自动化直播推流过程。
#!/bin/bashPATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/binexport PATH
# 颜色选择red='\033[0;31m'green='\033[0;32m'yellow='\033[0;33m'font="\033[0m"
ffmpeg_install(){# 安装FFMPEGread -p "你的机器内是否已经安装过FFmpeg4.x?安装FFmpeg才能正常推流,是否现在安装FFmpeg?(yes/no):" Chooseif [ $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/binfiif [ $Choose = "no" ]then echo -e "${yellow} 你选择不安装FFmpeg,请确定你的机器内已经自行安装过FFmpeg,否则程序无法正常工作! ${font}" sleep 2fi }
stream_start(){# 定义推流地址和推流码read -p "输入你的推流地址和推流码(rtmp协议):" rtmp
# 判断用户输入的地址是否合法if [[ $rtmp =~ "rtmp://" ]];then echo -e "${green} 推流地址输入正确,程序将进行下一步操作. ${font}" sleep 2 else echo -e "${red} 你输入的地址不合法,请重新运行程序并输入! ${font}" exit 1fi
# 定义视频存放目录read -p "输入你的视频存放目录 (格式仅支持mp4,并且要绝对路径,例如/opt/video):" folder
# 判断是否需要添加水印read -p "是否需要为视频添加水印?水印位置默认在右上方,需要较好CPU支持(yes/no):" watermarkif [ $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 donefiif [ $watermark = "no" ]then echo -e "${yellow} 你选择不添加水印,程序将开始推流. ${font}" # 循环 while true do cd $folder for video in $(ls *.mp4) do ffmpeg -re -i "$video" -c:v copy -c:a aac -b:a 192k -strict -2 -f flv ${rtmp} done donefi }
# 停止推流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
* **功能:** * 安装 FFmpeg (如果未安装)。 * 配置推流地址和码流。 * 判断是否需要添加水印。 * 循环推送视频文件。* **关键参数:** * `rtmp`: 推流地址和码流 (例如:`rtmp://xxxxx.xxxxx.xxx/live/xxxx-xxxx`)。 * `folder`: 视频文件存放目录 (绝对路径)。 * `watermark`: 是否添加水印 (yes/no)。 * `image`: 水印图片路径 (绝对路径)。
2. 视频文件上传: 将要推流的视频文件上传到服务器,例如 /root
目录。 stream.sh
脚本支持自动轮播多个 MP4 文件。
四、开启直播
- SSH 连接: 使用 SSH 客户端连接到 VPS。
- 创建 Screen 会话:
screen -S stream
(如果未安装 Screen,先安装:yum -y install screen
) - 运行脚本: 在 Screen 会话中执行
bash stream.sh
- 配置参数: 按照脚本提示,输入推流地址、视频目录、是否添加水印等参数。
- 推流地址: 在直播后台查找推流地址,格式类似于
rtmp://your-server-url/app/stream
。
五、停止直播
- 进入 Screen 会话:
screen -r stream
- 运行脚本:
bash stream.sh
- 选择停止推流: 在菜单中选择选项 3。
六、简化命令 (单个视频)
如果推流的视频文件只有一个,可以使用以下命令简化推流过程:
ffmpeg -re -i input.mp4 -c:v libx264 -c:a aac -f flv rtmp://your-server-url/app/stream
七、资源占用
- CPU 占用: 一个 1 核 1 GB 的 VPS 推流进程大约占 20% CPU。
- 内存占用: 推流进程大约占用 40MB 以上的内存。
- 推流数量: 理论上一个 VPS 可以推流 4 个直播间。
闲置VPS直播:一键搭建教程,轻松实现低成本直播
https://blog.wlens.top/posts/闲置vps挂直播/