你的VPS除了吃灰以外还能24小时不间断直播视频。自己用的脚本,单纯分享一下,如有问题自行解决。

一、安装screen

code

  1. apt update -y && apt install screen -y

二、写入脚本

code

  1. nano tuiliu.sh

里面加入如下代码

code

  1. #!/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

三、上传mp4视频文件

建议默认root里面就行

四、开一个screen

code

  1. screen -S stream

在窗口里面执行

code

  1. ./tuiliu.sh

先选1,安装ffmpeg,然后在执行

code

  1. ./tuiliu.sh

,再选2
正确输入你的直播流地址和直播ID
格式一般是
推流地址是:直播网址/直播码
视频存放目录,这里写绝对路径,如 /root
推流正常后,后台运行

code

  1. screen -ls

然后远程detach

code

  1. screen -d id

下载说明:

1.本站资源都是白菜价出售,同样的东西,我们不卖几百,也不卖几十,甚至才卖几块钱,一个永久会员能下载全站100%源码了,所以单独购买也好,会员也好均不提供相关技术服务。

2.如果源码下载地址失效请/联系站长QQ进行补发。

3.本站所有资源仅用于学习及研究使用,请必须在24小时内删除所下载资源,切勿用于商业用途,否则由此引发的法律纠纷及连带责任本站和发布者概不承担。资源除标明原创外均来自网络整理,版权归原作者或本站特约原创作者所有,如侵犯到您权益请联系本站删除!

4.本站站内提供的所有可下载资源(软件等等)本站保证未做任何负面改动(不包含修复bug和完善功能等正面优化或二次开发);但本网站不能保证资源的准确性、安全性和完整性,用户下载后自行斟酌,我们以交流学习为目的,并不是所有的源码都100%无错或无bug;同时本站用户必须明白,【AGU极品网】对提供下载的软件等不拥有任何权利(本站原创和特约原创作者除外),其版权归该资源的合法拥有者所有。

5.请您认真阅读上述内容,购买即以为着您同意上述内容。

AGU极品网 » FFmpeg循环推流脚本

发表回复