jibri.conf 3.6 KB

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