一個錄制多平臺帶彈幕直播的工具——DanmakuRender
結合網(wǎng)絡上的代碼寫的一個能錄制帶彈幕直播流的小工具,主要用來錄制包含彈幕的視頻流,主要功能如下: 可以同時錄制純直播流和彈幕,并且支持在本地預覽彈幕直播流。
支持多平臺,包括B站、斗魚、虎牙、抖音和網(wǎng)易CC。
可以自動壓制彈幕到視頻中。
支持在不同操作系統(tǒng)上運行。
支持錄播自動上傳至B站。
支持上傳完成后自動清理上傳文件。
??
實際上之前已經寫過一個說明文檔,但是后來改動比較多,原文檔已經不太適應環(huán)境了,就寫了個新的。本文主要給從沒用過Python和命令行的萌新使用,如果你已經有相關基礎可以直接看GitHub的安裝說明文檔。 ?? GitHub項目地址:https://github.com/SmallPeaches/DanmakuRender。有更新第一時間會在GitHub上更新。 安裝說明
???
安裝Python:
如果你之前安裝過Python的話直接下載代碼使用就行了,如果沒有安裝Python則先安裝Python(不知道怎么下的就下載這個?https://www.python.org/ftp/python/3.9.13/python-3.9.13-amd64.exe)。
安裝時一定要注意選擇Add Python xxx to PATH這個選項
,其他的安裝路徑什么的可以自由選擇,不懂的話默認也行。
???
下載程序文件:
前往GitHub項目地址,然后依次點擊Code-Download ZIP按鈕下載壓縮包,并把文件解壓到你想要的位置。
??如果你一路上都沒有遇到報錯就應該可以開始使用了(相關運行環(huán)境會在第一次錄制時自動下載)。 使用方法
????新版本使用yaml配置文件的方法來指定錄制的參數(shù)。 點開configs文件夾,復制一份example.yml,并且重命名為replay-<任務名稱>.yml,例如:replay-飛天狙.yml,這個文件里面的參數(shù)就對應著一個錄制任務,里面可以具體設置不同的錄制參數(shù),一般情況下只要填個URL改一下分段時間。錄制多個主播就復制多個配置文件,然后分別設置。
第一次錄制時建議使用控制臺打開(win10系統(tǒng)shift+右鍵點擊頁面空白處,在菜單中選擇“在此處打開powershell窗口”,win11在頁面右鍵選擇“在終端中打開”,然后輸入python main.py運行程序)。如果正常錄制沒有出問題的話之后就可以直接雙擊main.py運行了。 第一次啟動程序會讓你下載相關的運行環(huán)境,如果下載很慢的話可以參考GitHub的安裝文檔手動下載。 正常錄制的效果如下:
如果使用了自動上傳的話,啟動程序之后會要求你登錄,登錄時如果無法正確顯示二維碼可以手動打開文件夾里面的qrcode.png圖片掃碼,登錄效果是一樣的。登錄的cookies信息會保存到.temp文件夾下面。
特別提醒:cookies內包含了登錄信息,不要將他分享給任何人!
如果擔心程序運行不正常導致胡亂下載上傳,可以先運行dryrun.py來測試,它會自動錄制3段一分鐘的錄播,然后按照給定的設置渲染與上傳,上傳時還會自動選擇延遲24小時發(fā)布,你可以使用它來檢測下載的視頻是否正常,上傳的設置是否正確等。 如果需要修改編碼器參數(shù)(比如說碼率什么的),請打開主文件夾下的replay.yml按說明修改。 注意事項
程序的工作流程是:先錄制一小時直播,然后在錄制下一小時直播時啟動對這一小時直播的渲染。錄制完成后可以同時得到直播回放和帶彈幕的直播回放(分為兩個視頻)
程序默認使用NVIDIA的硬件編碼器渲染,如果用AMD顯卡的話需要打開主文件夾下的replay.yml按說明修改編碼器!
在關閉程序時,如果選擇了自動渲染彈幕,則一定要等錄制結束并且渲染完成再關閉(由于程序設定是先錄制后渲染),否則帶彈幕的錄播會出問題。 如果因為一些情況導致視頻渲染失敗的,可以在錄制結束后雙擊render_only.py手動渲染。 在錄制的過程中彈幕保存為一個字幕文件,因此使用支持字幕的播放器在本地播放錄播可以有彈幕的效果(就算是沒渲染彈幕也可以?。?,拿VLC播放器為例,在播放錄像時選擇字幕-添加字幕文件,然后選擇對應的ass文件就可以預覽彈幕了。 如果上傳時不使用實時上傳功能,那么上傳會在主播直播結束之后開始。多個錄像會自動作為多個分P上傳。注意重啟程序之前的視頻不會自動上傳! 常見問題
N卡渲染失?。簄o device cuda?
多半是驅動程序太老了,更新一下就行。 壓制出來的視頻很糊/文件太大了怎么辦?
如果本地看很糊的話說明碼率不夠,本地文件過大說明碼率太高,可以在replay.yml里面把默認15M碼率改成其他你需要的數(shù)值。 如果本地看沒有問題,但是上傳B站很糊,這是因為B站二壓導致的,沒有什么特別完美解決辦法。目前比較好的方案是偽4K,把1080P的視頻縮放成4K,讓B站以為是4K視頻然后按4K分配碼率,保證清晰度。程序里可以設置重縮放來實現(xiàn)(
代價是4倍編碼時間!
)。 渲染太慢了?
如果是GPU渲染的話,正常速度應該在3-6倍速。如果渲染異常慢可以先看看CPU和GPU占用(要看任務管理器-GPU-video encoder里面的數(shù)值),如果占用低而且慢的話可以開個issue討論一下。 更多
感謝 THMonster/danmaku, wbt5/real-url, ForgQi/biliup 的工作。 如果出現(xiàn)bug歡迎大家評論或者在GitHub中提出。
此程序只供研究學習使用。