Azure UbuntuによるWeb放送システム構築例
動画配信システムとしては多種多様なものがあります。
動画配信システムとまでいかないとしても各種動画の再生画面を単純にスマホから視聴できるようにしたWeb放送システムの構築例をご紹介致します。
Azure Ubuntuを利用した今回のWeb放送システムの構成の概要は次の通りです。
簡単に言うと、スマホに入っている動画をAzure仮想マシン側にて再生し、その再生画面をスマホからAnyDesk接続して視聴するというものです。
- 今回のWeb放送システムの構成
- ネットワーク環境
今回使用したPC(Windows)やスマホ(視聴用スマホ含む)は固定グローバルIP内のLANに接続されています。
Azure仮想マシン(Ubuntu)だけが別の固定パブリックIPアドレスに紐付けされています。
固定グローバルIP内のPC(Windows)から別の固定パブリックIPアドレスのAzure仮想マシン(Ubuntu)を操作しています。
- 動画制作スマホ
動画制作用スマホとして今回利用したスマホはGalaxy S22です。
主な使用アプリ;
- 動画編集アプリ群(Filmora等)
動画編集アプリ含めてS22の操作はほとんどDeX環境で行っています。
- AirDroid Personal
他のデバイスとのファイル転送用アプリです。
無料版では1ケ月で別々のネットワーク間でのリモート転送は最大200MBという制限があります。
Azure仮想マシンの代わりにローカル仮想マシンでテスト用システムを構築する場合ではローカル転送には容量制限がないため無料版でもいいかも知れません。
また今回試作したWeb放送システムを学校内等の限定された範囲内(LAN内)で利用するのであればAirDroid Personalの無料版とLAN内Ubuntuでも本稼働できるかと思います。
ちなみにリモートネットワーク転送の場合、無料版では1ファイルの最大容量は30MBで有料版では1GBとなっています(ローカルネットワークの場合には最大容量制限はありません)。
- AirDroid PersonalのWeb利用(AirDroid Web)
AirDroid Personal自体にはLinux対応アプリ(Linuxにインストールして使用するもの)はありません。
しかし、Linux(Ubuntu)上のWebブラウザでは「Web Airdorid com(web.airdroid.com)」が利用できます(通称:AirDroidウェブ)。
Web版のAirDroid Personalでもその大きな利点はやはりサムネイル表示かと思います。
- AndroidスマホからLinux側へのファイル転送
(1)まず最初にデバイスの選択画面でAndroidスマホを選択します。
「ファイル」アプリを開いてAndroidスマホのフォルダを表示させます(Windowsのエクスプローラに似た感じです)。
(2)次に、Linux(Ubuntu)上のWebブラウザに表示されたAndroidスマホのフォルダ内のファイルを選択して右クリックメニューの[ダウンロード]を実行するとAndroidスマホ側のファイルをLinux(Ubuntu)側に転送できます。
Androidスマホのフォルダ内のファイルを複数選択した場合にはLZHファイルとしてダウンロードできます。
- Linux側からAndroidスマホへのファイル転送
Linux側のファイル管理アプリからAndroidスマホ側フォルダにドラッグするとファイルのコピーが行えます。
ドラッグ時のアイコン表示形式はプラットフォームごとに異なりますが、Windowsの場合は「+ コピー」と表示されますがLinux版では「+ コピー」は表示されません。
Linux(Ubuntu)の場合は「+ コピー」とは表示されませんがコピーを示すアイコンが表示されますので直感的操作がし易いかと思います。
またAndroidスマホ側がロックモードになっても相互のファイル転送は行えます。
※ 下のAnyDeskはAndroidスマホ側がロック状態になっていることを示しています。
- AnyDesk
下記で述べる放送サーバとの接続はAnyDeskで行います。
動画制作スマホでのAnyDeskは放送サーバとの接続テスト用です。
- 放送サーバ
Azure仮想マシンのUbuntuを放送サーバとして使用してみました。
動画制作スマホに保存されている動画を放送サーバのWeb AirDroid Personal上で受信して再生します。
放送サーバとしてはAzure仮想マシンのWindows 11でもいいのですが、ランニングコスト面から考えて今回はUbuntuを選択しました(Ubuntuをデスクトップ環境にして利用)。
放送サーバにはAnyDeskが必要なのですがAzure仮想マシン(Ubuntu)をデスクトップ化してもxrdp接続した環境でのAnyDesk操作をすることはできません。
※ xrdp接続した環境でもAnyDeskをインストールできます。しかしxrdp接続している場合はAnyDeskの設定や他のデバイスからのAnyDesk接続はできません。
Azure仮想マシンのUbuntuデスクトップでAnyDeskを利用するための手順は、大変申し訳ありませんが「Azure Ubuntu 24.04のバックエンドデスクトップ表示・操作例」のリモートコントロール接続の説明部分をご参照下さい。
- 放送局
放送サーバはAzureというCloud上にあるUbuntuマシンであり直接操作することはできません。
そこで放送サーバ(AzureというCloud上にあるUbuntuマシン)を操作するPC(Windows 11)をここでは「放送局」と呼んでいます。
放送局ではAzure仮想マシンに接続してAzure仮想マシンのUbuntuを日本語デスクトップ化したり、AnyDeskを導入したり、Web AirDroid Personalを操作したりします。
実際に動画を再生させるのも放送局にて行います。
- 視聴スマホ
今回放送サーバはAzure仮想マシンのUbuntuデスクトップとしています。
動画制作スマホ自体を放送サーバにしてAnyDesk接続して視聴することもできますが、その場合の視聴デバイスは1台に限定されてしまいます(AnyDeskの仕様です)。
またAzure仮想マシンのUbuntuデスクトップを放送サーバとした場合でも視聴スマホに交じってPCからのAnyDesk接続が入ってしまうと既存のスマホ(AndoridスマホやiPhone)でのAnyDesk接続が自動切断されるという現象が発生します。
- AnyDeskの放送用権限プロファイルの作成について
放送サーバに視聴スマホからAnyDesk接続する際、一般的な「無人アクセス」権限プロフィールでログインできるようにしておくと視聴スマホ側から放送サーバのデスクトップを自由自在に操作できてしまいます。
そこで放送サーバに視聴スマホからAnyDesk接続した場合に視聴スマホ側には動画再生の画面と音声の視聴以外は何も操作できないようにする必要があります。
例えば視聴しかできない「放送」という権限プロフィールを放送サーバ側で作成する手順は以下の通りです。
実際の操作は放送局側のPC(Windows)から行っています。
- 放送サーバの「設定」−「セキュリティ」
- [セキュリティ設定を解除しています]をクリック。
ここでグローバル設定の「セキュリティ」画面が表示されます。
- 権限プロファイルの「デフォルト」から「プロファイルを追加」を選択します。
- プロファイルの名前として「放送」を指定して追加します。
- 「放送」プロファイルでは[音声を鳴らす]のみONにします。
- 「放送」プロファイルに対して[無人アクセスを許可する]をOnにします。
- 「ワークスペースへのパスワードを変更する」ダイアログで「放送」プロファイルを使用するパスワードを指定します。
- 放送サーバでのAnyDeskサービスの停止と開始
- 放送準備中はAnyDeskサービスは停止させます。
放送準備中は視聴スマホからのAnyDesk接続をできないようにするためにsshクライアントから下記のコマンドを実行します。
sudo systemctl stop anydesk
|
- 放送準備が完了して放送開始時刻直前になると下記のコマンドでAnyDeskサービスを起動させます。
sudo systemctl start anydesk
|
- 視聴の様子
視聴者はスマホのAnyDeskから放送サーバのエイリアスと「放送」プロファイル用パスワードを指定してスマホで視聴できます。
- AndroidスマホからAnyDesk接続での視聴の様子(視聴スマホは横向きです)
※ Androidスマホ側にはマウスカーソル自体は表示されますがマウス操作は一切できません。
- iPhoneからAnyDesk接続での視聴の様子(視聴スマホは横向きです)
※ iPhone側にはマウスカーソル自体が表示されません。
- 音声について
(1)Androidスマホ,iPhone共にリモートネットワークにある場合の放送サーバ(Azure仮想マシンのUbuntuデスクトップ)からの画像受信ではブロックノイスもなくほとんど問題はありませんでした。
しかし音声受信ではノイズの入った音声として聞こえるため聞き取りずらかったです。
※ 放送サーバを視聴用スマホと同じローカルネットワークに存在すると高音質の音声として聞こえるようです。
(2)Azure仮想マシンのUbuntuデスクトップの放送サーバから高音質の音声を受信するためには仮想マシンの仮想スイッチをバイパスする設定等の対応が必要かと思います。
- 「放送」プロファイルについて
視聴スマホのAnyDeskから放送サーバのエイリアスと「放送」プロファイル用パスワードを指定してファイル転送しようとすると「ファイル転送機能は一時的に利用できません」という旨のエラーとなります。
- 運用上のポイントについて
- 放送準備中における放送サーバへのAnyDesk接続抑止について
放送サーバにおける「放送サーバへのAnyDesk接続抑止」は放送サーバにssh接続して以下のコマンド実行するだけでOKです。
sudo systemctl stop anydesk
|
放送サーバがAnyDesk接続抑止状態の場合に視聴スマホからAnyDesk接続要求があった場合は「デバイスに接続できません このワークスペースは現在利用できません。」エラーが表示されます。
放送準備が整った時点で以下のコマンド実行すれば視聴スマホからのAnyDesk接続が可能となります。
sudo systemctl start anydesk
|
- iPhoneとのファイル転送について
AirDroid Personalのファイル転送はiPhoneに対しても利用できます。
但し、Androidの場合とは違ってローカルネットワーク内でのファイル転送に限定されます。
下記はPCとiPhoneとのファイル転送例です。
- PC側でhttps://web.airdroid.comを開いてサインインします。
(1)同じアカウントでサインインした同士でのファイル転送が可能となります。
(2)「デバイスを選択」で[iPhoneを選択]して<OK>をクリックします。
(3)iPhoneとの接続のための簡易説明が表示されますので一読して<了解>をクリックします。
- iPhone側のAirDroid Personalを開きます。
- AirDroid Personalのトップ画面での「私のデバイス」タブを開いて[AirDRoid Web]をタップします。
- 「AirDroid Web」画面にiPhoneをワイヤレスでアクセスするためのURLが表示されます。
例:http://192.168.1.123:8888(これがiPhone用のAirDroidウェブサイトとなります)
- PC側のブラウザからがiPhone用のAirDroidウェブサイトを開きます。
「デバイスでこの接続を承認してください」と表示されます。
- iPhone側に承認を求めるAirDroidダイアログが表示されますので、[承認]をタップします。
- AirDroidウェブサイトに「ローカル接続」と表示されて、かつ以下の3個のアイコンが表示されます。
・写真(ここでの写真には動画は含まれません)
・ファイル
・ビデオ
- AirDroidウェブサイトで「ファイル」アイコンを開くとiPhoneのアルバム一覧が表示されます。
アルバムを選択するとそのアルバムの写真がサムネイル表示されます。
サムネイルをダブルクリックすると元画像が最大表示され、その大画像を確認して[名前を付けて画像を保存]を実行すればPC側に写真を保存することができます。
- 「ビデオ」アイコンではiPhone側の写真アプリにあまりにも多くの動画が存在する場合は動画一覧が表示されない場合があるようです。
- AirDroidウェブサイトの一番上の中央にある電源マークをクリックすればサインアウトされます。
- iPhoneの複数登録
AirDroid Personalの無料版でのAndroidスマホの登録台数は最大2台で、有料版では最大3台からもっと増やすことができます。
しかしiPhone(正確にはiOS版)についての登録台数は無料版・有料版を問わず最大台数規定はないようです。
今回はiPhone12も追加してiPhone12の「ビデオ」アプリを利用してみました。
- iPhone12の選択
- iPhone12のビデオ再生例
Androidスマホについてもローカルネットワーク環境では上記のようなiPhoneの手順と同じ要領でhttp://AndroidスマホのIPアドレス:8888指定でファイルアクセス等が行えます。
- 補足1(AirDroid Personal)
今回はAirDroid PersonalのWeb版に着目した利用例をご紹介致しました。
そのWeb機能はAirDroid Personalの一部の機能であって、やはりメイン機能はリモート操作(スマホ制御)やスマホからのミラーリング機能かと思います。
下記はAirDroid Personalの無料版でPCからAndroidスマホをワイヤレスでリモート操作している様子です(タスク切り替え操作例)。
※ Androidスマホをワイヤレスでリモート操作するためにはAirMirrorアプリも必要となります。
更にAirDroid Personalのデスクトップ版にはスマホへの通知をPCのデスクトップに表示する機能もあります。
Androidスマホとの接続では「ミラーリング」というアイコンが表示されて利用できます。
下記はローカルネットワーク環境でのAirDroid PersonalのWeb版におけるS22のWebミラーリングの例です(ミラーリングは「基本モード」で行うといいかと思います)。
- 「基本モードを試す」の選択
- Webミラーリングの例
- 補足2(AirDroid Remote Support)
AirDroid Remote SupportはPCからスマホを遠隔操作する機能を主眼とした製品です。
遠隔操作するPC側にはAirDroid Businessというアプリをインストールします。
(遠隔操作される側がPCの場合はPC用のAirDroid Remote Supportをインストールします)
AnyDeskの無人アクセスのように遠隔操作される側の使用者の承認を得ずして遠隔操作を可能とする機能(無人端末の制御)もあります。
遠隔操作するにあたっては画面共有、音声メッセージ、音声通話等の機能が使用可能となっています。
遠隔操作されるスマホ側がDeX画面の場合の画面共有ではDeX画面自体が共有されることになりますが実際には縦長画面を前提としているため黒の余白部分が広いDeX画面の共有となります。
画面を共有しながらサポートする側は音声通話にて遠隔操作されるスマホ側の利用者に操作依頼をしたりできます。
ちなみにAirDroid Remote Supportでは14日間無料トライアル版を使用することができます。
【14日間無料トライアル版の制約等】
(1)接続時間は10時間に制限されます。
10時間のうちの残りの使用可能時間についてはhttps://biz.airdroid.com/#/remote-support/dashboard にサインインしてからのダッシュボードで確認できます(下記はその表示例です)。
尚、14日間無料トライアル期間中に残りの時間があっても、「今月ご利用可能な接続時間は終了しました。」と表示されることがあります。
その場合は接続自体はできますがPC側からサポートを受けるデバイスの画面操作を行うことはできなくなります(テキストメッセージの送信等はできますが...)。
(2)14日間の無料トライアル後に有料サブスクに自動切り替えされることはありません。
これについては「AirDroid Remote Support (Business) should be manually purchased after the free trial. 」と明言されています。
(3)無料トライアル版でもS22側AirDroid Remote SupportとPC側AirDroid Bisinessとの間での双方向音声通話を体験することが可能です。
- 補足3(AirMirror)
AirMirrorアプリはAndroidスマホから他のAndroidスマホをリモート操作するアプリです(ここでのWeb放送システム構築例という主題とは関係ありません)。
例えばGalaxy S22を新たに使い始めた友人(クライアント)からGalaxy S8を使い慣れたエキスパートへの対応要請によって画面共有や双方向の音声通話等でクライアント側のトラブルシュートや質問対応を行うこともできます。
詳細な手順説明は省略させて戴きますが大雑把に言うと次のようになります。
- サポートを受けるS22側で必要なアプリ
- AirDroid Remote Supportアプリ
- AirMirrorアプリ
- AirDroid Control Add-onアプリ
AirDroid Control Add-onアプリはAirMirrorにリモートコントロール機能を追加するためのAndroid Remote Supportのプラグインです。
- AirDroid Business Daemonアプリは未導入でもOKです。
- サポートするS8側での必要最低限のアプリ
サポートを受けるAndroidスマホと同じアプリの導入で画面共有や双方向の音声通話等が行えます。
(1)AirDroid Remote Supportアプリは無くてもOKです。
(2)AirDroid Business Daemonアプリは未導入でもOKです。
(3)AirMirrorが導入されていればAirMirroによるクライアントのAirDroid Remote Supportとの接続が可能です。
- 接続とサポートの単純な例
- サポートを受けるS22側でAirDroid Remote Supportアプリを開きます。
9桁の接続ID(例:123 456 789)が表示されますのでそのIDをサポートする側に連絡します。
- サポートするS8側でAirMirrorを開き、サポートを受けるS22側での9桁の接続IDを指定して[接続]をタップします。
- サポートを受けるS22側での操作
(1)サポートを受けるS22側にデバイスアクセスの承認依頼ダイアログが表示されますので[承認]をタップします。
(2)画面共有の[有効化]と[開始]をタップするとS22側の画面がサポートする側のS8にS22の画面が表示されてS8側からS22の画面操作ができるようになります。
- 音声通話の有効化
(1)サポートするS8側に表示される「音声通話」をタップします(タップ反応がなけれな無線マウス等で「音声通話」をクリックします)。
(2)音声通話の招待ダイアログがサポートを受けるS22側に表示されますので[承認]をタップします。
これで両者で特別な操作(どこかの長押し等)をすることなく双方向での音声通話が行えます。
- 音声通話の例
- サポートするS8側からの通話例
「S22さん、ご連絡ありがとうございます。今回はどのようなことでお困りでしょうか?」
- サポートを受けるS22側からの通話例
画面録画の方法が分からないのでその方法を教えて下さい。
- サポートするS8側からの通話例
「ホーム画面で上から下にスワイプしてクイックパネルで画面録画をタップするとカウントダウンの後に画面録画が開始されます。録画の終了は画面録画のフローティングツールバーの四角の停止ボタンで行えます。」
- サポートを受けるS22側からの通話例
「分かりました。試してみます。」
- AirMirrorのFree版について
AirMirrorを直接起動して使用する場合にはFree版も使用できます。
Free版では1日10分という利用時間制約があります(接続時間ではなくAirMirrorアプリを開いている時間の制約です)。
しかし当日分の残り時間がまだいくらか(例えば残り40秒)残ったままでも、翌日には残りが10分という初期状態に戻りますので簡単なテストではFree版でもOKかと思います。
ちなみにAndroidスマホ同士での画面共有型でのサポートはAirMirrorとAirDroid Personalの間でも行えます。
※ AirMirror側で接続デバイスを選択して[コントロール]をタップすれば画面共有ができてサポート側からサポートを受ける側の画面操作が可能となります。