日記/2008-03-02

Sun, 02 Mar 2008 04:08:45 JST (5899d)

Pull型のストリーミング配信

条件

  1. エンコーダーのIPアドレスが特定できる
  2. エンコーダーのIPアドレスは絶対に変化しない

利点

  1. Push型と違いエンコーダーかサーバーかのエラーの切り分けが楽
    1. ネットワークに関しては
  2. 配信ポイントとIPが一対一で固定できるので管理が楽
    1. Pushだとその配信ポイントにつないだら配信されるので、固定ではない

欠点

  1. 動的IPだと使用できない
  2. 配信サーバーから取りに行くことになるので、ネットワークによってはファイアウォールに引っかかる
    1. 特に70号館など

Canopus ADVC-700

なぜか、MediaEncorderでのライブ配信では映像が取得できないので、WMCmdというコマンドから、MedoaEncorderを操作するソフト(VBScript)を使って行う。

問題点

  1. 設定をすべてコマンドラインで行わなくてはならない。また、細かい設定が反映されてるか怪しい。
  2. Push型の配信が行えない
  3. ライブ配信の場合はDurationを設定してお粉分ければならないので永遠に配信し続けることができない
  4. ソースの切り替えができない

利点

  1. リソースを食わない
    1. 多分。プレビューなどが無い分。
  2. 完全にコマンドラインからの操作になるので、バッチが使える。
  3. コマンドラインなので、設定を細かく行える
    1. 多分

WMCmdにかんして

Durationに関して

C:\WMCmd_20071011>start.bat
##################################
ポート:8080
IP  :このPC
時間 :259200秒
ログ :test.txt
日時 :2008/02/29  2:50:30.14
##################################
Microsoft (R) Windows Script Host Version 5.6
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.

Wait for 259200 seconds to stop encoder...
Encoding completed before duration time is reached.
Error occurred in transcoding: Error Code = 0xC00D002E
完了
終了日時:2008/03/01  2:17:06.36

上記の通り、時間259200秒(72時間)であったにもかかわらず、約24時間で、エンコードが終了している。もう少し詳細な実験は必要だと思うが、Durationに入れることのできる最大の値は3600*24であろう。

自動スタート

@echo off
SET PORT=8080
SET DURATION=259200
SET QUALITY=80
SET BITRATE=1000000
SET LOGFILE=test.txt 

ECHO ##################################
ECHO ポート:%PORT%
ECHO IP  :このPC
ECHO 時間 :%DURATION%秒
ECHO ログ :%LOGFILE%
ECHO 日時 :%DATE% %TIME%
ECHO ##################################  

cscript WMCmd.vbs -adevice 0 -vdevice 0 -broadcast %PORT% -duration %DURATION% -log %LOGFILE% -a_codec WMASTD -a_mode 2 -a_setting Q100_48_2 -v_codec WMV9 -v_mode 0 -v_bitrate %BITRATE% -v_width 720 -v_height 480

ECHO 完了
ECHO 終了日時:%DATE% %TIME%

いちいち、設定を入れるのが面倒だし、設定ファイルの値を変えるのが面倒だったので、バッチファイルを作成し、対処した。ついでに、実行時間亜どうが表示される用にした。