powershell と rtmpdump を使用して、ライブ テレビ チャンネルの rtmp フィードを監視しようとしています。監視したいストリームは、次の csv 形式に従う「streams.txt」ファイルに保存されます。
Name,feed,file
tv1,rtmp://server/live/tv1,tv1.flv
tv2,rtmp://server/live/tv1,tv2.flv
tv3,rtmp://server/live/tv1,tv3.flv
tv4,rtmp://server/live/tv1,tv4.flv
csv ファイルをインポートしてオブジェクト内のデータを変換した後、各オブジェクトをトラバースし、フィード プロパティを使用して rmtpdump コマンドを起動します。このプロセスが機能すると、残りの PowerShell が停止します。
それを解決するためにタイマーを使用しようとしていますが、rtmpdumpがループ内の最初のフィードをキャプチャしているときに問題を解決していません。
Register-ObjectEvent -InputObject $timer -EventName elapsed –SourceIdentifier thetimer -Action $action
$colStats = Import-CSV streams.txt
foreach ($objBatter in $colStats)
{
$timer.start()
$objBatter.feed + "," + $objBatter.file
.\rtmpdump.exe -r $objBatter.feed -o $objBatter.file
}
#to stop run
$timer.stop()
#cleanup
Unregister-Event thetimer
#loop through flv files and all 0 bytes files are faulty channel
#deleting files with 0 size
#dir | ? {$_.length -eq 0} | del
フィードの出力を 30 秒間再生してキャプチャし、rtmpdump プロセスを強制終了する必要があります。ループの次の繰り返しで、2 番目のフィードを 30 秒間キャプチャしたいと考えています。
1 つのストリームが機能していない場合は、後で通知を送信するための 0 バイトの flv ファイルが生成されます