搭建個人直播間,實現24小時B站、鬥魚、虎牙等無人直播!

Java陈序员發表於2024-07-01

大家好,我是 Java陳序員

不知道大家平時看不看直播呢?現在有各式各樣的直播,遊戲直播、戶外直播、帶貨直播、經典電視/電影直播等等。

電視、電影直播是24小時不間斷無人直播,如鬥魚/虎牙中的一起看,這種直播要如何實現呢?

其實非常簡單,只需要一臺伺服器和影片資源就能完成。

再借助於直播推流工具,如 KPlayer,將電視劇、電影等媒體資源推流到直播間,就能實現24小時無人直播了!

關注微信公眾號:【Java陳序員】,獲取開源專案分享、AI副業分享、超200本經典計算機電子書籍等。

KPlayer 簡介

KPlayer —— ByteLang Studio 設計開發的一款用於在 Linux 環境下進行媒體資源推流的應用程式。

只需要簡單的修改配置檔案即可達到開箱即用的目的,不需要了解眾多推流適配、影片編解碼的細節即可方便的將媒體資源在主流直播平臺上進行直播。意願是提供一個簡單易上手、擴充套件豐富、效能優秀適合長時間不間斷推流的直播推流場景。

功能特色:

  • 本地/網路影片資源的無縫推流,切換資源不導致斷流
  • 可自定義配置的編碼引數,例如解析度、幀率等
  • 自定義多輸出源,適合相同內容一次編碼多路推流節省硬體資源
  • 提供快取機制避免相同內容二次編解碼,大大降低在迴圈場景下對硬體資源的消耗
  • 豐富的API介面在執行時對播放行為和資源動態控制
  • 提供基礎外掛並具備自定義外掛開發的能力
專案地址:https://github.com/bytelang/kplayer-go
線上文件:https://docs.kplayer.net/v0.5.8/

安裝 KPlayer

KPlayer 支援一鍵安裝、手動安裝和 Docker 安裝。

一鍵安裝

透過 ssh 進入到你的伺服器中,找到合適的目錄並執行以下的命令進行下載:

curl -fsSL get.kplayer.net | bash

手動安裝(可選)

1、下載壓縮包

wget http://download.bytelang.cn/kplayer-v0.5.8-linux_amd64.tar.gz

2、解壓壓縮包

tar zxvf kplayer-v0.5.8-linux_amd64.tar.gz

安裝完成

1、執行 cd kplayer 進入到 kplayer 目錄,使用 ll 檢視檔案列表:

-rw-r--r-- 1 root root 285 3月  23 18:23 config.json.example
-rwxr-xr-x 1 root root 27M 7月  29 11:12 kplayer
  • config.json.exampleKPlayer 最小化的配置資訊示例
  • kplayerKPlayer 服務啟動、停止的執行指令碼命令

2、使用 ./kplayer 命令檢視當前版本

建立配置檔案

1、使用 cp 命令重新命名並複製一份 config.json.example

cp config.json.example config.json

2、修改配置檔案

{
    "version": "2.0.0",
    "resource": {
        "lists": [
            "/video/example_1.mp4",
            "/video/example_2.mp4"
        ]
    },
    "output": {
        "lists": [
            {
                "path": "rtmp://127.0.0.1:1935/push"
            }
        ]
    }
}
  • resource.lists 影片資原始檔路徑
  • output.lists 直播推流地址,在B站、鬥魚、虎牙等直播平臺中開啟直播後,將會得到推流地址與推流碼

開啟直播

上傳影片

上傳影片資源到伺服器,並修改 KPlayer 中的 resource.lists 影片路徑

❗❗❗注意:直播的媒體檔案必須得有平臺版權,否則就會被投訴,封禁直播間❗

{
    "version": "2.0.0",
    "resource": {
        "lists": [
            "/data/software/movie/WechatMomentScreenshot.mp4",
            "/data/software/movie/IT Tools.mp4",
            "/data/software/movie/EasyCode.mp4",
            "/data/software/movie/TinyRDM.mp4",
            "/data/software/movie/Fooocus.mp4",
            "/data/software/movie/Stirling-PDF.mp4"
        ]
    },
    "output": {
        "lists": [
            {
                "path": "rtmp://127.0.0.1:1935/push"
            }
        ]
    }
  }
}

獲取推流地址

以開啟B站直播為例。

1、點選首頁直播

2、點選網頁右側的開播設定

3、選擇分類,點選開播

前提需要身份證和姓名實名認證

4、複製直播間地址

rtmp://live-push.bilivideo.com/live-bvc/?streamname=live_*********_********&key=**************&schedule=rtmp&pflag=1

5、將直播間地址配置到 KPlayer 配置檔案中的 output.lists 直播推流地址

{
    "version": "2.0.0",
    "resource": {
        "lists": [
            "/data/software/movie/WechatMomentScreenshot.mp4",
            "/data/software/movie/IT Tools.mp4",
            "/data/software/movie/EasyCode.mp4",
            "/data/software/movie/TinyRDM.mp4",
            "/data/software/movie/Fooocus.mp4",
            "/data/software/movie/Stirling-PDF.mp4"
        ]
    },
    "output": {
        "lists": [
            {
                "path": "rtmp://live-push.bilivideo.com/live-bvc/?streamname=live_*********_********&key=**************&schedule=rtmp&pflag=1"
            }
        ]
    }
}

執行 KPlayer

執行以下命令啟動 KPlayer

./kplayer play start

後臺執行 KPlayer

./kplayer play start --daemon

測試訪問

開啟直播間地址,可以看到已經開始直播了。

鬥魚、虎牙等其他直播平臺的直播配置也是類似的流程,只需要獲取到平臺的直播推流地址,並進行配置即可!可以同時配置多個平臺同時進行直播!

配置迴圈播放

KPlayer 提供了很多的配置項,有資源配置、播放配置等。

如:可以配置迴圈播放影片,這樣就可以保證24小時不間斷的迴圈播放影片。

{
    "version": "2.0.0",
    "resource": {
        "lists": [
            "/data/software/movie/WechatMomentScreenshot.mp4",
            "/data/software/movie/IT Tools.mp4",
            "/data/software/movie/EasyCode.mp4",
            "/data/software/movie/TinyRDM.mp4",
            "/data/software/movie/Fooocus.mp4",
            "/data/software/movie/Stirling-PDF.mp4"
        ]
    },
    "output": {
        "lists": [
            {
                "path": "rtmp://live-push.bilivideo.com/live-bvc/?streamname=live_*********_********&key=**************&schedule=rtmp&pflag=1"
            }
        ]
    },
    ## 播放配置
    "play": {
        "fill_strategy": "ratio",
        ## 啟用推流編碼快取,會生成快取,命中快取節約CPU資源
        "skip_invalid_resource": true,
        "cache_on": true,
         # 播放模式為按順序且迴圈播放
        "play_model": "loop"
  }
}

更多的配置資訊可參考 KPlayer 提供的文件。

Docker 安裝 KPlayer

1、建立快取目錄 /data/software/docker/kplayer/cache

cd /data/software/docker/kplayer
mkdir cache

2、建立配置檔案 /data/software/docker/kplayer/config.json

cd /data/software/docker/kplayer
touch config.json

填入配置資訊:

{
    "version": "2.0.0",
    "resource": {
        "lists": [
            "/data/software/movie/WechatMomentScreenshot.mp4",
            "/data/software/movie/IT Tools.mp4",
            "/data/software/movie/EasyCode.mp4",
            "/data/software/movie/TinyRDM.mp4",
            "/data/software/movie/Fooocus.mp4",
            "/data/software/movie/Stirling-PDF.mp4"
        ]
    },
    "output": {
        "lists": [
            {
                "path": "rtmp://live-push.bilivideo.com/live-bvc/?streamname=live_*********_********&key=**************&schedule=rtmp&pflag=1"
            }
        ]
    },
    ## 播放配置
    "play": {
        "fill_strategy": "ratio",
        ## 啟用推流編碼快取,會生成快取,命中快取節約CPU資源
        "skip_invalid_resource": true,
        "cache_on": true,
         # 播放模式為按順序且迴圈播放
        "play_model": "loop"
  }
}

2、建立 docker-compose.yml

version: "3.3"
services:
  kplayer:
    container_name: kplayer
    volumes:
      - "/data/software/movie:/video"
      - "/data/software/docker/kplayer/config.json:/kplayer/config.json"
      - "/data/software/docker/kplayer/cache:/kplayer/cache"
    restart: always
    image: "bytelang/kplayer"

3、啟動容器

docker-compose up -d 

以上,就是利用伺服器搭建個人直播間的全流程,整個步驟不是很複雜。

我們可以利用閒置的伺服器,將自己收藏的電影、電視等資源進行全天候直播,每天還能獲得一定的收益!

❗❗❗注意:直播的媒體檔案必須得有平臺版權,否則就會被投訴,封禁直播間❗

最後

推薦的開源專案已經收錄到 GitHub 專案,歡迎 Star

https://github.com/chenyl8848/great-open-source-project

或者訪問網站,進行線上瀏覽:

https://chencoding.top:8090/#/

大家的點贊、收藏和評論都是對作者的支援,如文章對你有幫助還請點贊轉發支援下,謝謝!

相關文章