-- 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