翻墙论坛|翻墙党社区

 找回密码
 立即注册
查看: 149|回复: 7

利用ffmpeg推流b站7*24直播

[复制链接]

688

主题

4

回帖

688

积分

00话痨hs000

Rank: 4

积分
688
发表于 2023-5-28 20:25:12 | 显示全部楼层 |阅读模式
昨天看见论坛大佬写了个用kplayer推流的教程,我运行时直播一段时间后会报错

所以在网上找了下 看见用ffmpeg好像更好

我搭建的测试直播间:http://live.bilibili.com/2504721

github地址https://github.com/x-dr/bilive24h



安装ffmpeg
  1. wget https://johnvansickle.com/ffmpeg/releases/ffmpeg-release-amd64-static.tar.xztar -xJf ffmpeg-release-amd64-static.tar.xzcp -r ffmpeg-6.0-amd64-static /usr/local/ffmpeg
复制代码

在~/.bashrc文件添加一行
  1. export PATH=$PATH:/usr/local/ffmpeg
复制代码
然后运行
  1. source .bashrc
复制代码


推流脚本
  1. # 颜色选择red='\033[0;31m'green='\033[0;32m'yellow='\033[0;33m'font="\033[0m"stream_start(){# 定义推流地址和推流码echo -e "${yellow} 开始设置推流,使用默认选项直接回车 ${font}"echo -e "${yellow} ps:推流地址是b站我的直播,服务器地址和串流密钥连在一起中间无需空格和逗号 ${font}"read -p "※ 输入你的服务器地址和串流密钥(rtmp协议): " rtmp# 判断用户输入的地址是否合法if [[ $rtmp =~ "rtmp://" ]];then        echo -e "${green} 推流地址输入正确,程序将进行下一步操作. ${font}"        sleep 2        else        echo -e "${red} 你输入的地址不合法,请重新运行程序并输入! ${font}"        exit 1fi# 定义视频存放目录echo -e "${yellow} 脚本会推流所设置目录下的所有视频 ${font}"read -p "输入你的视频存放目录(并且要绝对路径,默认/video): " folderif [ ! $folder ];then        folder="/video"fi# 定义视频和音频码率read -p "请输入视频推流码率(默认4000k): " bvread -p "请输入音频推流码率(默认192k): " baif [ ! $bv ];then        bv="4000k"fiif [ ! $ba ];then        ba="192k"fi# 判断是否需要添加水印read -p "是否需要为视频添加水印?水印位置默认在右上方,需要较好CPU支持. 默认不加,添加请输入y:" watermarkif [ $watermark = "y" ];then        read -p "输入你的水印图片存放绝对路径,例如/opt/image/watermark.jpg (格式支持jpg/png/bmp):" image        echo -e "${yellow} 添加水印完成,程序将开始推流. ${font}"        # 循环        while true        do                cd $folder                video=$(find ./ -type f | shuf -n 1)                ffmpeg -re -i "$video" -i "$image" -filter_complex overlay=W-w-5:5 -preset ultrafast  -g 25 -b:v ${bv} -c:a aac -b:a ${ba} -strict -2 -f flv ${rtmp}        doneelse    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 25 -b:v ${bv} -c:a aac -b:a ${ba} -strict -2 -f flv ${rtmp}        donefi        }# 停止推流stream_stop(){        screen -S bilive -X quit        }# 开始菜单设置echo -e "${yellow} FFmpeg无人值守循环推流 ${font}"echo -e "${red} 运行推流时请确定此脚本目前是在screen窗口内运行的! ${font}"echo -e "${red} 运行推流时若未在screen窗口内请先运行  screen -S bilive ${font}"echo -e "${green} 1.开始无人值守循环推流 ${font}"echo -e "${green} 2.停止推流 ${font}"start_menu(){    read -p "请输入数字(1-2),选择你要进行的操作:" num    case "$num" in        1)        stream_start        ;;        2)        stream_stop        ;;        *)        echo -e "${red} 请输入正确的数字 (1-2) ${font}"        ;;    esac        }# 运行开始菜单start_menu
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

发表于 2023-5-28 20:32:32 | 显示全部楼层
来个一键脚本
回复 支持 反对

使用道具 举报

0

主题

0

回帖

16

积分

新手上路

Rank: 1

积分
16
发表于 2023-5-28 20:42:04 | 显示全部楼层
可以啊效果不错
回复 支持 反对

使用道具 举报

发表于 2023-5-28 20:42:59 | 显示全部楼层
大佬NB,虽然用不上,顶一个.
回复 支持 反对

使用道具 举报

发表于 2023-5-28 20:49:55 | 显示全部楼层
修复版电影吗,分辨率很高
回复 支持 反对

使用道具 举报

发表于 2023-5-28 20:58:47 | 显示全部楼层
可以推流到油管吗?
回复 支持 反对

使用道具 举报

1

主题

0

回帖

39

积分

ssr节点分享志愿者

Rank: 5Rank: 5

积分
39
发表于 2023-5-28 20:59:54 | 显示全部楼层
有相关的软件和插件,那些播电影的就是用的那个
回复 支持 反对

使用道具 举报

0

主题

0

回帖

14

积分

新手上路

Rank: 1

积分
14
发表于 2023-5-28 21:07:52 | 显示全部楼层
不知道网上找的资源
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|翻墙党

GMT+8, 2026-9-22 11:49 , Processed in 0.070452 second(s), 29 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表