diff options
author | Christian Pointner <equinox@spreadspace.org> | 2022-05-29 20:54:05 +0200 |
---|---|---|
committer | Christian Pointner <equinox@spreadspace.org> | 2022-05-29 20:54:05 +0200 |
commit | 939588873587a62dab09ad86595807a6a3a83bfa (patch) | |
tree | ab8a1f02e5d9bb38b51d41a51e785f9bc2fe1508 /roles | |
parent | cosmetic changes (diff) |
streaming/recorder: make use of new recording script in docker container
Diffstat (limited to 'roles')
-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 |
4 files changed, 41 insertions, 44 deletions
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 |