2010年8月5日木曜日

X06HT(Desire)へのストリーミングサーバー(改良)

以前同じようなエントリを書きましたが,x06ht用のプロファイルができたのでメモします.
以前はVLCでエンコードするときに詳細な設定を行いませんでした.
そのため,x06htでは再生するのが困難でした.
しかし,今回こちらのサイト様にプロファイルの違いについて説明されており,このプロファイルに沿って
新たにVLCの設定を変更しました.
もちろん,ストリーミングだけでなく動画のエンコードにも利用できます.
ちょっと手を加えればバッチエンコードも可能になります.(これに関してはLinuxのBashやWindowsのPowerShellを勉強してください)

それでは,エンコードの方法です.
前回のエントリではMP4を用いていましたが,今回はH.264です.
まず,メニューからメディア→ストリーミングの順で選択します.
次に,ストリーミングしたいものを選択します.
ここでは,Webカメラや外部のストリーミングサーバなどを選択することができます.
選択後「ストリーム再生」のボタンをクリックします.
入力元は特に設定の必要はありません.
「次へ」をクリックします.

新しい出力先から「RTSP」を選択.「追加」をクリックします.
ポート番号は,アクセスするときに必要なので適当に設定.
パスはアクセスするときの識別子替わりなのでこちらも適当に設定.
今回はデフォルトの設定で行きます(ポート番号:5544,パス:/)
「トランスコーディングを有効にする」のチェックボックスを確認.
プロファイルを一つ作成します.
プロファイルと書かれている部分の一番右のボタンをクリックします.
・プロファイル名は判断できるような名前に
・カプセル化:MP4/MOV
・ビデオコーデック:
 ビデオにチェック,
 コーデックをMPEG-4にビットレートは適当に.
 フレームレートも適当に.
 幅,高さも適当に
・オーディオコーデック:
 オーディオにチェック
 コーデックをMPEG 4 Audio(AAC)
 ビットレートは適当に.
 チャンネルはモノラルなら1,ステレオなら2
 サンプリングレートも適当に
・字幕は設定の必要なし.
この設定で保存します.

今回は回線があまり高速でない場合のプロファイルとして
ビデオ:
 ビットレート:300kbps
 フレームレート:15fps
 幅:320,高さ:200
オーディオ:
 ビットレート:128kbps
 チャンネル:2
 サンプリングレート:11025
とします.

保存が完了したら,作成したプロファイルを選択します.
「次へ」を選択します.

ここからが,今回のポイントです.
このままでは,VLCはx06htに対応したH.264は出力することができません.
そこで,ベースラインの処理を生成されたストリーム出力文字列に追加します.
ベースラインをVLCで出力するのはこちらのページを参考にしました.

以下の文字列をコピーします.
venc=x264{profile=baseline,level=30,keyint=30,bframes=0,ref=1,nocabac},

コピーした文字列をストリーム出力文字列の"vcodec=h264"の前に貼り付けます.
上記の私の例では以下のようになります.

:sout=#transcode{venc=x264{profile=baseline,level=30,keyint=30,bframes=0,ref=1,nocabac},vcodec=h264,vb=300,fps=15,scale=1,width=320,height=200,acodec=mp4a,ab=128,channels=2,samplerate=11025}:rtp{sdp=rtsp://:5544/} :no-sout-rtp-sap :no-sout-standard-sap :sout-keep

あとは,「ストリーム再生」のボタンをクリックするとストリーミングが開始されます.

私の環境では少しばかりおとずれは発生するものの再生することができました.(DeFroST 2.5a,Meridian使用)
ものによっては再生できないかもしれませんのであしからず.

これでやっと,BonCameraが役に立ちそうですね.