学习旧手机回收利用——打造24小时直播间
理理去年我用B站收益,花200多买了个vivo z3i手机,运存6GB空间128GB,想着闲置也是闲置,能拿来发挥用处就好了。
拿来干什么呢,搭建Alist?感觉太浪费了;做网站?没有这个需求;做NAS?感觉不合适;最后突发奇想,用来装一个linux系统,一方面练习、另一方面也能搭建很多服务用。
安装linux系统。
首先我上网找了一些教程,最后发现一款叫“虚拟电脑app”的软件很好用,是由其他大佬打包好的软件,下载后点开无需操作即可自动安装Ubuntu系统。
登录root账户
打开我们的旧手机——开始使用——远程控制——通过webTTY。开启我们的远程连接。会返回给你一串链接,我们直接在另一台设备的浏览器里打开。
输入sudo -i,然后要填密码,看@符号前面的字符,那就是你的密码。输密码时是不会显示密码的,所以不要以为自己没输上。最后出现root@xxxx说明你已经登录root账户了。
创建文件夹
分别执行mkdir /home/bilibili/ffmpg
和mkdir /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