跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 利用ffmpeg推流b站7*24直播
未分類
29 5 月 2023

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

minick 大佬有话说 :

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

本帖最后由 minick 于 2023-5-28 20:42 编辑

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

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

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

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

https://s1.img.ink/2023/05/28/2b87b47917299.png

安装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=’33[0;31m’
green=’33[0;32m’
yellow=’33[0;33m’
font="33[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 大佬有话说 :

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

keaideo 大佬有话说 :

来个一键脚本

kimjames 大佬有话说 :

可以啊效果不错

igger 大佬有话说 :

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

gajiodgaj 大佬有话说 :

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

鸡场新人 大佬有话说 :

可以推流到油管吗?

1121744186 大佬有话说 :

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

minick 大佬有话说 :

gajiodgaj 大佬有话说 : 2023-5-28 20:48
修复版电影吗,分辨率很高

不知道网上找的资源

百盛百家乐 大佬有话说 :

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

行尸走肉 大佬有话说 :

膜拜

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具