用服务器进行网络直播可行么?

5个月前 (01-23) 0 点赞 0 收藏 0 评论 12 已阅读

服务器实现7*24小时直播已经存在很久了,然后比如说睡眠音乐、国际空间站等等,直播的收益也可以当做一项不错的睡后收入,今天我就来实测一下,小白用户可以根据操作步骤100%复现。

1、准备一台云服务器

首先,你需要一台服务器。本人比较多款服务器后推荐腾讯云的 价格最低而且配置高 流量足 点击下面链接购买

https://cloud.tencent.com/act/cps/redirect?redirect=2446&cps_key=84a867ca6d84a092c2a335f3301b04c2&from=console

此款配置为最低配置

基础配置:建议轻量2H2G5M起 流量500G起

硬盘:看你要放多少素材,建议最少是有30G。

地区选择:根据自己位置选择比较近的即可,

系统:centos7

如果不是root身份,先切到root身份后面需要。(命令为sudo-i)

2、装screen

yum -y install screen

3、新脚本建文件夹

mkdir /home/zhibo

进入文件夹

cd /home/zhibo

复制下面脚本

#!/bin/bashPATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/binexport 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(){# 安装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

选择1 然后yes

4、新视频建文件夹

mkdir /home/zhibo/video

把准备好的素材传入这个文件夹中(上传的方式很多,可以直接用shell工具上传)注意素材需为mp4格式。

5、开始推流

开一个新窗口运行

screen -S stream

继续运行一下脚本

#!/bin/bashPATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/binexport 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(){# 安装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

选择2

复制填入下面红色的B站直播地址和秘钥

选择素材所在文件夹

/home/zhibo/video

接着会让你选择是否添加水印,服务器配置一般输入 no 就好了。

不出意外,现在已经跑起来了,快去直播后台看看,一会儿后就出现直播画面啦。

下面需要让服务器在后台继续运行服务

输入

screen -ls

找到在跑的screen ID,

继续输入

screen -d 1434.stream (1434改成自己显示的ID):

现在,关了窗口后也可以一直推流啦,24小时无人直播完成。

用服务器进行网络直播可行么?

本文收录在
0评论

登录

忘记密码 ?

切换登录

注册