Streaming/recording failed (ffmpeg not called?)

Hi guys,
I am out of ideas now. I try to set the streaming and recording on same server according this guide: https://tweenpath.net/installing-jitsi-jibri-machine/
When I click the record/stream I got "Recording/Streaming failed to start.

I don’t see anything “FATAL” in the logs but it looks like ffmpeg is not called (no logs presented) - I tried to create /usr/local/bin/ffmpeg script and don’t see any output (if I call ffmpeg manualy, it works and I can see file created by script).
Maybe I am overseeing something obvious so I would like to ask you to check my setup.
Thank you very much.

Logs and config (passwords and domain changed):
uname -a
Linux vpsfc108137 4.4.0-184-generic #214-Ubuntu SMP Thu Jun 4 10:14:11 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

java -version
openjdk version “1.8.0_265”
OpenJDK Runtime Environment (build 1.8.0_265-8u265-b01-0ubuntu2~16.04-b01)
OpenJDK 64-Bit Server VM (build 25.265-b01, mixed mode)

jicofo.log

Jicofo 2020-09-29 15:41:59.888 INFO: [10322] org.jitsi.jicofo.xmpp.FocusComponent.handleConferenceIq().401 Focus request for room: test2@conference.meet.mydomain.org
Jicofo 2020-09-29 15:41:59.890 INFO: [10322] org.jitsi.jicofo.FocusManager.log() Created new focus for test2@conference.meet.mydomain.org@auth.meet.mydomain.org. Conference count 1,options: 
Jicofo 2020-09-29 15:41:59.891 INFO: [10322] org.jitsi.jicofo.JitsiMeetConferenceImpl.log() Lip-sync enabled in test2@conference.meet.mydomain.org
Jicofo 2020-09-29 15:41:59.891 INFO: [10322] org.jitsi.jicofo.JitsiMeetConferenceImpl.log() Joining the room: test2@conference.meet.mydomain.org
Jicofo 2020-09-29 15:42:00.290 INFO: [27] org.jitsi.jicofo.ChatRoomRoleAndPresence.log() Chat room event ChatRoomMemberPresenceChangeEvent[type=MemberJoined sourceRoom=org.jitsi.impl.protocol.xmpp.ChatRoomImpl@40ce4875 member=ChatMember[test2@conference.meet.mydomain.org/2e549282, jid: null]@815107214]
Jicofo 2020-09-29 15:42:00.292 INFO: [27] org.jitsi.jicofo.ChatRoomRoleAndPresence.log() Granted owner to test2@conference.meet.mydomain.org/2e549282
Jicofo 2020-09-29 15:42:00.292 INFO: [27] org.jitsi.jicofo.JitsiMeetConferenceImpl.log() Member test2@conference.meet.mydomain.org/2e549282 joined.

Jibri log:

log.0.txt
2020-09-28 11:51:02.623 INFO: [1] org.jitsi.jibri.Main.handleCommandLineArgs() Jibri run with args [--config, /etc/jitsi/jibri/config.json]
2020-09-28 11:51:02.765 INFO: [1] org.jitsi.jibri.Main.setupLegacyConfig() Checking legacy config file /etc/jitsi/jibri/config.json
2020-09-28 11:51:03.720 INFO: [1] org.jitsi.jibri.Main.loadConfigFromFile() Parsed legacy config:
JibriConfig(jibriId=null, recordingDirectory=/srv/recordings, singleUseMode=null, enabledStatsD=null, finalizeRecordingScriptPath=null, xmppEnvironments=[XmppEnvironmentConfig(name=prod environment, xmppServerHosts=[meet.mydomain.org], xmppDomain=meet.mydomain.org, controlLogin=XmppCredentials(domain=auth.meet.mydomain.org, username=jibri, password=JibriPassword), controlMuc=XmppMuc(domain=internal.auth.meet.mydomain.org, roomName=JibriBrewery, nickname=jibri-nickname), sipControlMuc=null, callLogin=XmppCredentials(domain=recorder.meet.mydomain.org, username=recorder, password=RecPassword), stripFromRoomDomain=conference., usageTimeoutMins=0, trustAllXmppCerts=true)])
2020-09-28 11:51:03.771 FINE: [1] org.jitsi.jibri.config.debug() FallbackSupplier: checking for value via suppliers:
  LambdaSupplier: 'JibriConfig::enableStatsD'
  ConfigSourceSupplier: key: 'jibri.stats.enable-stats-d', type: 'kotlin.Boolean', source: 'config'
2020-09-28 11:51:03.772 FINE: [1] org.jitsi.jibri.config.debug() LambdaSupplier: Trying to retrieve value via JibriConfig::enableStatsD
2020-09-28 11:51:03.775 FINE: [1] org.jitsi.jibri.config.debug() FallbackSupplier: failed to find value via LambdaSupplier: 'JibriConfig::enableStatsD': org.jitsi.metaconfig.ConfigException$UnableToRetrieve$Error: class kotlin.KotlinNullPointerException
2020-09-28 11:51:03.776 FINE: [1] org.jitsi.jibri.config.debug() ConfigSourceSupplier: Trying to retrieve key 'jibri.stats.enable-stats-d' from source 'config' as type kotlin.Boolean
2020-09-28 11:51:03.807 FINE: [1] org.jitsi.jibri.config.debug() ConfigSourceSupplier: Successfully retrieved key 'jibri.stats.enable-stats-d' from source 'config' as type kotlin.Boolean
2020-09-28 11:51:03.809 FINE: [1] org.jitsi.jibri.config.debug() FallbackSupplier: value found via ConfigSourceSupplier: key: 'jibri.stats.enable-stats-d', type: 'kotlin.Boolean', source: 'config'
2020-09-28 11:51:03.832 FINE: [1] org.jitsi.jibri.config.debug() FallbackSupplier: checking for value via suppliers:
  LambdaSupplier: 'JibriConfig::jibriId'
  ConfigSourceSupplier: key: 'jibri.id', type: 'kotlin.String', source: 'config'
2020-09-28 11:51:03.833 FINE: [1] org.jitsi.jibri.config.debug() LambdaSupplier: Trying to retrieve value via JibriConfig::jibriId
2020-09-28 11:51:03.833 FINE: [1] org.jitsi.jibri.config.debug() FallbackSupplier: failed to find value via LambdaSupplier: 'JibriConfig::jibriId': org.jitsi.metaconfig.ConfigException$UnableToRetrieve$Error: class kotlin.KotlinNullPointerException
2020-09-28 11:51:03.833 FINE: [1] org.jitsi.jibri.config.debug() ConfigSourceSupplier: Trying to retrieve key 'jibri.id' from source 'config' as type kotlin.String
2020-09-28 11:51:03.842 FINE: [1] org.jitsi.jibri.config.debug() ConfigSourceSupplier: Successfully retrieved key 'jibri.id' from source 'config' as type kotlin.String
2020-09-28 11:51:03.843 FINE: [1] org.jitsi.jibri.config.debug() FallbackSupplier: value found via ConfigSourceSupplier: key: 'jibri.id', type: 'kotlin.String', source: 'config'
2020-09-28 11:51:03.844 FINE: [1] org.jitsi.jibri.config.debug() FallbackSupplier: checking for value via suppliers:
  ConfigSourceSupplier: key: 'jibri.webhook.subscribers', type: 'kotlin.collections.List<kotlin.String>', source: 'config'
2020-09-28 11:51:03.844 FINE: [1] org.jitsi.jibri.config.debug() ConfigSourceSupplier: Trying to retrieve key 'jibri.webhook.subscribers' from source 'config' as type kotlin.collections.List<kotlin.String>
2020-09-28 11:51:03.854 FINE: [1] org.jitsi.jibri.config.debug() ConfigSourceSupplier: Successfully retrieved key 'jibri.webhook.subscribers' from source 'config' as type kotlin.collections.List<kotlin.String>
2020-09-28 11:51:03.854 FINE: [1] org.jitsi.jibri.config.debug() FallbackSupplier: value found via ConfigSourceSupplier: key: 'jibri.webhook.subscribers', type: 'kotlin.collections.List<kotlin.String>', source: 'config'
2020-09-28 11:51:04.316 FINE: [1] org.jitsi.jibri.config.debug() ConfigSourceSupplier: Trying to retrieve key 'jibri.jwt-info' from source 'config' as type com.typesafe.config.ConfigObject
2020-09-28 11:51:04.330 FINE: [1] org.jitsi.jibri.config.debug() ConfigSourceSupplier: Successfully retrieved key 'jibri.jwt-info' from source 'config' as type com.typesafe.config.ConfigObject
2020-09-28 11:51:04.331 INFO: [1] org.jitsi.jibri.webhooks.v1.JwtInfo.Companion.fromConfig() got jwtConfig: {}

2020-09-28 11:51:04.332 INFO: [1] org.jitsi.jibri.webhooks.v1.JwtInfo.Companion.fromConfig() Unable to create JwtInfo: com.typesafe.config.ConfigException$Missing: reference.conf @ jar:file:/opt/jitsi/jibri/jibri.jar!/reference.conf: 43: No configuration setting found for key 'signing-key-path'
2020-09-28 11:51:04.352 FINE: [1] org.jitsi.jibri.config.debug() FallbackSupplier: checking for value via suppliers:
  ConfigSourceSupplier: key: 'internal_http_port', type: 'kotlin.Int', source: 'command line args'
  ConfigSourceSupplier: key: 'jibri.api.http.internal-api-port', type: 'kotlin.Int', source: 'config'
2020-09-28 11:51:04.352 FINE: [1] org.jitsi.jibri.config.debug() ConfigSourceSupplier: Trying to retrieve key 'internal_http_port' from source 'command line args' as type kotlin.Int
2020-09-28 11:51:04.353 FINE: [1] org.jitsi.jibri.config.debug() FallbackSupplier: failed to find value via ConfigSourceSupplier: key: 'internal_http_port', type: 'kotlin.Int', source: 'command line args': org.jitsi.metaconfig.ConfigException$UnableToRetrieve$NotFound: not found
2020-09-28 11:51:04.354 FINE: [1] org.jitsi.jibri.config.debug() ConfigSourceSupplier: Trying to retrieve key 'jibri.api.http.internal-api-port' from source 'config' as type kotlin.Int
2020-09-28 11:51:04.356 FINE: [1] org.jitsi.jibri.config.debug() ConfigSourceSupplier: Successfully retrieved key 'jibri.api.http.internal-api-port' from source 'config' as type kotlin.Int
2020-09-28 11:51:04.357 FINE: [1] org.jitsi.jibri.config.debug() FallbackSupplier: value found via ConfigSourceSupplier: key: 'jibri.api.http.internal-api-port', type: 'kotlin.Int', source: 'config'
2020-09-28 11:51:04.357 INFO: [1] org.jitsi.jibri.Main.main() Using port 3333 for internal HTTP API
2020-09-28 11:51:04.380 FINE: [16] org.jitsi.jibri.webhooks.v1.WebhookClient.invokeSuspend() Updating 0 subscribers of status
2020-09-28 11:51:04.597 FINE: [1] org.jitsi.jibri.config.debug() FallbackSupplier: checking for value via suppliers:
  LambdaSupplier: 'JibriConfig::xmppEnvironments'
  TypeConvertingSupplier: converting value from ConfigSourceSupplier: key: 'jibri.api.xmpp.environments', type: 'kotlin.collections.List<com.typesafe.config.Config>', source: 'config'
2020-09-28 11:51:04.597 FINE: [1] org.jitsi.jibri.config.debug() LambdaSupplier: Trying to retrieve value via JibriConfig::xmppEnvironments
2020-09-28 11:51:04.598 FINE: [1] org.jitsi.jibri.config.debug() LambdaSupplier: 'JibriConfig::xmppEnvironments': found value
2020-09-28 11:51:04.598 FINE: [1] org.jitsi.jibri.config.debug() FallbackSupplier: value found via LambdaSupplier: 'JibriConfig::xmppEnvironments'
2020-09-28 11:51:04.806 INFO: [1] org.jitsi.jibri.api.xmpp.XmppApi.updatePresence() Jibri reports its status is now JibriStatus(busyStatus=IDLE, health=OverallHealth(healthStatus=HEALTHY, details={})), publishing presence to connections
2020-09-28 11:51:04.817 INFO: [1] org.jitsi.jibri.api.xmpp.XmppApi.start() Connecting to xmpp environment on meet.mydomain.org with config XmppEnvironmentConfig(name=prod environment, xmppServerHosts=[meet.mydomain.org], xmppDomain=meet.mydomain.org, controlLogin=XmppCredentials(domain=auth.meet.mydomain.org, username=jibri, password=JibriPassword), controlMuc=XmppMuc(domain=internal.auth.meet.mydomain.org, roomName=JibriBrewery, nickname=jibri-nickname), sipControlMuc=null, callLogin=XmppCredentials(domain=recorder.meet.mydomain.org, username=recorder, password=RecPassword), stripFromRoomDomain=conference., usageTimeoutMins=0, trustAllXmppCerts=true)
2020-09-28 11:51:04.818 INFO: [1] org.jitsi.jibri.api.xmpp.XmppApi.start() The trustAllXmppCerts config is enabled for this domain, all XMPP server provided certificates will be accepted
2020-09-28 11:51:04.848 FINE: [1] org.jitsi.jibri.config.debug() FallbackSupplier: checking for value via suppliers:
  ConfigSourceSupplier: key: 'http_api_port', type: 'kotlin.Int', source: 'command line args'
  ConfigSourceSupplier: key: 'jibri.api.http.external-api-port', type: 'kotlin.Int', source: 'config'
2020-09-28 11:51:04.849 FINE: [1] org.jitsi.jibri.config.debug() ConfigSourceSupplier: Trying to retrieve key 'http_api_port' from source 'command line args' as type kotlin.Int
2020-09-28 11:51:04.849 FINE: [1] org.jitsi.jibri.config.debug() FallbackSupplier: failed to find value via ConfigSourceSupplier: key: 'http_api_port', type: 'kotlin.Int', source: 'command line args': org.jitsi.metaconfig.ConfigException$UnableToRetrieve$NotFound: not found
2020-09-28 11:51:04.849 FINE: [1] org.jitsi.jibri.config.debug() ConfigSourceSupplier: Trying to retrieve key 'jibri.api.http.external-api-port' from source 'config' as type kotlin.Int
2020-09-28 11:51:04.851 FINE: [1] org.jitsi.jibri.config.debug() ConfigSourceSupplier: Successfully retrieved key 'jibri.api.http.external-api-port' from source 'config' as type kotlin.Int
2020-09-28 11:51:04.851 FINE: [1] org.jitsi.jibri.config.debug() FallbackSupplier: value found via ConfigSourceSupplier: key: 'jibri.api.http.external-api-port', type: 'kotlin.Int', source: 'config'
2020-09-28 11:51:04.851 INFO: [1] org.jitsi.jibri.Main.main() Using port 2222 for HTTP API
2020-09-28 11:51:04.855 WARNING: [25] org.jitsi.xmpp.mucclient.MucClient.log() Disabling certificate verification!
2020-09-28 11:51:05.094 INFO: [25] org.jitsi.xmpp.mucclient.MucClient.log() Connected.
2020-09-28 11:51:05.095 INFO: [25] org.jitsi.xmpp.mucclient.MucClient.log() Logging in.
2020-09-28 11:51:05.207 INFO: [25] org.jitsi.xmpp.mucclient.MucClient.log() Joined MUC: jibribrewery@internal.auth.meet.mydomain.org
2020-09-28 11:52:04.350 FINE: [16] org.jitsi.jibri.webhooks.v1.WebhookClient.invokeSuspend() Updating 0 subscribers of status

config.json

{
        "recording_directory":"/srv/recordings",
        "xmpp_environments": [
                {
                "name": "prod environment",
                "xmpp_server_hosts": [
                "meet.mydomain.org"
                ],
                "xmpp_domain": "meet.mydomain.org",
                "control_login": {
                        "domain": "auth.meet.mydomain.org",
                        "username": "jibri",
                        "password": "JibriPassword"
                        },
                "control_muc": {
                        "domain": "internal.auth.meet.mydomain.org",
                        "room_name": "JibriBrewery",
                        "nickname": "jibri-nickname"
                        },
                "call_login": {
                        "domain": "recorder.meet.mydomain.org",
                        "username": "recorder",
                        "password": "RecPassword"
                        },
                "room_jid_domain_string_to_strip_from_start": "conference.",
                "usage_timeout": "0"
                }
        ]
}

/etc/prosody/conf.avail/meet.mydomain.org.cfg.lua
plugin_paths = { “/usr/share/jitsi-meet/prosody-plugins/” }

    -- domain mapper options, must at least have domain base set to use the mapper
    muc_mapper_domain_base = "meet.mydomain.org";

    turncredentials_secret = "pass0";

    turncredentials = {
      { type = "stun", host = "meet.mydomain.org", port = "443" },
      { type = "turn", host = "meet.mydomain.org", port = "443", transport = "udp" },
      { type = "turns", host = "meet.mydomain.org", port = "443", transport = "tcp" }
    };

    cross_domain_bosh = false;
    consider_bosh_secure = true;

    -- we are going to be proxying the BOSH connection anyway, so there is no need to be listening for BOSH over HTTPS
    https_ports = { }

    VirtualHost "meet.mydomain.org"
            -- enabled = false -- Remove this line to enable this host
            -- authentication = "anonymous"
            authentication = "internal_plain"
            -- Properties below are modified by jitsi-meet-tokens package config
            -- and authentication above is switched to "token"
            --app_id="example_app_id"
            --app_secret="example_app_secret"
            -- Assign this host a certificate for TLS, otherwise it would use the one
            -- set in the global section (if any).
            -- Note that old-style SSL on port 5223 only supports one certificate, and will always
            -- use the global one.
            ssl = {
                    key = "/etc/prosody/certs/meet.mydomain.org.key";
                    certificate = "/etc/prosody/certs/meet.mydomain.org.crt";
            }
            speakerstats_component = "speakerstats.meet.mydomain.org"
            conference_duration_component = "conferenceduration.meet.mydomain.org"
            -- we need bosh
            modules_enabled = {
                "bosh";
                "pubsub";
                "ping"; -- Enable mod_ping
                "speakerstats";
                "turncredentials";
                "conference_duration";
            }
            c2s_require_encryption = false

    Component "conference.meet.mydomain.org" "muc"
        storage = "null"
        modules_enabled = {
            "muc_meeting_id";
            "muc_domain_mapper";
            -- "token_verification";
        }
        admins = { "focus@auth.meet.mydomain.org" }
        muc_room_locking = false
        muc_room_default_public_jids = true

    -- internal muc component
    Component "internal.auth.meet.mydomain.org" "muc"
        storage = "null"
        modules_enabled = {
          "ping";
        }
        admins = { "focus@auth.meet.mydomain.org", "jvb@auth.meet.mydomain.org" }

    VirtualHost "auth.meet.mydomain.org"
        ssl = {
            key = "/etc/prosody/certs/auth.meet.mydomain.org.key";
            certificate = "/etc/prosody/certs/auth.meet.mydomain.org.crt";
        }
        authentication = "internal_plain"

    Component "focus.meet.mydomain.org"
        component_secret = "pass1"

    Component "speakerstats.meet.mydomain.org" "speakerstats_component"
        muc_component = "conference.meet.mydomain.org"

    Component "conferenceduration.meet.mydomain.org" "conference_duration_component"
        muc_component = "conference.meet.mydomain.org"

    -- internal muc component, meant to enable pools of jibri and jigasi clients
    Component "internal.auth.meet.mydomain.org" "muc"
    modules_enabled = {
    "ping";
    }
    storage = "memory"
    muc_room_cache_size = 1000

    VirtualHost "recorder.meet.mydomain.org"
    modules_enabled = {
    "ping";
    }
    authentication = "internal_plain"

sip-communicator.properties

org.jitsi.jicofo.BRIDGE_MUC=JvbBrewery@internal.auth.meet.mydomain.org
org.jitsi.jicofo.jibri.BREWERY=JibriBrewery@internal.auth.meet.mydomain.org
org.jitsi.jicofo.jibri.PENDING_TIMEOUT=90

service jibri status
● jibri.service - Jibri Process
Loaded: loaded (/etc/systemd/system/jibri.service; disabled; vendor preset: enabled)
Active: active (running) since Mon 2020-09-28 11:51:02 EDT; 1 day 3h ago
Process: 3460 ExecStop=/opt/jitsi/jibri/graceful_shutdown.sh (code=exited, status=0/SUCCESS)
Main PID: 3473 (java)
Tasks: 45
Memory: 194.7M
CPU: 2min 58.047s
CGroup: /system.slice/jibri.service
└─3473 java -Djava.util.logging.config.file=/etc/jitsi/jibri/logging.properties -Dconfig.file=/etc/jitsi/jibri/jibri.conf -jar /opt/jitsi/jibri/jibri.jar --config /etc/jitsi/jibri/config.json

Warning: Journal has been rotated since unit was started. Log output is incomplete or unavailable.