リモートデスクトップ「Brynhildr Free」リリース
正式名称は「Brynhildr 3.0.0」でございます。
Brynhildr Free Download
リモートデスクトップ「Brynhildr Free」をリリースしました。
Xの方では開発の状況とか進捗をお伝えしていましたが、開発コード「Vritra」がこちらになります。リリースの名称は「Brynhildr Free」となりました。再び、VritraからBrynhildrになりました(11年ぶり2回目)
記事の方でも少しお伝えしてました通り、「Brynhildr 2.7.4」を先代とするならば先々代のBrynhildrであるVritraのフレームに新しいコアエンジンを搭載したこちらが正式後継の当代となり「Brynhildr 3.0.0」が正式名称の最新バージョンとなります。
ちょっと亜種ぽい感じになっておりますのは、アイコンが色違いというのもありますが、「Free」という名前にあると思います。Freeという名称から想像できますになんとこちら無償でございます。Brynhildrを有償にしたはずなのに無償とはこれ如何に。なんとこちら広告が出ます。1日1回だけなんですが接続した際にサーバー側でブラウザによる広告を表示させて頂きます、恐れ入ります。
尚、既にBrynhildrの有償ライセンスをご購入頂いた方向けに広告を非表示にする機能を将来的に実装予定ですので暫くお待ちくださいませ。
さてそんな広告が表示されるも無償の「Brynhildr Free」についてご紹介していきます。
まず、対応OSがWindows 10と11となっております。恐らく7や8でも動作はすると思いますがとりあえず対応は10と11という風になっております。この辺は新しいコアエンジンの絡みもありますのでご了承くださいませ。尚、新しい3.x.xも展開していきつつもWindows 2000とかの古いOSに対応した2.x.xも引き続き展開していくとゆー風な感じになりそうな雰囲気です。公式サイトの方もBrynhildrとBrynhildr Freeは分けた方が良いかと思いましてBrynhildr Freeの方は開発コードのVritraのままのURLになっております。この辺はいずれ何とかしないといけないなと思うところではあります、むむむ。
次に、大きな特徴としてサーバーモードで「HTTP」をONにするとブラウザからの接続が可能となります。ログイン画面はHTTP(HTML)ですが、接続が始まると入力と映像と音声が全てWebSocketでの通信になります。このWebSocketは暗号化はされていませんが、排他的論理和によるハッシュで難読化はしてあります。パスワードによる認証はブルートフォースアタック対策も一応行っておりますが、インターネットを介するようなご利用される場合はセキュリティが高い専用線や暗号化されたVPNなどの併用をお勧めいたします。動作確認しているブラウザはEdgsとChromeとSafariです。OSもWindowsだけでなくMac OSやChrome OSでの動作も確認しております。キーボードのキーコードが各OSによって異なっておりましたので変換コードをHTMLに記述して対応しました。
また、ブラウザ接続に関連して「brynhildr.exe」と同じフォルダに「brynhildr.htm」という名前のHTMLファイルを設置するとブラウザ接続の際にそちらのファイルを読み込みます。こちらはBrynhildrの特徴でもありますパブリックモードでして、クライアントを自由に開発できる仕組みとなっております。ですので、ブラウザ接続の際にソースコードを開いて「brynhildr.htm」で保存して修正するもヨシ、WebSocketの部分をQtや他の言語などで自作してオリジナルのクライアントを開発するもヨシ、などのオープンソースな感じになっております。ちなみに、標準のHTMLはあくまでサンプルでJavaScript初心者の自分が書いてるので滅茶苦茶な予感もしますしスマホとかタブレットに対応しておりませんのでそのうち何とかしたいと思いますがそれまで待ちきれない方は何とかして頂けると幸いでございます。
あと、コアエンジンが改良されておりましてWebSocketによる通信機能を実装しましたとゆーのは上記の流れの通りです。それも何かのライブラリを使っているのではなくRFC6455の仕様に合わせてブラウザと通信ができるように1から作り上げております。といってもSHA-1とBase64で出来てしまいますが。ですので根っこの部分はTCPなのですが、それをHTTPとWebSocketでも動くようにしたわけです。つまりWebSocketのサーバーを自作しました。
ちなみに、その結果なんですが、ややパフォーマンスが落ちております。基本的な目安は1920x1080で30fpsとなっております。もっとやりよーはあったかもしれませんが色々と試行錯誤してリリースが後になりすぎるものなんですし、前々からお伝えしてますよーに下位モデルとゆー風にお考え下さい。将来的には上位として高パフォーマンス版が登場するかもしれないですしブラウザ接続もWebAssemblyとゆー流れにもなるかもしれないですしSSLによる暗号化も出てくるかもしれませんがとりあえず今のところはこんな感じです。
あと、画質に関してですが、WindowsクライアントはRGB32の色空間、ブラウザ接続はYUV420+RGB32の色空間となっております。Windowsクライアントの方はお馴染みのコーデック「VP8」による無劣化のRGB32ですが、ブラウザ接続の方は環境によってはVP8が動きませんでしたので、WebP(YUV420)とPNG(RGB32)のハイブリッドになっております。画面の動きが激しくPNGでは通信量が凄い時はWebPに自動的に切り替わる仕組みでです。また、JavaScriptのソースを見ると分かると思いますがフレームがスキップなどでもWebPをリクエストする仕組みになっておりますしオリジナルクライアントではWebPのみということも可能です。ちなみにこのWebPですが一般的にはLibwebpのようなライブラリを利用しますがご存じWebPはVP8のキーフレームですので独自にVP8のライブラリからWebPを出力させています。つまりWebPのライブラリも自作しました。
あと、音声伝送がWindowsクライアントですと従来通りのCELTですが、それが実装できませんでしたのでブラウザ接続ではPCMとなっております。逆に音質は良いです、無圧縮ですので。ただ通信量が多いのでモノラルとさせて頂きました。ですので左右どちらも同じ音が出ます。この辺もいずれ何とかしたい部分ではございます。
あと、注目ポイントとして「Actual Scale(実寸描画)」の仕様が変更されております。従来はサーバー側の解像度にクライアント側のウィンドウの位置によって実寸で描画させる仕組みでしたが、この仕様ですとサーバー側の解像度とクライアント側の解像度が同じもしくはクライアント側の解像度が大きくないと全てを描画できず操作ができなかったのですが、サーバー側のデスクトップの周りに余白が表示されるように計算式と描画方法を変更しました。これによりサーバー側の解像度の方が大きくても問題なく操作が可能になります。ここまで書いてほとんどの方が何を言ってるか分からないと思いますので実際に触ってみてくださいませ。
「Brynhildr Free」についてはそんなところでございます。おおまかには従来のBrynhildrと同様のリモートデスクトップとゆー風にお考えくださいませ。新しい要素が多数加わりましたので「3.0.0」と最上位のバージョン数値が上がりました。古いバージョンを非対応にしたのとブラウザ機能が加わったことが大きな要因ではありますがBrynhildrも新しい時代に突入したとゆー感じでございます。
結構な量のプログラムを変更してますので恐らく不具合が盛沢山のよーな気もしますのでホントはβ版にしようかとも思ったのですがマッハで「3.0.1」にバージョンアップするつもりでβ版をスキップしてリリースとしました。ですので不具合のご報告お待ちしております!
そんなこんなで公式サイトも含めて情報不足感が前代未聞レベルで凄いのですが、とりあえず無償ですし色々と試してみてもらえれば嬉しいです。ご利用中に色々な発見なんかもあると思います。公式サイトの説明に関しては後々に増やしていくと思いますのでご安心くださいたぶん。説明は手抜きですが性能に手抜きナシのスタイルはずっとやってきてますしこれからもきっとそーなんでしょうけどまーとりあえずダウンロードして試してもらえればと思います。
以上でございますー。