経緯
キャプチャーボードが足りないのでネットワークでどうにかできないかと思い調べ始めた。
すると、OBSでPCの画面を別のPCに送信して配信をすることができるという記事を見つけたので試してみた。
別用で使っておりPCが手元に1台しかないので、VMでの検証。
これはあくまでもメモです。いつかまた使う時が来た時にすぐ使える用。
もくじ
いつかつくるかも
やり方
1,OBSのダウンロード
公式サイトなどからダウンロードしてください。
Linuxのビルドはわからないので調べてください。
2,設定
・送信側
1, 出力の出力モードを 詳細 に設定
2, 録画タブを開く
3, 種別を カスタム出力(FFmpeg) に設定
4, FFmpeg出力の種類を URLに出力に設定
5, ファイルパスまたはURLに rtp://<受信側のIP>:<ポート番号> を入力(ポートは3500が良い?)
6, コンテナフォーマットを rtp-mpegts に設定
7, 映像/音声のビットレートやキーフレーム間隔(フレーム)はネットワークの速度などを考えて適当に設定(私はよくわからないので、映像10000Kbps、音声320Kbps、間隔は10にしてます)
8, 映像エンコーダは可能であればハードウェアエンコーダを選ぶ。(最悪使えるやつを適当に選ぶ)
(VMではハードウェアエンコーダが表示されなかったので既定のままだが送信できた↓)

・受信側
1, メディアソースを追加
2, メディアソースのプロパティ を開く
3, ローカルファイルのチェックを外す
4, 入力に udp://<受信側のIP>:<ポート番号> を入力
5, ネットワークバッファリングや再接続の遅延などはお好みで。
完成(?)
注意点
・ポートは他で使われていないところを選ぶ(受信側)。
コマンドプロントを管理者で実行し、netstat -ano | findstr :<ポート番号>で使いたいポートが使われていないか確認する(スタンバイできているか確認するときにも使える。)

↑ 一番右の数字はPIDであり、タスクマネージャーなどでも確認できる。
送信側が複数ある場合、その分ポートを用意する必要がある。
ポート50001,50002,50003...など。
送信側録画設定も受信側メディアソースも変更する必要がある。
・OBSが通信できるようにファイアーウォールを設定する必要があります。
1, Windowsファイアウォールによるアプリケーションの許可を開きます

2, 許可されたアプリおよび機能に OBS Studio の名前があり、プライベート及びパブリックで許可されていることを確認します。(許可されていなかったら設定の変更を押し、チェックを入れる)
2-B, OBS Studioの名前がない場合は別のアプリの許可を押し、 参照 からOBSを選択する。(大体C:\Program Files\obs-studio\bin\64bit\obs64.exeにあるかもしれない)
2-B-2,選択できたら、ネットワークの種類からプライベート及びパブリックを選択、OKを押して、追加
・接続できてからメディアソースに変更を加えるとつながらなくなる可能性がある。
理由は知らないが、OBSを再起動するまで再接続できなくなったりする。(その間もVLCでは映像を確認できるので、この現象は謎である。)
送信側の録画を止めて、受信側のメディアソースも非表示にしてから変更するのが安牌?


