备案权重域名预定

 找回密碼
 加入我們

利用閒置服務器kplayer及ffmpeg推流搭建B站搭建7 * 24h直播間

[複製鏈接]
小猪哼囔 發表於 2023-6-4 11:43:41 | 顯示全部樓層 |閱讀模式
服務器系統隨便裝一個就可以,實測CentOS、Debian這倆系統都可以,烏班圖沒有試,應該也行。


2.一鍵安裝腳本
顯示以下信息就說明安裝成功了


在root文件夾下新建一個mp4文件夾,上傳需要直播的視頻素材
新建一個config.json的文件,裡面內容如下:

  1. {
  2. "version": "2.0.0",
  3. "resource": {
  4.     "lists": [
  5.         "/root/mp4/視頻文件名.mp4"
  6.     ]
  7. },
  8. "play": {
  9.     "play_model": "loop"
  10. },
  11. "output": {
  12.     "lists": [
  13.         {
  14.             "path": "B站服務器地址和串流密鑰"
  15.         }
  16.     ]
  17. }
  18. }
複製代碼
ps:服務器地址和串流密鑰連在一起中間無需空格和逗號

5.運行推流腳本

  1. cd kplayer
  2. ./kplayer play start --daemon
複製代碼
kplayer官方文檔:docs.kplayer.net

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



在~/.bashrc文件添加一行

然後運行

推流腳本




  1. # 顏色選擇
  2. red=''
  3. green=''
  4. yellow=''
  5. font=""


  6. stream_start(){
  7. # 定義推流地址和推流碼
  8. echo -e "${yellow} 開始設置推流,使用默認選項直接回車 ${font}"
  9. echo -e "${yellow} ps:推流地址是b站我的直播,服務器地址和串流密鑰連在一起中間無需空格和逗號 ${font}"
  10. read -p "※ 輸入你的服務器地址和串流密鑰(rtmp協議): " rtmp

  11. # 判斷用戶輸入的地址是否合法
  12. if [[ $rtmp =~ "rtmp://" ]];then
  13.         echo -e "${green} 推流地址輸入正確,程序將進行下一步操作. ${font}"
  14.         sleep 2
  15.         else
  16.         echo -e "${red} 你輸入的地址不合法,請重新運行程序並輸入! ${font}"
  17.         exit 1
  18. fi

  19. # 定義視頻存放目錄
  20. echo -e "${yellow} 腳本會推流所設置目錄下的所有視頻 ${font}"
  21. read -p "輸入你的視頻存放目錄(並且要絕對路徑,默認/video): " folder
  22. if [ ! $folder ];then
  23.         folder="/video"
  24. fi

  25. # 定義視頻和音頻碼率
  26. read -p "請輸入視頻推流碼率(默認4000k): " bv
  27. read -p "請輸入音頻推流碼率(默認192k): " ba
  28. if [ ! $bv ];then
  29.         bv="4000k"
  30. fi
  31. if [ ! $ba ];then
  32.         ba="192k"
  33. fi

  34. # 判斷是否需要添加水印
  35. read -p "是否需要為視頻添加水印?水印位置默認在右上方,需要較好CPU支持. 默認不加,添加請輸入y:" watermark
  36. if [ $watermark = "y" ];then
  37.         read -p "輸入你的水印圖片存放絕對路徑,例如/opt/image/watermark.jpg (格式支持jpg/png/bmp):" image
  38.         echo -e "${yellow} 添加水印完成,程序將開始推流. ${font}"
  39.         # 循環
  40.         while true
  41.         do
  42.                 cd $folder
  43.                 video=$(find ./ -type f | shuf -n 1)
  44.                 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}
  45.         done
  46. else
  47.     echo -e "${yellow} 你選擇不添加水印,程序將開始推流. ${font}"
  48.     # 循環
  49.         while true
  50.         do
  51.                 cd $folder
  52.                 video=$(find ./ -type f | shuf -n 1)
  53.                 ffmpeg -re -i "$video" -preset ultrafast -vcodec libx264 -g 25 -b:v ${bv} -c:a aac -b:a ${ba} -strict -2 -f flv ${rtmp}
  54.         done
  55. fi
  56.         }

  57. # 停止推流
  58. stream_stop(){
  59.         screen -S bilive -X quit
  60.         }

  61. # 開始菜單設置
  62. echo -e "${yellow} FFmpeg無人值守循環推流 ${font}"
  63. echo -e "${red} 運行推流時請確定此腳本目前是在screen窗口內運行的! ${font}"
  64. echo -e "${red} 運行推流時若未在screen窗口內請先運行  screen -S bilive ${font}"
  65. echo -e "${green} 1.開始無人值守循環推流 ${font}"
  66. echo -e "${green} 2.停止推流 ${font}"
  67. start_menu(){
  68.     read -p "請輸入數字(1-2),選擇你要進行的操作:" num
  69.     case "$num" in
  70.         1)
  71.         stream_start
  72.         ;;
  73.         2)
  74.         stream_stop
  75.         ;;
  76.         *)
  77.         echo -e "${red} 請輸入正確的數字 (1-2) ${font}"
  78.         ;;
  79.     esac
  80.         }

  81. # 運行開始菜單
  82. start_menu
複製代碼


本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有賬號?加入我們

×
回復

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 加入我們

本版積分規則

备案权重域名预定

QQ|4um創業社區

GMT+8, 2024-5-20 16:05

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回復 返回頂部 返回列表