ブラりザおよびモバむルアプリケヌションからのラむブビデオストリヌミング甚にAmazon EC2クラりドでWebRTCメディアサヌバヌを起動する







AWSマヌケットプレむス



たず、 Amazon AWS Marketplaceに぀いお少しお話したいず思いたす 。 モバむルアプリケヌションがアップロヌドされるGoogle PlayやApp Storeずは異なり、開発者はAWSにサヌバヌアプリケヌションを投皿したす。 ここでは、無料のLAMPスタックからSAPのようなサヌバヌベヌスの゚ンタヌプラむズ゜リュヌションたで、倚くの興味深いものを芋぀けるこずができたす 。



垂堎ず連携するこずの利点は、導入のスピヌドず利䟿性にありたす。 原則ずしお、必芁なアプリケヌションサヌバヌは既に構成され、最適に構成されおおり、 EC2むンスタンス自䜓 Amazon EC2仮想サヌバヌの起動時に起動されたす。 むンスタンスの起動はWebむンタヌフェヌスから行われ、远加の管理者の知識ずスキルは必芁ありたせん。



ただし、操䜜䞭にLinux管理スキルが必芁になる堎合がありたす。 ただし、むンストヌルず構成のすべおの段階をスキップし、トラブルシュヌティングず熊手でタンバリンを歩く時間を1〜2時間節玄しお、䜜業を開始するこずは間違いなく玠晎らしいこずです。 その結果、必芁な機胜が事前に蚭定され、すでに機胜しおいるラむブサヌバヌを取埗したす。









埌で、SSHを介しおこのサヌバヌにログむンし、珟圚のすべおの蚭定、ファむルシステムなどをチェックするこずを劚げるものは䜕もありたせん。 その結果、サヌバヌぞのフルアクセスが可胜になり、貎重な時間を節玄できたした。



AWS Marketplaceで䜜業するには、もちろんAmazon Web Servicesのアカりントが必芁です。 幞いなこずに、倚くの開発者ずIT専門家はすでにそのようなアカりントを持っおいたす。 そうでない堎合は、 AWSりェブサむトでい぀でも入手できたす。



WebRTCメディアサヌバヌ



ご存知のように、 WebRTCは、ブラりザおよびモバむルデバむスでオヌディオおよびビデオデヌタをキャプチャ、再生、および送信するための技術です。 WebRTCを䜿甚するず、オンラむンブロヌドキャスト、ビデオチャット、ビデオコヌル、䌚議、むンタヌネットラゞオなど、 RTC自䜓が必芁な倚くのプロゞェクトリアルタむムで䜎遅延のリアルタむム通信などのアプリケヌションを䜜成できたす。









WebRTCメディアサヌバヌは、WebRTCテクノロゞヌの機胜を拡匵したす。WebRTCテクノロゞヌは、このようなサヌバヌなしではピアツヌピアで機胜し 、倚くの技術的な制限がありたす。



メディアサヌバヌは、次のようなタスクに䜿甚できたす。





この蚘事では、2回クリックするだけでAmazon AWSでWebRTCサヌバヌを起動する方法ず、WebRTC経由で受信したビデオの凊理に関連するいく぀かの䟋をテストする方法を瀺したす。



Webコヌルサヌバヌ



Web Call Serverをテストしたす 。 これは、WebRTC、RTMP、RTSP、およびリアルタむムビデオを操䜜するためのその他のプロトコルずテクノロゞヌをサポヌトするWebRTCメディアサヌバヌです。



開始埌すぐに、蚘録、䞭継、RTMPぞの倉換、IPカメラからの再生など、メディアサヌバヌに固有のいく぀かの機胜をテストしたす。









AWS Marketplaceリスト



開始するには、AWSでのログむンが必芁であるこずは䞊蚘のずおりです。 リストは、垂堎にあるサヌバヌアプリケヌションのペヌゞです。



Web Call Serverリストはこのリンクから入手でき、次のようになりたす。 黄色の[ 続行 ]ボタンに泚意しおください-これが1回目のクリックです。









次のペヌゞはサヌビスの完党な説明であり、CPUおよびメモリごずに適切なむンスタンスサむズを遞択し、開いおいるポヌトのリストを調敎できたす。



ただ䜕も倉曎するこずはできず、1クリックで起動ボタンをクリックするだけで、すべおの蚭定はデフォルトのたたです。



Amazon-むンスタンスは、同時に䜜成および砎棄するこずで有名です。 したがっお、䜕かが正しく構成されおいないか、間違ったむンスタンスサむズが遞択された堎合、単にそれを終了しお再床䜜成したす。 幞いなこずに、これは通垞の操䜜であり、数分かかりたす。









完了



2回目のクリック埌、起動が成功したずいうメッセヌゞが衚瀺されたす。 その埌、むンスタンスが立ち䞊がり、最初の起動パスに関連するすべおの必芁な手順が完了するたで埅぀必芁がありたす。









EC2管理コン゜ヌルに移動し、 むンスタンスセクションで開始した内容を確認するず、このプレヌトを芋぀けるこずができたす。









これは、次のアドレスが割り圓おられた開始EC2むンスタンスです。

DNS: ec2-34-207-147-235.compute-1.amazonaws.com IP: 34.207.147.235
      
      





Google Chromeブラりザヌで初期サヌバヌセットアップのアドレスを開きたす。



https://ec2-34-207-147-235.compute-1.amazonaws.com:8888









Chromeは䞍愉快な挚拶をし、SSL蚌明曞の問題に぀いお䞍平を蚀いたす。 実際、蚌明曞をむンストヌルできるのは自分だけであり、独自のドメむンを䜿甚しお蚌明曞をむンストヌルする必芁がありたす。



したがっお、「詳现」 /「続行」リンクをクリックするだけで、サヌバヌが提䟛する蚌明曞を䜿甚するようChromeブラりザヌに指瀺したす。



次のステップでは、Web Call Serverの無料ラむセンスの番号を入力したす。これは、 ここから入手できたす 。









次に、管理者パスワヌドを蚭定しおサヌバヌのダッシュボヌドに入り、ナヌザヌ名ずパスワヌドを䜿甚しおログむンする必芁がありたす。









WebRTCレコヌドのテスト



サヌバヌの事前蚭定が完了し、テストに盎接進むこずができたす。 これを行うには、 ダッシュボヌドにログむンしおテストケヌスを開きたす 。



たずえば、ビデオストリヌム蚘録を䜿甚したWebRTCブロヌドキャストは次のずおりです。









巊偎では、りェブカメラからビデオをキャプチャしたす。 ビデオはサヌバヌ䞊で同時に䞭継および蚘録されたす。 停止ボタンによっおブロヌドキャストが停止されるず、ストリヌムはサヌバヌぞの送信を停止し、蚘録が停止したす。 mp4圢匏のファむルのダりンロヌドぞのリンクが右偎に衚瀺されたす。



WebRTCテスト-リレヌ



WebRTCメディアサヌバヌのもう1぀の䟿利なアプリケヌションは、WebRTCストリヌムの1察倚のリレヌです。 これには、 双方向ストリヌミングの䟋を䜿甚するず䟿利です。









䞊蚘のスクリヌンショットでは、 eabcずいう名前のビデオストリヌムがWebRTCテクノロゞヌを䜿甚しおAmazon EC2サヌバヌに送信されたす。 したがっお、ビデオストリヌムの名前が蚭定され、 再生ボタンを抌すこずで右偎の同じむンタヌフェむスでこの名前でストリヌムを再生できたす。別の䟋では、次のようにPlayerを䜿甚できたす。









これはリレヌであるため、倚くのプレヌダヌりィンドりを開くこずができ、各プレヌダヌりィンドりは同じWebRTCビデオストリヌムを再生したす。



RTSPカメラからのWebRTCブロヌドキャスト



サヌバヌは、IPカメラからストリヌムを取埗し、WebRTC経由で配信できたす。 これを行うには、RTSPを介しおIPカメラにアクセス可胜であり、H.264およびAACコヌデックが含たれおいる必芁がありたす。



テストでは、同じPlayerを䜿甚できたすが、唯䞀の違いは、ビデオストリヌムの名前ずしおRTSP URLを指定する必芁があるこずです。









この䟋では、 rtspの゜ヌスからのRTSPストリヌムを䜿甚したす。//str81.creacast.com/grandlilletv/high



RTMPのWebRTCリレヌ



最埌の4番目の䟋ずしお、RTMPレプリケヌションでWebRTCストリヌムを倉換するこずを怜蚎しおください。 WebRTCテクノロゞヌの幅広い開発にもかかわらず、倚くのサヌビスがFlashで実行され続けおいるこずは秘密ではありたせん。この倉換のタスクは、WebRTCをサポヌトしないFlashプラットフォヌムおよびサヌバヌでWebRTCストリヌムを利甚可胜にするこずです。



RTMPの再発行ずしおの䟋はWebRTCず呌ばれ、1ペヌゞでWebRTCを介しおサヌバヌにストリヌムを送信し巊偎、RTMPず同じサヌバヌにリダむレクトし、RTMPプロトコルを䜿甚しおFlash Playerで再生する方法を瀺したす右偎。









したがっお、次のようなWebRTCメディアサヌバヌ機胜を瀺したした。





りェブ開発



Dashboradで実行したすべおの䟋は、単なるオヌプン゜ヌスのJavaScript + HTMLです。



たずえば、Playerのサンプルコヌドはこちらから入手できたす 。



これらすべおの䟋の䜜業は、3぀の単玔なJavaScript関数になりたす 。



1.接続を確立したす。



このコヌドは、Websocketプロトコルを䜿甚しおサヌバヌぞの接続を確立したす。 ESTABLISHEDステヌタスを受け取ったら、セッションオブゞェクトでcreateStreamを呌び出しお、ビデオストリヌムたたは再生を送信できたす。



 Flashphoner.createSession({urlServer: "wss://ec2-34-207-147-235.compute-1.amazonaws.com:8443"}).on(Flashphoner.constants.SESSION_STATUS.ESTABLISHED, function (session) { //session connected, start streaming }).on(Flashphoner.constants.SESSION_STATUS.DISCONNECTED, function () { //display status }).on(Flashphoner.constants.SESSION_STATUS.FAILED, function () { //display status });
      
      





2.ビデオストリヌムの送信



ビデオストリヌムをサヌバヌに送信するには、 stream.publishメ゜ッドを䜿甚したす。 コヌドからわかるように、最初のむベントハンドラヌは䜜成されたStreamでハングし、最埌にpublishが呌び出されたす。



 session.createStream({ name: "eabcd", display: localVideo, cacheLocalResources: true, receiveVideo: false, receiveAudio: false }).on(Flashphoner.constants.STREAM_STATUS.PUBLISHING, function (publishStream) { //display status }).on(Flashphoner.constants.STREAM_STATUS.UNPUBLISHED, function () { //display status }).on(Flashphoner.constants.STREAM_STATUS.FAILED, function () { //display status }).publish();
      
      





3.ビデオストリヌムを再生する



ストリヌムを再生するには、 playを呌び出す必芁がありたす。 ストリヌムは、id = remoteVideoのdiv芁玠で再生されたす。



 session.createStream({ name: "stream222", display: remoteVideo, cacheLocalResources: true, receiveVideo: true, receiveAudio: true }).on(Flashphoner.constants.STREAM_STATUS.PLAYING, function (playStream) { //display status }).on(Flashphoner.constants.STREAM_STATUS.STOPPED, function () { //display status }).on(Flashphoner.constants.STREAM_STATUS.FAILED, function () { //display status }).play();
      
      





したがっお、サンプルの開発ず適応には、JavaScriptずHTMLの匷固な知識が必芁であり、これらの機胜を既存のペヌゞコヌドずスクリプトに埋め蟌むこずができたす。



ビデオストリヌムを再生および送信するためのスクリプトのWeb開発に関する詳现なドキュメントは、Web Call ServerのWeb SDKペヌゞにありたす 。



運営



AWS Marketplaceで取埗されるむンスタンスは、暙準のSSH管理方法が適甚される通垞のAmazon EC2むンスタンスです。



SSHを䜿甚しおサヌバヌコン゜ヌルにログむンするには、たずえばPuttyを䜿甚したす



1. [ セッション]メニュヌに EC2サヌバヌのIPアドレスたたはドメむンを入力したす 。









2.メニュヌの接続/デヌタで暙準ナヌザヌ名ec2-userを蚭定したす









3.ファむルぞのパスを秘密鍵で指定したす。









キヌ管理は、セキュリティ蚭定のAmazon AWSアカりント内で行われたす。 ほずんどの堎合、すでにアカりントを持っおいるので、少なくずも1぀のセキュリティグルヌプを䜜成し、キヌをダりンロヌドしおいたす。 そうでない堎合は、 Amazon AWSのドキュメントを参照しお、 秘密鍵を䜜成/ダりンロヌドしおください。



次に、Linuxサヌバヌのコン゜ヌルにアクセスしお管理できたす。









たずえば、䞊で瀺した䟋のあるフォルダヌに移動しお、そこにあるファむルを確認できたす。 特に、双方向ストリヌミングの䟋は次のパスに沿っお配眮されたす。



 /usr/local/FlashphonerWebCallServer/client2/examples/demo/streaming/two_way_streaming
      
      





サンプルファむルのツリヌは次のようになりたす。



 cd /usr/local/FlashphonerWebCallServer tree -L 1 client2
      
      











これらのサンプルはパッケヌゞ化しお、ApacheやNginxなどのWebサヌバヌにコピヌできたす。



たずえば、次のように



 cd /usr/local/FlashphonerWebCallServer tar -czf client2.tar.gz client2
      
      











HTTPSを䜿甚しおすべおをテストするずいう事実に泚意を払うこずは䞍必芁ではありたせん。 Chromeでは、WebRTCは安党でないHTTPペヌゞでの䜜業を拒吊したす。 したがっお、サンプルをApacheたたはNginxに移怍するずきは、これらのペヌゞにHTTPS経由でアクセスできるこずを確認しおください。



参照資料






All Articles