2025年7月15日火曜日

obs-studio githubからのビルド

このブログだとあまり明記していなかったので具体的なビルド手順を載せておこうかと。

必要な環境は、git, cmake, visual studio 2022ぐらいかな?現時点では全て誰でもダウンロード可能です。

ビルドに必要な空き容量NTFSで 6.26GB となっていました。

PowerShell 7.5.2
PS C:\Users\xxxxx> mkdir S:\obs\31.1.1\

Directory: S:\obs

Mode LastWriteTime Length Name
---- ------------- ------ ----
d---- 25/07/15 09:12 31.1.1

PS C:\Users\xxxxx> s:
PS S:\> cd \obs\31.1.1
PS S:\obs\31.1.1> git clone --recursive https://github.com/obsproject/obs-studio.git -b 31.1.1 --depth 1
Cloning into 'obs-studio'...
remote: Enumerating objects: 5326, done.
remote: Counting objects: 100% (5326/5326), done.
remote: Compressing objects: 100% (4434/4434), done.
remote: Total 5326 (delta 879), reused 3056 (delta 657), pack-reused 0 (from 0)
Receiving objects: 100% (5326/5326), 14.86 MiB | 14.24 MiB/s, done.
Resolving deltas: 100% (879/879), done.
warning: refs/tags/31.1.1 4b56b9b214967c6f0143e36f722c64c6d755d55f is not a commit!
Note: switching to 'a32b3f9f6d5e1cf6fa0f8105a2ed46ec0b4d991c'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:

git switch -c <new-branch-name>

Or undo this operation with:

git switch -

Turn off this advice by setting config variable advice.detachedHead to false

Updating files: 100% (5043/5043), done.
Submodule 'plugins/win-dshow/libdshowcapture' (https://github.com/obsproject/libdshowcapture.git) registered for path 'deps/libdshowcapture/src'
Submodule 'plugins/obs-browser' (https://github.com/obsproject/obs-browser.git) registered for path 'plugins/obs-browser'
Submodule 'plugins/obs-websocket' (https://github.com/obsproject/obs-websocket.git) registered for path 'plugins/obs-websocket'
Cloning into 'S:/obs/31.1.1/obs-studio/deps/libdshowcapture/src'...
remote: Enumerating objects: 1037, done.
remote: Counting objects: 100% (604/604), done.
remote: Compressing objects: 100% (96/96), done.
remote: Total 1037 (delta 537), reused 511 (delta 508), pack-reused 433 (from 2)
Receiving objects: 100% (1037/1037), 332.23 KiB | 10.07 MiB/s, done.
Resolving deltas: 100% (722/722), done.
Cloning into 'S:/obs/31.1.1/obs-studio/plugins/obs-browser'...
remote: Enumerating objects: 3799, done.
remote: Counting objects: 100% (1676/1676), done.
remote: Compressing objects: 100% (444/444), done.
remote: Total 3799 (delta 1376), reused 1258 (delta 1232), pack-reused 2123 (from 2)
Receiving objects: 100% (3799/3799), 1.09 MiB | 10.11 MiB/s, done.
Resolving deltas: 100% (2594/2594), done.
Cloning into 'S:/obs/31.1.1/obs-studio/plugins/obs-websocket'...
remote: Enumerating objects: 6189, done.
remote: Counting objects: 100% (823/823), done.
remote: Compressing objects: 100% (203/203), done.
remote: Total 6189 (delta 656), reused 631 (delta 618), pack-reused 5366 (from 4)
Receiving objects: 100% (6189/6189), 1.75 MiB | 10.62 MiB/s, done.
Resolving deltas: 100% (4258/4258), done.
Submodule path 'deps/libdshowcapture/src': checked out '8878638324393815512f802640b0d5ce940161f1'
Submodule 'external/capture-device-support' (https://github.com/elgatosf/capture-device-support) registered for path 'deps/libdshowcapture/src/external/capture-device-support'
Cloning into 'S:/obs/31.1.1/obs-studio/deps/libdshowcapture/src/external/capture-device-support'...
remote: Enumerating objects: 60, done.
remote: Counting objects: 100% (60/60), done.
remote: Compressing objects: 100% (41/41), done.
remote: Total 60 (delta 30), reused 41 (delta 19), pack-reused 0 (from 0)
Receiving objects: 100% (60/60), 34.39 KiB | 5.73 MiB/s, done.
Resolving deltas: 100% (30/30), done.
Submodule path 'deps/libdshowcapture/src/external/capture-device-support': checked out 'fe9630974d47f51bf54826e72fb8b654e620aa93'
Submodule path 'plugins/obs-browser': checked out 'bdabf8300ecefeb566b81f4a7ff75f8a8e21f62b'
Submodule path 'plugins/obs-websocket': checked out '40d26dbf4d29137bf88cd393a3031adb04d68bba'
PS S:\obs\31.1.1> cmake-gui
PS S:\obs\31.1.1>

cmake-guiが起動した後は、上の方から設定します。

Configureを押し、ビルドするフォルダの作成の確認をした後、終了するまでしばらく待ちます。完了したらGenerateを押し、またしばらく待ちます。終わったらOpen Projectを押すとVisual Studio2022が起動します。


実際にビルドするには必要かどうかわかりませんが、ソリューションの構成をReleaseにしてデバッグなしで開始(Ctrl+F5)を押すと実行ファイルの作成が始まります。この状態で放置して、しばらくすると(手元のネットブックだと35分ほど)obs-studioが実行された状態になります。

一回ビルドを通しておけば、ソースの修正などを行う時に型チェックなどがまともになるので時間があるのであれば一度ビルドしておくことをお勧めします。

失敗するパターンとしてはファイルシステムがWindowsではNTFSでないとcmakeでエラーが出て進まなくなりました。 

2025年7月13日日曜日

はやくも 31.1.1

昨日ビルドしたそばからgithubでは31.1.1がタグ付けされていました。

機械的に作業しているのか現状コンパイルは通っていますが、VisualStudio内のリンクが結構ぐちゃってる感じがします。まだまだアップデートが続きそうな気配。 

31.1から変更となったUI上のパディングの変更によりスピンエディットボックス(Qtだと何て呼ぶんだろうか?w)が巨大化してるので何とかしたいと思っているのですが、どうしたものか… 

2025年7月12日土曜日

31.1.0が4日前にリリースされてたっぽいですね

31.0と31.1はソースの配置位置が変わっていたりファイル名が変わっていたりと、内部的には大きく手が入っている印象がありました。

ドキュメントを見ると結構ダイアログの修正や内部的なバグの修正など行われているみたいです。

UIの見た目で嬉しいのは、コントロールの大きさがデザイン系から独立して変更できる点でしょうか?全体的にコンパクト収まるので、クラッシックを使用していましたが、今後はもう少し選べる選択肢が増える感じ。

手を加えた状態はこんな感じに

時分秒のエディットボックスが大きくなってる気がします…世間的には出力タイマーのウィンドウは大きくしたいのだろうか?

そして相変わらずプレビューのグレー枠の原因が分からない…orz 

2025年7月9日水曜日

Qt デフォルトのウィンドウのサイズ

細かいことはわかりませんが、いつも使っている出力タイマーウィンドウ

開いてから使っているうちに小さくしています。

デザイナーでサイズ調節しておいてもいいのかな?とも思ったものの、どうせ自動で最小サイズがセットされるのであれば、デフォルトサイズを小さめにしておけばいいんじゃね?ということで早速試してみました。

obs-studio\UI\frontend-plugins\frontend-tools\forms\output-timer.ui

:
:
 <widget class="QDialog" name="OutputTimer">
  <property name="geometry">
   <rect>
    <x>0</x>
    <y>0</y>
    <width>0</width>
    <height>0</height>
   </rect>
  </property>
:
: 

最初は少し小さめにして試しましたが、どうせなら0にしてしまえということでこんな感じに

もともとの数値はwidth, heightそれぞれ697,240だったりしますが、そもそもこの数値の単位は何?とかあったりしますw

今回はこんなところでしょうか。小さくなりすぎな気もしますが、結局毎回ウィンドウのサイズを縮めて使っているので、その手間が一つなくなるだけでもいいことなのかな? 

2025年7月7日月曜日

PV詐欺

このすばの「PV詐欺」という発言から知った言葉ですが、まさにこれタコピーの原罪。

abemaで流されていた軽めのPVのイメージで気軽に見始めたところ、結構ヘビーな鬱展開w

見始めた最初はドラえもん見たいなものかな?とかタコピーの現実のギャップが開きすぎててあれな感じとか違和感が強いものの、すべてを吹き飛ばす鬱展開w

寝る前に見てしまったのも敗因だった… 

個人的に一番きつかったのはボロボロになったしずかちゃんがチャッピーの首輪だけ持ってタコピーの前に現れたシーンかな…。

2話目が流された後も軽めのPV…まとめられてたけど、海外でも結構阿鼻叫喚なコメントが多いらしいがw