and_cesbo icon

Astra. high rate analyzer

and_cesbo | PRO | 10/13/17 11:21:41 AM UTC | 0 ⭐ | 619 👁️ | Never ⏰ | []
Lua |

1.21 KB

|

None

|

0 👍

/

0 👎

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