旧手机回收利用——打造24小时直播间

去年我用B站收益,花200多买了个vivo z3i手机,运存6GB空间128GB,想着闲置也是闲置,能拿来发挥用处就好了。
拿来干什么呢,搭建Alist?感觉太浪费了;做网站?没有这个需求;做NAS?感觉不合适;最后突发奇想,用来装一个linux系统,一方面练习、另一方面也能搭建很多服务用。


安装linux系统。

首先我上网找了一些教程,最后发现一款叫“虚拟电脑app”的软件很好用,是由其他大佬打包好的软件,下载后点开无需操作即可自动安装Ubuntu系统。

登录root账户

打开我们的旧手机——开始使用——远程控制——通过webTTY。开启我们的远程连接。会返回给你一串链接,我们直接在另一台设备的浏览器里打开。
输入sudo -i,然后要填密码,看@符号前面的字符,那就是你的密码。输密码时是不会显示密码的,所以不要以为自己没输上。最后出现root@xxxx说明你已经登录root账户了。

创建文件夹

分别执行mkdir /home/bilibili/ffmpgmkdir /home/bilibili/video,创建两个文件夹,再执行`cd /home/bilibili/ffmpg’进入ffmpg文件夹

准备视频文件

下载视频(MP4格式的),存在/home/bilibili/video文件夹里

执行推流脚本

直接复制粘贴

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
#!/bin/bash

# 定义颜色变量,用于输出信息时显示不同颜色
red='\033[0;31m'
green='\033[0;32m'
yellow='\033[0;33m'
font="\033[0m"

# 安装 FFmpeg 函数
ffmpeg_install() {
read -p "你的机器内是否已经安装过 FFmpeg?安装 FFmpeg 才能正常推流,是否现在安装 FFmpeg?(yes/no): " Choose
if [ "$Choose" = "yes" ]; then
apt-get update -y
apt-get install -y wget tar
# 下载 arm64 架构的 FFmpeg
wget --no-check-certificate -O ffmpeg.tar.xz https://johnvansickle.com/ffmpeg/releases/ffmpeg-release-arm64-static.tar.xz
tar -xJf ffmpeg.tar.xz
ffmpeg_dir=$(tar -tf ffmpeg.tar.xz | head -1 | cut -f1 -d"/")
cd "$ffmpeg_dir" || exit
sudo cp ffmpeg ffprobe qt-faststart /usr/local/bin/
cd ..
rm -rf ffmpeg.tar.xz "$ffmpeg_dir"
fi
if [ "$Choose" = "no" ]; then
echo -e "${yellow} 你选择不安装 FFmpeg,请确保已自行安装并添加到 PATH! ${font}"
sleep 2
fi
}

# 开始推流函数
stream_start() {
# 获取推流地址
read -p "输入完整推流地址 (如 rtmp://server/live/key): " rtmp
if [[ ! $rtmp =~ ^rtmp:// ]]; then
echo -e "${red} 无效的 RTMP 地址格式! ${font}"
exit 1
fi

# 获取视频存放目录
read -p "输入视频存放目录 (绝对路径): " folder
if [ ! -d "$folder" ]; then
echo -e "${red} 目录不存在! ${font}"
exit 1
fi

# 判断是否添加水印
read -p "是否需要添加水印? (yes/no): " watermark
if [ "$watermark" = "yes" ]; then
read -p "输入水印图片路径 (绝对路径): " image
if [ ! -f "$image" ]; then
echo -e "${red} 水印文件不存在! ${font}"
exit 1
fi
echo -e "${yellow} 开始带水印推流... ${font}"
while true; do
for video in "$folder"/*.mp4; do
if [ -f "$video" ]; then
ffmpeg -re -i "$video" -i "$image" \
-filter_complex "overlay=W-w-10:H-h-10" \
-c:v libx264 -preset veryslow -crf 23 \
-c:a aac -b:a 192k -strict experimental \
-f flv "$rtmp" -protocol_whitelist "file,http,https,tcp,tls,rtmp"
fi
done
done
else
echo -e "${yellow} 开始无水印推流... ${font}"
while true; do
for video in "$folder"/*.mp4; do
if [ -f "$video" ]; then
ffmpeg -re -i "$video" \
-c:v copy -c:a aac -b:a 192k -strict experimental \
-f flv "$rtmp" -protocol_whitelist "file,http,https,tcp,tls,rtmp"
fi
done
done
fi
}

# 停止推流函数
stream_stop() {
echo -e "${yellow} 正在停止推流... ${font}"
pkill -f "ffmpeg -re -i"
pkill -f "ffmpeg -re -i"
echo -e "${green} 推流已停止! ${font}"
}

# 菜单函数
start_menu() {
clear
echo -e "${yellow} Ubuntu arm64 FFmpeg 推流工具 v1.2 ${font}"
echo -e "${red} 注意: 请在 screen 会话中运行! ${font}"
echo -e "${green} 1. 安装 FFmpeg ${font}"
echo -e "${green} 2. 开始推流 ${font}"
echo -e "${green} 3. 停止推流 ${font}"
echo -e "${green} 4. 退出 ${font}"
read -p "请选择操作 (1-4): " num
case "$num" in
1)
ffmpeg_install
;;
2)
stream_start
;;
3)
stream_stop
;;
4)
exit
;;
*)
echo -e "${red} 无效选择! ${font}"
;;
esac
}

# 主程序入口,检查是否以 root 权限运行
if [ "$(id -u)" -ne 0 ]; then
echo -e "${red} 请使用 sudo 运行脚本! ${font}"
exit 1
fi

# 启动菜单
start_menu

选择1,执行完后,再输入同样的脚本选2

进行推流

找到网页端Bilibili直播页面,开播,复制服务器地址和串流密钥组合成一个链接,回到之前,把这个链接粘贴一下,回车,他会让你选择视频目录,输入/home/bilibili/video。是否添加水印?no
好了,直播间完成啦


https://live.bilibili.com/1967212295