Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
sms
streaming-docker
Commits
a3be46eb
Commit
a3be46eb
authored
Oct 14, 2020
by
dreamer
Browse files
stats?
parent
eb5a42f8
Changes
1
Hide whitespace changes
Inline
Side-by-side
leftover/static/stat.xsl
0 → 100644
View file @
a3be46eb
<?xml version="1.0" encoding="utf-8" ?>
<!--
Copyright (C) Roman Arutyunyan
-->
<xsl:stylesheet
version=
"1.0"
xmlns:xsl=
"http://www.w3.org/1999/XSL/Transform"
>
<xsl:template
match=
"/"
>
<html>
<head>
<title>
RTMP statistics
</title>
</head>
<body>
<xsl:apply-templates
select=
"rtmp"
/>
<hr/>
Generated by
<a
href=
'https://github.com/arut/nginx-rtmp-module'
>
nginx-rtmp-module
</a>
 
<xsl:value-of
select=
"/rtmp/nginx_rtmp_version"
/>
,
<a
href=
"http://nginx.org"
>
nginx
</a>
 
<xsl:value-of
select=
"/rtmp/nginx_version"
/>
,
pid
<xsl:value-of
select=
"/rtmp/pid"
/>
,
built
<xsl:value-of
select=
"/rtmp/built"
/>
 
<xsl:value-of
select=
"/rtmp/compiler"
/>
</body>
</html>
</xsl:template>
<xsl:template
match=
"rtmp"
>
<table
cellspacing=
"1"
cellpadding=
"5"
>
<tr
bgcolor=
"#999999"
>
<th>
RTMP
</th>
<th>
#clients
</th>
<th
colspan=
"4"
>
Video
</th>
<th
colspan=
"4"
>
Audio
</th>
<th>
In bytes
</th>
<th>
Out bytes
</th>
<th>
In bits/s
</th>
<th>
Out bits/s
</th>
<th>
State
</th>
<th>
Time
</th>
</tr>
<tr>
<td
colspan=
"2"
>
Accepted:
<xsl:value-of
select=
"naccepted"
/></td>
<th
bgcolor=
"#999999"
>
codec
</th>
<th
bgcolor=
"#999999"
>
bits/s
</th>
<th
bgcolor=
"#999999"
>
size
</th>
<th
bgcolor=
"#999999"
>
fps
</th>
<th
bgcolor=
"#999999"
>
codec
</th>
<th
bgcolor=
"#999999"
>
bits/s
</th>
<th
bgcolor=
"#999999"
>
freq
</th>
<th
bgcolor=
"#999999"
>
chan
</th>
<td>
<xsl:call-template
name=
"showsize"
>
<xsl:with-param
name=
"size"
select=
"bytes_in"
/>
</xsl:call-template>
</td>
<td>
<xsl:call-template
name=
"showsize"
>
<xsl:with-param
name=
"size"
select=
"bytes_out"
/>
</xsl:call-template>
</td>
<td>
<xsl:call-template
name=
"showsize"
>
<xsl:with-param
name=
"size"
select=
"bw_in"
/>
<xsl:with-param
name=
"bits"
select=
"1"
/>
<xsl:with-param
name=
"persec"
select=
"1"
/>
</xsl:call-template>
</td>
<td>
<xsl:call-template
name=
"showsize"
>
<xsl:with-param
name=
"size"
select=
"bw_out"
/>
<xsl:with-param
name=
"bits"
select=
"1"
/>
<xsl:with-param
name=
"persec"
select=
"1"
/>
</xsl:call-template>
</td>
<td/>
<td>
<xsl:call-template
name=
"showtime"
>
<xsl:with-param
name=
"time"
select=
"/rtmp/uptime * 1000"
/>
</xsl:call-template>
</td>
</tr>
<xsl:apply-templates
select=
"server"
/>
</table>
</xsl:template>
<xsl:template
match=
"server"
>
<xsl:apply-templates
select=
"application"
/>
</xsl:template>
<xsl:template
match=
"application"
>
<tr
bgcolor=
"#999999"
>
<td>
<b><xsl:value-of
select=
"name"
/></b>
</td>
</tr>
<xsl:apply-templates
select=
"live"
/>
<xsl:apply-templates
select=
"play"
/>
</xsl:template>
<xsl:template
match=
"live"
>
<tr
bgcolor=
"#aaaaaa"
>
<td>
<i>
live streams
</i>
</td>
<td
align=
"middle"
>
<xsl:value-of
select=
"nclients"
/>
</td>
</tr>
<xsl:apply-templates
select=
"stream"
/>
</xsl:template>
<xsl:template
match=
"play"
>
<tr
bgcolor=
"#aaaaaa"
>
<td>
<i>
vod streams
</i>
</td>
<td
align=
"middle"
>
<xsl:value-of
select=
"nclients"
/>
</td>
</tr>
<xsl:apply-templates
select=
"stream"
/>
</xsl:template>
<xsl:template
match=
"stream"
>
<tr
valign=
"top"
>
<xsl:attribute
name=
"bgcolor"
>
<xsl:choose>
<xsl:when
test=
"active"
>
#cccccc
</xsl:when>
<xsl:otherwise>
#dddddd
</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
<td>
<a
href=
""
>
<xsl:attribute
name=
"onclick"
>
var d=document.getElementById('
<xsl:value-of
select=
"../../name"
/>
-
<xsl:value-of
select=
"name"
/>
');
d.style.display=d.style.display=='none'?'':'none';
return false
</xsl:attribute>
<xsl:value-of
select=
"name"
/>
<xsl:if
test=
"string-length(name) = 0"
>
[EMPTY]
</xsl:if>
</a>
</td>
<td
align=
"middle"
>
<xsl:value-of
select=
"nclients"
/>
</td>
<td>
<xsl:value-of
select=
"meta/video/codec"
/>
 
<xsl:value-of
select=
"meta/video/profile"
/>
 
<xsl:value-of
select=
"meta/video/level"
/>
</td>
<td>
<xsl:call-template
name=
"showsize"
>
<xsl:with-param
name=
"size"
select=
"bw_video"
/>
<xsl:with-param
name=
"bits"
select=
"1"
/>
<xsl:with-param
name=
"persec"
select=
"1"
/>
</xsl:call-template>
</td>
<td>
<xsl:apply-templates
select=
"meta/video/width"
/>
</td>
<td>
<xsl:value-of
select=
"meta/video/frame_rate"
/>
</td>
<td>
<xsl:value-of
select=
"meta/audio/codec"
/>
 
<xsl:value-of
select=
"meta/audio/profile"
/>
</td>
<td>
<xsl:call-template
name=
"showsize"
>
<xsl:with-param
name=
"size"
select=
"bw_audio"
/>
<xsl:with-param
name=
"bits"
select=
"1"
/>
<xsl:with-param
name=
"persec"
select=
"1"
/>
</xsl:call-template>
</td>
<td>
<xsl:apply-templates
select=
"meta/audio/sample_rate"
/>
</td>
<td>
<xsl:value-of
select=
"meta/audio/channels"
/>
</td>
<td>
<xsl:call-template
name=
"showsize"
>
<xsl:with-param
name=
"size"
select=
"bytes_in"
/>
</xsl:call-template>
</td>
<td>
<xsl:call-template
name=
"showsize"
>
<xsl:with-param
name=
"size"
select=
"bytes_out"
/>
</xsl:call-template>
</td>
<td>
<xsl:call-template
name=
"showsize"
>
<xsl:with-param
name=
"size"
select=
"bw_in"
/>
<xsl:with-param
name=
"bits"
select=
"1"
/>
<xsl:with-param
name=
"persec"
select=
"1"
/>
</xsl:call-template>
</td>
<td>
<xsl:call-template
name=
"showsize"
>
<xsl:with-param
name=
"size"
select=
"bw_out"
/>
<xsl:with-param
name=
"bits"
select=
"1"
/>
<xsl:with-param
name=
"persec"
select=
"1"
/>
</xsl:call-template>
</td>
<td><xsl:call-template
name=
"streamstate"
/></td>
<td>
<xsl:call-template
name=
"showtime"
>
<xsl:with-param
name=
"time"
select=
"time"
/>
</xsl:call-template>
</td>
</tr>
<tr
style=
"display:none"
>
<xsl:attribute
name=
"id"
>
<xsl:value-of
select=
"../../name"
/>
-
<xsl:value-of
select=
"name"
/>
</xsl:attribute>
<td
colspan=
"16"
ngcolor=
"#eeeeee"
>
<table
cellspacing=
"1"
cellpadding=
"5"
>
<tr>
<th>
Id
</th>
<th>
State
</th>
<th>
Address
</th>
<th>
Flash version
</th>
<th>
Page URL
</th>
<th>
SWF URL
</th>
<th>
Dropped
</th>
<th>
Timestamp
</th>
<th>
A-V
</th>
<th>
Time
</th>
</tr>
<xsl:apply-templates
select=
"client"
/>
</table>
</td>
</tr>
</xsl:template>
<xsl:template
name=
"showtime"
>
<xsl:param
name=
"time"
/>
<xsl:if
test=
"$time > 0"
>
<xsl:variable
name=
"sec"
>
<xsl:value-of
select=
"floor($time div 1000)"
/>
</xsl:variable>
<xsl:if
test=
"$sec >= 86400"
>
<xsl:value-of
select=
"floor($sec div 86400)"
/>
d
</xsl:if>
<xsl:if
test=
"$sec >= 3600"
>
<xsl:value-of
select=
"(floor($sec div 3600)) mod 24"
/>
h
</xsl:if>
<xsl:if
test=
"$sec >= 60"
>
<xsl:value-of
select=
"(floor($sec div 60)) mod 60"
/>
m
</xsl:if>
<xsl:value-of
select=
"$sec mod 60"
/>
s
</xsl:if>
</xsl:template>
<xsl:template
name=
"showsize"
>
<xsl:param
name=
"size"
/>
<xsl:param
name=
"bits"
select=
"0"
/>
<xsl:param
name=
"persec"
select=
"0"
/>
<xsl:variable
name=
"sizen"
>
<xsl:value-of
select=
"floor($size div 1024)"
/>
</xsl:variable>
<xsl:choose>
<xsl:when
test=
"$sizen >= 1073741824"
>
<xsl:value-of
select=
"format-number($sizen div 1073741824,'#.###')"
/>
T
</xsl:when>
<xsl:when
test=
"$sizen >= 1048576"
>
<xsl:value-of
select=
"format-number($sizen div 1048576,'#.###')"
/>
G
</xsl:when>
<xsl:when
test=
"$sizen >= 1024"
>
<xsl:value-of
select=
"format-number($sizen div 1024,'#.##')"
/>
M
</xsl:when>
<xsl:when
test=
"$sizen >= 0"
>
<xsl:value-of
select=
"$sizen"
/>
K
</xsl:when>
</xsl:choose>
<xsl:if
test=
"string-length($size) > 0"
>
<xsl:choose>
<xsl:when
test=
"$bits = 1"
>
b
</xsl:when>
<xsl:otherwise>
B
</xsl:otherwise>
</xsl:choose>
<xsl:if
test=
"$persec = 1"
>
/s
</xsl:if>
</xsl:if>
</xsl:template>
<xsl:template
name=
"streamstate"
>
<xsl:choose>
<xsl:when
test=
"active"
>
active
</xsl:when>
<xsl:otherwise>
idle
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template
name=
"clientstate"
>
<xsl:choose>
<xsl:when
test=
"publishing"
>
publishing
</xsl:when>
<xsl:otherwise>
playing
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template
match=
"client"
>
<tr>
<xsl:attribute
name=
"bgcolor"
>
<xsl:choose>
<xsl:when
test=
"publishing"
>
#cccccc
</xsl:when>
<xsl:otherwise>
#eeeeee
</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
<td><xsl:value-of
select=
"id"
/></td>
<td><xsl:call-template
name=
"clientstate"
/></td>
<td>
<a
target=
"_blank"
>
<xsl:attribute
name=
"href"
>
http://apps.db.ripe.net/search/query.html
?
searchtext=
<xsl:value-of
select=
"address"
/>
</xsl:attribute>
<xsl:attribute
name=
"title"
>
whois
</xsl:attribute>
<xsl:value-of
select=
"address"
/>
</a>
</td>
<td><xsl:value-of
select=
"flashver"
/></td>
<td>
<a
target=
"_blank"
>
<xsl:attribute
name=
"href"
>
<xsl:value-of
select=
"pageurl"
/>
</xsl:attribute>
<xsl:value-of
select=
"pageurl"
/>
</a>
</td>
<td><xsl:value-of
select=
"swfurl"
/></td>
<td><xsl:value-of
select=
"dropped"
/></td>
<td><xsl:value-of
select=
"timestamp"
/></td>
<td><xsl:value-of
select=
"avsync"
/></td>
<td>
<xsl:call-template
name=
"showtime"
>
<xsl:with-param
name=
"time"
select=
"time"
/>
</xsl:call-template>
</td>
</tr>
</xsl:template>
<xsl:template
match=
"publishing"
>
publishing
</xsl:template>
<xsl:template
match=
"active"
>
active
</xsl:template>
<xsl:template
match=
"width"
>
<xsl:value-of
select=
"."
/>
x
<xsl:value-of
select=
"../height"
/>
</xsl:template>
</xsl:stylesheet>
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment