diff options
-rw-r--r-- | inventory/host_vars/ch-dione.yml | 4 | ||||
-rw-r--r-- | inventory/host_vars/ch-helene.yml | 4 | ||||
-rw-r--r-- | inventory/host_vars/ch-thetys.yml | 4 | ||||
-rw-r--r-- | inventory/host_vars/ele-thetys.yml | 4 | ||||
-rw-r--r-- | inventory/host_vars/glt-calypso.yml | 11 | ||||
-rw-r--r-- | inventory/host_vars/glt-dione.yml | 4 | ||||
-rw-r--r-- | inventory/host_vars/glt-helene.yml | 4 | ||||
-rw-r--r-- | inventory/host_vars/glt-telesto.yml | 11 | ||||
-rw-r--r-- | inventory/host_vars/glt-thetys.yml | 4 | ||||
-rw-r--r-- | inventory/host_vars/glt-tsdatacop.yml | 11 | ||||
-rw-r--r-- | inventory/host_vars/s2-thetys.yml | 4 | ||||
-rw-r--r-- | roles/streaming/recorder/defaults/main.yml | 14 | ||||
-rw-r--r-- | roles/streaming/recorder/tasks/main.yml | 14 | ||||
-rw-r--r-- | roles/streaming/recorder/templates/pod-spec.yml.j2 | 51 | ||||
-rw-r--r-- | roles/streaming/streamer/rtmp/defaults/main.yml | 6 |
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 |