summaryrefslogtreecommitdiff
path: root/roles/streaming/rtmp/streamer
diff options
context:
space:
mode:
Diffstat (limited to 'roles/streaming/rtmp/streamer')
-rw-r--r--roles/streaming/rtmp/streamer/defaults/main.yml30
-rw-r--r--roles/streaming/rtmp/streamer/tasks/main.yml45
-rw-r--r--roles/streaming/rtmp/streamer/templates/nginx.conf.j232
-rw-r--r--roles/streaming/rtmp/streamer/templates/pod-spec.yml.j2143
4 files changed, 0 insertions, 250 deletions
diff --git a/roles/streaming/rtmp/streamer/defaults/main.yml b/roles/streaming/rtmp/streamer/defaults/main.yml
deleted file mode 100644
index 196951d0..00000000
--- a/roles/streaming/rtmp/streamer/defaults/main.yml
+++ /dev/null
@@ -1,30 +0,0 @@
----
-# rtmp_streamer_storage:
-# type: (lvm|zfs)
-# ...
-rtmp_streamer_base_path: /srv/rtmp/streamer
-
-rtmp_streamer_port: 1935
-# rtmp_streamer_inst_name: feed
-# rtmp_streamer_nginx_image_version: 2022-05-15.24
-# rtmp_streamer_ffmpeg_image_version: bullseye-decklink11.7-2022-05-28.17
-# rtmp_streamer_input: ['-f', 'decklink', '-video_input', 'sdi', '-format_code', 'Hp25', '-ac', '2', '-i', 'DeckLink Mini Recorder']
-# rtmp_streamer_video_filter_common: "colorspace=iall=bt709:irange=tv:all=bt709:range=tv:format=yuv420p,setdar=dar=16/9"
-rtmp_streamer_app_name: "{{ rtmp_streamer_inst_name }}"
-rtmp_streamer_audio_track: orig
-rtmp_streamer_quality_levels:
- - full
-
-rtmp_streamer_config: {}
-
-
-rtmp_streamer_forwards: {}
-# example:
-# url: rtmp://ingest.example.com/foo/secret
-# level: full
-
-
-# rtmp_streamer_recording:
-# level: full
-# segment_time: 7200
-# segment_clocktime_offset: 0
diff --git a/roles/streaming/rtmp/streamer/tasks/main.yml b/roles/streaming/rtmp/streamer/tasks/main.yml
deleted file mode 100644
index bb50846c..00000000
--- a/roles/streaming/rtmp/streamer/tasks/main.yml
+++ /dev/null
@@ -1,45 +0,0 @@
----
-- name: prepare rtmp-streamer storage volume
- when: rtmp_streamer_storage is defined
- vars:
- storage_volume: "{{ rtmp_streamer_storage | combine({'dest': rtmp_streamer_base_path}) }}"
- include_role:
- name: "storage/{{ rtmp_streamer_storage.type }}/volume"
-
-- name: create rtmp-streamer instance directory
- file:
- path: "{{ rtmp_streamer_base_path }}/{{ rtmp_streamer_inst_name }}"
- state: directory
-
-- name: generate nginx config
- template:
- src: nginx.conf.j2
- dest: "{{ rtmp_streamer_base_path }}/{{ rtmp_streamer_inst_name }}/nginx.conf"
-
-- name: generate streamer config
- copy:
- content: "{{ rtmp_streamer_config | combine({'rtmp': {'base_url': 'rtmp://127.0.0.1/'+rtmp_streamer_app_name}}) | to_nice_yaml }}\n"
- dest: "{{ rtmp_streamer_base_path }}/{{ rtmp_streamer_inst_name }}/config.yml"
-
-- name: create recording directory
- when: rtmp_streamer_recording is defined
- file:
- path: "{{ rtmp_streamer_base_path }}/{{ rtmp_streamer_inst_name }}/recordings"
- state: directory
- owner: app
- group: app
-
-- name: install pod manifest
- vars:
- kubernetes_standalone_pod:
- name: "rtmp-streamer-{{ rtmp_streamer_inst_name }}"
- spec: "{{ lookup('template', 'pod-spec.yml.j2') }}"
- config_hash_items:
- - path: "{{ rtmp_streamer_base_path }}/{{ rtmp_streamer_inst_name }}/nginx.conf"
- properties:
- - checksum
- - path: "{{ rtmp_streamer_base_path }}/{{ rtmp_streamer_inst_name }}/config.yml"
- properties:
- - checksum
- include_role:
- name: kubernetes/standalone/pod
diff --git a/roles/streaming/rtmp/streamer/templates/nginx.conf.j2 b/roles/streaming/rtmp/streamer/templates/nginx.conf.j2
deleted file mode 100644
index 2b778af2..00000000
--- a/roles/streaming/rtmp/streamer/templates/nginx.conf.j2
+++ /dev/null
@@ -1,32 +0,0 @@
-worker_processes 1;
-pid /var/lib/nginx/nginx.pid;
-error_log /dev/stderr info;
-
-include /etc/nginx/modules-enabled/*.conf;
-
-events {
- worker_connections 768;
- # multi_accept on;
-}
-
-rtmp {
- access_log /dev/null;
-
- server {
- listen 1935;
-
- ping 10s;
- ping_timeout 3s;
- drop_idle_publisher 10s;
- idle_streams off;
- max_message 4M;
-
- application {{ rtmp_streamer_app_name }} {
- live on;
- meta copy;
-
- allow publish 127.0.0.1;
- deny publish all;
- }
- }
-}
diff --git a/roles/streaming/rtmp/streamer/templates/pod-spec.yml.j2 b/roles/streaming/rtmp/streamer/templates/pod-spec.yml.j2
deleted file mode 100644
index 9d0e7bad..00000000
--- a/roles/streaming/rtmp/streamer/templates/pod-spec.yml.j2
+++ /dev/null
@@ -1,143 +0,0 @@
-containers:
-- name: nginx
- image: registry.gitlab.com/spreadspace/docker/nginx:{{ rtmp_streamer_nginx_image_version }}
- imagePullPolicy: Always
- command:
- - nginx
- args:
- - -c
- - /srv/nginx.conf
- - -g
- - "daemon off;"
- ports:
- - containerPort: 1935
- hostPort: {{ rtmp_streamer_port }}
- volumeMounts:
- - name: home
- mountPath: /srv
- readOnly: true
- - name: nginx-lib
- mountPath: /var/lib/nginx
-
-- name: source
- image: registry.gitlab.com/spreadspace/docker/ffmpeg:{{ rtmp_streamer_ffmpeg_image_version }}
- imagePullPolicy: Always
- command:
- - /usr/local/bin/generic-rtmp.py
- args:
-{% for param in rtmp_streamer_input %}
- - '{{ param }}'
-{% endfor %}
- env:
- - name: CONFIG_FILENAME
- value: /srv/config.yml
- - name: QUALITY_LEVELS
- value: {{ rtmp_streamer_quality_levels | join(',') }}
- - name: AUDIO_TRACKS
- value: {{ rtmp_streamer_audio_track }}
-{% if rtmp_streamer_video_filter_common is defined %}
- - name: VIDEO_FILTER_COMMON
- value: "{{ rtmp_streamer_video_filter_common }}"
-{% endif %}
- securityContext:
- privileged: true
- volumeMounts:
- - name: home
- mountPath: /srv
- readOnly: true
- - name: decklink-device
- mountPath: /dev/blackmagic
- - name: decklink-libs
- subPath: libDeckLinkAPI.so
- mountPath: /usr/lib/libDeckLinkAPI.so
- readOnly: true
- - name: decklink-libs
- subPath: libDeckLinkPreviewAPI.so
- mountPath: /usr/lib/libDeckLinkPreviewAPI.so
- readOnly: true
- - name: decklink-libs
- subPath: blackmagic
- mountPath: /usr/lib/blackmagic
- readOnly: true
-
-{% for name, forward in rtmp_streamer_forwards.items() %}
-- name: "forward-{{ name }}"
- image: registry.gitlab.com/spreadspace/docker/ffmpeg:{{ rtmp_streamer_ffmpeg_image_version }}
- imagePullPolicy: Always
- command:
- - /usr/bin/ffmpeg
- args:
- - -f
- - live_flv
- - -rtmp_live
- - live
- - -i
- - "rtmp://127.0.0.1/{{ rtmp_streamer_app_name }}/{{ forward.level }}"
- - -c:a
- - copy
- - -c:v
- - copy
- - -f
- - flv
- - "{{ forward.url }}"
-
-{% endfor %}
-{% if rtmp_streamer_recording is defined %}
-- name: record
- image: registry.gitlab.com/spreadspace/docker/ffmpeg:{{ rtmp_streamer_ffmpeg_image_version }}
- imagePullPolicy: Always
- command:
- - /usr/bin/ffmpeg
- args:
- - -f
- - live_flv
- - -rtmp_live
- - live
- - -i
- - 'rtmp://127.0.0.1/{{ rtmp_streamer_app_name }}/{{ rtmp_streamer_recording.level }}'
- - -c:a
- - copy
- - -c:v
- - copy
- - -f
- - segment
- - -segment_atclocktime
- - '1'
- - -segment_time
- - '{{ rtmp_streamer_recording.segment_time | default(3600) }}'
- - -segment_clocktime_offset
- - '{{ rtmp_streamer_recording.segment_clocktime_offset | default(0) }}'
- - -strftime
- - '1'
- - -reset_timestamps
- - '1'
- - '%Y-%m-%d_%H-%M-%S.mkv'
- workingDir: /srv/recordings
- volumeMounts:
- - name: home
- mountPath: /srv
- readOnly: true
- - name: recordings
- mountPath: /srv/recordings
-
-{% endif %}
-volumes:
-- name: home
- hostPath:
- path: "{{ rtmp_streamer_base_path }}/{{ rtmp_streamer_inst_name }}"
-- name: nginx-lib
- emptyDir:
- medium: Memory
-- name: decklink-device
- hostPath:
- path: /dev/blackmagic
-- name: decklink-libs
- hostPath:
- type: Directory
- path: /usr/lib/
-{% if rtmp_streamer_recording is defined %}
-- name: recordings
- hostPath:
- type: Directory
- path: "{{ rtmp_streamer_base_path }}/{{ rtmp_streamer_inst_name }}/recordings"
-{% endif %}