summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--inventory/host_vars/ch-dione.yml4
-rw-r--r--inventory/host_vars/ch-helene.yml4
-rw-r--r--inventory/host_vars/ch-thetys.yml4
-rw-r--r--inventory/host_vars/ele-thetys.yml4
-rw-r--r--inventory/host_vars/glt-calypso.yml11
-rw-r--r--inventory/host_vars/glt-dione.yml4
-rw-r--r--inventory/host_vars/glt-helene.yml4
-rw-r--r--inventory/host_vars/glt-telesto.yml11
-rw-r--r--inventory/host_vars/glt-thetys.yml4
-rw-r--r--inventory/host_vars/glt-tsdatacop.yml11
-rw-r--r--inventory/host_vars/s2-thetys.yml4
-rw-r--r--roles/streaming/recorder/defaults/main.yml14
-rw-r--r--roles/streaming/recorder/tasks/main.yml14
-rw-r--r--roles/streaming/recorder/templates/pod-spec.yml.j251
-rw-r--r--roles/streaming/streamer/rtmp/defaults/main.yml6
15 files changed, 75 insertions, 75 deletions
diff --git a/inventory/host_vars/ch-dione.yml b/inventory/host_vars/ch-dione.yml
index a843d340..4aeec11d 100644
--- a/inventory/host_vars/ch-dione.yml
+++ b/inventory/host_vars/ch-dione.yml
@@ -63,6 +63,6 @@ kubelet_storage:
# streamer_rtmp_base_path: /srv/storage/streamer
# streamer_rtmp_inst_name: feed
# streamer_rtmp_nginx_image_version: 2022-05-15.24
-# streamer_rtmp_ffmpeg_image_version: bullseye-decklink11.7-2022-05-28.17
+# streamer_rtmp_ffmpeg_image_version: bullseye-decklink11.7-2022-05-29.21
# streamer_rtmp_input: ['-f', 'decklink', '-format_code', 'Hp50', '-ac', '2', '-i', 'DeckLink 8K Pro (1)']
-# streamer_rtmp_video_filter_common: "colorspace=iall=bt709:irange=tv:all=bt709:range=tv:format=yuv420p,setdar=dar=16/9"
+# streamer_rtmp_video_filter_common: "colorspace=iall=bt709:irange=tv:all=bt709:range=tv:format=yuv420p"
diff --git a/inventory/host_vars/ch-helene.yml b/inventory/host_vars/ch-helene.yml
index e6d06a1c..d8027300 100644
--- a/inventory/host_vars/ch-helene.yml
+++ b/inventory/host_vars/ch-helene.yml
@@ -63,6 +63,6 @@ kubelet_storage:
# streamer_rtmp_base_path: /srv/storage/streamer
# streamer_rtmp_inst_name: feed
# streamer_rtmp_nginx_image_version: 2022-05-15.24
-# streamer_rtmp_ffmpeg_image_version: bullseye-decklink11.7-2022-05-28.17
+# streamer_rtmp_ffmpeg_image_version: bullseye-decklink11.7-2022-05-29.21
# streamer_rtmp_input: ['-f', 'decklink', '-format_code', 'Hp50', '-ac', '2', '-i', 'DeckLink SDI 4K']
-# streamer_rtmp_video_filter_common: "colorspace=iall=bt709:irange=tv:all=bt709:range=tv:format=yuv420p,setdar=dar=16/9"
+# streamer_rtmp_video_filter_common: "colorspace=iall=bt709:irange=tv:all=bt709:range=tv:format=yuv420p"
diff --git a/inventory/host_vars/ch-thetys.yml b/inventory/host_vars/ch-thetys.yml
index 8602ef34..37bf9aa9 100644
--- a/inventory/host_vars/ch-thetys.yml
+++ b/inventory/host_vars/ch-thetys.yml
@@ -56,6 +56,6 @@ kubernetes_standalone_cni_variant: with-portmap
streamer_rtmp_base_path: /srv/storage/streamer
streamer_rtmp_inst_name: feed
streamer_rtmp_nginx_image_version: 2022-05-15.24
-streamer_rtmp_ffmpeg_image_version: bullseye-decklink11.7-2022-05-28.17
+streamer_rtmp_ffmpeg_image_version: bullseye-decklink11.7-2022-05-29.21
streamer_rtmp_input: ['-f', 'decklink', '-video_input', 'sdi', '-format_code', 'Hp25', '-ac', '2', '-i', 'DeckLink Mini Recorder']
-streamer_rtmp_video_filter_common: "colorspace=iall=bt709:irange=tv:all=bt709:range=tv:format=yuv420p,setdar=dar=16/9"
+streamer_rtmp_video_filter_common: "colorspace=iall=bt709:irange=tv:all=bt709:range=tv:format=yuv420p"
diff --git a/inventory/host_vars/ele-thetys.yml b/inventory/host_vars/ele-thetys.yml
index e6191a2d..79da69f4 100644
--- a/inventory/host_vars/ele-thetys.yml
+++ b/inventory/host_vars/ele-thetys.yml
@@ -72,9 +72,9 @@ streamer_rtmp_storage:
streamer_rtmp_base_path: /srv/streamer
streamer_rtmp_inst_name: emc-test
streamer_rtmp_nginx_image_version: 2022-05-15.24
-streamer_rtmp_ffmpeg_image_version: bullseye-decklink11.7-2022-05-28.17
+streamer_rtmp_ffmpeg_image_version: bullseye-decklink11.7-2022-05-29.21
streamer_rtmp_input: ['-f', 'decklink', '-video_input', 'sdi', '-format_code', 'Hp25', '-ac', '2', '-i', 'DeckLink Mini Recorder']
-streamer_rtmp_video_filter_common: "colorspace=iall=bt709:irange=tv:all=bt709:range=tv:format=yuv420p,setdar=dar=16/9"
+streamer_rtmp_video_filter_common: "colorspace=iall=bt709:irange=tv:all=bt709:range=tv:format=yuv420p"
streamer_rtmp_recording:
level: full
diff --git a/inventory/host_vars/glt-calypso.yml b/inventory/host_vars/glt-calypso.yml
index d671a680..1be55df8 100644
--- a/inventory/host_vars/glt-calypso.yml
+++ b/inventory/host_vars/glt-calypso.yml
@@ -1,5 +1,6 @@
---
system_lvm_volume_size_root: 3G
+
install:
efi: true
disks:
@@ -37,11 +38,11 @@ zfs_pools:
create_vdevs: mirror /dev/disk/by-id/ata-SAMSUNG_HD103UJ_S1PVJDWQ720805 /dev/disk/by-id/ata-SAMSUNG_HD103UJ_S1PVJDWQ720811
-blackmagic_desktopvideo_version: 11.7a12
+blackmagic_desktopvideo_version: 12.2.2a6
blackmagic_desktopvideo_include_gui: yes
-docker_pkg_provider: docker-com
+docker_pkg_provider: docker-com
docker_storage:
type: lvm
vg: "{{ host_name }}"
@@ -68,9 +69,9 @@ recorder_storage:
name: recorder
recorder_base_path: /srv/storage/recorder
recorder_inst_name: feed-glt21s1
-recorder_ffmpeg_image_version: bullseye-decklink11.7-2022-05-15.13
-recorder_decklink_card: "DeckLink SDI (1)"
-recorder_decklink_format_code: Hp25
+recorder_ffmpeg_image_version: bullseye-decklink11.7-2022-05-29.21
+recorder_input: ['-f', 'decklink', '-video_input', 'sdi', '-format_code', 'Hp25', '-ac', '2', '-i', 'DeckLink SDI (1)']
+recorder_video_filter_common: "colorspace=iall=bt709:irange=tv:all=bt709:range=tv"
recorder_segment_time: 3600
recorder_segment_clocktime_offset: 3300
diff --git a/inventory/host_vars/glt-dione.yml b/inventory/host_vars/glt-dione.yml
index 829fa1e9..178f3da1 100644
--- a/inventory/host_vars/glt-dione.yml
+++ b/inventory/host_vars/glt-dione.yml
@@ -62,9 +62,9 @@ streamer_rtmp_storage:
streamer_rtmp_base_path: /srv/streamer
streamer_rtmp_inst_name: feed-glt21s1
streamer_rtmp_nginx_image_version: 2022-05-15.24
-streamer_rtmp_ffmpeg_image_version: bullseye-decklink11.7-2022-05-28.17
+streamer_rtmp_ffmpeg_image_version: bullseye-decklink11.7-2022-05-29.21
streamer_rtmp_input: ['-f', 'decklink', '-format_code', 'Hp25', '-ac', '2', '-i', 'DeckLink 8K Pro (1)']
-streamer_rtmp_video_filter_common: "colorspace=iall=bt709:irange=tv:all=bt709:range=tv:format=yuv420p,setdar=dar=16/9"
+streamer_rtmp_video_filter_common: "colorspace=iall=bt709:irange=tv:all=bt709:range=tv:format=yuv420p"
streamer_rtmp_recording:
level: full
diff --git a/inventory/host_vars/glt-helene.yml b/inventory/host_vars/glt-helene.yml
index fed0edac..07eaf9f7 100644
--- a/inventory/host_vars/glt-helene.yml
+++ b/inventory/host_vars/glt-helene.yml
@@ -62,9 +62,9 @@ streamer_rtmp_storage:
streamer_rtmp_base_path: /srv/streamer
streamer_rtmp_inst_name: feed-glt21s2
streamer_rtmp_nginx_image_version: 2022-05-15.24
-streamer_rtmp_ffmpeg_image_version: bullseye-decklink11.7-2022-05-28.17
+streamer_rtmp_ffmpeg_image_version: bullseye-decklink11.7-2022-05-29.21
streamer_rtmp_input: ['-f', 'decklink', '-format_code', 'Hp25', '-ac', '2', '-i', 'DeckLink SDI 4K']
-streamer_rtmp_video_filter_common: "colorspace=iall=bt709:irange=tv:all=bt709:range=tv:format=yuv420p,setdar=dar=16/9"
+streamer_rtmp_video_filter_common: "colorspace=iall=bt709:irange=tv:all=bt709:range=tv:format=yuv420p"
streamer_rtmp_recording:
level: full
diff --git a/inventory/host_vars/glt-telesto.yml b/inventory/host_vars/glt-telesto.yml
index 421226d9..778c2804 100644
--- a/inventory/host_vars/glt-telesto.yml
+++ b/inventory/host_vars/glt-telesto.yml
@@ -1,5 +1,6 @@
---
system_lvm_volume_size_root: 3G
+
install:
efi: true
disks:
@@ -37,11 +38,11 @@ zfs_pools:
create_vdevs: mirror /dev/disk/by-id/ata-SAMSUNG_HD103UJ_S1PVJDWQ720808 /dev/disk/by-id/ata-SAMSUNG_HD103UJ_S1PVJDWQ720810
-blackmagic_desktopvideo_version: 11.7a12
+blackmagic_desktopvideo_version: 12.2.2a6
blackmagic_desktopvideo_include_gui: yes
-docker_pkg_provider: docker-com
+docker_pkg_provider: docker-com
docker_storage:
type: lvm
vg: "{{ host_name }}"
@@ -68,9 +69,9 @@ recorder_storage:
name: recorder
recorder_base_path: /srv/storage/recorder
recorder_inst_name: feed-glt21s2
-recorder_ffmpeg_image_version: bullseye-decklink11.7-2022-05-15.13
-recorder_decklink_card: "DeckLink SDI"
-recorder_decklink_format_code: Hp25
+recorder_ffmpeg_image_version: bullseye-decklink11.7-2022-05-29.21
+recorder_input: ['-f', 'decklink', '-video_input', 'sdi', '-format_code', 'Hp25', '-ac', '2', '-i', 'DeckLink SDI']
+recorder_video_filter_common: "colorspace=iall=bt709:irange=tv:all=bt709:range=tv"
recorder_segment_time: 3600
recorder_segment_clocktime_offset: 3300
diff --git a/inventory/host_vars/glt-thetys.yml b/inventory/host_vars/glt-thetys.yml
index 0540db27..52ff4bdc 100644
--- a/inventory/host_vars/glt-thetys.yml
+++ b/inventory/host_vars/glt-thetys.yml
@@ -68,9 +68,9 @@ streamer_rtmp_storage:
streamer_rtmp_base_path: /srv/streamer
streamer_rtmp_inst_name: feed-glt21s3
streamer_rtmp_nginx_image_version: 2022-05-15.24
-streamer_rtmp_ffmpeg_image_version: bullseye-decklink11.7-2022-05-28.17
+streamer_rtmp_ffmpeg_image_version: bullseye-decklink11.7-2022-05-29.21
streamer_rtmp_input: ['-f', 'decklink', '-video_input', 'sdi', '-format_code', 'Hp25', '-ac', '2', '-i', 'DeckLink Mini Recorder']
-streamer_rtmp_video_filter_common: "colorspace=iall=bt709:irange=tv:all=bt709:range=tv:format=yuv420p,setdar=dar=16/9"
+streamer_rtmp_video_filter_common: "colorspace=iall=bt709:irange=tv:all=bt709:range=tv:format=yuv420p"
streamer_rtmp_recording:
level: full
diff --git a/inventory/host_vars/glt-tsdatacop.yml b/inventory/host_vars/glt-tsdatacop.yml
index c72b57e2..338a1057 100644
--- a/inventory/host_vars/glt-tsdatacop.yml
+++ b/inventory/host_vars/glt-tsdatacop.yml
@@ -1,5 +1,6 @@
---
system_lvm_volume_size_root: 3G
+
install:
efi: false
disks:
@@ -33,11 +34,11 @@ lvm_groups:
- /dev/disk/by-id/ata-WDC_WD5000AAJS-00TKA0_WD-WCAPW2771922-part1
-blackmagic_desktopvideo_version: 11.7a12
+blackmagic_desktopvideo_version: 12.2.2a6
blackmagic_desktopvideo_include_gui: yes
-docker_pkg_provider: docker-com
+docker_pkg_provider: docker-com
docker_storage:
type: lvm
vg: "{{ host_name }}"
@@ -66,9 +67,9 @@ recorder_storage:
fs: ext4
recorder_base_path: /srv/recorder
recorder_inst_name: feed-glt21s3
-recorder_ffmpeg_image_version: bullseye-decklink11.7-2022-05-15.13
-recorder_decklink_card: "DeckLink Mini Recorder"
-recorder_decklink_format_code: Hp25
+recorder_ffmpeg_image_version: bullseye-decklink11.7-2022-05-29.21
+recorder_input: ['-f', 'decklink', '-video_input', 'sdi', '-format_code', 'Hp25', '-ac', '2', '-i', 'DeckLink Mini Recorder']
+recorder_video_filter_common: "colorspace=iall=bt709:irange=tv:all=bt709:range=tv"
recorder_segment_time: 3600
recorder_segment_clocktime_offset: 3300
diff --git a/inventory/host_vars/s2-thetys.yml b/inventory/host_vars/s2-thetys.yml
index f2298d98..c7809685 100644
--- a/inventory/host_vars/s2-thetys.yml
+++ b/inventory/host_vars/s2-thetys.yml
@@ -71,9 +71,9 @@ zfs_pools:
streamer_rtmp_base_path: /srv/storage/streamer
streamer_rtmp_inst_name: feed
streamer_rtmp_nginx_image_version: 2022-05-15.24
-streamer_rtmp_ffmpeg_image_version: bullseye-decklink11.7-2022-05-28.17
+streamer_rtmp_ffmpeg_image_version: bullseye-decklink11.7-2022-05-29.21
streamer_rtmp_input: ['-f', 'decklink', '-video_input', 'sdi', '-format_code', 'Hp25', '-ac', '2', '-i', 'DeckLink Mini Recorder']
-streamer_rtmp_video_filter_common: "colorspace=iall=bt709:irange=tv:all=bt709:range=tv:format=yuv420p,setdar=dar=16/9"
+streamer_rtmp_video_filter_common: "colorspace=iall=bt709:irange=tv:all=bt709:range=tv:format=yuv420p"
streamer_rtmp_recording:
level: full
diff --git a/roles/streaming/recorder/defaults/main.yml b/roles/streaming/recorder/defaults/main.yml
index 6bcfde17..e7dca7f1 100644
--- a/roles/streaming/recorder/defaults/main.yml
+++ b/roles/streaming/recorder/defaults/main.yml
@@ -5,12 +5,14 @@
recorder_base_path: /srv/recorder
# recorder_inst_name: feed
-# recorder_ffmpeg_image_version: 2021-02-24.7
-# recorder_decklink_card: "DeckLink Mini Recorder"
-# recorder_decklink_format_code: Hp25
-recorder_audio_channels: 2
-recorder_audio_bitrate: 256k
-recorder_video_crf: 16
+# recorder_ffmpeg_image_version: bullseye-decklink11.7-2022-05-29.21
+# recorder_input: ['-f', 'decklink', '-video_input', 'sdi', '-format_code', 'Hp25', '-ac', '2', '-i', 'DeckLink Mini Recorder']
+# recorder_video_filter_common: "colorspace=iall=bt709:irange=tv:all=bt709:range=tv"
+recorder_audio_tracks:
+ - all
+recorder_quality_level: full
+
+recorder_config: {}
recorder_segment_time: 3600
recorder_segment_clocktime_offset: 0
diff --git a/roles/streaming/recorder/tasks/main.yml b/roles/streaming/recorder/tasks/main.yml
index ee682b89..e1588c83 100644
--- a/roles/streaming/recorder/tasks/main.yml
+++ b/roles/streaming/recorder/tasks/main.yml
@@ -10,6 +10,16 @@
file:
path: "{{ recorder_base_path }}/{{ recorder_inst_name }}"
state: directory
+
+- name: generate recorder config
+ copy:
+ content: "{{ recorder_config | combine({'record': {'segment_time': recorder_segment_time, 'clocktime_offset': recorder_segment_clocktime_offset}}) | to_nice_yaml }}\n"
+ dest: "{{ recorder_base_path }}/{{ recorder_inst_name }}/config.yml"
+
+- name: create recording directory
+ file:
+ path: "{{ recorder_base_path }}/{{ recorder_inst_name }}/recordings"
+ state: directory
owner: app
group: app
@@ -18,5 +28,9 @@
kubernetes_standalone_pod:
name: "recorder-{{ recorder_inst_name }}"
spec: "{{ lookup('template', 'pod-spec.yml.j2') }}"
+ config_hash_items:
+ - path: "{{ recorder_base_path }}/{{ recorder_inst_name }}/config.yml"
+ properties:
+ - checksum
include_role:
name: kubernetes/standalone/pod
diff --git a/roles/streaming/recorder/templates/pod-spec.yml.j2 b/roles/streaming/recorder/templates/pod-spec.yml.j2
index 92f6ce36..cef622bc 100644
--- a/roles/streaming/recorder/templates/pod-spec.yml.j2
+++ b/roles/streaming/recorder/templates/pod-spec.yml.j2
@@ -3,42 +3,23 @@ containers:
image: registry.gitlab.com/spreadspace/docker/ffmpeg:{{ recorder_ffmpeg_image_version }}
imagePullPolicy: Always
command:
- - /usr/bin/ffmpeg
+ - /usr/local/bin/generic-record.py
args:
- - -f
- - decklink
- - -format_code
- - '{{ recorder_decklink_format_code }}'
- - -ac
- - '{{ recorder_audio_channels }}'
- - -i
- - '{{ recorder_decklink_card }}'
- - -c:a
- - aac
- - -b:a
- - '{{ recorder_audio_bitrate }}'
- - -g
- - '1'
- - -c:v
- - libx264
- - -crf
- - '{{ recorder_video_crf }}'
- - -x264-params
- - 'colorprim=bt709:transfer=bt709:colormatrix=bt709:fullrange=off'
- - -f
- - segment
- - -segment_atclocktime
- - '1'
- - -segment_time
- - '{{ recorder_segment_time }}'
- - -segment_clocktime_offset
- - '{{ recorder_segment_clocktime_offset }}'
- - -strftime
- - '1'
- - -reset_timestamps
- - '1'
- - '%Y-%m-%d_%H-%M-%S.mkv'
- workingDir: /srv
+{% for param in recorder_input %}
+ - '{{ param }}'
+{% endfor %}
+ env:
+ - name: CONFIG_FILENAME
+ value: /srv/config.yml
+ - name: QUALITY_LEVELS
+ value: {{ recorder_quality_level }}
+ - name: AUDIO_TRACKS
+ value: {{ recorder_audio_tracks | join(',') }}
+{% if recorder_video_filter_common is defined %}
+ - name: VIDEO_FILTER_COMMON
+ value: "{{ recorder_video_filter_common }}"
+{% endif %}
+ workingDir: /srv/recordings
securityContext:
privileged: true
volumeMounts:
diff --git a/roles/streaming/streamer/rtmp/defaults/main.yml b/roles/streaming/streamer/rtmp/defaults/main.yml
index 82b16b67..a4faf706 100644
--- a/roles/streaming/streamer/rtmp/defaults/main.yml
+++ b/roles/streaming/streamer/rtmp/defaults/main.yml
@@ -7,11 +7,11 @@ streamer_rtmp_base_path: /srv/streamer/rtmp
streamer_rtmp_port: 1935
# streamer_rtmp_inst_name: feed
# streamer_rtmp_nginx_image_version: 2022-05-15.24
-# streamer_rtmp_ffmpeg_image_version: bullseye-decklink11.7-2022-05-28.17
+# streamer_rtmp_ffmpeg_image_version: bullseye-decklink11.7-2022-05-29.21
# streamer_rtmp_input: ['-f', 'decklink', '-video_input', 'sdi', '-format_code', 'Hp25', '-ac', '2', '-i', 'DeckLink Mini Recorder']
-# streamer_rtmp_video_filter_common: "colorspace=iall=bt709:irange=tv:all=bt709:range=tv:format=yuv420p,setdar=dar=16/9"
+# streamer_rtmp_video_filter_common: "colorspace=iall=bt709:irange=tv:all=bt709:range=tv:format=yuv420p"
streamer_rtmp_app_name: "{{ streamer_rtmp_inst_name }}"
-streamer_rtmp_audio_track: orig
+streamer_rtmp_audio_track: all
streamer_rtmp_quality_levels:
- full