トランジスタテスターは壊れました(9/17)

【Youtube】Camlinkでウェブカメラ配信してみる

配信ソフトなしでウェブカメラ配信ができるらしい

これまでゲーム配信というとRTMPサーバーのアドレスとストリームキーを指定して行う方式が一般的だったと思います。
RTMP(Real Time Messaging Protocol)はAdobe Flashプレーヤーとサーバー間での音声・動画・データをやりとりするストリーミングのプロトコル。
2020年でサポート終了となることが発表されています。

そこでYoutubeはWebRTC to HLS/MPEG-DASHを採用することになりました。

参考 YouTube が WebRTC 配信に対応したmedium.com Vさん

WebRTCは主要ブラウザには実装されているためブラウザからの配信が可能になっていること、特にウェブカメラ配信ができる点に興味が湧きました。

現在使用しているHDMIキャプチャー機器はElgato Camlink。
4K未対応の旧式で7480円(税別)で購入したものです。
今考えてもかなり格安で手に入れられたと思います。

CamlinkはパソコンからはUVC(USB Video Class)タイプのウェブカメラとして認識されます(そのためドライバのインストールは不要)。
UVCということはウェブカメラ配信で使用できるのではないか、ということで試してみます。

参考 USB video device classWikipedia 参考 UVCおなかすいたwiki

ブラウザからのウェブカメラ配信を試してみる

ウェブカメラ配信を試してみましょう。配信ソフトは使用しません。
ブラウザはchromeを使用しています。

ウェブカメラ配信の開始

まずは「ライブ配信を開始」をクリックし、

上部のタグから「ウェブカメラ」を選択します。

配信のタイトルなどを入力して左下の「その他のオプション」をクリック。

映像入力・音声入力でCamLinkを選択し、「次へ」をクリックすると次の画面へと進みます。

もしゲーム音以外もMixしたい場合には、音声入力でCamLinkを選択せずに、
 VOICE MEETER Banana
 Yamaha NETDUETTO
 Elgato Sound Capture
などの音声ミキサーを選択して、マイク音・コメント読み上げ音声・ゲーム音等を混ぜることも可能だと思います。
(実験していないため本当にできるのかはわかりません)

一方、コメントビューアやテロップを流すなど、画面効果を工夫することはウェブカメラ配信では難しいと思います。

配信の開始

この時点でキャプチャーされていた映像からサムネイルが撮影され、ストリームのプレビュー画面が表示されます。
右下の「ライブ配信を開始」をクリックすると配信が始まります。
(サムネイルで右クリックするとサムネイルの再作成を行うこともできます)

ライブ配信が始まりました。
ウェブカメラ扱いのためかこの画面では左右反転していますが、実際のライブ配信映像は左右反転することなく正常に配信できています。

配信状況を確認

本題とは少し離れますが、もう一つタブを開いて配信中のYoutube動画を視聴し、右クリック⇒「詳細統計情報」を選択してみましょう。

解像度:1980*1080/30fps
映像:avc1(H.264/MPEG-4 AVC)
音声:mp4a(AAC)
であること、
Optimized for Ultra Low Latencyとあることから超低遅延モードであることがわかります。
「詳細統計情報」のcodec欄に(137)/(140)と書かれているものはformat codeを指しています。

サーバーには音声だけのファイルと映像だけのファイル(解像度別)が作成されていて、回線状況が悪くなったり手動で切り替えた場合には解像度の低いファイルが再生される仕組みです。
(ウェブカメラ配信に限らずエンコード配信でも同様です)

参考 WebRTC を利用した配信の現実medium.com Vさん

ウェブカメラ配信は30fps限定?

視聴画面右下の歯車を押して解像度を選ぶ際、720p/1080pについても60fpsにはなっていないことに気づきます。

■ウェブカメラ配信(Camlink)

60fps対応のキャプチャーカードで配信した場合、通常のエンコード配信では720p60/1080p60と表示されるんですよね。

■配信ソフトによるエンコード配信(Camlink)

ウェブカメラ配信は60fps対応のUVCカメラを使用した場合でも30fps固定になるのかもしれません。

ライブ配信の終了

配信画面下部の「ライブ配信を終了」をクリックすると配信は終了します。

配信が終了すると「ストリーム完了」というサマリー画面が表示されます。

そしてサーバー側ではVP9コーデックのWEBMコンテナファイルが作成されます。
また、format code:18,22として映像と音声がMixされたファイルが作成されています。

画質に優れるVP9コーデックでライブ配信を行わずにH.264で行っている背景としては、VP9に対応しているハードウェアエンコーダー/デコーダーが少なく、H.264であれば多くのデバイスでハードウェアエンコード/デコードができるから、ということのようです。

まとめ

こちらがウェブカメラ配信をしたサンプル動画です。


Elgato Camlinkを使用して、配信ソフトなしでウェブカメラ配信することができました。

ただし、静止画としては綺麗に見えても、動き始めで映像がカクついていますし、フレームレートの指定もできませんでした。
また、音声はマイク扱いのためか、SEはしっかり聞こえるもののBGMが小さくなったり歪んだりしています。
音声については通常のマイクのように設定が変更できるのであればBGMが小さくならないように調整ができそうです・・・が、実際に可能かどうかはわかりません。

というわけでゲーム配信としては少々不具合がありました。
しかし配信ソフトなしでYoutube Live配信できてしまうのは驚きでした。

今回起こった不具合についても、本当のウェブカメラで映像配信する際にはさほど気にならないものだと思います。

おまけ

「動画のアップロード(ベータ版)【新機能】」が表示されるときとされない時があるのですが、なんでしょうね。

さいごに

Youtube等の動画配信・動画視聴の裏で何が行われているのか・どういう動作をしているのか、をこのところ調べてみているのですが、知識不足でなかなか全体を把握することができていません。
自分の中でもっと整理ができてきたら、もう少し突っ込んだ話もしていこうと思います。

※本文中に記載したライブ配信中のサーバー上の動画ファイルに関しては、遅延モードの選択によっても変わってくるかもしれません。
 このあたりものちほど検証してみようと思っています。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です