Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Video from ATEM Mini Pro keeps crashing (No video) #385

Closed
crbon opened this issue Jul 14, 2022 · 11 comments
Closed

Video from ATEM Mini Pro keeps crashing (No video) #385

crbon opened this issue Jul 14, 2022 · 11 comments
Assignees

Comments

@crbon
Copy link

crbon commented Jul 14, 2022

Hi

Thanks for the great product that restreamer is, especially with the revamp with v2.

I have a video feed issue with sending an RTMP stream to restreamer (using restreamer rtmp server).
Restremer detects that the video feed is coming from Blackmagic Design AVC Encoder (ATEM Mini Pro), however the video feed only lasts about 10-15 seconds before the picture goes black and the 'No video' text is shown. It reconnects after few seconds of No video, and the process repeats.

I am using docker and have tested streaming within a local network and to an external instance running on a VPS, experiencing the same issue in both instances.

The ATEM Mini video encoder has no issues streaming to YouTube.

Logging

@1657788970 Input #0, flv, from 'rtmp://localhost/2b26f218-b132-4e60-8847-c0571d0baaec.stream':
@1657788970   Metadata:
@1657788970     encoder         : Blackmagic Design AVC Encoder
@1657788970     3.1             : false
@1657788970     5.1             : false
@1657788970     audiochannels   : 2
@1657788970     fileSize        : 0
@1657788970     4.0             : false
@1657788970     2.1             : false
@1657788970     4.1             : false
@1657788970     7.1             : false
@1657788970   Duration: 00:00:00.00, start: 0.000000, bitrate: N/A
@1657788970   Stream #0:0: Video: h264 (Main), yuv420p(progressive), 1920x1080, 30 fps, 30 tbr, 1k tbn
@1657788970   Stream #0:1: Audio: aac (LC), 48000 Hz, stereo, fltp, 65 kb/s
@1657788970 Output #0, hls, to 'http://admin:imRaeB7aktiqvnNfWI@localhost:8080/memfs/2b26f218-b132-4e60-8847-c0571d0baaec.m3u8':
@1657788970   Metadata:
@1657788970     service_provider: datarhei-Restreamer
@1657788970     3.1             : false
@1657788970     5.1             : false
@1657788970     audiochannels   : 2
@1657788970     fileSize        : 0
@1657788970     4.0             : false
@1657788970     2.1             : false
@1657788970     4.1             : false
@1657788970     7.1             : false
@1657788970     title           : http://xxx.xxx.xxx.xxx:8080/2b26f218-b132-4e60-8847-c0571d0baaec/oembed.json
@1657788970     encoder         : Lavf58.76.100
@1657788970   Stream #0:0: Video: h264 (Main), yuv420p(progressive), 1920x1080, q=2-31, 30 fps, 30 tbr, 90k tbn, 1k tbc
@1657788970   Stream #0:1: Audio: aac (LC), 48000 Hz, stereo, fltp, 65 kb/s
@1657788970 Stream mapping:
@1657788970   Stream #0:0 -> #0:0 (copy)
@1657788970   Stream #0:1 -> #0:1 (copy)
@1657788970 Press [q] to stop, [?] for help
@1657788971 [hls       ] Opening 'http://admin:imRaeB7aktiqvnNfWI@localhost:8080/memfs/2b26f218-b132-4e60-8847-c0571d0baaec_0038.ts' for writing
@1657788973 [hls       ] Opening 'http://admin:imRaeB7aktiqvnNfWI@localhost:8080/memfs/2b26f218-b132-4e60-8847-c0571d0baaec_0039.ts' for writing
@1657788973 [mpegts    ] Opening 'http://admin:imRaeB7aktiqvnNfWI@localhost:8080/memfs/2b26f218-b132-4e60-8847-c0571d0baaec_0032.ts' for writing
@1657788975 [hls       ] Opening 'http://admin:imRaeB7aktiqvnNfWI@localhost:8080/memfs/2b26f218-b132-4e60-8847-c0571d0baaec_0040.ts' for writing
@1657788975 [mpegts    ] Opening 'http://admin:imRaeB7aktiqvnNfWI@localhost:8080/memfs/2b26f218-b132-4e60-8847-c0571d0baaec_0033.ts' for writing
@1657788977 [hls       ] Opening 'http://admin:imRaeB7aktiqvnNfWI@localhost:8080/memfs/2b26f218-b132-4e60-8847-c0571d0baaec_0041.ts' for writing
@1657788977 [mpegts    ] Opening 'http://admin:imRaeB7aktiqvnNfWI@localhost:8080/memfs/2b26f218-b132-4e60-8847-c0571d0baaec_0034.ts' for writing
@1657788979 [hls       ] Opening 'http://admin:imRaeB7aktiqvnNfWI@localhost:8080/memfs/2b26f218-b132-4e60-8847-c0571d0baaec_0042.ts' for writing
@1657788979 [mpegts    ] Opening 'http://admin:imRaeB7aktiqvnNfWI@localhost:8080/memfs/2b26f218-b132-4e60-8847-c0571d0baaec_0035.ts' for writing
@1657788981 [hls       ] Opening 'http://admin:imRaeB7aktiqvnNfWI@localhost:8080/memfs/2b26f218-b132-4e60-8847-c0571d0baaec_0043.ts' for writing
@1657788981 [mpegts    ] Opening 'http://admin:imRaeB7aktiqvnNfWI@localhost:8080/memfs/2b26f218-b132-4e60-8847-c0571d0baaec_0036.ts' for writing
@1657788983 [hls       ] Opening 'http://admin:imRaeB7aktiqvnNfWI@localhost:8080/memfs/2b26f218-b132-4e60-8847-c0571d0baaec_0044.ts' for writing
@1657788983 [mpegts    ] Opening 'http://admin:imRaeB7aktiqvnNfWI@localhost:8080/memfs/2b26f218-b132-4e60-8847-c0571d0baaec_0037.ts' for writing
@1657788985 [hls       ] Opening 'http://admin:imRaeB7aktiqvnNfWI@localhost:8080/memfs/2b26f218-b132-4e60-8847-c0571d0baaec_0045.ts' for writing
@1657788985 [mpegts    ] Opening 'http://admin:imRaeB7aktiqvnNfWI@localhost:8080/memfs/2b26f218-b132-4e60-8847-c0571d0baaec_0038.ts' for writing
@1657788987 [hls       ] Opening 'http://admin:imRaeB7aktiqvnNfWI@localhost:8080/memfs/2b26f218-b132-4e60-8847-c0571d0baaec_0046.ts' for writing
@1657788987 [mpegts    ] Opening 'http://admin:imRaeB7aktiqvnNfWI@localhost:8080/memfs/2b26f218-b132-4e60-8847-c0571d0baaec_0039.ts' for writing

Process debug report

{
  "about": {
    "id": "011eead5-cafc-4f7a-9970-3fc4c72e8466",
    "name": "blue-bar-8121",
    "created_at": "2022-07-14T07:22:53.000Z",
    "version": {
      "number": "16.8.0",
      "repository_commit": "49a8706637d52cf5f5a9394a0c038845bd86b66d",
      "repository_branch": "master",
      "build_date": "2022-06-03T15:01:07Z",
      "arch": "linux/arm64",
      "compiler": "go1.18.2"
    },
    "auths": [
      "localjwt"
    ],
    "app": "datarhei-core",
    "uptime_seconds": 5601
  },
  "ffmpeg": {
    "version": "4.4.2",
    "compiler": "gcc 10.3.1 (Alpine 10.3.1_git20211027) 20211027",
    "configuration": "--extra-version=datarhei --prefix=/usr --extra-libs='-lpthread -lxml2 -lm -lz -lsupc++ -lstdc++ -lssl -lcrypto -lz -lc -ldl' --enable-nonfree --enable-gpl --enable-version3 --enable-postproc --enable-static --enable-openssl --enable-libxml2 --enable-libv4l2 --enable-v4l2_m2m --enable-libfreetype --enable-libsrt --enable-libx264 --enable-libx265 --enable-libvpx --enable-libmp3lame --enable-libopus --enable-libvorbis --disable-ffplay --disable-debug --disable-doc --disable-shared",
    "libraries": [
      {
        "name": "libavutil",
        "compiled": "56. 70.100",
        "linked": "56. 70.100"
      },
      {
        "name": "libavcodec",
        "compiled": "58.134.100",
        "linked": "58.134.100"
      },
      {
        "name": "libavformat",
        "compiled": "58. 76.100",
        "linked": "58. 76.100"
      },
      {
        "name": "libavdevice",
        "compiled": "58. 13.100",
        "linked": "58. 13.100"
      },
      {
        "name": "libavfilter",
        "compiled": "7.110.100",
        "linked": "7.110.100"
      },
      {
        "name": "libswscale",
        "compiled": "5.  9.100",
        "linked": "5.  9.100"
      },
      {
        "name": "libswresample",
        "compiled": "3.  9.100",
        "linked": "3.  9.100"
      },
      {
        "name": "libpostproc",
        "compiled": "55.  9.100",
        "linked": "55.  9.100"
      }
    ]
  },
  "config": {
    "created_at": "2022-07-14T07:22:53.607721522Z",
    "version": 1,
    "id": "011eead5-cafc-4f7a-9970-3fc4c72e8466",
    "name": "blue-bar-8121",
    "address": ":8080",
    "update_check": true,
    "log": {
      "level": "info",
      "topics": [],
      "max_lines": 1000
    },
    "db": {
      "dir": "/core/config"
    },
    "host": {
      "name": [
        "[anonymized]"
      ],
      "auto": true
    },
    "api": {
      "read_only": false,
      "access": {
        "http": {
          "allow": [],
          "block": []
        },
        "https": {
          "allow": [],
          "block": []
        }
      },
      "auth": {
        "enable": true,
        "disable_localhost": false,
        "username": "[anonymized]",
        "password": "[anonymized]",
        "jwt": {
          "secret": "[anonymized]"
        },
        "auth0": {
          "enable": false,
          "tenants": [
            "[anonymized]"
          ]
        }
      }
    },
    "tls": {
      "address": ":8181",
      "enable": false,
      "auto": false,
      "cert_file": "",
      "key_file": ""
    },
    "storage": {
      "disk": {
        "dir": "/core/data",
        "max_size_mbytes": 0,
        "cache": {
          "enable": true,
          "max_size_mbytes": 0,
          "ttl_seconds": 300,
          "max_file_size_mbytes": 1,
          "types": []
        }
      },
      "memory": {
        "auth": {
          "enable": true,
          "username": "[anonymized]",
          "password": "[anonymized]"
        },
        "max_size_mbytes": 0,
        "purge": false
      },
      "cors": {
        "origins": [
          "*"
        ]
      },
      "mimetypes_file": "./mime.types"
    },
    "rtmp": {
      "enable": true,
      "enable_tls": false,
      "address": ":1935",
      "app": "[anonymized]",
      "token": "[anonymized]"
    },
    "ffmpeg": {
      "binary": "ffmpeg",
      "max_processes": 0,
      "access": {
        "input": {
          "allow": [],
          "block": []
        },
        "output": {
          "allow": [],
          "block": []
        }
      },
      "log": {
        "max_lines": 50,
        "max_history": 3
      }
    },
    "playout": {
      "enable": false,
      "min_port": 0,
      "max_port": 0
    },
    "debug": {
      "profiling": false,
      "force_gc": 0
    },
    "metrics": {
      "enable": false,
      "enable_prometheus": false,
      "range_sec": 300,
      "interval_sec": 2
    },
    "sessions": {
      "enable": true,
      "ip_ignorelist": [
        "[anonymized]",
        "[anonymized]"
      ],
      "session_timeout_sec": 30,
      "persist": false,
      "persist_interval_sec": 300,
      "max_bitrate_mbit": 0,
      "max_sessions": 0
    },
    "service": {
      "enable": false,
      "token": "[anonymized]",
      "url": "https://service.datarhei.com"
    },
    "router": {
      "blocked_prefixes": [
        "/api"
      ],
      "routes": {},
      "ui_path": "/core/ui"
    }
  },
  "process": {
    "id": "restreamer-ui:ingest:2b26f218-b132-4e60-8847-c0571d0baaec",
    "type": "ffmpeg",
    "reference": "2b26f218-b132-4e60-8847-c0571d0baaec",
    "created_at": 1657784688,
    "config": {
      "id": "restreamer-ui:ingest:2b26f218-b132-4e60-8847-c0571d0baaec",
      "type": "ffmpeg",
      "reference": "2b26f218-b132-4e60-8847-c0571d0baaec",
      "input": [
        {
          "id": "input_0",
          "address": "rtmp://[anonymized]",
          "options": [
            "-fflags",
            "+genpts",
            "-thread_queue_size",
            "512"
          ]
        }
      ],
      "output": [
        {
          "id": "output_0",
          "address": "{memfs}/2b26f218-b132-4e60-8847-c0571d0baaec.m3u8",
          "options": [
            "-dn",
            "-sn",
            "-map",
            "0:0",
            "-codec:v",
            "copy",
            "-vsync",
            "0",
            "-copyts",
            "-start_at_zero",
            "-map",
            "0:1",
            "-codec:a",
            "copy",
            "-metadata",
            "title=http://[anonymized]",
            "-metadata",
            "service_provider=datarhei-Restreamer",
            "-f",
            "hls",
            "-start_number",
            "0",
            "-hls_time",
            "2",
            "-hls_list_size",
            "6",
            "-hls_flags",
            "append_list+delete_segments",
            "-hls_segment_filename",
            "{memfs}/2b26f218-b132-4e60-8847-c0571d0baaec_%04d.ts",
            "-y",
            "-method",
            "PUT"
          ],
          "cleanup": [
            {
              "pattern": "memfs:/2b26f218-b132-4e60-8847-c0571d0baaec_*.ts",
              "max_files": 8,
              "max_file_age_seconds": 16,
              "purge_on_delete": false
            },
            {
              "pattern": "memfs:/2b26f218-b132-4e60-8847-c0571d0baaec.m3u8",
              "max_files": 0,
              "max_file_age_seconds": 16,
              "purge_on_delete": false
            }
          ]
        }
      ],
      "options": [
        "-err_detect",
        "ignore_err"
      ],
      "reconnect": true,
      "reconnect_delay_seconds": 5,
      "autostart": true,
      "stale_timeout_seconds": 20,
      "limits": {
        "cpu_usage": 0,
        "memory_mbytes": 0,
        "waitfor_seconds": 0
      }
    },
    "state": {
      "order": "start",
      "exec": "running",
      "runtime_seconds": 5,
      "reconnect_seconds": -1,
      "last_logline": "[mpegts @ 0xffff9f0496b0] Opening 'http://[anonymized]' for writing",
      "progress": {
        "inputs": [
          {
            "id": "input_0",
            "address": "rtmp://[anonymized]",
            "index": 0,
            "stream": 0,
            "format": "flv",
            "type": "video",
            "codec": "h264",
            "coder": "h264",
            "frame": 165,
            "fps": 44.667,
            "packet": 165,
            "pps": 44.667,
            "size_kb": 695,
            "bitrate_kbit": 1661.333,
            "pix_fmt": "yuv420p",
            "q": 0,
            "width": 1920,
            "height": 1080,
            "avstream": null
          },
          {
            "id": "input_0",
            "address": "rtmp://[anonymized]",
            "index": 0,
            "stream": 1,
            "format": "flv",
            "type": "audio",
            "codec": "aac",
            "coder": "aac",
            "frame": 257,
            "fps": 69.667,
            "packet": 257,
            "pps": 69.667,
            "size_kb": 9,
            "bitrate_kbit": 18.667,
            "q": 0,
            "sampling_hz": 48000,
            "layout": "stereo",
            "channels": 2,
            "avstream": null
          }
        ],
        "outputs": [
          {
            "id": "output_0",
            "address": "http://[anonymized]",
            "index": 0,
            "stream": 0,
            "format": "hls",
            "type": "video",
            "codec": "h264",
            "coder": "copy",
            "frame": 165,
            "fps": 44.667,
            "packet": 165,
            "pps": 44.667,
            "size_kb": 695,
            "bitrate_kbit": 1661.333,
            "pix_fmt": "yuv420p",
            "q": -1,
            "width": 1920,
            "height": 1080,
            "avstream": null
          },
          {
            "id": "output_0",
            "address": "http://[anonymized]",
            "index": 0,
            "stream": 1,
            "format": "hls",
            "type": "audio",
            "codec": "aac",
            "coder": "copy",
            "frame": 257,
            "fps": 69.667,
            "packet": 257,
            "pps": 69.667,
            "size_kb": 9,
            "bitrate_kbit": 18.667,
            "q": 0,
            "sampling_hz": 48000,
            "layout": "stereo",
            "channels": 2,
            "avstream": null
          }
        ],
        "frame": 165,
        "packet": 165,
        "fps": 44.667,
        "q": -1,
        "size_kb": 704,
        "time": 5.47,
        "bitrate_kbit": 1680,
        "speed": 1.33,
        "drop": 0,
        "dup": 0
      },
      "memory_bytes": 18923520,
      "cpu_usage": 0.5,
      "command": [
        "-err_detect",
        "ignore_err",
        "-fflags",
        "+genpts",
        "-thread_queue_size",
        "512",
        "-i",
        "rtmp://[anonymized]",
        "-dn",
        "-sn",
        "-map",
        "0:0",
        "-codec:v",
        "copy",
        "-vsync",
        "0",
        "-copyts",
        "-start_at_zero",
        "-map",
        "0:1",
        "-codec:a",
        "copy",
        "-metadata",
        "title=http://[anonymized]",
        "-metadata",
        "service_provider=datarhei-Restreamer",
        "-f",
        "hls",
        "-start_number",
        "0",
        "-hls_time",
        "2",
        "-hls_list_size",
        "6",
        "-hls_flags",
        "append_list+delete_segments",
        "-hls_segment_filename",
        "http://[anonymized]",
        "-y",
        "-method",
        "PUT",
        "http://[anonymized]"
      ]
    },
    "report": {
      "created_at": 1657788969,
      "prelude": [
        "ffmpeg version 4.4.2-datarhei Copyright (c) 2000-2021 the FFmpeg developers",
        "  built with gcc 10.3.1 (Alpine 10.3.1_git20211027) 20211027",
        "  configuration: --extra-version=datarhei --prefix=/usr --extra-libs='-lpthread -lxml2 -lm -lz -lsupc++ -lstdc++ -lssl -lcrypto -lz -lc -ldl' --enable-nonfree --enable-gpl --enable-version3 --enable-postproc --enable-static --enable-openssl --enable-libxml2 --enable-libv4l2 --enable-v4l2_m2m --enable-libfreetype --enable-libsrt --enable-libx264 --enable-libx265 --enable-libvpx --enable-libmp3lame --enable-libopus --enable-libvorbis --disable-ffplay --disable-debug --disable-doc --disable-shared",
        "  libavutil      56. 70.100 / 56. 70.100",
        "  libavcodec     58.134.100 / 58.134.100",
        "  libavformat    58. 76.100 / 58. 76.100",
        "  libavdevice    58. 13.100 / 58. 13.100",
        "  libavfilter     7.110.100 /  7.110.100",
        "  libswscale      5.  9.100 /  5.  9.100",
        "  libswresample   3.  9.100 /  3.  9.100",
        "  libpostproc    55.  9.100 / 55.  9.100",
        "Input #0, flv, from 'rtmp://[anonymized]':",
        "  Metadata:",
        "    encoder         : Blackmagic Design AVC Encoder",
        "    3.1             : false",
        "    5.1             : false",
        "    audiochannels   : 2",
        "    fileSize        : 0",
        "    4.0             : false",
        "    2.1             : false",
        "    4.1             : false",
        "    7.1             : false",
        "  Duration: 00:00:00.00, start: 0.000000, bitrate: N/A",
        "  Stream #0:0: Video: h264 (Main), yuv420p(progressive), 1920x1080, 30 fps, 30 tbr, 1k tbn",
        "  Stream #0:1: Audio: aac (LC), 48000 Hz, stereo, fltp, 65 kb/s",
        "Output #0, hls, to 'http://[anonymized]':",
        "  Metadata:",
        "    service_provider: datarhei-Restreamer",
        "    3.1             : false",
        "    5.1             : false",
        "    audiochannels   : 2",
        "    fileSize        : 0",
        "    4.0             : false",
        "    2.1             : false",
        "    4.1             : false",
        "    7.1             : false",
        "    title           : http://[anonymized]",
        "    encoder         : Lavf58.76.100",
        "  Stream #0:0: Video: h264 (Main), yuv420p(progressive), 1920x1080, q=2-31, 30 fps, 30 tbr, 90k tbn, 1k tbc",
        "  Stream #0:1: Audio: aac (LC), 48000 Hz, stereo, fltp, 65 kb/s"
      ],
      "log": [
        [
          "1657788969",
          "ffmpeg version 4.4.2-datarhei Copyright (c) 2000-2021 the FFmpeg developers"
        ],
        [
          "1657788969",
          "  built with gcc 10.3.1 (Alpine 10.3.1_git20211027) 20211027"
        ],
        [
          "1657788969",
          "  configuration: --extra-version=datarhei --prefix=/usr --extra-libs='-lpthread -lxml2 -lm -lz -lsupc++ -lstdc++ -lssl -lcrypto -lz -lc -ldl' --enable-nonfree --enable-gpl --enable-version3 --enable-postproc --enable-static --enable-openssl --enable-libxml2 --enable-libv4l2 --enable-v4l2_m2m --enable-libfreetype --enable-libsrt --enable-libx264 --enable-libx265 --enable-libvpx --enable-libmp3lame --enable-libopus --enable-libvorbis --disable-ffplay --disable-debug --disable-doc --disable-shared"
        ],
        [
          "1657788969",
          "  libavutil      56. 70.100 / 56. 70.100"
        ],
        [
          "1657788969",
          "  libavcodec     58.134.100 / 58.134.100"
        ],
        [
          "1657788969",
          "  libavformat    58. 76.100 / 58. 76.100"
        ],
        [
          "1657788969",
          "  libavdevice    58. 13.100 / 58. 13.100"
        ],
        [
          "1657788969",
          "  libavfilter     7.110.100 /  7.110.100"
        ],
        [
          "1657788969",
          "  libswscale      5.  9.100 /  5.  9.100"
        ],
        [
          "1657788969",
          "  libswresample   3.  9.100 /  3.  9.100"
        ],
        [
          "1657788969",
          "  libpostproc    55.  9.100 / 55.  9.100"
        ],
        [
          "1657788970",
          "Input #0, flv, from 'rtmp://[anonymized]':"
        ],
        [
          "1657788970",
          "  Metadata:"
        ],
        [
          "1657788970",
          "    encoder         : Blackmagic Design AVC Encoder"
        ],
        [
          "1657788970",
          "    3.1             : false"
        ],
        [
          "1657788970",
          "    5.1             : false"
        ],
        [
          "1657788970",
          "    audiochannels   : 2"
        ],
        [
          "1657788970",
          "    fileSize        : 0"
        ],
        [
          "1657788970",
          "    4.0             : false"
        ],
        [
          "1657788970",
          "    2.1             : false"
        ],
        [
          "1657788970",
          "    4.1             : false"
        ],
        [
          "1657788970",
          "    7.1             : false"
        ],
        [
          "1657788970",
          "  Duration: 00:00:00.00, start: 0.000000, bitrate: N/A"
        ],
        [
          "1657788970",
          "  Stream #0:0: Video: h264 (Main), yuv420p(progressive), 1920x1080, 30 fps, 30 tbr, 1k tbn"
        ],
        [
          "1657788970",
          "  Stream #0:1: Audio: aac (LC), 48000 Hz, stereo, fltp, 65 kb/s"
        ],
        [
          "1657788970",
          "Output #0, hls, to 'http://[anonymized]':"
        ],
        [
          "1657788970",
          "  Metadata:"
        ],
        [
          "1657788970",
          "    service_provider: datarhei-Restreamer"
        ],
        [
          "1657788970",
          "    3.1             : false"
        ],
        [
          "1657788970",
          "    5.1             : false"
        ],
        [
          "1657788970",
          "    audiochannels   : 2"
        ],
        [
          "1657788970",
          "    fileSize        : 0"
        ],
        [
          "1657788970",
          "    4.0             : false"
        ],
        [
          "1657788970",
          "    2.1             : false"
        ],
        [
          "1657788970",
          "    4.1             : false"
        ],
        [
          "1657788970",
          "    7.1             : false"
        ],
        [
          "1657788970",
          "    title           : http://[anonymized]"
        ],
        [
          "1657788970",
          "    encoder         : Lavf58.76.100"
        ],
        [
          "1657788970",
          "  Stream #0:0: Video: h264 (Main), yuv420p(progressive), 1920x1080, q=2-31, 30 fps, 30 tbr, 90k tbn, 1k tbc"
        ],
        [
          "1657788970",
          "  Stream #0:1: Audio: aac (LC), 48000 Hz, stereo, fltp, 65 kb/s"
        ],
        [
          "1657788970",
          "Stream mapping:"
        ],
        [
          "1657788970",
          "  Stream #0:0 -> #0:0 (copy)"
        ],
        [
          "1657788970",
          "  Stream #0:1 -> #0:1 (copy)"
        ],
        [
          "1657788970",
          "Press [q] to stop, [?] for help"
        ],
        [
          "1657788971",
          "[hls @ 0xffff9f049010] Opening 'http://[anonymized]' for writing"
        ],
        [
          "1657788973",
          "[hls @ 0xffff9f049010] Opening 'http://[anonymized]' for writing"
        ],
        [
          "1657788973",
          "[mpegts @ 0xffff9f0496b0] Opening 'http://[anonymized]' for writing"
        ]
      ],
      "history": [
        {
          "created_at": 1657788882,
          "prelude": [
            "ffmpeg version 4.4.2-datarhei Copyright (c) 2000-2021 the FFmpeg developers",
            "  built with gcc 10.3.1 (Alpine 10.3.1_git20211027) 20211027",
            "  configuration: --extra-version=datarhei --prefix=/usr --extra-libs='-lpthread -lxml2 -lm -lz -lsupc++ -lstdc++ -lssl -lcrypto -lz -lc -ldl' --enable-nonfree --enable-gpl --enable-version3 --enable-postproc --enable-static --enable-openssl --enable-libxml2 --enable-libv4l2 --enable-v4l2_m2m --enable-libfreetype --enable-libsrt --enable-libx264 --enable-libx265 --enable-libvpx --enable-libmp3lame --enable-libopus --enable-libvorbis --disable-ffplay --disable-debug --disable-doc --disable-shared",
            "  libavutil      56. 70.100 / 56. 70.100",
            "  libavcodec     58.134.100 / 58.134.100",
            "  libavformat    58. 76.100 / 58. 76.100",
            "  libavdevice    58. 13.100 / 58. 13.100",
            "  libavfilter     7.110.100 /  7.110.100",
            "  libswscale      5.  9.100 /  5.  9.100",
            "  libswresample   3.  9.100 /  3.  9.100",
            "  libpostproc    55.  9.100 / 55.  9.100",
            "rtmp://[anonymized] I/O error"
          ],
          "log": [
            [
              "1657788882",
              "ffmpeg version 4.4.2-datarhei Copyright (c) 2000-2021 the FFmpeg developers"
            ],
            [
              "1657788882",
              "  built with gcc 10.3.1 (Alpine 10.3.1_git20211027) 20211027"
            ],
            [
              "1657788882",
              "  configuration: --extra-version=datarhei --prefix=/usr --extra-libs='-lpthread -lxml2 -lm -lz -lsupc++ -lstdc++ -lssl -lcrypto -lz -lc -ldl' --enable-nonfree --enable-gpl --enable-version3 --enable-postproc --enable-static --enable-openssl --enable-libxml2 --enable-libv4l2 --enable-v4l2_m2m --enable-libfreetype --enable-libsrt --enable-libx264 --enable-libx265 --enable-libvpx --enable-libmp3lame --enable-libopus --enable-libvorbis --disable-ffplay --disable-debug --disable-doc --disable-shared"
            ],
            [
              "1657788882",
              "  libavutil      56. 70.100 / 56. 70.100"
            ],
            [
              "1657788882",
              "  libavcodec     58.134.100 / 58.134.100"
            ],
            [
              "1657788882",
              "  libavformat    58. 76.100 / 58. 76.100"
            ],
            [
              "1657788882",
              "  libavdevice    58. 13.100 / 58. 13.100"
            ],
            [
              "1657788882",
              "  libavfilter     7.110.100 /  7.110.100"
            ],
            [
              "1657788882",
              "  libswscale      5.  9.100 /  5.  9.100"
            ],
            [
              "1657788882",
              "  libswresample   3.  9.100 /  3.  9.100"
            ],
            [
              "1657788882",
              "  libpostproc    55.  9.100 / 55.  9.100"
            ],
            [
              "1657788882",
              "rtmp://[anonymized] I/O error"
            ]
          ]
        },
        {
          "created_at": 1657788887,
          "prelude": [
            "ffmpeg version 4.4.2-datarhei Copyright (c) 2000-2021 the FFmpeg developers",
            "  built with gcc 10.3.1 (Alpine 10.3.1_git20211027) 20211027",
            "  configuration: --extra-version=datarhei --prefix=/usr --extra-libs='-lpthread -lxml2 -lm -lz -lsupc++ -lstdc++ -lssl -lcrypto -lz -lc -ldl' --enable-nonfree --enable-gpl --enable-version3 --enable-postproc --enable-static --enable-openssl --enable-libxml2 --enable-libv4l2 --enable-v4l2_m2m --enable-libfreetype --enable-libsrt --enable-libx264 --enable-libx265 --enable-libvpx --enable-libmp3lame --enable-libopus --enable-libvorbis --disable-ffplay --disable-debug --disable-doc --disable-shared",
            "  libavutil      56. 70.100 / 56. 70.100",
            "  libavcodec     58.134.100 / 58.134.100",
            "  libavformat    58. 76.100 / 58. 76.100",
            "  libavdevice    58. 13.100 / 58. 13.100",
            "  libavfilter     7.110.100 /  7.110.100",
            "  libswscale      5.  9.100 /  5.  9.100",
            "  libswresample   3.  9.100 /  3.  9.100",
            "  libpostproc    55.  9.100 / 55.  9.100",
            "Input #0, flv, from 'rtmp://[anonymized]':",
            "  Metadata:",
            "    fileSize        : 0",
            "    4.0             : false",
            "    5.1             : false",
            "    audiochannels   : 2",
            "    4.1             : false",
            "    encoder         : Blackmagic Design AVC Encoder",
            "    2.1             : false",
            "    7.1             : false",
            "    3.1             : false",
            "  Duration: 00:00:00.00, start: 0.000000, bitrate: N/A",
            "  Stream #0:0: Video: h264 (Main), yuv420p(progressive), 1920x1080, 30 fps, 30 tbr, 1k tbn",
            "  Stream #0:1: Audio: aac (LC), 48000 Hz, stereo, fltp, 65 kb/s",
            "[http @ 0xffffa489ee50] HTTP error 404 Not Found",
            "Output #0, hls, to 'http://[anonymized]':",
            "  Metadata:",
            "    fileSize        : 0",
            "    4.0             : false",
            "    5.1             : false",
            "    audiochannels   : 2",
            "    4.1             : false",
            "    service_provider: datarhei-Restreamer",
            "    2.1             : false",
            "    7.1             : false",
            "    3.1             : false",
            "    title           : http://[anonymized]",
            "    encoder         : Lavf58.76.100",
            "  Stream #0:0: Video: h264 (Main), yuv420p(progressive), 1920x1080, q=2-31, 30 fps, 30 tbr, 90k tbn, 1k tbc",
            "  Stream #0:1: Audio: aac (LC), 48000 Hz, stereo, fltp, 65 kb/s"
          ],
          "log": [
            [
              "1657788887",
              "  Metadata:"
            ],
            [
              "1657788887",
              "    fileSize        : 0"
            ],
            [
              "1657788887",
              "    4.0             : false"
            ],
            [
              "1657788887",
              "    5.1             : false"
            ],
            [
              "1657788887",
              "    audiochannels   : 2"
            ],
            [
              "1657788887",
              "    4.1             : false"
            ],
            [
              "1657788887",
              "    service_provider: datarhei-Restreamer"
            ],
            [
              "1657788887",
              "    2.1             : false"
            ],
            [
              "1657788887",
              "    7.1             : false"
            ],
            [
              "1657788887",
              "    3.1             : false"
            ],
            [
              "1657788887",
              "    title           : http://[anonymized]"
            ],
            [
              "1657788887",
              "    encoder         : Lavf58.76.100"
            ],
            [
              "1657788887",
              "  Stream #0:0: Video: h264 (Main), yuv420p(progressive), 1920x1080, q=2-31, 30 fps, 30 tbr, 90k tbn, 1k tbc"
            ],
            [
              "1657788887",
              "  Stream #0:1: Audio: aac (LC), 48000 Hz, stereo, fltp, 65 kb/s"
            ],
            [
              "1657788887",
              "Stream mapping:"
            ],
            [
              "1657788887",
              "  Stream #0:0 -> #0:0 (copy)"
            ],
            [
              "1657788887",
              "  Stream #0:1 -> #0:1 (copy)"
            ],
            [
              "1657788887",
              "Press [q] to stop, [?] for help"
            ],
            [
              "1657788887",
              "[hls @ 0xffffa4dcd2b0] Opening 'http://[anonymized]' for writing"
            ],
            [
              "1657788889",
              "[hls @ 0xffffa4dcd2b0] Opening 'http://[anonymized]' for writing"
            ],
            [
              "1657788891",
              "[hls @ 0xffffa4dcd2b0] Opening 'http://[anonymized]' for writing"
            ],
            [
              "1657788893",
              "[hls @ 0xffffa4dcd2b0] Opening 'http://[anonymized]' for writing"
            ],
            [
              "1657788895",
              "[hls @ 0xffffa4dcd2b0] Opening 'http://[anonymized]' for writing"
            ],
            [
              "1657788897",
              "[hls @ 0xffffa4dcd2b0] Opening 'http://[anonymized]' for writing"
            ],
            [
              "1657788899",
              "[hls @ 0xffffa4dcd2b0] Opening 'http://[anonymized]' for writing"
            ],
            [
              "1657788901",
              "[hls @ 0xffffa4dcd2b0] Opening 'http://[anonymized]' for writing"
            ],
            [
              "1657788901",
              "[mpegts @ 0xffffa4ae4070] Opening 'http://[anonymized]' for writing"
            ],
            [
              "1657788903",
              "[hls @ 0xffffa4dcd2b0] Opening 'http://[anonymized]' for writing"
            ],
            [
              "1657788903",
              "[mpegts @ 0xffffa4ae4070] Opening 'http://[anonymized]' for writing"
            ],
            [
              "1657788905",
              "[hls @ 0xffffa4dcd2b0] Opening 'http://[anonymized]' for writing"
            ],
            [
              "1657788905",
              "[mpegts @ 0xffffa4ae4070] Opening 'http://[anonymized]' for writing"
            ],
            [
              "1657788907",
              "[hls @ 0xffffa4dcd2b0] Opening 'http://[anonymized]' for writing"
            ],
            [
              "1657788907",
              "[mpegts @ 0xffffa4ae4070] Opening 'http://[anonymized]' for writing"
            ],
            [
              "1657788909",
              "[hls @ 0xffffa4dcd2b0] Opening 'http://[anonymized]' for writing"
            ],
            [
              "1657788909",
              "[mpegts @ 0xffffa4ae4070] Opening 'http://[anonymized]' for writing"
            ],
            [
              "1657788911",
              "[hls @ 0xffffa4dcd2b0] Opening 'http://[anonymized]' for writing"
            ],
            [
              "1657788911",
              "[mpegts @ 0xffffa4ae4070] Opening 'http://[anonymized]' for writing"
            ],
            [
              "1657788913",
              "[hls @ 0xffffa4dcd2b0] Opening 'http://[anonymized]' for writing"
            ],
            [
              "1657788913",
              "[mpegts @ 0xffffa4ae4070] Opening 'http://[anonymized]' for writing"
            ],
            [
              "1657788915",
              "[hls @ 0xffffa4dcd2b0] Opening 'http://[anonymized]' for writing"
            ],
            [
              "1657788915",
              "[mpegts @ 0xffffa4ae4070] Opening 'http://[anonymized]' for writing"
            ],
            [
              "1657788917",
              "[hls @ 0xffffa4dcd2b0] Opening 'http://[anonymized]' for writing"
            ],
            [
              "1657788917",
              "[mpegts @ 0xffffa4ae4070] Opening 'http://[anonymized]' for writing"
            ],
            [
              "1657788919",
              "[hls @ 0xffffa4dcd2b0] Opening 'http://[anonymized]' for writing"
            ],
            [
              "1657788919",
              "[mpegts @ 0xffffa4ae4070] Opening 'http://[anonymized]' for writing"
            ],
            [
              "1657788921",
              "[hls @ 0xffffa4dcd2b0] Opening 'http://[anonymized]' for writing"
            ],
            [
              "1657788921",
              "[mpegts @ 0xffffa4ae4070] Opening 'http://[anonymized]' for writing"
            ],
            [
              "1657788923",
              "rtmp://[anonymized] I/O error"
            ],
            [
              "1657788923",
              "[hls @ 0xffffa4dcd2b0] Opening 'http://[anonymized]' for writing"
            ],
            [
              "1657788923",
              "[mpegts @ 0xffffa4ae4070] Opening 'http://[anonymized]' for writing"
            ]
          ]
        },
        {
          "created_at": 1657788928,
          "prelude": [
            "ffmpeg version 4.4.2-datarhei Copyright (c) 2000-2021 the FFmpeg developers",
            "  built with gcc 10.3.1 (Alpine 10.3.1_git20211027) 20211027",
            "  configuration: --extra-version=datarhei --prefix=/usr --extra-libs='-lpthread -lxml2 -lm -lz -lsupc++ -lstdc++ -lssl -lcrypto -lz -lc -ldl' --enable-nonfree --enable-gpl --enable-version3 --enable-postproc --enable-static --enable-openssl --enable-libxml2 --enable-libv4l2 --enable-v4l2_m2m --enable-libfreetype --enable-libsrt --enable-libx264 --enable-libx265 --enable-libvpx --enable-libmp3lame --enable-libopus --enable-libvorbis --disable-ffplay --disable-debug --disable-doc --disable-shared",
            "  libavutil      56. 70.100 / 56. 70.100",
            "  libavcodec     58.134.100 / 58.134.100",
            "  libavformat    58. 76.100 / 58. 76.100",
            "  libavdevice    58. 13.100 / 58. 13.100",
            "  libavfilter     7.110.100 /  7.110.100",
            "  libswscale      5.  9.100 /  5.  9.100",
            "  libswresample   3.  9.100 /  3.  9.100",
            "  libpostproc    55.  9.100 / 55.  9.100",
            "Input #0, flv, from 'rtmp://[anonymized]':",
            "  Metadata:",
            "    4.0             : false",
            "    4.1             : false",
            "    7.1             : false",
            "    fileSize        : 0",
            "    encoder         : Blackmagic Design AVC Encoder",
            "    2.1             : false",
            "    3.1             : false",
            "    5.1             : false",
            "    audiochannels   : 2",
            "  Duration: 00:00:00.00, start: 0.000000, bitrate: N/A",
            "  Stream #0:0: Video: h264 (Main), yuv420p(progressive), 1920x1080, 30 fps, 30 tbr, 1k tbn",
            "  Stream #0:1: Audio: aac (LC), 48000 Hz, stereo, fltp, 65 kb/s",
            "Output #0, hls, to 'http://[anonymized]':",
            "  Metadata:",
            "    4.0             : false",
            "    4.1             : false",
            "    7.1             : false",
            "    fileSize        : 0",
            "    service_provider: datarhei-Restreamer",
            "    2.1             : false",
            "    3.1             : false",
            "    5.1             : false",
            "    audiochannels   : 2",
            "    title           : http://[anonymized]",
            "    encoder         : Lavf58.76.100",
            "  Stream #0:0: Video: h264 (Main), yuv420p(progressive), 1920x1080, q=2-31, 30 fps, 30 tbr, 90k tbn, 1k tbc",
            "  Stream #0:1: Audio: aac (LC), 48000 Hz, stereo, fltp, 65 kb/s"
          ],
          "log": [
            [
              "1657788928",
              "    2.1             : false"
            ],
            [
              "1657788928",
              "    3.1             : false"
            ],
            [
              "1657788928",
              "    5.1             : false"
            ],
            [
              "1657788928",
              "    audiochannels   : 2"
            ],
            [
              "1657788928",
              "    title           : http://[anonymized]"
            ],
            [
              "1657788928",
              "    encoder         : Lavf58.76.100"
            ],
            [
              "1657788928",
              "  Stream #0:0: Video: h264 (Main), yuv420p(progressive), 1920x1080, q=2-31, 30 fps, 30 tbr, 90k tbn, 1k tbc"
            ],
            [
              "1657788928",
              "  Stream #0:1: Audio: aac (LC), 48000 Hz, stereo, fltp, 65 kb/s"
            ],
            [
              "1657788928",
              "Stream mapping:"
            ],
            [
              "1657788928",
              "  Stream #0:0 -> #0:0 (copy)"
            ],
            [
              "1657788928",
              "  Stream #0:1 -> #0:1 (copy)"
            ],
            [
              "1657788928",
              "Press [q] to stop, [?] for help"
            ],
            [
              "1657788929",
              "[hls @ 0xffffa78c7390] Opening 'http://[anonymized]' for writing"
            ],
            [
              "1657788931",
              "[hls @ 0xffffa78c7390] Opening 'http://[anonymized]' for writing"
            ],
            [
              "1657788931",
              "[mpegts @ 0xffffa7383070] Opening 'http://[anonymized]' for writing"
            ],
            [
              "1657788933",
              "[hls @ 0xffffa78c7390] Opening 'http://[anonymized]' for writing"
            ],
            [
              "1657788933",
              "[mpegts @ 0xffffa7383070] Opening 'http://[anonymized]' for writing"
            ],
            [
              "1657788935",
              "[hls @ 0xffffa78c7390] Opening 'http://[anonymized]' for writing"
            ],
            [
              "1657788935",
              "[mpegts @ 0xffffa7383070] Opening 'http://[anonymized]' for writing"
            ],
            [
              "1657788937",
              "[hls @ 0xffffa78c7390] Opening 'http://[anonymized]' for writing"
            ],
            [
              "1657788937",
              "[mpegts @ 0xffffa7383070] Opening 'http://[anonymized]' for writing"
            ],
            [
              "1657788939",
              "[hls @ 0xffffa78c7390] Opening 'http://[anonymized]' for writing"
            ],
            [
              "1657788939",
              "[mpegts @ 0xffffa7383070] Opening 'http://[anonymized]' for writing"
            ],
            [
              "1657788941",
              "[hls @ 0xffffa78c7390] Opening 'http://[anonymized]' for writing"
            ],
            [
              "1657788941",
              "[mpegts @ 0xffffa7383070] Opening 'http://[anonymized]' for writing"
            ],
            [
              "1657788943",
              "[hls @ 0xffffa78c7390] Opening 'http://[anonymized]' for writing"
            ],
            [
              "1657788943",
              "[mpegts @ 0xffffa7383070] Opening 'http://[anonymized]' for writing"
            ],
            [
              "1657788945",
              "[hls @ 0xffffa78c7390] Opening 'http://[anonymized]' for writing"
            ],
            [
              "1657788945",
              "[mpegts @ 0xffffa7383070] Opening 'http://[anonymized]' for writing"
            ],
            [
              "1657788947",
              "[hls @ 0xffffa78c7390] Opening 'http://[anonymized]' for writing"
            ],
            [
              "1657788947",
              "[mpegts @ 0xffffa7383070] Opening 'http://[anonymized]' for writing"
            ],
            [
              "1657788949",
              "[hls @ 0xffffa78c7390] Opening 'http://[anonymized]' for writing"
            ],
            [
              "1657788949",
              "[mpegts @ 0xffffa7383070] Opening 'http://[anonymized]' for writing"
            ],
            [
              "1657788951",
              "[hls @ 0xffffa78c7390] Opening 'http://[anonymized]' for writing"
            ],
            [
              "1657788951",
              "[mpegts @ 0xffffa7383070] Opening 'http://[anonymized]' for writing"
            ],
            [
              "1657788953",
              "[hls @ 0xffffa78c7390] Opening 'http://[anonymized]' for writing"
            ],
            [
              "1657788953",
              "[mpegts @ 0xffffa7383070] Opening 'http://[anonymized]' for writing"
            ],
            [
              "1657788955",
              "[hls @ 0xffffa78c7390] Opening 'http://[anonymized]' for writing"
            ],
            [
              "1657788955",
              "[mpegts @ 0xffffa7383070] Opening 'http://[anonymized]' for writing"
            ],
            [
              "1657788957",
              "[hls @ 0xffffa78c7390] Opening 'http://[anonymized]' for writing"
            ],
            [
              "1657788957",
              "[mpegts @ 0xffffa7383070] Opening 'http://[anonymized]' for writing"
            ],
            [
              "1657788959",
              "[hls @ 0xffffa78c7390] Opening 'http://[anonymized]' for writing"
            ],
            [
              "1657788959",
              "[mpegts @ 0xffffa7383070] Opening 'http://[anonymized]' for writing"
            ],
            [
              "1657788961",
              "[hls @ 0xffffa78c7390] Opening 'http://[anonymized]' for writing"
            ],
            [
              "1657788961",
              "[mpegts @ 0xffffa7383070] Opening 'http://[anonymized]' for writing"
            ],
            [
              "1657788963",
              "[hls @ 0xffffa78c7390] Opening 'http://[anonymized]' for writing"
            ],
            [
              "1657788963",
              "[mpegts @ 0xffffa7383070] Opening 'http://[anonymized]' for writing"
            ],
            [
              "1657788964",
              "rtmp://[anonymized] I/O error"
            ],
            [
              "1657788964",
              "[hls @ 0xffffa78c7390] Opening 'http://[anonymized]' for writing"
            ],
            [
              "1657788964",
              "[mpegts @ 0xffffa7383070] Opening 'http://[anonymized]' for writing"
            ]
          ]
        }
      ]
    }
  }
}
@crbon
Copy link
Author

crbon commented Jul 14, 2022

I've been able to get it work with a secondary docker container running nginx-rtmp, which ingests the rtmp stream from the ATEM Mini encoder, then I have restreamer pull the stream from the nginx-rtmp (network source).

Seems to work without issues so far, but it would be nice to not have to use another docker container.

Based on this there seems to be an issue with the restreamer's built in rtmp server.

@eustachy84
Copy link

Nice to here (or not) that not only I have the same issue. For me video is droped after change camera, or couple seconds.
PS. Thanks for suggetion of secondary container - I will try that.

@jstabenow
Copy link
Member

Hey @crbon @eustachy84
Thanks for the hint. An update of the RTMP server is already on the roadmap.

@tofuSCHNITZEL
Copy link

tofuSCHNITZEL commented Jul 23, 2022

I can confirm this as well, at least something similar - I have an atem web presenter HD and I can't send video to the restreamer rtmp server. I have added my restreamer url to an custom xml config file and imported it - but when I click on "ON AIR" it just starts blinking (= no connection possible) and I also don't see any incomming connection in the restreamer logs.
if I stop the restreamer docker and instead run my nginx-rtmp docker (on the same server) the atem web presenter can connect without a problem.

@tofuSCHNITZEL
Copy link

tofuSCHNITZEL commented Jul 23, 2022

I've been able to get it work with a secondary docker container running nginx-rtmp, which ingests the rtmp stream from the ATEM Mini encoder, then I have restreamer pull the stream from the nginx-rtmp (network source).

Seems to work without issues so far, but it would be nice to not have to use another docker container.

Based on this there seems to be an issue with the restreamer's built in rtmp server.

would you share your nginx-rtmp containers nginx config? or maybe there is a way to combine nginx-rtmp proxy and restreamer in a docker-compose file?

edit:
I tried to push the stream from my nginx-rtmp to restreamer but I only get *18 too big RTMP chunk size:134217728, client: restreamer/ingest/d17a56ea-6acc-4451-8c5c-0d08c498280d.stream, server: ngx-relay errors...
but pulling from the nginx-rtmp container seems to work

ioppermann added a commit to datarhei/core that referenced this issue Jul 28, 2022
@ioppermann
Copy link
Member

We found the bug in the RTMP server and fixed it. Now it's possible to push the stream from the ATEM Mini Pro (and possibly other devices) to the Restreamer RTMP server for ingesting. It will be available in the next update.

@eustachy84
Copy link

When is planed next update (indicative) - 3 days, 3 weeks, 3 months? :)

@ioppermann
Copy link
Member

There might be a bugfix release, but we didn't set any date. Meanwhile you can try out the dev build by using the datarhei/restreamer:dev or datarhei/restreamer:rpi-dev images.

@Pimmetje
Copy link

Pimmetje commented Aug 7, 2022

I can confirm that the dev images works for me on a atem mini pro!

@eustachy84
Copy link

I can confirm to, that dev image works like charm with mini extreame. I was streaming about 3 hours without problem.

@svenerbeck
Copy link
Member

Hi @crbon
We are closing your issue #385.

This may be due to the following reasons:

  • Problem/inquiry has been solved
  • The ticket remained unanswered by you for a more extended time
  • The problem was explained and handled in another ticket

You can reopen this ticket at any time!

Please do not open related tickets twice. Always answer/ask in the original issue with the same problem.

Your datarhei team
//Sven

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

7 participants