今天这里是打算手把手叫你做一个7*24小时无人直播间,看了很多网上的视频教程后,发现下面的评论总有一些小伙伴存在一些问题。本质是教程并没有真的站在一个不懂技术的人的角度去指导你。
所以无需自责以及担心,本文会站在真正小白的角度去手把手指导你搭建,无论你是什么专业都能搭建属于自己的无人直播间!
第一步:部署VPS服务器
1-购买服务器
选择轻量应用服务器
这里的选择原则:
- 国外就选择国外的位置
- 刚刚搭建建议一个选择我上图这个套餐就够了,通用型号65的套餐。
如果后续你需要做境外以及多平台,那么可能还需要增加更高的套餐。
然后点击跳转到我们的实例服务器,下面就开始配置吧。
2-配置服务器
1-设置登录密钥
友情提示别搞复杂了
2-登录
会进入到Centos界面
到这里如果你有一点Linux基础,其实就会很熟悉,但是如果没有玩过,也不用担心,按照后门的步骤玩,完全OK!
第二步:配置直播推流
3-配置推流
- 变成超级用户(Root)
su
然后在下面界面输入密码:
密钥是看不到的,输完回车就可以。
- 安装screen
yum -y install screen
装完会提醒Complete!
- 启动screen打开一个窗口
screen -S langge
- 创建视频目录
mkdir /home/lighthouse/video
- 创建推流器文件夹
mkdir /home/lighthouse/ffmpg
- 进入推流器文件夹安装推流器
cd /home/lighthouse/ffmpg
- 复制运行这段脚本
#!/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" -c:v copy -c:a aac -b:a 192k -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
效果如图:
注意最前面要是root,这时权限最高!
如果不是请参考前面:变成超级用户(Root)
后面是start_menu,直接回车
然后安装,这个时间会有点久。
4-准备直播文件
将你想直播展示的内容通过XFTP传输到服务器上:
- 安装xftp
- 连接服务器
创建链接:
在自己服务器界面找到IP地址:
分别填上主机IP地址
账户名:root
密码:······
然后点击链接就会出现如下界面:
点击…回到上一级目录,然后选择双击依次进入home-lighthouse-video
此时进入到我们最初创建的放视频的路径。
此时将我们本地下载好的视频文件直接拖拽进去就会在窗口底部看到本地在给服务器传视频数据。
到这里我们就准备好了无人直播显示的内容。
5-直播配置
1-查找推流链接与密码
进入我的直播间:
选择好分类,点击开始直播就会出现下面的界面。
长时间在这个界面不操作会失效。
2-配置推流链接与密码
回到我们的服务器控制台
复制粘贴下面脚本,然后回车:
#!/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 video=$(find ./ -type f | shuf -n 1) ffmpeg -re -i "$video" -preset ultrafast -vcodec libx264 -g 60 -b:v 1500k -c:a aac -b:a 92k -strict -2 -f flv ${rtmp} 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
然后回车:
输入2,会提醒你输入你的推流地址和推流码,这里就和上一步对起来了。
这里我们将前面的推流地址和推流码组合放在一起:
bilibili推流地址自带/,其他平台不带的话,请自行添加一下。
然后回车,提醒咱们输入视频源地址:
这里输入我们的地址:
/home/lighthouse/video
回车!!!
水印可以不加,因为咱们的服务器一般,加水印会影响直播流畅度,这里输入no
no
回车!!!
此时你的直播间应该就开播了,如果没有开始,记得刷新一下直播间,稍等一下。
毕竟视频最开始建立链接也需要时间的。
第三步:效果
到这里我们一个直播就搭建好了,
是不是还是蛮简单的,如果还有什么问题欢迎留言,看到就会第一时间回复您的!!!
第四步:后台运行
当然最后还有一个问题就是我们不能一直把本地的电脑开着吧?
这里要用到的就是xshell
- 官网下载xshell
- 安装
一直下一步即可
- 操作
输入主机ip地址,然后链接,按照提示输入账号密码即可。
这里和xftp是类似的操作。
- 查询推流进程
screen -ls
结果没有,我觉得这是因为我们没有在本地启动screen
因此咱们现在先把云的推流给关了,在xshell上重新运行一遍,就几个操作,很快:
关闭云服务器进程
1-打开新窗口
2-删除关闭
screen -x -S 1595.final quit
记得1595.final换成上一步自己查出来的。
3-关闭窗口即可
本地打开
按照以下流程操作直接复制粘贴回车即可
screen -S bilibili
vi shell.sh
这个时候打开了一个脚本文件,按一下 i 键盘
窗口右下角有个INSERT
复制下面内容到这个文件里面:
#!/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 video=$(find ./ -type f | shuf -n 1) ffmpeg -re -i "$video" -preset ultrafast -vcodec libx264 -g 60 -b:v 1500k -c:a aac -b:a 92k -strict -2 -f flv ${rtmp} 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
然后按Esc,再shift + :,输入wq回车就会退出。
然后接着
chmod 777 shell02.sh
./shell02.sh
后续操作按照之前的来即可。
下一步
回到窗口1,发现我们的窗口就被释放出来了,服务器就不会占用我们的主机了。
以上就是全部内容,希望你能有所收获
创作不易,希望能点赞关注分享在看!!!