あさりのみそしるダイアリー

ブラック社員がお届けする一貫しないネタの数々・・・おあがりよ!

YouTube Live でインターネットテレビ局を作ろう④

前回のつづきです。

 

www.asarinomisosoup.com

 

今回は、microserverにグラフィックボードを設置して、動画配信時のCPU負荷を小さくしてみます。

 

f:id:asarinomisosoup:20191110200659j:plain

NVIDIA GeForce GT730 です。

PCI Express x16 対応、ロープロファイル対応。外部電源は不要です。

 

www.kuroutoshikou.com

 

microserverは電源がしょぼいのと、設置スペースが非常にせまいので、これくらいコンパクトなものでないと、物理的に装着できません。

 

ちなみに、これと同じものはAmazonではもう扱っていないようなので、中古をヤフオクなどで買うしかないですね。

私の場合は、かなり昔に使っていたものがちょうど流用できそうだったので、手元にあったこれをそのまま使う形です。

 

f:id:asarinomisosoup:20191110202001j:plain

HDMIとDVI-D端子がついています。

VGA端子もありますが、2レーン使い切る形になるため、増設可能なインターフェースポートの少ないmicroserverではおすすめしません。

 

f:id:asarinomisosoup:20191110202134j:plain

一番手前が装着したグラフィックボードになります。

ね、めっちゃせまいでしょ?

なので、microserverに装着可能なグラフィックボードはかなり限られます。

 

ついでに、手元で8GBのメモリが2枚あそんでいたので、メモリを8GBから16GBに増設しました。

映像配信など、いろいろお仕事をさせそうなので、ある程度メモリは大きい方がいいかなと思いまして(´・ω・`)

 

ちなみに、microserverは16GBまでメモリを認識できるらしいです。

それと、システムはSSDに入っていて、CPU/OSはともに64bit対応です。

グラボものったので、システムとしては十分なのではないでしょうか?

 

f:id:asarinomisosoup:20191110202522p:plain

新しいチャンネルロゴを作ってみました。

キャラクターを「t」の文字に見立てています。伝わりますか?(´・ω・`)

 

2016年ごろもチャンネルロゴを作っていて(試験放送中の映像でも一部で使われているものがありますが)、いよいよ本格的に運用が始まってきた新生版ということで、改めて作り直しました。

(ほんとのところは、ロゴファイルをどこかになくした(´・ω・`)

 

f:id:asarinomisosoup:20191110202900p:plain

グラフィックボードのドライバは、NVIDIAからダウンロードしてインストールしました。

何の問題もなく動作しています。

 

また、GT730はハードウェアエンコーダが使えます。

増設したことによって、OBS Studioの設定画面から、ソフトウェアエンコードからハードウェアエンコーダに切り替えることができるようになりました。

 

そのほか、メディアファイルを開いた場合も「可能な場合ハードウェアデコードを使用」することができます。

 

なお、リモートデスクトップ接続した場合はハードウェアでのデコード/エンコードが無効な模様(´・ω・`)

 

 

f:id:asarinomisosoup:20191110203406j:plain

ディスプレイの表示も問題なし。

HDMI⇒DVI-D変換ケーブルを使ってディスプレイと接続しています。

 

GPUのビデオエンコード、デコード等もバリバリ動いています。

GPUにのっているのは、GDDR5メモリ1GBですが、かなり余裕がありますね。

 

 

f:id:asarinomisosoup:20191110203734j:plain

先のエントリーで、VideoIDを取得するプログラムがなんとかとか書きましたが、地味なのと、配信が切断されてIDが変わることがメンテナンス以外ではまずないので、とりあえず順番に動画ファイルを配信するためのプログラムを書きました。

単純にWPFのMediaElementで順次メディアファイルを開いているだけですが。

 

 

f:id:asarinomisosoup:20191110203713j:plain

今のところは、ドラッグ&ドロップした動画ファイルを順番にループ再生するのと、画面左上に今の時間を表示することしかできません。

時間表示は縁取りしていないのでみづらいです。

・・・でも実装がめんどくさそうだったの(´・ω・`)

 

アプリケーションから直接YouTubeにストリームを送れればいいのかもしれませんが、くっそめんどくさそうなのと、そういうのはちゃんとしたツールにおまかせしとくのがよさそうなので。(めんどくさいばっかりだな

 

画面は1280x720で表示して、それをOBS Studioで「ウィンドウキャプチャ」しています。

ウィンドウキャプチャだと、画面の上にマウスカーソルや他のウィンドウがかさなっても、ちゃんと画像をひろってくれます。

ただし、ウィンドウがディスプレイの表示領域からはずれたり、最小化したりした場合は画面更新されなくなります。

 

音声は、デスクトップ音声をそのまま出すようにしています。

 

 

で、カンジンのCPU使用率ですが、なんと20-30%(`・ω・´)

ソフトウェアエンコードのときは、60-70%くらいの使用率で、動画ファイルの配信は厳しかったのですが、GPUで動画の処理をするようにしたことで、かなり負担が小さくなりました。

動画ファイルの扱いを別のアプリケーションに分けたのもあるかもしれませんね。

 

これで、動画ファイルの配信をしても十分問題ない感じになりました(´・ω・`)

とりあえず、今までにYouTubeにあげた動画ファイルをいくつかループ再生するように編成しました。一巡でだいたい40-50分くらいです。しばらく終日運転させて負荷チェックをします。

 

次はウェブカメラを使ってお天気カメラをやりたいです。

当初の目的がお天気カメラと映像のYouTubeへのストレージでしたからね。

しかし、OBS Studioのことを知ってから、ここまでくるまでに、さほど時間をかけることもなく進むことができました。

それだけOBS Studioが強力なツールだということですね。

いやぁ、すごいっすね(´・ω・`)

 

え、VideoID?

地味ツールなので、気が向いたら・・・(´・ω・`)

 

おわり。

PCの人は、右側のプレイヤーから放送中のライブ配信を見ることができます。

チャンネル登録もお気軽にどぞー(´・ω・`)