站点图标 谷姐靓号网

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

Rate this post

昨天看见论坛大佬写了个用kplayer推流的教程,我运行时直播一段时间后会报错

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

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

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

安装ffmpeg

    wget https://johnvansickle.com/ffmpeg/releases/ffmpeg-release-amd64-static.tar.xz
    tar -xJf ffmpeg-release-amd64-static.tar.xz
    cp -r ffmpeg-6.0-amd64-static /usr/local/ffmpeg

在~/.bashrc文件添加一行

    export PATH=$PATH:/usr/local/ffmpeg

然后运行

    source .bashrc

推流脚本

    # 颜色选择
    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 1
    fi

    # 定义视频存放目录
    echo -e "${yellow} 脚本会推流所设置目录下的所有视频 ${font}"
    read -p "输入你的视频存放目录(并且要绝对路径,默认/video): " folder
    if [ ! $folder ];then
    folder="/video"
    fi

    # 定义视频和音频码率
    read -p "请输入视频推流码率(默认4000k): " bv
    read -p "请输入音频推流码率(默认192k): " ba
    if [ ! $bv ];then
    bv="4000k"
    fi
    if [ ! $ba ];then
    ba="192k"
    fi

    # 判断是否需要添加水印
    read -p "是否需要为视频添加水印?水印位置默认在右上方,需要较好CPU支持. 默认不加,添加请输入y:" watermark
    if [ $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}
    done
    else
    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}
    done
    fi
    }

    # 停止推流
    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

热议
推荐楼 gzlock 昨天22:02

楼主这个适合linux cli系统
如果在windows里,用obs可以实现视频文件列表轮播,更为方便管理

2楼 keaideo 昨天20:17

来个一键脚本

3楼 kimjames 昨天20:26

可以啊效果不错

4楼 igger 昨天20:30

大佬NB,虽然用不上,顶一个.

5楼 gajiodgaj 昨天20:48

修复版电影吗,分辨率很高

6楼 鸡场新人 昨天20:53

可以推流到油管吗?

7楼 1121744186 昨天20:56

有相关的软件和插件,那些播电影的就是用的那个

8楼 minick 昨天21:06

修复版电影吗,分辨率很高

不知道网上找的资源

9楼 百盛百家乐 昨天21:23

直接挂栽网盘,视频不用下载到服务器直接推流

10楼 行尸走肉 昨天21:26

膜拜

12楼 gzlock 昨天22:02

楼主这个适合linux cli系统
如果在windows里,用obs可以实现视频文件列表轮播,更为方便管理

13楼 美国总统奥巴马 昨天22:13

大佬,推流失败了,这是什么原因

14楼 minick 昨天22:21

大佬,推流失败了,这是什么原因

1、检查一下视频文件夹路径对没会权限有没问题
2、检查一下开直播没

15楼 trips 昨天22:24

运行在centos上的?

16楼 deyu 昨天22:25

make

17楼 minick 昨天22:30

运行在centos上的?

只要安装了ffmpeg 性能够就行 arm架构的也可以

18楼 fancam 10小时前

求一键脚本

19楼 laianguo 10小时前

https://live.bilibili.com/27913763

已经OK很不错。

就是不能按照顺序播放 随机播放???

20楼 怪人 9小时前

支持

22楼 mrsiu 1小时前

这能赚钱吗?

23楼 花落无声 23分钟前

备注下

24楼 燕十三丶 20分钟前

不错啊 有木有大佬 搞个一键脚本

申明:本文内容由网友收集分享,仅供学习参考使用。如文中内容侵犯到您的利益,请在文章下方留言,本站会第一时间进行处理。

退出移动版