Macで手持ち動画ファイルをソーシャルビューイングする

Pocket

巷ではオリンピックなどをTwitterなどで会話しながら視聴するソーシャルビューイングが流行ですが、むしろローカルに保存してある動画ファイルを使ってできないか検討。まぁ、利用シーンは色々あるでしょう。録画したアニメを見る、ホームビデオを見る、ユーザテスト記録ビデオを遠隔協調分析する、etc.、etc.。

検証したビデオチャットのプラットフォーム
  • Skype
  • iChat
  • Hangout (Google+)
動画の送信方法
  • ManyCamを使って動画ファイルを仮想Webカメラ入力に見せかける
  • 画面共有機能を使う
  • iChat Theaterで送信する(iChat)

といった方法を比較検証してみました。ManyCamはWebカメラ映像にリアルタイムにエフェクトをかけたりするソフトですが、映像ソースとして動画ファイルを指定することで再生映像を流すことができます。またiChat Theaterとは、ビデオチャット中に相手映像に動画やPDFファイルをドロップすると画面共有できる機能で、動画の場合は再生映像と音声が相手にそのまま送信されます。

結果としては、

  • iChat Theaterはお手軽だし音声も自動ミックスされるが、解像度が低く見るに堪えない
  • Webカメラとして送信する場合もやはりあまり解像度が高くならない
  • またWebカメラ扱いだと場合によっては左右反転処理が必要
  • 画面共有するのが画質的には有利
  • ただし画面共有だと動画の音声は送信されないので、別途細工が必要
  • Skypeの画面共有はモニタ単位しか共有できない(昔はウインドウ単位できなかったっけ?)
  • iChat、Skypeの画面共有はテキストチャットウインドウとの併用ができない

ということで、画質及び使い勝手の面でHangoutが一歩ぬきんでていました。ただし音声をなんとかしないとね、って感じ。Hangoutも全画面表示はできないものの、左サイドにテキストチャット欄を出して併用できたり、他の面子のWebカメラ映像を下部に並べられるなど、レイアウト的にはよく練られています。画面共有単位もウインドウ単位の指定ができるので、無駄がありません。

■動画の音声ストリームを扱う

問題は音声です。当然ローカルではスピーカーから音声が再生されるので、それをマイクが拾えば一応相手にも聞こえます。ただかなり遠くなるので実用的とは言えません。

次に、音声チャットを諦めて、会話はテキストチャットだけということあれば、イヤホン端子とマイク端子をケーブルで直結する手もあります。

ですがやはり、気軽にダベるには音声による会話を並行してしたいところです。ハードウェア的なアプローチとしては、

  • 外部にミキサーを用意する
  • もう一台のマシンとGoogleアカウントを用意し、そちらからもHangoutに参加する

というのもアリでしょう。

しかしここではなんとかMac一台でホストする方法を検討してみました。今回はSoundflowerという仮想オーディオデバイス生成ツールと、LadioCastという仮想ミキサーツールを用いました。仮想仮想と書いてますが、要は実際には存在しない周辺機器をソフト的にあるように見せかけるツール、とでも思って下さい。今回実験に使用したハードはMacBook Pro 15″ Early 2011とヘッドフォンです。あとマイクとしてLogicoolのWebカメラを使いましたが、これは多分内蔵でも大丈夫でしょう。OSはMountain Lionです。

2020.07.03追記:最新のmacOSではSoundflowerが使えないそうで、BlackHoleというのがいいみたいですね。私自身はまだ試せてませんが参考にリンク貼っておきます。

まず両ソフトをインストールします。Soundflowerのインストールは再起動を要請しませんでしたが、実際には再起動しないと機能しませんでした。インストールすると「Soundflower (2ch)」と「Soundflower (64ch)」という2つの仮想デバイスが生成され、OSのサウンド設定パネルの「出力」「入力」タブにそれぞれ出現します。実のところ64chの意義はあまりよくわかっていませんが、まぁ今回はとにかく2つの仮想オーディオデバイスが増えたと捉えておきます。

soundflower1

まずはここ「出力」タブで「Soundflower (64ch)」を選んでおきます。これで本来はスピーカーから聞こえるはずの動画の再生音がリダイレクトされます。

次にLadioCastを起動します。左の3つが入力系、右の3つが出力系です。入力に「Soundrflower (64ch)」(=動画の音声)とWebカムマイクや内蔵マイク(=自分の声)を選択し、それを「Soundflower(2ch)」に出力するようにします。動画音声とマイク音声のバランスは、それぞれの設定パネル内のスライダーを使って調整できます。次に動画音声だけは自分も聞きたいので、右の二段目「出力Aux 1」に内蔵出力を指定し、入力1パネルの「Aux 1」ボタンを選択した状態しておきます。これで「Soundflower(2ch)」という仮想サウンドデバイスに、動画とこちらのマイクの音声をミックスしたものが流れ、同時に「内蔵出力」には動画音声のみが流れる状態になります。

LadioCast_fig

次にブラウザでGoogle+にログインし、Hangoutの画面右上にある歯車アイコンをクリックして設定画面を呼び出します。ここでは入力ソースとして「Soundflower (2ch)」(動画音声とマイク音声がミックスされたもの)を指定。出力(相手の声)は内蔵出力(スピーカーまたはヘッドフォン)に出すようにセットします。

hangoutsetting

 

互いにヘッドフォンを使えば動画や自分の声がエコーバックすることもなくとてもクリアに動画音声と相手の声が聞き取れました。

外付けキーボードでFnキーを使えるようにするTips

Pocket

Mac OS X Mountain LionでiOSのような音声入力ができるようになりましたが、デフォルトのトリガキーはFnキーの二回押しになっています。普段連打なんてしなさそうなキーなのでアリなんですが、MacBookをクラムシェルモードなどにして外付けの、しかもWindows用キーボードを使ってる場合、Fnキー自体が存在しません。さて困った。

dect_setting

OS側でできる回避策としては、上記のようにCommandキーにアサインし直すことが可能です。右Commandキーなんて普段使ってないのでまぁそれでも良かったんですが、なんかもうFnで覚えちゃったので悔しい。なんとか外付けキーボードからFnキー相当のキー入力はできないものか?

キーを眺めてみると、ちょうど良い位置に使ってないキーがありました。我が家のREALFORCEでは右ALTと右Ctrlの間。アプリケーションキーというようです(名前すら知らなかったw)。

SDIM0329

名前さえわかってしまえば、PCKeyboardHackなりKeyRemap4MacBookなりでキーコード調べてアサインしてやれば、、、と思ったら最初からKeyRemap4MacBookに設定項目が存在してました。これをチェックするだけです。

keyremap4macbook

 

 

関連記事:MacBook Proのキーボード周り環境整備覚え書き

Thunderbolt – ギガビットEthernetアダプタ 簡易ベンチ

Pocket

発売と同時に購入しておいた「Thunderbolt – ギガビットEthernetアダプタ」をMacBook Air Mid 2011で試してみたので、USBタイプとの簡易比較ベンチを載せておきます。手頃なベンチマークソフトを知らなかったので、1.09GBの動画ファイルをFinderコピーしてストップウォッチ計測。しかも面倒なので1回ずつ。参考までに。

SDIM0143

■仕様機材

クライアント: MacBook Air 11” (Mid 2011) MC969J/A w/OSX 10.7.4

ファイルサーバー: Synology DS1511+ (RAID5)

比較アダプタ: BUFFALO LUA3-U2-AGT (USB接続Gigabit Ethernetモデル)

WiFiアクセスポイント: AirMac Extreme (300Mbps世代) 5GHzで接続

■速度どん!

仕様アダプタ コピー秒数
Wi-Fi接続 63秒
BUFFALO LUA3-U2-AGT 27秒
Thunderbolt – ギガビットEthernetアダプタ 10秒

予想以上の差にビビった!やはりUSB2.0はボトルネックになってたんですねぇ。

■MacBookがThunderbolt対応モデルならこれ一択

写真の通り、サイズも大幅に小型化されてますし、実売価格もほぼ同じ。これから買うならUSBタイプを買う理由はほぼない気がします。ただ今後Thunderboltを使う外付けストレージやモニタが一般化してくると、MacBook AirやRetina以外のProだと取り合いになりそうですね。ハブは出ないのかなぁ…

OSX LionのSpotlightが機能しない時の覚え書き

Pocket

我が家のMacBook Pro Early 2011はだいぶ前からSpotlightが不調でした。よくあるmdsの暴走でCPU占有率が上がったりファンがうなりつづけたり。で、ググると無効化したりインデックス再構築する方法が出てくるんですが、ついにウチは正常化にいたらずしばらく放置してありました。

ところが今日になってMac AppStoreのアプリの更新で通知されていないものがあることに気付き、どうもSpotlightでアプリのインデックスができてないとそうなるということらしい。ということでもういちど気合いを入れてSpotlight正常化に挑戦しました。

現象としては、「コンソール」にspotlight関連のエラーが延々と表示。

そして左サイドバーから「システム診断レポート」を開くと、十数秒置きに下記エラーが作成されていました。

 

Version:         ??? (???)
Code Type:       X86-64 (Native)
Parent Process:  launchd [1]

Date/Time:       2012-05-28 02:58:46.552 +0900
OS Version:      Mac OS X 10.7.3 (11D50)
Report Version:  9

Anonymous UUID:                      B50639EE-C9EB-4547-AE92-F0194F197C9D

Crashed Thread:  0

Exception Type:  EXC_BREAKPOINT (SIGTRAP)
Exception Codes: 0x0000000000000002, 0x0000000000000000

Application Specific Information:
dyld: launch, loading dependent libraries

Dyld Error Message:
  Library not loaded: /System/Library/PrivateFrameworks/SpotlightIndex.framework/Versions/A/SpotlightIndex
  Referenced from: /System/Library/Frameworks/CoreServices.framework/Frameworks/Metadata.framework/Support/mds
  Reason: no suitable image found.  Did find:
    /System/Library/PrivateFrameworks/SpotlightIndex.framework/Versions/A/SpotlightIndex: open() failed with errno=-22

(以下略)

赤字部分に注目。/System/Library/PrivateFrameworks/SpotlightIndex.framework/Versions/A/フォルダにあるSpotlightIndexというフォルダが正常に読み込めないっぽい。ということで、とりあえず、このファイルをデスクトップに待避。

$ sudo mv /System/Library/PrivateFrameworks/SpotlightIndex.framework/Versions/A/SpotlightIndex ~/Desktop

すると次は当該部分が下の様に変化。

Dyld Error Message:
  Library not loaded: /System/Library/PrivateFrameworks/SpotlightIndex.framework/Versions/A/SpotlightIndex
  Referenced from: /System/Library/Frameworks/CoreServices.framework/Frameworks/Metadata.framework/Support/mds
  Reason: image not found

(以下略)

SpotlightIndexファイルが「読み込めない」よ、から「無いよ」に変わったわけです。まぁ当たり前ですね。この状態でOSを再起動したり、インデックス再作成コマンドを打ったりしてみてもSpotlightIndexファイルは再作成されませんでした。

そこで最後の手段とばかりに、別のMacから同ファイルをコピーw。そしたら数秒後にはインデックス作成が始まりました!

待避したものと持って来たものではサイズが全く違うので、このファイルがインデックスの実態っぽいですね。だとするともってきた方のMacのファイル情報が無駄に含まれていてトラブルの元になる可能性があるので、念のため「システム環境設定」->「Spotlight」->プライバシー」で除外する場所にMacintosh HDを追加。これでインデックス再作成が中断されたので、少し間を置いてから除外指定を解除。これでまた再作成が始まりました。多分これで一旦リセットされたんじゃないかなぁ、と期待。

なんとかOS再インストールは免れそうです。

iOS、Macの無線LANを一括設定する

Pocket

先日実家の母がガラケーからiPhone4Sに機種変更しました。これで我が家は(姪達を除けば)全員がiPhone4S使いです。姪達もiPadもiPod touch使いまくりのiOSドップリ家族です。

さて、新しいiOS端末を導入した時にいつも微妙に面倒なのがWi-Fi(無線LAN)の設定です。自宅、実家、父の経営する会社のオフィス、妹夫婦の家と複数箇所を設定しなければなりません。更にσ(^^)個人で言えば、モバイルルーターやmobilepoint、FREESPOT、docomoといった公衆無線LAN系のものも含め軽く10は行きます。しかもiOSの場合、基本的にその電波を掴んでいる場所に行かないと設定作業ができないという問題が。今回もその為だけにわざわざ母親と隣町のオフィスまで出向くのもアホらしい。

そこで構成プロファイルによる一括設定にチャレンジしてみました。構成プロファイルとは無線LANをはじめメール、VPN、LDAP(ネット上の共有アドレス帳)、CalDAV(ネット上の共有カレンダー)などの設定を含んだ定義ファイルで、身近なところだとSoftbankやauといったキャリアが自社のメールアドレスや公衆無線LANサービスの設定用に配布しているのでご存じの方も多いでしょう。一般に企業が多くの端末を一度に設定する手間を省く為に利用されますが、実は意外と個人でも簡単に利用できました。

今回使ったのはMac AppStoreで配布されているApple純正ツール「Apple Configurator」です(無料)。以前は「iPhone構成ユーティリティ」というのを使うのが一般的でしたが、Apple Configuratorの方が更に簡単とのことです。

以下スクショ付きで簡単に手順を追ってみます。

まずは起動した後、「準備」モードを選ぶと下の画面になります。単に構成プロファイルを作成するだけなら、たぶんここの名前はなんでも構いません。USBで接続してこのツールで端末を直接管理する時の呼び名でしょう。

ということで、一番下の「+」を選びます。

appleconfig1

するとこんな画面になります↓。左にあるのが設定できる項目です。キャリアが配布するもののようにメールと無線LANなど複数の構成要素を含めることも可能ですが、とりあえず今はWi-Fiのみ。まずは「一般」で名前、組織、説明を記入します。これが最後のiPhone上での表示とどう対応付くか見てもらうとわかると思います。「セキュリティ」は実はよくわかりません。ヘルプを見ても出てない…

appleconfig2

次に「Wi-Fi」を選択。複数のSSIDを登録した場合は右上の「+」をクリックします。「保存」を押すとウインドウが閉じてしまうので注意。

appleconfig3

必要なSSID(今回は4つ)を設定した後で「保存」を押し、1枚目の写真の状態に戻り、「+」、「-」の右にある矢印ついたボタンをクリックすると保存ダイアログが表示され.mobileconfigという拡張子のファイルとして書き出すことができます。

おそらくiTunesからでもインストールできますが、今回は自前のWebサーバーに置き、端末のSafariからアクセスしました。するとこんな画面が出ます。2枚目の画像で記入した項目はここに反映されます。「詳細」をタップすると4つのWi-Fiプロファイルも確認できます。「インストール」をタップすれば設定完了です。

appleconfig4

Web経由で配布する場合は、意図しない人にダウンロードされないようBASIC認証などを忘れずにかけておきましょう。

ひとつ気になるのは、「詳細」から確認できる「署名用証明書」欄に出ている有効期限が1年後になってるという点。これ1年後にはWi-Fi設定ともども無効になるんでしょうかね?Apple Configurator側をあちこち探ってみたけど有効期限を指定するところは見当たりませんでした。うーむ。

追記:保存時に「構成プロファイルに署名」のチェックを外しておけばそもそも署名用証明書欄も出ないので見た目有効期限はなさそうです。実際の動作の違いは不明ですが…

ちなみに、ここで出力した.mobileconfigファイルはMacで普通にダブルクリックして開けば、Macにも適用することができます。

 

以前σ(^^)が横浜にいる時に実家で父がiPhoneを紛失して、代替機を入手しバックアップから復元をしたものの、Wi-Fi設定は移っておらず、電話で長い暗号鍵を伝えながら自分で設定してもらう、という苦労をしたことがありますが、本ツールで構成プロファイルを作ってWebに置けばメールでURLを通知するだけで済んだなぁ、とか思ったり(てか多分メール添付でもいける?)。そういう意味でも1つ作ってどこかに保存しておくと安心かと。