日記/2008-03-02
Pull型のストリーミング配信
条件
- エンコーダーのIPアドレスが特定できる
- エンコーダーのIPアドレスは絶対に変化しない
利点
- Push型と違いエンコーダーかサーバーかのエラーの切り分けが楽
- ネットワークに関しては
- 配信ポイントとIPが一対一で固定できるので管理が楽
- Pushだとその配信ポイントにつないだら配信されるので、固定ではない
欠点
- 動的IPだと使用できない
- 配信サーバーから取りに行くことになるので、ネットワークによってはファイアウォールに引っかかる
- 特に70号館など
Canopus ADVC-700
なぜか、MediaEncorderでのライブ配信では映像が取得できないので、WMCmdというコマンドから、MedoaEncorderを操作するソフト(VBScript)を使って行う。
問題点
- 設定をすべてコマンドラインで行わなくてはならない。また、細かい設定が反映されてるか怪しい。
- Push型の配信が行えない
- ライブ配信の場合はDurationを設定してお粉分ければならないので永遠に配信し続けることができない
- ソースの切り替えができない
利点
- リソースを食わない
- 多分。プレビューなどが無い分。
- 完全にコマンドラインからの操作になるので、バッチが使える。
- コマンドラインなので、設定を細かく行える
- 多分
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%
いちいち、設定を入れるのが面倒だし、設定ファイルの値を変えるのが面倒だったので、バッチファイルを作成し、対処した。ついでに、実行時間亜どうが表示される用にした。