diff options
Diffstat (limited to 'roles/streaming/rtmp')
-rw-r--r-- | roles/streaming/rtmp/streamer/defaults/main.yml | 30 | ||||
-rw-r--r-- | roles/streaming/rtmp/streamer/tasks/main.yml | 45 | ||||
-rw-r--r-- | roles/streaming/rtmp/streamer/templates/nginx.conf.j2 | 32 | ||||
-rw-r--r-- | roles/streaming/rtmp/streamer/templates/pod-spec.yml.j2 | 143 |
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 %} |