Eswlnk Blog Eswlnk Blog
  • 资源
    • 精彩视频
    • 破解专区
      • WHMCS
      • WordPress主题
      • WordPress插件
    • 其他分享
    • 极惠VPS
    • PDF资源
  • 关于我
    • 论文阅读
    • 关于本站
    • 通知
    • 左邻右舍
    • 玩物志趣
    • 日志
    • 专题
  • 热议话题
    • 游戏资讯
  • 红黑
    • 渗透分析
    • 攻防对抗
    • 代码发布
  • 自主研发
    • 知识库
    • 插件
      • ToolBox
      • HotSpot AI 热点创作
    • 区块
    • 快乐屋
    • 卡密
  • 乱步
    • 文章榜单
    • 热门标签
  • 问答中心反馈
  • 注册
  • 登录
首页 › 玩物志趣 › 「玩物志趣」利用群晖7×24小时不间断直播推流

「玩物志趣」利用群晖7×24小时不间断直播推流

Eswlnk的头像
Eswlnk
2024-03-10 17:28:35
「玩物志趣」利用群晖7x24小时不间断直播推流-Eswlnk Blog
智能摘要 AI
本文介绍了使用简单脚本实现基于SSH命令行的直播推流方法,特别适合VPS用户。脚本支持MP4格式,通过输入RTMP推流地址、视频目录及是否添加水印等信息启动推流。无需Docker,简化了配置过程。若需要24小时不间断推流,可通过`screen`命令保持进程运行。脚本还提供了查看、停止推流及管理进程的功能。此外,文中附带了安装`screen`工具的方法,以确保兼容性。最后,作者建议根据设备性能调整视频和音频码率。

之前在博客里有提到过一个直播推流工具,那就是Kplayer,该方案支持Docker容器部署,对新手更加的友好。但是由于支持的功能比较多,所以很多人会搞不懂Kplayer配置文件,而最近小子又发现一个基于SSH命令行来实现直播推流的简单脚本,接下来分享给大家。

该脚本目前只支持MP4的格式视频,其他暂不支持,请知悉!

有VPS的小伙伴也可以使用该方法,首先先下载好需要推流的视频文件,其次便是实名认证开通好你的直播间,获取到直播间的推流地址和推流码。

比如哔哩哔哩:

rtmp://live-push.bilivideo.com/live-bvc/?streamname=live_384574173_87384919&key=0f65b17e11a61f9
「玩物志趣」利用群晖7x24小时不间断直播推流-Eswlnk Blog
「玩物志趣」利用群晖7x24小时不间断直播推流-Eswlnk Blog

下一步就是复制以下脚本保存到相应位置,如:/volume2/docker/live.sh

#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
#=================================================================#
#   System Required: CentOS/Debian/Ubuntu/Fedora (32bit/64bit)    #
#   Description: FFmpeg Stream Media Server                       #                                 #
#=================================================================#

# 颜色选择
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[y]/no[n]):" Choose
if [ $Choose = "y" ];then
    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 = "n" ]
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,并且要绝对路径,例如/volume2/docker/live):" folder

# 判断是否需要添加水印
read -p "是否需要为视频添加水印?水印位置默认在右上方,需要较好CPU支持(yes[y]/no[n]):" watermark
if [ $watermark = "y" ];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 128k -strict -2 -f flv ${rtmp}
        done
    done
fi
if [ $watermark = "n" ]
then
    echo -e "${yellow} 你选择不添加水印,程序将开始推流. ${font}"
    # 循环
    while true
    do
        cd $folder
        video=$(find ./ -type f | shuf -n 1)
  ffmpeg -re -i "$video" -preset ultrafast -vcodec libx264 -g 60 -b:v 1500k -c:a aac -b:a 128k -strict -2 -f flv ${rtmp}
 done
fi
 }

#查看推流进程
stream_ls(){
    screen -ls
    }

# 停止推流
stream_stop(){
    screen -S live -X quit
    killall ffmpeg
    }

# 开始菜单设置
echo -e "${yellow} 7×24 全天候不间断无人值守循环直播推流 ${font}"
echo -e "${yellow} 适用于CentOS/Debian/Ubuntu/Fedora (32bit/64bit) ${font}"
echo -e "${yellow} LALA 编写 KuwiNet 修改 ${font}"
echo -e "${red} 请确定此脚本目前是在screen/TERM=xterm screen窗口内运行的! ${font}"
echo -e "${green} 1.安装FFmpeg (机器要安装FFmpeg才能正常推流) ${font}"
echo -e "${green} 2.开始无人值守循环推流 ${font}"
echo -e "${green} 3.查看推流进程 ${font}"
echo -e "${green} 4.停止推流 ${font}"
start_menu(){
    read -p "请输入数字(1-4),选择你要进行的操作:" num
    case "$num" in
        1)
        ffmpeg_install
        ;;
        2)
        stream_start
        ;;
    3)
        stream_ls
        ;;
        4)
        stream_stop
        ;;
        *)
        echo -e "${red} 请输入正确的数字 (1-3) ${font}"
        ;;
    esac
    }

# 运行开始菜单
start_menu
「玩物志趣」利用群晖7x24小时不间断直播推流-Eswlnk Blog

使用你习惯的SSH连接工具,比如小子喜欢Windows自带的OpenSSH工具,打开群晖控制面板的SSH功能,连接群晖使用root账户登录,后依次执行一下命令。

「玩物志趣」利用群晖7x24小时不间断直播推流-Eswlnk Blog
cd /volume2/docker
./live.sh

根据菜单提示安装FFmpeg,或者群晖安装过FFmpeg套件的就不需要执行这一步了,可直接跳过选择2,开始开始无人值守循环推流,填写上在直播平台获取到的rtmp://推流地址/推流码,输入你存视频文件的地址,如这里小子就填写为/volume2/docker/live,没有视频水印就选择n,就开始正常推流啦!

「玩物志趣」利用群晖7x24小时不间断直播推流-Eswlnk Blog

当然,以上方式关闭SSH窗口后就会停止推流,那么怎么实现7×24小时不间断直播推流呢?实现起来也很简单,回到执行脚本之前使用screen新窗口执行live.sh脚本即可。

群晖默认是没有安装ipkg包管理和screen的,执行以下命令即可:

wget http://ipkg.nslu2-linux.org/feeds/optware/syno-i686/cross/unstable/syno-i686-bootstrap_1.2-7_i686.xsh
chmod +x syno-i686-bootstrap_1.2-7_i686.xsh
sh syno-i686-bootstrap_1.2-7_i686.xsh
ipkg update
ipkg install screen

如果出现错误

Cannot find termcap entry for 'xterm-256color'

运行TERM=xterm screen而不是screen。

那么,在执行脚本时就该这样执行命令:

cd /volume2/docker
xterm screen -S live
./live.sh

正常推流后就可以关闭SSH窗口而推流进程就不会受到影响了,那么要怎么关闭推流呢?第一种就很简单在菜单里选择4,就会结束推流进程,而小子更加推荐使用以下方式:

查看推流窗口
screen -ls
脱离窗口,2843.live表示要脱离的窗口
screen -d 2843.live
关闭推流进程命令
screen -X -S 2843.live quit
「玩物志趣」利用群晖7x24小时不间断直播推流-Eswlnk Blog

好了,经过尝试J1900的黑裙推720P的视频刚好满载而不卡顿,脚本中的1500k和128k分别代表视频码率和音频码率请根据设备性能和上传带宽酌情修改。

「玩物志趣」利用群晖7x24小时不间断直播推流-Eswlnk Blog

如果你不会使用Docker安装Kplayer来实现直播推流,那么这个脚本相信会更适合你。

本站默认网盘访问密码:1166
本站默认网盘访问密码:1166
声明:本站原创文章文字版权归本站所有,转载务必注明作者和出处;本站转载文章仅仅代表原作者观点,不代表本站立场,图文版权归原作者所有。如有侵权,请联系我们删除。
bilibili推流直播群辉
1
1
Eswlnk的头像
Eswlnk
一个有点倒霉的研究牲站长
赞赏
「搞机教程」小米平板5一键刷入Windows11系统 | Mindows工具箱使用教程
上一篇
「技术教程」手把手教你搭建基于云的开发环境
下一篇

评论 (1)

请登录以参与评论
现在登录
  • 的头像
    Eswlnk

    无人直播间,可行

    2 年前 • 182.150.*.* • Google Chrome Windows • 回复

猜你喜欢

  • 「玩物志趣」三元锂电池和磷酸铁锂电池优缺点全解析,哪款更适合你?
  • 「玩物志趣」平板突然卡住无法关机?教你轻松解决常见故障!
  • 「JAVA教程」Spring Boot 中使用 JSON Schema 来校验复杂JSON数据
  • 「玩物志趣」微信支付退款和退款结果查询接口简单实现(.Net 7.0)
  • 「技术教程」使用Playwright进行API接口测试
Eswlnk的头像

Eswlnk

一个有点倒霉的研究牲站长
1108
文章
319
评论
679
获赞

随便看看

「闲谈」Linux 服务器木马的危害和趋势
2024-02-07 1:11:49
Python应该如何才能进入编程界面?Python的正确打开方式什么?
2023-03-20 13:09:17
新手应该如何制作PPT?新手制作ppt详细步骤大全
2023-03-23 12:15:48

专题展示

WordPress53

工程实践37

热门标签

360 AI API CDN java linux Nginx PDF PHP python SEO Windows WordPress 云服务器 云服务器知识 代码 免费 安全 安卓 工具 开发日志 微信 微软 手机 插件 攻防 攻防对抗 教程 日志 渗透分析 源码 漏洞 电脑 破解 系统 编程 网站优化 网络 网络安全 脚本 苹果 谷歌 软件 运维 逆向
  • 首页
  • 知识库
  • 地图
Copyright © 2023-2025 Eswlnk Blog. Designed by XiaoWu.
本站CDN由 壹盾安全 提供高防CDN安全防护服务
蜀ICP备20002650号-10
页面生成用时 0.589 秒   |  SQL查询 31 次
本站勉强运行:
友情链接: Eswlnk Blog 网站渗透 倦意博客 特资啦!个人资源分享站 祭夜博客 iBAAO壹宝头条
  • WordPress142
  • 网络安全64
  • 漏洞52
  • 软件52
  • 安全48
现在登录
  • 资源
    • 精彩视频
    • 破解专区
      • WHMCS
      • WordPress主题
      • WordPress插件
    • 其他分享
    • 极惠VPS
    • PDF资源
  • 关于我
    • 论文阅读
    • 关于本站
    • 通知
    • 左邻右舍
    • 玩物志趣
    • 日志
    • 专题
  • 热议话题
    • 游戏资讯
  • 红黑
    • 渗透分析
    • 攻防对抗
    • 代码发布
  • 自主研发
    • 知识库
    • 插件
      • ToolBox
      • HotSpot AI 热点创作
    • 区块
    • 快乐屋
    • 卡密
  • 乱步
    • 文章榜单
    • 热门标签
  • 问答中心反馈