datarhei / restreamer

The Restreamer is a complete streaming server solution for self-hosting. It has a visually appealing user interface and no ongoing license costs. Upload your live stream to YouTube, Twitch, Facebook, Vimeo, or other streaming solutions like Wowza. Receive video data from OBS and publish it with the RTMP and SRT server.
https://docs.datarhei.com/restreamer/
Apache License 2.0
3.95k stars 452 forks source link

Documentation for SRT ingest URL and domain #534

Open slhck opened 1 year ago

slhck commented 1 year ago

Describe the bug

Ingesting SRT via SRT server is misleading/confusing for end-users.

I'm taking the position of a “naive” user who just wants to test an SRT stream 😉

To Reproduce

docker network create restreamer

docker run -d --restart=always --name restreamer \
  -v /opt/restreamer/config:/core/config -v /opt/restreamer/data:/core/data \
  -p 8080:8080 -p 8181:8181 \
  -p 1935:1935 -p 1936:1936 \
  -p 6000:6000/udp \
  --network restreamer \
  datarhei/restreamer:latest

Then set up the server via the wizard, where I land in these settings:

image

I would now expect to be able to stream to srt://localhost:6000, but it's not working:

ffmpeg -f lavfi -re -i testsrc -c:v libx264 -preset ultrafast -f mpegts srt://localhost:6000   
ffmpeg version 5.1.2 Copyright (c) 2000-2022 the FFmpeg developers
  built with Apple clang version 14.0.0 (clang-1400.0.29.202)
  configuration: --prefix=/opt/homebrew/Cellar/ffmpeg/5.1.2_5 --enable-shared --enable-pthreads --enable-version3 --cc=clang --host-cflags= --host-ldflags= --enable-ffplay --enable-gnutls --enable-gpl --enable-libaom --enable-libaribb24 --enable-libbluray --enable-libdav1d --enable-libmp3lame --enable-libopus --enable-librav1e --enable-librist --enable-librubberband --enable-libsnappy --enable-libsrt --enable-libsvtav1 --enable-libtesseract --enable-libtheora --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libxvid --enable-lzma --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libspeex --enable-libsoxr --enable-libzmq --enable-libzimg --disable-libjack --disable-indev=jack --enable-videotoolbox --enable-neon
  libavutil      57. 28.100 / 57. 28.100
  libavcodec     59. 37.100 / 59. 37.100
  libavformat    59. 27.100 / 59. 27.100
  libavdevice    59.  7.100 / 59.  7.100
  libavfilter     8. 44.100 /  8. 44.100
  libswscale      6.  7.100 /  6.  7.100
  libswresample   4.  7.100 /  4.  7.100
  libpostproc    56.  6.100 / 56.  6.100
Input #0, lavfi, from 'testsrc':
  Duration: N/A, start: 0.000000, bitrate: N/A
  Stream #0:0: Video: rawvideo (RGB[24] / 0x18424752), rgb24, 320x240 [SAR 1:1 DAR 4:3], 25 tbr, 25 tbn
10:25:08.063170/!W:SRT.cn: processAsyncConnectRequest: REJECT reported from HS processing: Peer rejected connection - not processing further
[srt @ 0x12d104910] Connection to srt://localhost:6000 failed (Input/output error), trying next address
10:25:08.066961/!W:SRT.cn: processAsyncConnectRequest: REJECT reported from HS processing: Peer rejected connection - not processing further
[srt @ 0x12d104910] Connection to srt://localhost:6000 failed: Input/output error
srt://localhost:6000: Input/output error

Only when I log in again I get to the video setup dialog, which finally shows this:

image

I can stream to this URL when I replace the hardcoded IP address with localhost.

Expected behavior

I would expect this to be a bit easier for first-time setup. I did not understand that the actual SRT ingest URL would be different, and enabling the SRT server does not mention this. The docs with respect to SRT are not very helpful as of now:

image

There are also other docs for SRT but they do not reference the concrete ingest URL either.

My recommendation would be, where it says, “Send stream to this address:”, to add a link to the settings where to change the IP address/hostname if it looks incorrect. Like: “You can configure the IP address here: …”.

Desktop (please complete the following information):

ioppermann commented 1 year ago

Thanks for describing your "naive" view. This gets sometimes lost when you're too deep in the matter and everything seems obvious.

We will improve the documentation.