jibri.conf 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. {{ $IGNORE_CERTIFICATE_ERRORS := .Env.IGNORE_CERTIFICATE_ERRORS | default "false" | toBool -}}
  2. {{ $ENABLE_PROMETHEUS := .Env.JIBRI_ENABLE_PROMETHEUS | default "false" | toBool -}}
  3. {{ $JIBRI_RECORDING_RESOLUTION := .Env.JIBRI_RECORDING_RESOLUTION | default "1280x720" -}}
  4. {{ $JIBRI_RECORDING_VIDEO_ENCODE_PRESET_RECORDING := .Env.JIBRI_RECORDING_VIDEO_ENCODE_PRESET_RECORDING | default "ultrafast" -}}
  5. {{ $JIBRI_RECORDING_VIDEO_ENCODE_PRESET_STREAMING := .Env.JIBRI_RECORDING_VIDEO_ENCODE_PRESET_STREAMING | default "veryfast" -}}
  6. {{ $JIBRI_RECORDING_CONSTANT_RATE_FACTOR := .Env.JIBRI_RECORDING_CONSTANT_RATE_FACTOR | default 25 -}}
  7. {{ $JIBRI_RECORDING_FRAMERATE := .Env.JIBRI_RECORDING_FRAMERATE | default 30 -}}
  8. {{ $JIBRI_RECORDING_QUEUE_SIZE := .Env.JIBRI_RECORDING_QUEUE_SIZE | default 4096 -}}
  9. {{ $JIBRI_RECORDING_STREAMING_MAX_BITRATE := .Env.JIBRI_RECORDING_STREAMING_MAX_BITRATE | default "2976k" -}}
  10. {{ $JIBRI_SINGLE_USE_MODE := .Env.JIBRI_SINGLE_USE_MODE | default "false" -}}
  11. {{ $STATSD_HOST := .Env.JIBRI_STATSD_HOST | default "localhost" -}}
  12. {{ $STATSD_PORT := .Env.JIBRI_STATSD_PORT | default "8125" -}}
  13. jibri {
  14. // A unique identifier for this Jibri
  15. id = "{{ .Env.JIBRI_INSTANCE_ID }}"
  16. // Whether or not Jibri should return to idle state after handling
  17. // (successfully or unsuccessfully) a request. A value of 'true'
  18. // here means that a Jibri will NOT return back to the IDLE state
  19. // and will need to be restarted in order to be used again.
  20. single-use-mode = {{ $JIBRI_SINGLE_USE_MODE }}
  21. api {
  22. {{ if or .Env.JIBRI_HTTP_API_EXTERNAL_PORT .Env.JIBRI_HTTP_API_INTERNAL_PORT -}}
  23. http {
  24. {{ if .Env.JIBRI_HTTP_API_EXTERNAL_PORT -}}
  25. external-api-port = {{ .Env.JIBRI_HTTP_API_EXTERNAL_PORT }}
  26. {{ end -}}
  27. {{ if .Env.JIBRI_HTTP_API_INTERNAL_PORT -}}
  28. internal-api-port = {{ .Env.JIBRI_HTTP_API_INTERNAL_PORT }}
  29. {{ end -}}
  30. }
  31. {{ end -}}
  32. }
  33. recording {
  34. recordings-directory = "{{ .Env.JIBRI_RECORDING_DIR | default "/config/recordings" }}"
  35. {{ if .Env.JIBRI_FINALIZE_RECORDING_SCRIPT_PATH -}}
  36. finalize-script = "{{ .Env.JIBRI_FINALIZE_RECORDING_SCRIPT_PATH }}"
  37. {{ end -}}
  38. }
  39. {{ if .Env.JIBRI_WEBHOOK_SUBSCRIBERS -}}
  40. webhook {
  41. subscribers = [{{ range $index, $element := (splitList "," .Env.JIBRI_WEBHOOK_SUBSCRIBERS | compact) }}{{ if gt $index 0}},{{ end }}"{{ $element }}"{{ end }}]
  42. }{{ end }}
  43. ffmpeg {
  44. resolution = "{{ $JIBRI_RECORDING_RESOLUTION }}"
  45. // The audio source that will be used to capture audio on Linux
  46. audio-source = "pulse"
  47. // The audio device that will be used to capture audio on Linux
  48. audio-device = "default"
  49. framerate = {{ $JIBRI_RECORDING_FRAMERATE }}
  50. queue-size = {{ $JIBRI_RECORDING_QUEUE_SIZE }}
  51. streaming-max-bitrate = "{{ $JIBRI_RECORDING_STREAMING_MAX_BITRATE }}"
  52. // Available presets: ultrafast, superfast, veryfast, faster, fast, medium,
  53. // slow, slower, veryslow, placebo
  54. video-encode-preset-streaming = "{{ $JIBRI_RECORDING_VIDEO_ENCODE_PRESET_STREAMING }}"
  55. video-encode-preset-recording = "{{ $JIBRI_RECORDING_VIDEO_ENCODE_PRESET_RECORDING }}"
  56. // The range of the CRF scale is 0-51, where 0 is lossless,
  57. // 23 is the default, and 51 is worst quality possible.
  58. h264-constant-rate-factor = {{ $JIBRI_RECORDING_CONSTANT_RATE_FACTOR }}
  59. }
  60. {{ if .Env.CHROMIUM_FLAGS -}}
  61. chrome {
  62. // The flags which will be passed to chromium when launching
  63. flags = [
  64. "{{ join "\",\"" (splitList "," .Env.CHROMIUM_FLAGS | compact) }}"
  65. ]
  66. }
  67. {{ else if $IGNORE_CERTIFICATE_ERRORS -}}
  68. chrome {
  69. flags = [
  70. "--use-fake-ui-for-media-stream",
  71. "--start-maximized",
  72. "--kiosk",
  73. "--enabled",
  74. "--autoplay-policy=no-user-gesture-required",
  75. "--ignore-certificate-errors"
  76. ]
  77. }
  78. {{ end -}}
  79. stats {
  80. {{- if .Env.ENABLE_STATS_D }}
  81. enable-stats-d = {{ .Env.ENABLE_STATS_D }}
  82. host = "{{ $STATSD_HOST }}"
  83. port = {{ $STATSD_PORT }}
  84. {{- end }}
  85. prometheus.enabled = {{ $ENABLE_PROMETHEUS }}
  86. }
  87. }
  88. include "xmpp.conf"
  89. include "/config/custom-jibri.conf"