Home >  > 无人直播项目及代码

无人直播项目及代码

一、项目花费
腾讯轻量云服务器55元(一个月)

二、成果展示

三、代码

1#!/bin/bash
2PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
3export PATH
4#=================================================================#
5#   System Required: CentOS7 X86_64                               #
6#   Description: FFmpeg Stream Media Server                       #
7#   Author: LALA                                    #
8#   Website: https://www.lala.im                                  #
9#=================================================================#
10 
11# 颜色选择
12red='\033[0;31m'
13green='\033[0;32m'
14yellow='\033[0;33m'
15font="\033[0m"
16 
17ffmpeg_install(){
18# 安装FFMPEG
19read -p "你的机器内是否已经安装过FFmpeg4.x?安装FFmpeg才能正常推流,是否现在安装FFmpeg?(yes/no):" Choose
20if [ $Choose = "yes" ];then
21    yum -y install wget
22    wget --no-check-certificate https://www.johnvansickle.com/ffmpeg/old-releases/ffmpeg-4.0.3-64bit-static.tar.xz
23    tar -xJf ffmpeg-4.0.3-64bit-static.tar.xz
24    cd ffmpeg-4.0.3-64bit-static
25    mv ffmpeg /usr/bin && mv ffprobe /usr/bin && mv qt-faststart /usr/bin && mv ffmpeg-10bit /usr/bin
26fi
27if [ $Choose = "no" ]
28then
29    echo -e "${yellow} 你选择不安装FFmpeg,请确定你的机器内已经自行安装过FFmpeg,否则程序无法正常工作! ${font}"
30    sleep 2
31fi
32    }
33 
34stream_start(){
35# 定义推流地址和推流码
36read -p "输入你的推流地址和推流码(rtmp协议):" rtmp
37 
38# 判断用户输入的地址是否合法
39if [[ $rtmp =~ "rtmp://" ]];then
40    echo -e "${green} 推流地址输入正确,程序将进行下一步操作. ${font}"
41    sleep 2
42    else 
43    echo -e "${red} 你输入的地址不合法,请重新运行程序并输入! ${font}"
44    exit 1
45fi
46 
47# 定义视频存放目录
48read -p "输入你的视频存放目录 (格式仅支持mp4,并且要绝对路径,例如/opt/video):" folder
49 
50# 判断是否需要添加水印
51read -p "是否需要为视频添加水印?水印位置默认在右上方,需要较好CPU支持(yes/no):" watermark
52if [ $watermark = "yes" ];then
53    read -p "输入你的水印图片存放绝对路径,例如/opt/image/watermark.jpg (格式支持jpg/png/bmp):" image
54    echo -e "${yellow} 添加水印完成,程序将开始推流. ${font}"
55    # 循环
56    while true
57    do
58        cd $folder
59        for video in $(ls *.mp4)
60        do
61        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}
62        done
63    done
64fi
65if [ $watermark = "no" ]
66then
67    echo -e "${yellow} 你选择不添加水印,程序将开始推流. ${font}"
68    # 循环
69    while true
70    do
71        cd $folder
72        for video in $(ls *.mp4)
73        do
74        ffmpeg -re -i "$video" -c:v copy -c:a aac -b:a 192k -strict -2 -f flv ${rtmp}
75        done
76    done
77fi
78    }
79 
80# 停止推流
81stream_stop(){
82    screen -S stream -X quit
83    killall ffmpeg
84    }
85 
86# 开始菜单设置
87echo -e "${yellow} CentOS7 X86_64 FFmpeg无人值守循环推流 For LALA.IM ${font}"
88echo -e "${red} 请确定此脚本目前是在screen窗口内运行的! ${font}"
89echo -e "${green} 1.安装FFmpeg (机器要安装FFmpeg才能正常推流) ${font}"
90echo -e "${green} 2.开始无人值守循环推流 ${font}"
91echo -e "${green} 3.停止推流 ${font}"
92start_menu(){
93    read -p "请输入数字(1-3),选择你要进行的操作:" num
94    case "$num" in
95        1)
96        ffmpeg_install
97        ;;
98        2)
99        stream_start
100        ;;
101        3)
102        stream_stop
103        ;;
104        *)
105        echo -e "${red} 请输入正确的数字 (1-3) ${font}"
106        ;;
107    esac
108    }
109 
110# 运行开始菜单
111start_menu

四、注意事项

服务器地址、串流密钥要组合在一起,中间不要有空格。

五、结果
您的直播间因“禁止直播境外源”,已被管理员“切断”,请更改直播内容。

如有疑问,请查看bilibili主播直播规范。

参考:
https://www.youtube.com/watch?v=Ko20sPb93fo

https://lala.im/4816.html

https://www.youtube.com/watch?v=Ljjiw9mC_Cg

暧昧帖

本文暂无标签