-- Astra. High Rate Analyzer
-- Step time: 10ms (100 results in 1 second)
--
-- Save script to /etc/astra/h-analyze.lua
-- Launch: astra /etc/astra/h-analyze.lua "udp://239.255.1.1:1234" --limit 0
-- --limit - additional option. write to log if a bitrate higher than defined value
limit = 0
input_url = nil
options = {
["--limit"] = function(idx)
limit = tonumber(argv[idx + 1])
return 1
end,
["*"] = function(idx)
input_url = argv[idx]
return 0
end,
}
function main()
local conf = parse_url(input_url)
if not conf then
log.error("[analyze] wrong url format")
astra.exit()
end
conf.name = "analyze"
input = init_input(conf)
analyze = analyze({
upstream = input.tail:stream(),
name = conf.name,
rate_stat = true,
callback = function(data)
if data.rate then
for _,x in ipairs(data.rate) do
local rate = math.floor(tonumber(x) * 188 * 8 / 10)
if rate > limit then
log.info("rate " .. rate .. " Kbit/s")
end
end
end
end,
})
end
Comments