我正在尝试使用 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 文件并转换对象中的数据后,我遍历每个对象并使用 feed 属性,一旦此过程正常工作,我就会启动 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 进程,在循环的下一次迭代中,我想捕获 30 秒的第二个提要。
如果一个流不起作用,它将生成 0 字节的 flv 文件,我稍后会发送通知