大家好,我是羊刀仙。

本篇為大家介紹一款錄播工具,可通過Docker快速部署,正好手頭有NAS,愛看直播或喜歡直播的朋友可以搭建一個愉快錄播啦!

秒變錄播大師,快速搭建最強錄播工具,輕松捕捉精彩直播瞬間!

項目特點


  • 支持國內(nèi)基本所有主流直播平臺,直接添加直播網(wǎng)址便可執(zhí)行任務,操作十分簡單;
  • 可通過Dokcer快速部署,兼容arm/v6(服務器、軟路由、NAS等),后續(xù)維護方便;
  • 可以配合Grafana查看主播的直播時間;

部署流程


本篇會使用威聯(lián)通四盤位NAS:TS-464C2進行搭建,主要是威聯(lián)通Container Station的Docker管理十分方便,是我所用過品牌NAS中體驗最好的,利于后期調(diào)整維護。其它平臺可做參考,無太大區(qū)別。

SSH連接NAS,輸入以下命令,clone作者提供的文件:

秒變錄播大師,快速搭建最強錄播工具,輕松捕捉精彩直播瞬間!

# 這里選擇直接clone官方文檔,因此不需要創(chuàng)建 cd /share/Container git clone https://github.com/hr3lxphr6j/bililive-go.git # 沒安裝git,先去應用中心添加第三方軟源進行下載 Qgit

SSH操作到這里,可以直接關(guān)閉終端控制臺,轉(zhuǎn)移至web端打開NAS管理界面。

先直接放上代碼了,我對作者提供的docker-compose.yml進行了部分修改:

version: "3.7" volumes: prometheus_data: {} # 定義prometheus_data卷,用于持久化Prometheus數(shù)據(jù) services: bililive-go: image: chigusa/bililive-go restart: unless-stopped container_name: bililive-go volumes: - /share/Container/bililive-go/Videos:/srv/bililive # 用于存放錄制的視頻,這個不建議照抄,請自己指定路徑 - /share/Container/bililive-go/config.docker.yml:/etc/bililive-go/config.yml # 將主機的config.docker.yml文件掛載到容器的/etc/bililive-go/config.yml,作為配置文件 ports: - 9970:8080 # 冒號左側(cè)端口修改 # 若僅僅需要錄播,從這里之后可全都刪掉 prometheus: image: quay.io/prometheus/prometheus restart: unless-stopped container_name: bililive-prom volumes: - /share/Container/bililive-go/prometheus_data:/prometheus # 用于持久化存儲Prometheus數(shù)據(jù) - /share/Container/bililive-go/contrib/prometheus:/etc/prometheus # Prometheus的配置目錄 command: # Prometheus啟動命令和參數(shù),以下參數(shù)建議保存數(shù)據(jù)至少30天 - '--storage.tsdb.retention.time=30d' - '--config.file=/etc/prometheus/prometheus.yml' - '--storage.tsdb.path=/prometheus' - '--web.console.libraries=/usr/share/prometheus/console_libraries' - '--web.console.templates=/usr/share/prometheus/consoles' ports: - 9971:9090 # 冒號左側(cè)端口修改 grafana: image: grafana/grafana-oss restart: unless-stopped container_name: bililive-graf volumes: - /share/Container/bililive-go/contrib/grafana/provisioning:/etc/grafana/provisioning # Grafana的配置 environment: - GF_SECURITY_ADMIN_USER=${ADMIN_USER} # 管理員用戶名,從環(huán)境文件.env獲取 - GF_SECURITY_ADMIN_PASSWORD=${ADMIN_PASSWORD} # 管理員密碼 - GF_USERS_ALLOW_SIGN_UP=false # 禁止用戶注冊 - GF_DASHBOARDS_DEFAULT_HOME_DASHBOARD_PATH=/etc/grafana/provisioning/dashboards/bilipanel.json # 設置默認儀表板路徑 ports: - 9972:3000 # 冒號左側(cè)端口修改

上面grafana項目的管理員用戶名及密碼完全不用理會,默認皆為admin,就算不改,部署后第一次登陸也會強制咱們修改~

先打開文件總管,在剛剛clone的文件目錄下,新建一個prometheus_data文件夾:

秒變錄播大師,快速搭建最強錄播工具,輕松捕捉精彩直播瞬間!

接著打開 Container Station,將上面的代碼稍加修改(文件映射目錄和端口號)后,復制粘貼進行創(chuàng)建:

秒變錄播大師,快速搭建最強錄播工具,輕松捕捉精彩直播瞬間!

稍加等待,可以看到已經(jīng)創(chuàng)建成功:

秒變錄播大師,快速搭建最強錄播工具,輕松捕捉精彩直播瞬間!部署成功.png

項目使用


??bililive-go

根據(jù)上文,web輸入NAS_IP:9970 即可進入控制臺,點擊添加房間:

秒變錄播大師,快速搭建最強錄播工具,輕松捕捉精彩直播瞬間!

提示我們輸入URL,就是觀眾在web看直播時網(wǎng)址欄對應的那個網(wǎng)址,復制粘貼進去即可:

秒變錄播大師,快速搭建最強錄播工具,輕松捕捉精彩直播瞬間!

添加完畢后,有的顯示錄制中(正在直播),有的則是監(jiān)控中(未開播)。未開播的房間等開播后也會自動監(jiān)控開始錄制:

秒變錄播大師,快速搭建最強錄播工具,輕松捕捉精彩直播瞬間!

回到NAS,打開之前用于存放錄像的- /share/Container/bililive-go/Videos:/srv/bililive目錄,.flv代表原畫面。沒幾分鐘就這么大了。。。所以建議大家自己更換存放目錄:

秒變錄播大師,快速搭建最強錄播工具,輕松捕捉精彩直播瞬間!

回到項目的控制面板,點擊最右側(cè)的文件:

秒變錄播大師,快速搭建最強錄播工具,輕松捕捉精彩直播瞬間!

可以快速查看錄播的文件:

秒變錄播大師,快速搭建最強錄播工具,輕松捕捉精彩直播瞬間!

對著文件單機,就可以快速播放內(nèi)容:

秒變錄播大師,快速搭建最強錄播工具,輕松捕捉精彩直播瞬間!

左側(cè)設置,可以看到一串串配置代碼,細致的功能修改需要我們在這里進行:比如我們?nèi)糁幌脘浿埔纛l,可將audio_only: false改為audio_only: true。但要注意的是,修改配置時建議先停止監(jiān)控,有些配置可能需要項目重啟后才會生效:

秒變錄播大師,快速搭建最強錄播工具,輕松捕捉精彩直播瞬間!

一些其它配置,大家若有需求可以參考自行修改或添加:

rpc: # RPC 服務的配置 enable: true # 啟用 RPC 服務 bind: :8080 # RPC 服務綁定的地址和端口,這里綁定到 8080 端口 debug: false # 是否啟用調(diào)試模式 interval: 20 # 錄制檢查間隔時間,單位為秒 out_put_path: ./ # 輸出文件的路徑,默認為當前目錄 ffmpeg_path: # ffmpeg 可執(zhí)行文件的路徑,如果為空,則從環(huán)境變量中查找 log: # 日志配置 out_put_folder: ./ # 日志輸出目錄 save_last_log: true # 是否保存上一次的日志 save_every_log: false # 是否保存每次的日志 feature: # 特性配置 use_native_flv_parser: false # 是否使用原生的 FLV 解析器 live_rooms: # 配置要監(jiān)聽的直播間列表 # qulity 參數(shù)目前僅 B 站啟用,默認為 0 # (B 站)0 代表原畫 PRO(HEVC) 優(yōu)先, 其他數(shù)值為原畫(AVC) # 原畫 PRO 會保存為 .ts 文件, 原畫為 .flv # HEVC 相比 AVC 體積更小, 減少 35% 體積, 畫質(zhì)相當, 但是 B 站轉(zhuǎn)碼有時候會崩 - url: https://www.lang.live/room/5664344 # 直播間 URL is_listening: false # 是否監(jiān)聽該直播間 - url: https://live.bilibili.com/22603245 # 直播間 URL is_listening: true # 是否監(jiān)聽該直播間 quality: 0 # 錄制畫質(zhì),0 為原畫 PRO(HEVC) out_put_tmpl: "" # 輸出文件的模板,留空使用默認模板 video_split_strategies: # 視頻分割策略 on_room_name_changed: false # 是否在直播間名稱改變時分割視頻 max_duration: 0s # 單個錄像時間,用于分段,0 表示不限制,1h為1小時 # 僅在 use_native_flv_parser=false 時生效 # 單位為字節(jié) (byte) # 有效值為正數(shù),默認值 0 為無效 # 負數(shù)為非法值,程序會輸出 log 提醒,并無視所設定的數(shù)值 max_file_size: 0 cookies: {} # Cookies 配置,留空表示不使用 on_record_finished: # 錄制完成后的操作 convert_to_mp4: false # 是否將錄制的 FLV 文件轉(zhuǎn)換為 MP4 delete_flv_after_convert: false # 轉(zhuǎn)換為 MP4 后是否刪除原始 FLV 文件 # 當 custom_commandline 的值不為空時,convert_to_mp4 的值會被無視, # 而是在錄制結(jié)束后直接執(zhí)行 custom_commandline 中的命令。 # 在 custom_commandline 執(zhí)行結(jié)束后,程序還會繼續(xù)查看 delete_flv_after_convert 的值, # 來判斷是否需要刪除原始 flv 文件。 # 以下是一個在錄制結(jié)束后將 flv 視頻轉(zhuǎn)換為同名 mp4 視頻的示例: # custom_commandline: '{{ .Ffmpeg }} -hide_banner -i "{{ .FileName }}" -c copy "{{ .FileName | trimSuffix (.FileName | ext)}}.mp4"' custom_commandline: "" # 自定義命令行,在錄制結(jié)束后執(zhí)行 timeout_in_us: 60000000 # 超時時間,單位為微秒

??bililive-graf(Grafana)

根據(jù)上文,web輸入NAS_IP:9972,賬戶/密碼皆為admin:

秒變錄播大師,快速搭建最強錄播工具,輕松捕捉精彩直播瞬間!

登陸后會彈出強制修改密碼界面:update your password。改好后點擊Submit

秒變錄播大師,快速搭建最強錄播工具,輕松捕捉精彩直播瞬間!

再次登陸后,先修改下語言,按照下圖位置,選擇中文(簡體)并點擊SAVE即可:

秒變錄播大師,快速搭建最強錄播工具,輕松捕捉精彩直播瞬間!

搭配Grafana查看主播的直播時間,還有錄制文件的大小等:

秒變錄播大師,快速搭建最強錄播工具,輕松捕捉精彩直播瞬間!

反向代理


項目通過NAS部署,所以依然選擇Lucky實現(xiàn),關(guān)于Lucky部署及注意事項參考這篇:

點擊添加子規(guī)則:

秒變錄播大師,快速搭建最強錄播工具,輕松捕捉精彩直播瞬間!

這里放上配置截圖:

秒變錄播大師,快速搭建最強錄播工具,輕松捕捉精彩直播瞬間!

前端地址填寫你解析好的二級域名;

后端是局域網(wǎng)訪問該服務的完整鏈接;

由于這個項目組并不擅長安全內(nèi)容,我順便建議大家在lucky自行設置認證。

最后


這個錄播工具還是非常不錯的,忙起來的時候會錯過很多精彩直播。比如官方賽事,還有幾個愛看的主播并沒有上傳錄播記錄的習慣,就可以借助這個工具進行錄制,休息吃飯的時候看一看(很下飯)。

如果本篇你覺得不錯,別忘了多多三連支持,能點個關(guān)注是最好的!

我是羊刀仙,后續(xù)也會繼續(xù)分享各類好玩的Dokcer項目、軟件應用和精致好物,本篇到此結(jié)束,感謝觀看~

該內(nèi)容正在參與「夏日挑戰(zhàn)賽」征稿活動,分享你的夏日日常,看看誰最會過夏天,贏大額現(xiàn)金,2萬金幣!查看詳情→

,

聲明:本站所有文章,如無特殊說明或標注,均為本站原創(chuàng)發(fā)布。任何個人或組織,在未征得本站同意時,禁止復制、盜用、采集、發(fā)布本站內(nèi)容到任何網(wǎng)站、書籍等各類媒體平臺。如若本站內(nèi)容侵犯了原著者的合法權(quán)益,可聯(lián)系我們進行處理。