and_cesbo

Astra. high rate analyzer

Oct 13th, 2017
529
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.21 KB | None | 0 0
  1. -- Astra. High Rate Analyzer
  2. -- Step time: 10ms (100 results in 1 second)
  3. --
  4. -- Save script to /etc/astra/h-analyze.lua
  5. -- Launch: astra /etc/astra/h-analyze.lua "udp://239.255.1.1:1234" --limit 0
  6. -- --limit - additional option. write to log if a bitrate higher than defined value
  7.  
  8. limit = 0
  9. input_url = nil
  10.  
  11. options = {
  12.     ["--limit"] = function(idx)
  13.         limit = tonumber(argv[idx + 1])
  14.         return 1
  15.     end,
  16.     ["*"] = function(idx)
  17.         input_url = argv[idx]
  18.         return 0
  19.     end,
  20. }
  21.  
  22. function main()
  23.     local conf = parse_url(input_url)
  24.     if not conf then
  25.         log.error("[analyze] wrong url format")
  26.         astra.exit()
  27.     end
  28.     conf.name = "analyze"
  29.     input = init_input(conf)
  30.     analyze = analyze({
  31.         upstream = input.tail:stream(),
  32.         name = conf.name,
  33.         rate_stat = true,
  34.         callback = function(data)
  35.             if data.rate then
  36.                 for _,x in ipairs(data.rate) do
  37.                     local rate = math.floor(tonumber(x) * 188 * 8 / 10)
  38.                     if rate > limit then
  39.                         log.info("rate " .. rate .. " Kbit/s")
  40.                     end
  41.                 end
  42.             end
  43.         end,
  44.     })
  45. end
Advertisement
Add Comment
Please, Sign In to add comment