bundles/voc-loudness-monitor: inital commit of sources units
This commit is contained in:
parent
b486548d63
commit
8abfe74c2b
4 changed files with 118 additions and 0 deletions
17
bundles/voc-loudness-monitor/files/loudness.service
Normal file
17
bundles/voc-loudness-monitor/files/loudness.service
Normal file
|
@ -0,0 +1,17 @@
|
|||
[Unit]
|
||||
Description=Loudness Monitor for ${url}
|
||||
After=syslog.target
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
RestartSec=30s
|
||||
Type=simple
|
||||
User=voc
|
||||
Group=voc
|
||||
WorkingDirectory=/opt/voc-loudness-monitor/
|
||||
ExecStart=/opt/voc-loudness-monitor/loudness_${id}.sh
|
||||
Restart=always
|
||||
StartLimitInterval=0
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
25
bundles/voc-loudness-monitor/files/loudness.sh
Executable file
25
bundles/voc-loudness-monitor/files/loudness.sh
Executable file
|
@ -0,0 +1,25 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -euo pipefail
|
||||
IFS=$'\n\t'
|
||||
|
||||
ffmpeg \
|
||||
-y \
|
||||
-hide_banner \
|
||||
-nostdin \
|
||||
-re \
|
||||
-loglevel warning \
|
||||
-timeout 5 \
|
||||
-i ${url} \
|
||||
-filter_complex "[0:v] scale=w=640:h=360, fps=25 [scaled];
|
||||
[0:a] ebur128=video=1:target=-16:gauge=shortterm:scale=relative:size=640x480[ebur][a1];
|
||||
[ebur] fps=25 [v1];
|
||||
[v1][scaled] vstack=inputs=2 [out];
|
||||
[a1] anullsink" \
|
||||
-map "[out]" \
|
||||
-c:v mpeg2video \
|
||||
-pix_fmt yuv420p \
|
||||
-q:v 2 \
|
||||
-keyint_min 0 \
|
||||
-an \
|
||||
-f rtp rtp://127.0.0.1:${port}
|
67
bundles/voc-loudness-monitor/items.py
Normal file
67
bundles/voc-loudness-monitor/items.py
Normal file
|
@ -0,0 +1,67 @@
|
|||
assert node.has_bundle('systemd')
|
||||
|
||||
streams = {
|
||||
's1': {
|
||||
'url': 'http://live.ber.c3voc.de:7999/s1',
|
||||
'port': 15001,
|
||||
},
|
||||
's2': {
|
||||
'url': 'http://live.ber.c3voc.de:7999/s2',
|
||||
'port': 15002,
|
||||
},
|
||||
's3': {
|
||||
'url': 'http://live.ber.c3voc.de:7999/s3',
|
||||
'port': 15003,
|
||||
},
|
||||
's4': {
|
||||
'url': 'http://live.ber.c3voc.de:7999/s4',
|
||||
'port': 15004,
|
||||
},
|
||||
's5': {
|
||||
'url': 'http://live.ber.c3voc.de:7999/s5',
|
||||
'port': 15005,
|
||||
},
|
||||
's6': {
|
||||
'url': 'http://live.ber.c3voc.de:7999/s6',
|
||||
'port': 15006,
|
||||
},
|
||||
'sloop': {
|
||||
'url': 'http://live.ber.c3voc.de:7999/sloop_h264',
|
||||
'port': 15000,
|
||||
},
|
||||
}
|
||||
|
||||
files = {}
|
||||
svc_systemd = {}
|
||||
|
||||
for stream_id, config in streams.items():
|
||||
config['id'] = stream_id
|
||||
|
||||
files['/opt/voc-loudness-monitor/loudness_{}.sh'.format(stream_id)] = {
|
||||
'source': 'loudness.sh',
|
||||
'content_type': 'mako',
|
||||
'context': config,
|
||||
'mode': '0755',
|
||||
'triggers': {
|
||||
'svc_systemd:loudness_{}:restart'.format(stream_id),
|
||||
},
|
||||
}
|
||||
files['/etc/systemd/system/loudness_{}.service'.format(stream_id)] = {
|
||||
'source': 'loudness.service',
|
||||
'content_type': 'mako',
|
||||
'context': config,
|
||||
'needs': {
|
||||
'file:/opt/voc-loudness-monitor/loudness_{}.sh'.format(stream_id),
|
||||
},
|
||||
'triggers': {
|
||||
'action:systemd-reload',
|
||||
'svc_systemd:loudness_{}:restart'.format(stream_id),
|
||||
},
|
||||
}
|
||||
|
||||
svc_systemd['loudness_{}'.format(stream_id)] = {
|
||||
'needs': {
|
||||
'file:/etc/systemd/system/loudness_{}.service'.format(stream_id),
|
||||
'action:systemd-reload',
|
||||
},
|
||||
}
|
9
bundles/voc-loudness-monitor/metadata.py
Normal file
9
bundles/voc-loudness-monitor/metadata.py
Normal file
|
@ -0,0 +1,9 @@
|
|||
@metadata_processor
|
||||
def add_voc_user(metadata):
|
||||
return {
|
||||
'users': {
|
||||
'voc': {
|
||||
'home': '/opt/voc-loudness-monitor',
|
||||
},
|
||||
},
|
||||
}, DEFAULTS, DONE
|
Loading…
Reference in a new issue