ビデオチャットアプリ「vs5x」爆誕
音声だけじゃなくて映像もいるんじゃね?と思い立ったが吉日。
ビデオチャットアプリができあがりました。
vs5x 0.1.0 Download
もはやリモートデスクトップの範疇を超えており完全に別の道ですけどいつものことだしまあええじゃろ的な感じで双方のビデオカメラの映像をキャプチャーして送れるよーにしてみました。基本的には前身のボイスチャット「st4d」とほぼ同じです。
起動メニューでメディアタイプ(解像度とかFPSとか)を選択する項目を追加しました。メインのビデオカメラに接続していけそうなメディアタイプを羅列します。もし何も表示されなかったらすみませんそのカメラでは動きやせん。いちおーYUY2とI420がいけるビデオカメラならいけますたぶん。
サーバーでもクライアントでも画面構成は基本的に同じで、真ん中におっきく相手の映像が映って、右下にちっちゃく自分の映像が映ります。未接続時だと自分の映像だけです。右下にビデオマークのボタンがあるんですけどそれを押すと自分の映像を送るをストップできます。マイクとスピーカーのボタンは「st4d」と同じ仕様で。あと、画面をクリックするとコントロールとか自分の映像とかログとかが消えて相手の映像のみになります。再度クリックすると元に戻ります。
ちなみに画像はハメ込み映像です念のため。ケロ夫とケロ美です。趣味のBlenderでこしらえました。
技術的な話をしますと、映像はVP8で圧縮してありまして、音声はCELTで圧縮してありまして、通信はBlowfishの鍵長256bitで暗号化してあります。割と本格的です。ま、セキュリティを本格的に高めるのであればVPNとか専用線とかが必要だと思いますけど。いちおー60FPSまではいけるよーにしてありますけど30FPS以上のビデオカメラが手元になかったものでノーチェックです。
とりあえず画質とか固定にしてありましてわりと画質良い感じになってるんじゃないかと思いますけど通信量もそれなりです。その辺は選択するメディアタイプでコントロールして頂ければと。あ、映像はリサイズして送っていませんのでその辺はご注意を。
世の中の流れ的にビデオ会議システムの需要が高まってきてましたんでこの手の案件が増えてきてましてその流れで作ってみました。OpenCVといったフレームワークは使っておらず、DirectShowも使っておらず、「Media Foundation」を直にコールしてます。むしろこれがフレームワークとゆー感じになりそーな雰囲気なんですけど。
ちなみに最初はDirectShowの方を使おーかと思ってたんですけど、Microsoftのサイトにそろそろ時代遅れのDirectShowは使わんとってやー、ってなってましたのでDirectShowを使うのやめました。
さてそんなビデオチャット「vs5x」を公開とゆーことですけど、まー中継サーバーもないですので利用シーンも限られてますけど使える人だけ使ってみては如何でしょうとゆースタンスですのでよろしくお願いします。Brynhildrを使ってる方ならいけるはずですたぶん。
「st4d」のフェーズ2で中継サーバーに接続できるよーにしたいなとか言ってましたですけど、こっちの方をフェーズ2にして中継サーバーに対応した方が良いかなとか思ってみたりしてます。やっぱり映像もあるこっちの方が需要ありそーかなと。通信量は数倍に増えましたんでその辺は頭を抱えてますけど。いつかやりますたぶん恐らく。
不具合とかありまくりだと思いますけどバージョン「0.1.0」ですのでその辺はどうぞご理解くださいませ。
そんなとこですよろしくですー。