b站24小时不间断直播

安装ffmpeg

apt-get install ffmpeg -y

sh脚本

#!/bin/bash

# 视频文件夹路径
video_folder="/xxx"

# 获取视频文件列表
video_files=("$video_folder"/*.mp4)
num_videos=${#video_files[@]}
current_video_index=0

while true; do
    # 获取当前视频文件路径
    current_video="${video_files[$current_video_index]}"

    # 获取视频时长(单位:秒)
    video_duration=$(ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 "$current_video")

    # 推流当前视频到Bilibili直播
    ffmpeg -re -i "$current_video" -c:v libx264 -preset veryfast -b:v 1000k -maxrate 1000k -bufsize 2000k -pix_fmt yuv420p -g 60 -c:a aac -b:a 96k -ac 2 -ar 44100 -f flv "rtmp://your_bilibili_push_url" &

    # 获取推流进程的PID
    ffmpeg_pid=$!

    # 等待视频推流结束
    sleep "$video_duration"

    # 终止推流进程
    kill $ffmpeg_pid

    # 自动播放下一个视频
    current_video_index=$(( (current_video_index + 1) % num_videos ))

    # 可选:在每次推流后等待一段时间,以便给服务器一些休息时间
    sleep 5
done

使用软链接来修改docker的默认存储位置

默认情况下Docker的存放位置为:/var/lib/docker

可以通过下面命令查看具体位置:

sudo docker info | grep "Docker Root Dir"

首先停掉Docker服务:

systemctl stop docker #或者service docker stop

然后移动整个/var/lib/docker目录到目的路径:

mv /var/lib/docker  /home/work/docker_root

ln -s /home/work/docker_root  /var/lib/docker

这时候启动Docker时发现存储目录依旧是/var/lib/docker,但是实际上是存储在数据盘。

Portainer

Portainer 是一款轻量级的应用,它提供了图形化界面,用于方便地管理Docker环境,包括单机环境和集群环境。

安装

拉取Portainer的Docker镜像;

docker pull portainer/portainer

运行Portainer容器;

docker run -p 9000:9000 -p 8000:8000 --name portainer \
--restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /mydata/portainer/data:/data \
-d portainer/portainer

访问地址:ip:9000

使用

  1. app templates相当于应用商店吧,有很多模板,里面的源是github要科学上网
  2. images

    拉取镜像,但是拉取镜像的过程看不到,只能是知道正在拉,我的评价是不如直接在命令行输入docker pull

    管理镜像,选择images里面列出的镜像点进去可以选择分享和删除

  3. containers

    点击add container 可以添加容器,点进去之后里面有一个必填的image,就是填拉取的镜像已经拉取过的把下面的always pull image 关掉。就是说其实是可以不用特地到images里面去拉取镜像,可以在要用的时候自己拉取。

    还是这个页面往下有一个network ports configuration

    把public all exposed network ports to random host ports 打开

    或者点击 publish a new network port 来映射端口

    在最后面的advanced container settings 里面env 可以添加环境变量

    Volumes 里添加文件夹映射。

    点击 map additional volume 按钮。
    container 写入容器中文件夹位置,然后选择 Bind 选项。
    在 host 中填入服务器上挂载的文件夹位置。

    quick actions里面第一个标是log点进去可以查看日志,这个确实比较方便,比如是在安装青龙面板的时候,好像会一直占用一个控制器,这个就相当于是后台自己在跑,然后也方便去看哪里出了问题

    第二个图标是Inspect可以用来看容器的详细信息,包括id,存放的位置和log文件位置

    在NetworkSettings这里可以看容器运行的ip,用在例如openwrt的docker版本看ip

    第三个图标是Stats可以看内存和cpu的使用情况下面还会标出pid

    第四个是Console按钮,可以进入到容器中去执行命令,比进入到MySQL容器中去执行登录命令

  4. Registries

    点击add registry添加的镜像仓库,在registry provider里选择custom registry

    下面的name随便写一个,registry url填url

    这样在拉取镜像的时候,就可以选择从其他镜像仓库拉取了。

MCSManager 面板 安装

一款开源,分布式,轻量级,快速部署,支持大部分游戏服务端和控制台程序的管理面板。

Linux

一行命令快速安装

// 国内专用 gitee 加速源
wget -qO- https://gitee.com/mcsmanager/script/raw/master/setup_cn.sh | bash

// 原始源(科学上网)
wget -qO- https://raw.githubusercontent.com/mcsmanager/Script/master/setup.sh | bash

当输出下面的内容时就安装完毕

==================================================================
Installation is complete! Welcome to the MCSManager panel !!!
 
HTTP Web Service:        http://<Your IP>:23333
Daemon Address:          ws://<Your IP>:24444
You must expose ports 23333 and 24444 to use the service properly on the Internet.
 
Usage:
systemctl start mcsm-{daemon,web}.service
systemctl stop mcsm-{daemon,web}.service
systemctl restart mcsm-{daemon,web}.service
 
Official Document: https://docs.mcsmanager.com/
==================================================================

官方文档:https://docs.mcsmanager.com/#/zh-cn/

其实可以部署一个在windows上,毕竟我的linux内存有点小,然后有域名没vps的用cf的argotunnel去内网穿透,没域名有vps用frp内网穿透,没域名没vps用付费或免费的内网穿透服务,什么?有公网ip?那没事了。

之前linuxone有三个月的免费x86架构的vps我之前一直在想的就是用来搞节点,但是其实他那个配置相当不错,搞节点有点浪费,其实可以用来开服。