リリース準備を開始する
作者環境のネットワークには、BUFFALO製のNAS(LinkStation)を1つ接続している。
そのNASの容量は2TBしかないので、巷のNASと比べると、ある程度は用途が限られるのだが、作者的には、あまり大容量のファイルを所有していないので、この2TBは色々な用途で使える状況だ。
その用途の一つは、共有ディスクとしての使い方で、作者環境にあるPC/Macは、SMB接続で、このNASにアクセスできる様にしているので、あるPC/Macから別のPC/Macにファイルコピーしたい場合には、まず、送り手側は、このNASにデータをコピーして、受け取り側は、このNASからデータを読み取る様にしている。
作者的には、送り手側から受け取り側にMirror-DTC接続して、Mirror-DTCのファイル転送機能を使って転送した方が手っ取り早い事もあるのだが、NASにデータをコピーする格好にしておくと、そのデータを全てのPC/Macで共用できるので、複数のPC/Macで利用するデータは、まず、このNASにコピーする事が増えた訳だ。
で、作者環境には、普通はAGMPlayerで再生する動画/音楽ファイルを格納したAGMLibraryがあるのだが、前述のNASを導入してから、このAGMLibraryも、基本的には、このNAS上に置く格好にしている。
ただし、NAS上に動画データを置く、という事は、動画再生時にネットワーク転送が発生するので、NASから遠いPC/Macでは動作が重く感じられる事もあるので、最近は、NASを有線接続しているブロードバンドルーターに、やはり有線接続しているミニPC上で動作させているVirtualBoxのゲストOSである所のUbuntu22.04LTS上で動作させているUbuntu版AGMPlayerからのみ、このNASにあるAGMLibraryを利用する様にしていた。
上記のAGMPlayerの場合、NASとはネットワーク経由とは言え、有線接続になるので、WiFi接続よりも高速にデータ転送できるので、ファイルアクセス時に遅延を感じる事が殆どなくなる。
また、その他のPC/Macでは、AGMPlayerのネットワーク機能を使って、上記のUbuntu版AGMPlayerをマウントする様にしていたのだが、その理由は、同じネットワーク転送でも、SMB接続でAGMLibraryのファイルをそのまま読み込ませるよりも、その方が軽く感じるケースが多かったからだ。
何故、SMB接続よりもAGMPlayerのネットワーク接続の方が軽く感じるのか、というと、SMB接続の場合、ローカル環境のファイルと同等のアクセスが発生するので、例えば、一般形式の音楽ファイルの場合、デコーダーは、ファイルをオープンしただけで、かなりの量の先読みバッファリングを行うので、ファイルオープン処理に酷い時には数秒程度はかかる事になる。
似た様な理由から、AGM形式ファイルをオープンする場合にも、ファイルオープン時には、まず、ヘッダ情報を読み込み、その後、シークアドレス絡みのデータも全て読み込むので、かなりの数のアクセスが発生する。
ローカルストレージの場合、その程度のアクセスが発生しても、1秒も時間がかかる事は稀なのだが、SMB経由で、しかも、それがWiFi経由での転送になると、そういったアクセスでのデータ転送時間も無視できなくなる訳だ。
これに対して、AGMPlayerネットワークの場合、サーバー側では似た様なアクセスが発生しても、クライアント側はその結果を整理した形式で受け取る格好になる。
なので、SMB接続した場合よりも、データ転送量は少なくなるし、ストレージに直接アクセスするのはサーバー側なので、サーバー側からストレージに高速にアクセスできるのなら、サーバーからクライアントへの転送経路が少々遅くても、処理時間の遅延は少なくて済む訳だ。
と、言う事で、ネットワーク上にあるNASにAGMLibraryを置く場合、そのNASと有線接続できるPC/Macでサーバー機能を動作させ、クライアントはSMBで直接NASと接続するよりも、そのサーバーをマウントしてアクセスした方が快適に利用できる。
今回開発したAGMServerのWeb視聴機能でも、上記と似た様な話は言えるので、作者的には、AGMServerは上記のミニPC上に置き、そのAGMLibraryはBUFFALOのNAS上に置いているフォルダーにして使い込みを行っている。
その結果としては、十分、軽快にアクセスできているのだが、ミニPCからクライアントへのデータ転送量は、AGMPlayerネットワークで接続した方が、2〜3倍くらいは少なくて済む。
その理由は、AGMPlayerネットワークでは、動画の転送形式はAGM-DCT+かAGM-DCTになっているのに対し、AGMServerのWeb視聴機能では、JPG形式だからだ。
つまり、差分圧縮が入らない分、AGMServerのWeb視聴機能での試聴時には、データ転送量が多くなっているのだが、Mirror-DTCが転送するデータなんかとは異なり、視聴するのは映画なんかの一般動画なので、フレーム毎の映像は、それなりに異なるので、差分圧縮で10倍圧縮可能! なんてケースは限られる分、違いは意外と小さい。
と、言う事で、NAS上の動画を視聴する場合、WiFi経由での接続なら、直接SMB接続なんてしてしまうと、特にファイルオープン時のバッファリングに時間がかかり、快適な動画/音楽ファイルの視聴は出来ない場合がある。
これに対して、AGMPlayerネットワークだとか、AGMServerのWeb視聴機能の場合、NASに近いPCにサーバーを配置し、そのサーバーをマウントする格好にしておけば、それなりに快適な視聴が行える。
それでは、AGMPlayerネットワークとAGMServerのWeb視聴機能のどちらを使うのがベターなのか、というと、視聴するだけなら、AGMServerのWeb視聴機能の方が、動作が軽いケースが多いので、望ましいかもしれない。
何故、Web視聴機能の方が動作が軽いのか、というと、前述の様に、AGMPlayerネットワークでは、転送されるデータはAGM-DCT+/AGM-DCTなので、トランスコードが必要な場合、サーバー側では、これらの形式へのエンコードが必要になるし、トランスコードが不要な場合でも、クライアント側では、これらの形式からRGB形式の画像データにデコードする必要がある訳だ
更に言えば、AGMPlayerネットワークの場合、バッファリング制御等も、クライアント側にあるので、クライアント側にも、それなりの処理負荷が発生するのだが、AGMServerのWeb視聴機能の場合、クライアント側のWebブラウザは、サーバーにJPGデータの転送を要求して送られてくるJPGデータを表示するだけだ。
つまり、データ転送量が多い分、クライアント側でのデコード処理等は軽いので、普通は、AGMPlayerでサーバー側の動画を視聴するよりも、WebブラウザでAGMServerが提供するWebページを視聴する方が軽くて済む訳だ。
ただし、Web視聴機能には、少なくとも現時点では、ライブラリの管理機能はないので、AGMLibraryを管理したい場合には、AGMPlayerを使う必要がある。
ちなみに、AGMServerはWindowsサービスなので、実は、普通にインストールして使おうとすると、上記のNASにアクセスする事が出来ない。
にも関わらず、作者はそれを実行している、と、書いているのは、インストール後、ちょっとした細工を行って、NASにアクセスできる様にしているからだ。
具体的には、Windowsのサービス管理機能(コンピュータの管理→サービス)を使って、AGMServerの「ログオン」を「ローカルシステムアカウント」から、通常のログオンユーザー(作者の場合は.¥ishii)に変更している。
上記の様にする事で、「¥¥LS510D392¥Public¥.LinkStation¥AGMLibrary」の様な、ネットワークドライブのパスを「ライブラリフォルダー」に設定しても、普通にアクセスできる様になる。
と、言う事で、既に、作者的には、ミニPC上にAGMServer Ver1.4.4をインストールし、上記のNASにあるAGMLibraryにある動画を作者環境のPC/Mac/iPad Air/Android機器から視聴可能にしているのだが、開発前に思っていたよりも快適に利用できている。
なので、もうリリースしようと考えているのだが、上記の様な話は、判っている人は少ないかもしれないので、今回のリリースに合わせて、AGMServer用のreadme.txtを書く事にしている今日この頃だ。

