Elgato Game Capture HD60 S と OBS を使って、 Google Meet、 Discord で PS4 配信しながらワイワイする

久しぶりにパソコンわからん! となったのでメモ。オンラインで PS4 のゲームしながらワイワイしたかったのと、 Amazon Prime セールで安かったのもあって、 Elgato Game Capture HD60 S 買いました。 Macobook でやってます。

最終的にどういう構成にしたのかというとこんな感じ。

f:id:vkgtaro:20201025115858p:plain
配信時の全体像

YouTube とかに配信するんだったら BlackHole とかは要らない。 OBS で配信設定すればいいだけ。

自分の映像重ねるとかしないのであれば、 PS4 の Share ボタンの設定すれば PS4 単体で完了します。ビデオキャプチャーボードもパソコンもいらない。今回は、パブリックにライブストリーミングするのではなくて、あくまで数人の友達と画面共有して楽しみたいという向きでやっています。( YouTube の配信は delay があるので、 YouTube で配信して友達とのやりとりを Google Meet や Discord でやるとタイムラグを感じる。もしかしたら超低遅延設定とかやるといいのかもしれない)

インストール必要なもの

  • Downloads | elgato.com から、 HD60 SMAC を選ぶと下の二つが出る
    • GAME CAPTURE
      • Find hardware drivers here みたいなリンクがあるが、 Mac では不要
      • 配信時には使わないけど、 HD60 S の設定で必要
    • OBS LINK
  • Open Broadcaster Software®️ | OBS
    • 映像配信ツール。様々な映像ソースや音声ソースをミックスして、配信や録画できる
  • Release OBS-VirtualCam 2.0.4 · CatxFish/obs-virtual-cam · GitHub
    • OBS でミックスした映像を WebCam として配信するのに必要。これがないと Google Meet や Discord で認識されない
    • また、 Google Meet や Discord などは鏡像反転しているのを出す必要があるが、どうも Virtual Camera がこの辺り上手くやってくれてるみたい
    • YouTube とかに配信するのであれば要らない
    • Windows 版の OBS だと VirtualCam 搭載されてるようだけど、 Mac 版はないのでインストールが必要
  • BlackHole: Route Audio Between Apps
    • Mac 用仮想音声デバイス
    • YouTube とかに配信するのであれば要らない
    • 一昔前だと SoundFlower とか使ってたけど、どうも開発が止まっており、そこからフォークして作られたらしい
    • Homebrew が入ってれば、このコマンドでインストール完了する。 brew cask install blackhole

購入必要なもの

これがないと始まらない。繰り返しになるけど、 YouTube で配信したいだけだったら、 PS4 の Share ボタンの設定すればいいので要らない。

HD60 S には USB-C -> USB A なケーブルが付属しているが、 Macbook Pro が USB-C のポートしかないのでこれを噛ませました。 Macbook 付属の USB-C/USB-C のケーブルだと認識はしてくれるものの十分な FPS が確保できない*1ので、付属の太いケーブルを使う必要があります。

HD60 S についてくる HDMI ケーブル短いので必要に応じて必要な長さの HDMI ケーブルを揃えておくと良い。

配信前の事前設定

ここの設定は一度やったら、基本的にはもうやらなくていいはず

PS4 の設定

  • 設定 > システム を開き、 HDCP を有効にする のチェックを外す
    • HDMI の信号を暗号化するもの。これが ☑️ になっているとキャプチャーできない

Elgato Game Capture HD60 S の設定

  • Elgato Game Capture HD60 SMac に繋いだ状態で、 Game Capture HD を立ち上げる
    • 右上の Device 欄に Elgato Game Capture HD60 S の選択肢が出るので選択して、設定ボタンをクリックする
    • f:id:vkgtaro:20201025130819p:plain:w400

f:id:vkgtaro:20201025151155p:plain

  • PS4HDMI を HD60 S の INPUT に、 TV の HDMI を OUTPUT にさして、 PS4 を立ち上げたらその画面がこのアプリに表示されるはず。
  • 設定完了したらこのアプリは閉じる

OBS LINK の設定

  • Mac のメニューバーに OBS Link がいるので、そこで Preferences をクリックする
  • 必要なものがちゃんとインストールできていれば、上二つは ✅ がついているはず

f:id:vkgtaro:20201025131720p:plain

  • Capture Device は HD60 S を mac につなげてないと出てこない

OBS の設定

ゲーム画面を OBS に取り込む
  1. OBS アプリ下部にある ソース のところの + マークをクリック
  2. NDI TM Source を選ぶ
  3. 新規作成を選んだ状態で OK をクリック
    • f:id:vkgtaro:20201025132619p:plain:w400
    • 名前はなんでもいい。自分は Game とした。
  4. Source Name には OBS Link を選択する。(実際には local hostname (OBS Link) という名前で選択肢が出る)
カメラの映像を OBS に取り込む

画面に自分の映像を入れたくなければ、この操作はいらない

  1. OBS アプリ下部にある ソース のところの + マークをクリック
  2. 映像キャプチャデバイス を選ぶ
  3. 新規作成を選んだ状態で OK をクリック
    • 名前はなんでもいい。自分は Camera とした。
  4. デバイス で、 FaceTime HD Camera(built-in) を選ぶ
音声出力の設定

いろいろ探して歩いたけど、 OBS で音声出力をするまともな方法が見つからないので、以下の方法で試した。

  1. Mac のメニューバーから、 OBS > Preferences... を選択
  2. 音声 を選択
  3. 詳細設定 > モニタリングデバイスBlackHole 16ch を選択
  4. 設定画面の最下部 OK をクリック。これを忘れると設定されない

f:id:vkgtaro:20201025133754p:plain

  1. OBS アプリ下部の 音声ミキサー で、設定マークをクリック
    • ここまでの設定で、二つあると思うがどちらでも構わない
    • f:id:vkgtaro:20201025134252p:plain:w400
  2. オーディオ詳細のプロパティを開く
  3. 両方のサウンド音声モニタリング 欄を モニターと出力 にする
    • f:id:vkgtaro:20201025134351p:plain
  4. これで、 BlackHole 16ch にモニターした音声が出力される

配信の準備はこれで完了。

配信時の設定

  1. HD60 S を Mac に繋いだ状態で、 OBS を立ち上げる
  2. OBS のメニュー ツール から Start Virtual Camera をクリックして Virtual Camera を立ち上げる

Google Meets で遊ぶ

  • Audio の設定
    • Speaker にヘッドフォン を選ぶ
      • 自分の場合は beats (Bluetooth) が出ている。ハウリング防止のためにもイヤホンなりヘッドフォンにした方が良い
    • Microphone に BlackHole 16ch を選ぶ
    • f:id:vkgtaro:20201025135824p:plain:w400
  • Video の設定
    • Camera に OBS Virtual Camera を選ぶ
    • f:id:vkgtaro:20201025135858p:plain:w400

Discord で遊ぶ

  • ユーザ設定の画面へ行き、 音声・ビデオ を選択する
  • 音声設定
    • 入力デバイスBlackHole 16ch を選ぶ
    • 出力デバイス に `ヘッドフォンを選ぶ
      • Google Meet の時同様、イヤホンなり、ヘッドフォンにした方がいい
    • f:id:vkgtaro:20201025140207p:plain:w400
    • マイクテストのセクションで、 確認し... みたいなボタンを押して確認する
  • ビデオ設定
    • カメラに OBS Virtual Camera を選ぶ
    • f:id:vkgtaro:20201025140545p:plain:w400
    • ビデオをテスト ボタンを押すと映像の確認ができる

課題

  • なぜかわからないけど、自分の環境でアプリ版の Discord では OBS Virtual Camera が認識されず、ブラウザ版でやっている
  • アプリでやるときには、 Discord の Go Live 機能で、 OBS のアプリを選択してやってる
    • この方法は単純にアプリが表示されているのをキャプチャーして出しているだけ
    • Google Meet で、スライド表示からアプリウインドウ選択しているのと同じ
    • このとき、 OBS では 全画面プロジェクター で出力したのをキャプチャしてやってた
  • OBS から音声渡す方法がこれが適切かどうかわからない
    • BloodBorne で戦闘が激しい時とかに音がぷつぷつ切れてるらしい
  • OBS のプレビュー表示を 30fps から 60fps にする方法がわからない
    • 画面が激しい動きになるとかくついて見えるのは多分これが原因
    • 解決した
      1. NDI Plugin の Output のチェックを外す
      2. Preferences... > 映像 > FPS を 60 に変更

*1:というか、まともに映像でない

ハッカーズチャンプルー 2018 行ってきたー(まだいるー)

ということで行ってきました! 沖縄!! はいさい。 台風7号の影響でまだいるんですけどね。

前夜祭

@jollyjoester と先乗りして前夜祭に突入。

hackers-champloo.doorkeeper.jp

ハッカーズチャンプルー2018 前夜祭でもカンパイヤー。(写真は仕事してる様子として写真を残してほしいと言われて撮ったものです)

前夜祭には少し遅れて行ったんですがすでにn回目の乾杯だというようなノリでした。会場のバイキング居酒屋リオは、いくつか部屋を仕切れて、ハッカーズチャンプルーの部屋になってたのが良かったですね。

スクリーンにスライド写せないという話でしたが、紙芝居での LT が始まったり、スライド要らないならと逆に飛び入り LT でとにかくみんなよくしゃべる! 熱量!

手を上げました! バックエンドエンジニアだけどフロントの話を書いてます!(宣伝)

React、Angular、Vue.js、React Nativeを使って学ぶ はじめてのフロントエンド開発

React、Angular、Vue.js、React Nativeを使って学ぶ はじめてのフロントエンド開発

カンファレンス

翌日は本編ということで沖縄コンベンションセンター行ってきました。あいにくの雨天でしたが良い会場でした。思ったところをかいつまんで……。

hackers-champloo.doorkeeper.jp

1トラックのカンファレンスなので部屋の移動がなく会期中は一度確保した席で落ち着いて聴講できました。

esa のデザインの話

最初は esa のデザイナの方の話でどうやってデザインしていったかとか、思考のプロセスを紐解いていたのがすごく興味深かったです。ベースカラー決める時に消去法で、当時はこういうふうにやったわけじゃないけどだいたい考えたものはこういう順番にやっていった結果残った色がベースのグリーンとか。

esa.io

ジャンプ率って言葉は知りませんでした。あと、ネーミングはノリで決めると後々困る時があるけど esa は結構ノリで決めたとか。 欧州宇宙機関 - Wikipedia とかぶったとか、日本人の読み方だと「エサ」になるけど「イーサ」って読めるとか。

LT

スケジュールの配分がすごくいいなと思ったのは、午前2個目が LT だったこと。 全部いい話だったけどやっぱり40分くらいのセッションが続くと聞いてる側としては少し疲れるなとおもったのがちょこちょこ LT が挟まっていて全体のテンポがいいなーと思った。ドラ無いので指笛でというのもまた盛り上がってた!

スポンサーセッション LT

今回、ハッカーズチャンプルーに参加する事になったきっかけを作ってくれた @codehex のスポンサー LT の様子です。

Microservices は合体ロボが分解された形だったという衝撃の事実!

ということでがんばります!

motemen さんの自己紹介(40min)

だいぶおっさんホイホイでした。多分年齢的にはひと回り違うので子どもの頃の話は異なるんだけど、00年代の Movable Type のあたりからはだいぶ……。自己紹介ここまでやるとキーノートっぽさがある。(ちなみに自分は MT やめた後 blog 難民になりあまり書かなくなって久しかったり)

トラックバック送るの躊躇した話とか、すごくその当時の内面についての言語化というか共感する話は多かった。

うごメモはてなも懐かしかったです。うごメモのユーザはめっちゃスターつけて欲しい人がいたりして、github でスターがほしい話と脳内でオーバラップしてました。やー、あのサービスはほんとに良かったなぁ。

あー、登壇資料のスライドチェック、 jsongithub にあげて管理はいいなと思いました。 PR チェックもそこで完結。

まとめ

とにかくセッションが豪華でかつ、LT も粒ぞろいで楽しかったしためになりました。そして台風で帰れなくなり振替輸送も翌日満席で火曜日に帰ります! @sfujiwara さんのベンチマークの話とか Clojure の話とかもすごい書きたいんだけども後夜祭に行きたいのでここまで!

後夜祭

台風で帰れなかった人たちで集まるとのことでこの後行ってきます!

hackers-champloo.doorkeeper.jp

なぜ python を選んだのか

このエントリは PyCon JP Advent Calendar 2016 の6日目です。 昨日は @nasa9084 さんによるPythonとわたしでした。

テーマは「Python と私の想い出」と言うことで、Python を使い出したきっかけとして選んだ理由を書こうと思います。 この話は PyCon JP 2012 でスピーカーとして話してます。

この時は当時所属していた会社で開発部作る話になって、言語どうしようかなと思って Python に目をつけたのでした。 (現在は所属が変わって、Perl に戻ったと思いきや PHP 製アプリのお守りをしていますが、 デプロイツールに Fabric 使うように仕向けたり、PyCon JP の web サイト保守で Python にちょこちょこと触れてます。)

Python を選んだ理由としてはチームで使う言語として、ほどよく足並みをそろえられそうで良いなと言うところが大きかったです。 これまでの Advent Calendar にも出てきてましたが、やはり PEP8 があるのは大きかったですね。言語側にコーディングスタイルがあるのは良いなあと。

Perl の TMTOETDI も個人的には好きなんですが、 Perl ベストプラクティスを読んで、ほんとはこういう方が良いんじゃ無いとか議論が先行しちゃうとか、そういう話は楽しいけど横道感もあるよなぁと。 (Perl ベストプラクティスで三項演算子をテーブルのように並べるの良いなと思って、三項演算子書くときはベストプラクティスに沿ってるけど、共感得られたことない……。)

インデントが block 扱いになるとか、モジュールのディレクトリパスがそのまま名前空間になるとかも良いと思うんですよね。だって、 if とか for とかのブロック内インデントするし、モジュール分けるときにディレクトリ名分かりやすくつけようと思ったら対応する名前つけてるからね。

まぁ、どんな言語でも読みやすく書く人は読みやすく書くし、書き散らす人は書き散らすので、最近はコードレビューするとかが大事なんだなとは思いましたが、それを言うと元も子もないので……。確か、matz のコードの世界で言語が思考を制限するみたいなことが書かれててそういうこともあるかなとか。手元に本がないのでうろ覚えだけど。

あとは、採用していかないと行けないのでそのときに例えば Perl で行くと DeNA とか mixi とか大きいところに持ってかれるし、 Ruby も同じようにコミュニティとしては大きくなった感あって、当時ちょうど Python mini JP とかやってて、海外では盛り上がってきてる感あるし今のうちからにスポンサーで出しといたら目立つんじゃないかとかそういう事言って会社にスポンサー出してもらった記憶。 2016 もスポンサーしていただいてました。

www.cb21.co.jp

ちなみに最近は言語を選ぶというよりは、ツールとかフレームワークとか使いたい機能があるもの、必要なものに合わせて選んで、それがその言語使ってるから、で良いんじゃないかなと思ったりしてます。目的から考えたら普通そうなりますかそうですかそうですね……。 すでに動いてるプロジェクトにアサインされるとそもそも動いてるものがあるので言語の選定も何もないけど。

そういうわけで、今はアサインされたプロジェクトで PHP なアプリケーションの面倒を見てますが、メンテナンスの自動化がなされていなかったのを良いことに Fabric 導入して周りの人に Python 薦めたりしてます :-p (Capistrano とか Deployer とかちょこちょこと見たんですけど Fabric がちょうど良かったので。Fabric そのものもほどよく読める量だったりとか)

言語の選択はコミュニティの文化も大きいかなとは思いますが、Python どうなんだろうと思った人は PyCon JP にスタッフ参加してみるのは良いかもしれません。

docs.google.com

いきなり応募するのはちょっと、と言う人は connpass をチェックして賑やかしで申し込んでみるというのもありだと思います。

PyCon JP の website は github で管理されていて、website ハッカソンを実施してますが、もちろんこっちもスタッフじゃなくても参加可能ですよ!

github.com

明日書く人も募集中です! >_<

はてなに戻ってきた

ようなそうでもないような。自前のサーバでやってた Movable Type を潰してからあちこち書いてみたりしたけどそもそも blog を意欲的に書かなくなってしまったので、たぶん、そんなに使わないと思うんだけど、何かあったら書くスペースとしてはてブロに。技術的な事でなんかあれば qiita に書くだろうし、日常的なことは facebook に書くだろうし、そもそも全体的な発信量があんまり無くなってしまったからなぁ。

IMG_3532

写真はフォトライフとの連携なのねと思ったら flickr から引っ張れた。 chromecast でリビングの TV に自分の flickr 流してるんだけど、結構昔撮った写真がいい。しばらく花とか撮ってないからなぁ。