發表文章

目前顯示的是有「obs」標籤的文章

OBS問題回報, bug report

我知道有很多人都懶得看直接問,不接受這種模式,怕麻煩就回去用官方版 只有我製造出的bug會處理,新功能不能用幾乎都是官方的問題 blog或Discord有寫的東西就不回答,看不懂可以講,會找機會改進文件 如何有效回報bug (請先讀過,如果提供的資料不詳,看情況補件或無視) https://www.chiark.greenend.org.uk/~sgtatham/bugs.html 遇到bug先改用官方版開發版看有無同樣問題,下載連結不固定,請去官方Discord要 (進#windows-support  打!nightly) 或 dev.azure.com/obsjim/obsjim/_build?definitionId=1&_a=summary&repositoryFilter=1&branchFilter=4 (不確定連結會不會變動) 如有同樣問題(非我修改造成問題),請回報給官方處理(要用官方開發版或穩定版回報) 視情況提供怎麼繞開或回復成能用版本的方法 如果確定是我改出來的,請到Discord提供相關資訊 (詳細看上面的教學) 包含測試過的OBS版本(我的版本及官方開發版版本號)及狀況的描述(哪版會發生,哪版不會) 把OBS log上傳分析網站 (也可以在OBS程式內上傳Help->Log Files->現在跟上次都點) 如果網站有問題或不會使用,可以把log提供給我 按Win+R 打 %appdata%\obs-studio 把crashes和logs 都壓縮打包給我 (如果是容易再現的問題,先把這兩個資料夾砍掉再做log) 最好也要有畫面,很多人會描述錯誤 抓圖教學 https://www.take-a-screenshot.org/ 或是用笨方法手機拍照 Q: 出問題想下載舊版本的方法 A: https://ci.appveyor.com/project/craftwar_appveyor/obs-studio/history?branch=master 系統會自動清理,過期不要找我要 Q: 下載卡在Getting newer OBS... A: 這個訊息表示下載OBS新版本中,沒出現下載進度通常是網路連線有問題,連不上github,請檢察網路是否太慢或防火牆擋掉 Q: 下載很慢或錯誤 A

優化實況(三) 減少系統使用資源,讓遊戲使用更多, game gets more resource

非專屬遊戲和實況的優化,或在其他實況優化文提過的不會重複寫在這裡 有時候忘記寫過就會重複寫,可以提醒我 遊戲或OBS資源不夠都可能造成實況不順 (不考慮硬體不夠力的情況) 用管理者權限執行OBS可提高OBS GPU使用優先權,對某些情況有幫助 簡單的作法,開工作管理員看系統的資源怎麼被使用的 主要看 記憶體, CPU, GPU(顯卡), GPU記憶體的用量 暫停其他程式的執行 (ex: 網頁或是其他遊戲),等遊戲結束再恢復,可避免關掉重開的麻煩 被暫停的程式不會使用CPU和GPU,記憶體和GPU記憶體可能會吃住不釋放(要看系統如何管理),同時也不會發出聲音(我常拿來靜音用) https://craftwarblog.blogspot.com/2017/12/suspend-process-replacing-pssuspendexe.html FPS顯示也是會降遊戲效能的(應該無感) ,還是建議關掉,誰玩遊戲有空一直看FPS? 我只有遊戲不順檢查時才會開FPS,有個數字一直跳畫面也不好看

OBS AMD 硬體壓縮維護者 Xaymar 退出團隊, hardware encoder

來源: https://github.com/obsproject/obs-studio/issues/2346 以後OBS AMD硬體壓縮品質會更糟糕,不知道多久後才會有新的開發者接手,國外OBS開發者都滿有錢的,AMD沒啥人買。接手的人能不能像以前一樣? 真的要很有愛,因為AMD driver有時無預警改動造成第三方程式壞掉,也需要一些hack 來workaround 據我所知OBS AMD encoder只有Xaymar維護,ffmpeg內的AMD hw encoder好像也是他 因為客戶指定用AMD還是真的很有愛? 他說Radeon Vega還VII 新品送修三次才能用 我只送過nvenc的pr,AMD? 沒研究,沒用過有AMD hw encoder的GPU 以下只和開發者相關 (使用者可以不看) 關於Xaymar所說的事,只有clang-format綁在cmake執行我不贊同 要用就讓開發者自己在ide或其他方式執行 OBS的開發和他講的一樣,就是某些人說的算,都直接commit進去了,沒大問題就算Jim不喜歡也不會revert吧 類似的事其他人提pr會被拒絕,沒有明確的規則 別人都花時間寫完了,才說謝謝你blah blah reject 就像Xaymar說的,你一開始就講好到底哪些會被接受,不要浪費大家時間 開發者的experience也很重要阿

My OBS TODO list

官方OBS的許願池在這裡,有好的想法可以去提 https://ideas.obsproject.com/ 這是我的OBS版本的預定 TODO Never Do list obs-text browser <-> OBS IPC for song name (小星說要寫,大概有機會?) 做出來就不用限制active tab detect player/program close updater unicode support 太習慣用英文就忘記了,寫完才想到,沒人pr就不改 以上接受pr Direct2D rewrite as a new plugin Installer相關的 (應該我都沒興趣沒時間弄,看有沒有人要做) VC++ runtime check, download from M$

調整/改變遊戲視窗大小, change/resize game window size

1. 直接視窗調整大小 https://craftwarblog.blogspot.com/2018/12/run-program-in-specified-position-and.html 2. 調整大小後,顯示區域不會跟著變大的 (只有視窗外框變大) 用OBS擷取遊戲畫面,利用OBS的preview來放大畫面 (這方法由小坤提供) 把OBS設成always on top,在把視窗focus切到遊戲就完成了 看著OBS放大的預覽畫面,鍵盤的輸入是餵給遊戲 這方法只有鍵盤限定的遊戲比較實用 需要滑鼠的遊戲會比較難使用,因為OBS在最上層會吃掉滑鼠輸入,除非你用雙螢幕

優化實況(一) OBS設定 streaming settings

圖片
本文適用我做的開發版本 (可能含官方正式版還未加入的新功能) 非新手教學,解釋OBS機制/設定,讓使用者選擇適合的設定 (減少資源消耗...等) 目標 記錄 所有能優化的部分, 新手閱讀可能會感到挫折, 看懂多少用多少吧 偏筆記的寫法 資料來源: OBS開發者間的交談內容, OBS程式碼及其他相關來源 要用哪一個OBS和系統? 實況配備需求 調整Win10 畫面相關的優化 (scene, source..etc) 編碼器encoder 其他 要用哪一個OBS和系統? 不維護的OBS Classic不要用, 聽說有安全性問題,攻擊者可在你電腦隨意執行程式 換OBS Studio比較好 (畫質,效能, 功能上都贏),以下都直接稱作OBS,不打全名 新版本有匯入功能,可以從舊的Classic和其他實況軟體轉換過來 Streamlabs OBS(SLOBS),OBS的衍生版之一,功能較多設定較容易,消耗較多資源 有人問我閒置時(未實況)資源消耗過多,我就推薦去試用OBS,應該是個案,沒用不熟 64bit目錄內有64bit版本,能跑就用,設定和32bit通用 (效能較好,官方版標題會寫64bit,我的版本只提供64bit就不寫了) 官方OBS v22後有把32/64bit版本分離,缺空間可以移除重裝 (節省接近一半) Win7無法發揮OBS全部功能,效能較差 (微軟2020/1/14停止支援Win7,建議升級) OBS在Windows上效能和功能最好 (開發者人數Windows > Linux> Mac) 我改的OBS (效能/功能強化,可直接轉換或獨立安裝) https://craftwarblog.blogspot.com/2017/09/obs-studioby-craftwar.html 實況配備需求

優化實況(二) OBS需要的流量 streaming bandwidth requirement

最後更新 2020/3/05 以OBS Studio (以下只稱OBS)為標準編寫,其他實況軟體(Xsplit ...etc)設定可能不同 平台可能會有最大上傳限制,超過就會被斷線 Youtube 似乎全部都會transcode,被再壓縮過最高畫質會降低(比實況主送出的低),延遲應該會增加,實際影響有多大,我沒興趣實測不清楚 實況主的上傳需求沒有改變,觀眾的流量會減少(youtube轉過的影片應該會變小) Twitch上的latency設定 (不影響到OBS),新版改成由觀眾自己選擇 Normal latency: 預設 Low latency: 減低延遲,強化即時互動,副作用觀眾的網路用量增加,畫質變差 (Twitch的說法,詳細機制我沒研究) 沒看到詳細的說明,實況主的上傳需求應該沒有改變 更低延遲可用支援FTL協定的平台 (因為FTL是M$的技術,除了自家 Mixer 應該都不給用) 上傳量會比傳統使用rtmp的多 本質上實況主和觀眾的畫面有延遲是無可避免的,通常實況主上傳設越大延遲越高 Q: 延遲是怎麼來的? A: 實況主送出: 壓縮影片和網路傳送的延遲 觀眾接收: 網路傳送,影片需要累積到足量才能開始播放 (需要足夠資訊才能解碼,實況主上傳越高延遲越高) 兩個加起來才是實際的延遲 Twitch官方上傳建議 (品質接近本機需要的最大上傳量,或邊際效應太低不值得更高) https://stream.twitch.tv/encoding/ 實際上依配備和想給觀眾的體驗決定,不照官方建議還是可以實況(某些平台可能會限制) 懶人設定 720p FPS 30 cbr 上傳3000,多數遊戲都有不錯的表現,動態遊戲需要 60 要測試Twitch上傳可以在streamkey後加上 ?bandwidthtest=true 可以測試上傳穩定性,系統負載,如果按了實況卻看不到開台可能是忘了拿掉測試模式  實際需要的上傳量根據使用的encoder改變 (好的encoder可用較低上傳達到同畫質) encoder比較可看 優化實況(一) OBS上傳量的單位是Kbps,設1500的情況下 (簡單計算不考慮protocol overhead) 1500Kbps = 1.5 Mbps,2018/01/07 hinet

Game capture: 遊戲擷取 限制擷取速率, Limit capture framerate

圖片
懶人包 遊戲要限制FPS,否則會無意義消耗較多資源 ,遊戲和實況品質都可能被影響 Limit capture framerate哪時候該開? 遊戲FPS是OBS內設定FPS的兩倍,建議打開 想讓OBS使用較少資源 詳細的解說和做法在下面,如果你已經知道要怎麼做或沒興趣可以不用看 有些太技術細節沒看懂也沒關係,不用完全懂就能選擇適合的設定 遊戲FPS太高 對螢幕和硬體的影響以前寫過了 https://craftwarblog.blogspot.com/2019/01/fpsrefresh-rate-vsync-g-sync-freesync.html 應該比較省資源的game capture會比其他方式消耗資源 遊戲FPS是120,obs每秒就會更新畫面120 frames obs輸出FPS是60時(實況或錄影),會有 120 - 60  = 60 的frames被obs丟掉沒有使用 其他擷取方式應該是依照obs FPS抓畫面,沒有這個問題 game source(hook)的機制是在遊戲更新畫面時,遊戲複製一份給OBS的game source game source預設會用兩倍的速度去讀取拿到的frame (理由上面圖片Jim講了) 沒限制遊戲FPS,上面兩個動作的次數都會增加,提高系統負擔 OBS合成畫面時是根據Settings->Video的FPS (總共有三個不同的FPS) OBS有打算修改game source相關FPS機制,不知道哪時候會開工就是了 因為這個問題不會造成非常嚴重的結果,有迴避方法在 沒限制遊戲FPS,算是使用者自己的問題 === 目前 21.1.2 game capture 擷取畫面的頻率是依照遊戲的FPS 不是依照obs內的FPS設定 沒開選項是遊戲兩倍 好像是討論到144Hz display, OBS FPS60的情況 (Discord討論出現的內容) 我下面寫的是否該開啟選項的原則沒有改變 資料來源 https://obsproject.com/mantis/view.php?id=1241 Limit capture framerate選項的功能,並不是類似V-sync把擷取頻率限制為obs內的FPS 是把更新的頻率減半 遊戲F

OBS 實況顯示VNR翻譯的遊戲文字, display VNR (visual novel reader) translation

圖片
需要使用修改過的VNR (主要由 kyob1010 完成) 及OBS (修改過的obs-text.dll) 不想安裝新的可以只換掉關鍵檔案 (版本太舊會出問題,建議用已整合完的版本) 詳細安裝方法請看VNR, OBS各別文件 限制: 不能有多個不同名的obs-text同時使用vnr mode (因為我懶得處理,應該很少用到) 2019/6/26 提高效能,需要更新後才能用或都不更新 (VNR和OBS必須是同一機制) 2019/1/9 提高效能,需要更新後才能用 (或是都不更新留在舊版) VNR (visual novel reader) 不放在github的原因是檔案太大 limit會超過,就選了gitlab https://gitlab.com/craftwar/VNR_OBS kyob1010寫的說明文件 https://gitlab.com/craftwar/VNR_OBS/blob/master/README%20for%20VNR_OBS.txt 有問題要問 kyob1010,py我不熟,我只修改windows api的部分 回報問題前先閱讀 https://craftwarblog.blogspot.com/2018/07/how-to-report-bugs-effectively.html 除錯時,依文件說明使用debug mode檢查視窗全部輸出 (不是輸出停止的最尾端畫面而已) 建議複製到文字檔內再看,非常長,通常會寫錯誤原因 VNR常見問題 https://craftwarblog.blogspot.com/2018/12/vnr-visual-novel-reader-faq.html 一般使用者下載這個就好 (沒有多餘的修改,只加上OBS輸出功能) 如果VNR版本太舊,手動patch可能會錯誤,可下載包好的 Jichi版本 + OBS 輸出patch https://mega.nz/#!l0tHzI6Z!ZMjs_cE46atvjoQIGyV4zCXnDI_FSdZ8NjrHV-3Af7Y (我包的) 原先使用的VNR內的Cache目錄複製進去,避免缺少字典檔或其他檔案,導致問題 或用mklink建立連結,不用複製Cache目錄 (空間只需要一份) https://docs.

OBS ndi 把影像傳到另一台電腦做壓縮, transfer video to another computer for encoding

NewTek's NDI® 是透用IP來傳送影音的技術 安裝這個plugin後,OBS就能使用NDI接收和傳送,正常是把ip camera拿來用 這個plugin會用到Qt,要自己build的必需和OBS所用Qt同版本,OBS更新可能就要更新 https://github.com/Palakis/obs-ndi 遊戲機把影像和丟出去,不做h264壓縮 (x264或硬體,交給另一台電腦來處理),降低系統使用資源 NDI在傳送時還是會壓縮 (比h264運算量少,資料比較大,會吃更多網路頻寬) 完全不影響遊戲機要用擷取卡/盒,讓另一台電腦擷取畫面實況,NDI只是省錢的替代方案 兩台電腦整體消耗資源會增加,如果電腦直接壓縮沒問題就不推薦 目前多數是高品質實況會影響遊戲體驗,用兩台高等級電腦來實況? 新版改善硬體壓縮後,對遊戲影響變小,也許不太需要了? (v23後新增功能) https://obsproject.com/mantis/view.php?id=610

osu! 設定 畫面不順 FPS低,實況無畫面, compatibility mode, obs crash

圖片
最根本的原因是螢幕刷新速度不夠,買個144的螢幕吧 如果螢幕沒問題,該注意設定 測試新設定,把FPS上限調成螢幕兩倍(120)中,不用VSync 改120 FPS好像有比vsync好打(畫面更新較快,比較多時間可以反應),雖然tearing會出現 osu!似乎有個bug? 也許是我顯卡driver的問題? 開VSync下,沒開compatibility mode (會用opengl跑) FPS會只跑30/60,怪不得我玩的時候都覺得畫面不順 總之打開FPS顯示確認一下右下角寫多少吧 解法是打開 compatibility mode 或是FPS限制不要用VSync 如果FPS夠,還是不順(感覺畫面不連續) 可以把 Reduce dropped frames 打開看看 上面各選項組合測試出最適合自己的設定吧 我視窗下遊戲的設定是 1600X900,fullscreen mode沒開 V-sync +  Reduce dropped frames  (測試結果比 60FPS + Reduce dropped frames好) 改設定檔 osu!.[username].cfg 設定FPS,就會多一個選項60FPS可以選 username是你系統使用者帳號的名字 CustomFrameLimit = 60 如果你的螢幕更好,可以改到更高 (最大調到螢幕限制),60打osu是稍微不夠用的 為啥不提供在遊戲中輸入FPS的介面呢? compatibility mode沒開是用opengl跑 (opengl和obs相容性可能有問題) 打開會切換成DirectX OBS會當掉的也可以考慮嘗試切換DirectX看看 換成 compatibility mode 後,FPS數值可跑到60/60 實際體驗也有比較順,有問題的人可以調整一下 有人些會搞不清楚osu!到底是用哪種模式運行 建議使用game capture時,視窗和全螢幕的選項都試試看 我會打開這個選項 (我多數是日文ACG的圖,可以換日文顯示)

OBS使用案例 聽自己的歌+開放點歌, don't output audio to stream

某蘿莉控丹問我的問題 想要某些聲音不被OBS抓到,必須要有至少兩個聲音輸出裝置 (OBS和其他程式用不同的) 如果沒有實體裝置的情況下,可以用軟體虛擬 比較有名的是 Virtual Audio Cable (要錢) 可以用 Virtual Audio Cable alternative 去google找其他方案 (有免費的) 如果程式無法指定輸出裝置的情況,可以用其他程式把輸出重新導向 Audio Router https://github.com/audiorouterdev/audio-router 資料來源 https://superuser.com/a/1183002/861086 不想裝軟體,在程式啟動前就調整預設輸出裝置再啟動程式 如果程式只會抓一次輸出裝置的情況下 藉此可達到不同程式不同輸出也是有可能辦到的 (很麻煩,不一定有效) 如果是只想放給觀眾,可以在系統音量把程式的聲音關掉 (不是軟體內) 這樣做OBS還是會抓到聲音 (可以看OBS音量條確認)

OBS: capture Twitch chat from Chatty 擷取Chatty聊天室文字

圖片
If you don't use Chatty, you should use browser source to render Twitch chat. (Sine OBS Studio add hardware acceleration to browser source) If you have mutiple monitor or enough space. You can try streamchat function in Chatty. (no example now) First Add a window capture to Chatty. No picture this step, I think you have no problem here. Click Filters to add filter to Chatty window capture.   Add "Color Key", set Key Color to Chatty background color. (black #000000 in my case) Adjust Opacity to see what's changed and pick one value.   Edit Transform(Ctrl+E) to crop Chatty  window capture. (capture part of Chatty window) I can't tell you which size is better. Just try and see what's changed.

OBS development note

圖片
Jim說他想保持OBS簡單一點,不希望一堆niche被加入,這樣會讓其他人後續維護量增加 所以我改的冷門功能,官方也不會採用 API https://obsproject.com/docs/index.html Contributing https://github.com/jp9000/obs-studio/blob/master/CONTRIBUTING.rst Translation https://obsproject.com/forum/threads/how-to-contribute-translations-for-obs.16327/ scripting use the same api as C/C++ (python, lua) C++17會讓amd-amf error,要開的話這個plugin要拔掉 (19/2/12) 加密client_id的原因,youtube要求保密 基本上這種加密也沒啥用,因為有source code,而且OBS又有pdb deobfuscate_str() 給twitchclient_id (去twitch註冊,url放OBS內寫的) hash是uint_64 source plugin create new source的時候 get_properties is called before update other notes obs-text scene沒切到還是一直在跑,設定file或抓歌的情況,就會一直在背景scan 要研究才知道是obs設計,還是plugin原本沒寫好 沒在用就把file/song都不勾吧 參考window-capture.c的tick,修完了w 不是active scene的情況,直接return (只有修正我改的版本,官方版沒有) create內constructor會直接call obs_source_update,會去跑Update Update內的東西大多不需要先放在new_內,都直接再assign給沒new_版本的變數 windows file lastwrite time的精準度相關問題 (只有寫入disk才更新) https://github.com/obsproject/obs-studi

OBS 功能/設定筆記 各種紀錄 note

圖片
紀錄神秘的新功能? 和一些使用上的問題,有興趣自己研究,我不一定會寫說明 可能只在開發版有,或是提出還未審核通過 (請自行確認狀態)   https://github.com/obsproject/obs-studio/pull/3263 RNNoise 25.0.x? https://github.com/obsproject/obs-studio/pull/3202 UI: Add ability to make screenshots 抓圖功能 25.0 https://github.com/obsproject/obs-studio/pull/2208 Win10某版的新功能,新的視窗擷取,可以擷取到更多視窗,chrome也不用關硬體加速 https://github.com/obsproject/obs-studio/pull/2156 Vulkan Game Capture https://github.com/obsproject/obs-studio/pull/1956 advanced scene collection importer 可以從不同實況軟體匯入的東西 24.0 ? https://github.com/obsproject/obs-studio/pull/2015 windows audio ducking 猜測是和Mic使用時把其他聲音降低,windows內好像也有類似的設定 我沒用Mic就關掉了 可能相關的東西 https://obsproject.com/forum/threads/audio-ducking.26604/ https://msdn.microsoft.com/en-us/library/windows/desktop/dd940391(v=vs.85).aspx https://github.com/jp9000/obs-studio/wiki/Understanding-the-Mixer OBS新的音量條 OBS 18.0加的功能 Audio monitoring 我也看不懂 ,不要問我是啥,大概跟混音有關? Added audio monitoring on Windows/OSX. Audio monitoring allo

OBS plugin obs-text 顯示播放中音樂, display playing music

圖片
English | 正體中文 只適用Microsoft Windows 透過修改的OBS內建plugin obs-text來達成,替換掉我改過的檔案就能用了 (OBS版本差異過大時,只換檔案會無法使用) 或是用我做的OBS,整個OBS(含plugin)都換我改的 (公開程式碼,無添加惡意程式碼) https://craftwarblog.blogspot.com/2017/09/obs-studioby-craftwar.html 使用方法 obs-text設定中選歌名模式,其他我新增的功能請參考相關文章 支援的播放器  1.瀏覽器上的 驗證可用: Firefox, Chrome, Edge(新版用Chromium做的,logo像Firefox的) 播歌的網頁必須是現在分頁 (開一個獨立視窗只開一個分頁也可以) 除了youtube以外,都需要再安裝對應的 使用者腳本(userscript)才能抓到 點進對應的usercript後,會打開github,下面有兩個站選一個你喜歡的去裝 不會用userscript的,先看 https://craftwarblog.blogspot.com/2017/11/userscript-install.html YouTube YouTube Music https://github.com/craftwar/userscript/tree/master/Youtube-Music-song-name-helper Spotify https://github.com/craftwar/userscript/tree/master/Spotify-song-name-helper ニコニコ動画 (Niconico) https://github.com/craftwar/userscript/tree/master/Niconico-song-na