Profile
Twitter
Xbox360 GamerTag
Pick Up
Tag Cloud
NetRadio & 動画配信
放送状況:

ねとらじ放送URL:
http://std1.ladio.net:8020/akicks.m3u
放送用掲示板:
http://jbbs.livedoor.jp/radio/729/
動画実況(Justin.TV):
http://www.justin.tv/akicks
Last.fm
Akicks兄さんの受信兼発信アンテナ
Read at your own risk!!

MacでH.264動画配信(Justin.TV+QuickTimeBroadcaster編)

※ 環境によってはうまく行かない場合があります。
以下は、あくまでも僕の環境でうまくいった例です。

おそらく、僕の知ってるなかで今一番ベストなライブ配信方法ですよ!

ゲームプレイ動画を実況配信する例で説明していきます。
その前にJustin.TV+QuickTimeBroadcaster(以下QTBC)だと他とどう違うのかを。

●Justin.TVのメリット
・H.264という高クオリティフォーマットでライブ配信できる
・QTBCを使うため、設定が柔軟にできる
・きちんと設定を追い込めば、なめらかな映像の配信が可能(30fps)
・ちまたで人気のUstreamよりブロックノイズが目立たない(気がする)
・総じて高クオリティ
・Justin.TVがサーバーになるため、いわゆる「鏡」と呼ばれる中継が不要で多くの人が見れる
・Embedのコードが弄れるので自分でページをつくってEmbedしてやるといい感じ。
●Justin.TVのデメリット
・QTBCを使うため、なかなかのハイスペックが要求される
・QTBCを使った放送はサーバー側に保存されない(ローカルは可能)
・設定が柔軟にできる反面、最適な設定にチューニングするのが大変
・Webサイトがわかりづらい

とにかく、今、僕のなかでは最高の方法が Justin.TV+QTBC なわけですよ!

■用意するもの

QuickTimeBroadcaster(無料)
CamTwist - デスクトップを取り込み
・ビデオキャプチャツール(エミュレータの場合は必要なし)
(注:僕の場合、TVMax+をビデオキャプチャにしています。)
Soundflower - 仮想サウンドデバイス
LadioCast - ミキサとして

■音の設定

●準備
システム環境設定からサウンドを選び、
出力を Soundflower(2ch) を選択します。

●マイクとキャプチャの音をミックスする
LadioCast をミキサーとして使用します。

LadioCast_movie
入力1:使用してるマイクにし、AUX に設定する。
入力2:Soundflower(2ch)にし、AUX に設定する。
入力3:Soundflower(16ch)にし、Main に設定する。
出力 AUX タブ: Soundflower(16ch) にします。
出力 Main タブ:お使いのヘッドホンなどにします。

これでOK(ミキサとしての使用なので接続する必要はありません)
これで、マイク音量は一番上、配信物の音量は二番目のスライダで個別に調整できるという寸法です。

なお、このとき気をつけるポイントとして、ピークメーターが赤くなる時は音が割れるので、
いろいろ調整していい感じにしちゃってください。
(AUX設定のSoundflower(16ch)のミキシング音量も調節したりすると良いと思われます。)

■キャプチャの設定
キャプチャに付属の視聴ソフトをつかって、
外部入力を視聴する状況にします(もちろん事前にケーブルをつないでください)
*視聴環境はフルスクリーンを非推奨です。
視聴画面サイズが小さいほど遅延が起こりにくいようです。

■CamTwistの設定

(CamTwistは Leopard の Spaces に対応していません。
常に「現在表示されている Space の取り込み範囲」を取り込みます。)

Cam Twist
[Advanced…] ボタンを押して、Frame rateを30にします。

Desktopを選択肢、Full Screanのチェックを外します。
[Select capture area] ボタンを押し、表示された黒枠を
取り込みたい場所、サイズに合わせて [Done] を押します。

■QTBCの設定
ここがキモです。僕もここでずっと躓きました。

●ネットワーク設定

qtbc_network
転送:自動ユニキャスト(アナウンス)
ホスト名:live.justin.tv:1935/app
ファイル:live_user_”Justin.TVのアカウント名”
ユーザ名:ブラウザでJustin.TVにログインした状態で ここ の 3. をそのまんま入れます。(live_数字_英数)

qtbc_username
パスワード:jtv

これで、とりあえずブロードキャストはできるようになるはずです。

●オーディオ設定

これは、オーディオクオリティなので、自分で調整を追い込む必要がありますが、
一例として僕の場合(低音質高画質)を参考までに。
(音楽番組の場合は、高音質低画質を目指すべきかと思います)
qtbc_audio
オーディオストリーム有効にする:チェック
入力源:Soundflower(16ch)
圧縮プログラム:MPEG-4 オーディオ
オプション
圧縮プログラム:AAC(Low Complexity)
ターゲット出力:指定されたビットレート
ビットレート:24 キロビット/秒
出力のサンプルレート:22.050kHz
エンコーダの品質:最高品質
レート:22.050 kHz
出力:モノラル

実況などはねとらじと同様、最低24kbpsあれば大丈夫な感じです。
動画がある以上は、ある程度音のクオリティは妥協する感じになりますね。

●ビデオ設定
ここが一番キモです。うまく調整しないと動画がカクつきます。
とりあえず僕の設定をご参照ください。
qtbc_viedo
入力源:CamTwist - CamTwist
幅:316
高さ:237
(僕の環境だと何故か320x240だと -9408 エラーが出ます)
圧縮プログラム:H.264
フレーム/秒:30(ここはどんな数値でも30fpsになるそうです)
キーフレーム単位:60 フレーム毎
データレートの制限:650 kbits/秒(高いほど良いですが、回線と相談&高すぎても帯域を使うだけです)

ちなみに一番のキモは幅と高さの設定です。
カクつきがでる多くの原因はこれが大きすぎるからだと思います。
要するにここで設定した大きさの画像で秒間30枚のスピードで書き換えてるわけです。
当然大きくすれば、データ量が増え、帯域とCPUに負荷が掛かります。

なお、QTBCの設定調整は各々の環境によってベストが変わります。
あくまでも上記設定は僕の環境でのベスト(というか妥協点)です。
一度追い込んだら、プリセットを保存しておくのがオススメ!

■トラブルシュート

●ブロードキャストが開始されない
まずネットワーク設定を確認しましょう。
ファイルの最後は”自分で決めたアカウント名”になっていますか?
ユーザ名はJustin.TVから発行されたものになっていますか?
パスワードはちゃんと半角英数小文字で jtv となっていますか?

●-9408 のエラーがでる
おそらく、ビデオ設定で幅と高さが原因です。
数値を適当に変えて試してみてください。
それでエラーが出なかったら、再調整してみるといいと思います。
・配信映像がブルーバックやブラックアウトしてしまう。
視聴ソフトやCamTwistを再起動、再設定してみてください。
CamTwistの取り込み範囲を動かす直る場合と、各アプリを立ち上げる順番を変えてみてください。
僕の環境では、映像ソース -> CamTwist -> QTBC の順に立ち上げるとうまくいきます。
これでなおる可能性があります。

●遅延あってゲームプレイに支障がでる
Macやキャプチャの性能によっては、ゲームに支障をきたすほど遅延がでます。
その場合は別途テレビやモニタなどを用意します。
ゲーム機からの出力を分配して
Macはキャプチャ、配信用にして
ゲームプレイはモニタで行います。
分配の方法は二股のケーブルや、セレクタなどを使います。
例えばこんなの - FVC-131
(ちなみに、iMac(Early2008)3.06GHz、TVMax+では
よっぽどシビアなゲームじゃないかぎり気にならない環境でした)

●紙芝居(カクカク)になってしまう

主な原因は
1) フレームレートが低い
2) CPU負荷が限界オーバー
3) QTBCの設定調整不足

1) フレームレートが低い場合
フレームレートとは・・・
単位時間あたり何度画面が更新されるかを表す指標である。
通常、1秒あたりの数値で表し、fps(Frames Per Second)という単位で表す。
(参照:Wikipedia)
CamTwist設定がちゃんとできていますか?
CamTwist:Advanced>Flame rate:30

2) CPU負荷が限界オーバーの場合
僕の環境(iMac Core2Duo 3.06GHz メモリ 4GB)でも
QTBCだけで50%ぐらい使います。
使わないアプリは極力落としてください。
また、放送前にメモリ開放(Macの再起動や Libra Memory を使用)も有効です。
あと勘違いしがちな点は、QTBCで配信してるので、
Webブラウザは落としてしまっていてかまいません。

3) QTBCの設定調整不足
これはもう、がんばれ、としか言いようがありませんw
とりあえずはビデオの幅と高さを調整してみてください。
あとは、高いクオリティから徐々に落としてなんどもテストしたり
低クオリティの限界点から徐々にあげていくテストをして、
自分の妥協点を探るしかありません。
GoodLuck!

■見る側に配慮

見せる方法は主に二つ

●Justin.TVの自分のページ
視聴者にJustin.TVのチャットを使ってもらいたい場合は
Justin.TVの自分のページを案内すればOKです。
この方法のデメリットは、視聴者側で動画サイズが、規定のサイズorフルスクリーンしか選択肢がない点。

●Embedで任意のページに貼付ける
チャットいらない、という方や、掲示板を使う場合にオススメです。
最大のメリットはEmbedのコードを書き換えてやれば、動画サイズの選択肢をいくつでも増やせる点と
Javascriptで設定してやることで、閲覧専用ウインドウを作れることです。
僕の使ってる方法は こんな感じ です。 
デメリットは、どこかにHTMLファイルを置く必要がある点と、
動画の左上にJustin.TVというロゴが出てしまう点。


以上、長々と説明して参りましたが、こんな感じです。
俺と一緒にUstreamの牙城を崩そうぜ!


MacMovieOriginalKnowledge
Comments (View)
blog comments powered by Disqus