summaryrefslogtreecommitdiff
path: root/roles/streaming/rtmp/streamer/templates/pod-spec.yml.j2
blob: 5f97d9b8d7f092bad623c6cbcd208c78c87a3501 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
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:
  - ffmpeg-decklink-rtmp.py
  args:
  - "{{ rtmp_streamer_decklink_card }}"
{% for level in rtmp_streamer_quality_levels %}
  - {{ level }}
{% endfor %}
  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
  env:
  - name: CONFIG_FILENAME
    value: /srv/config.yml

{% 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 %}