voc / srtrelay

SRT relay server for distributing media streams to multiple clients.
MIT License
144 stars 36 forks source link

Error in srt_bind #35

Closed quantum909 closed 9 months ago

quantum909 commented 10 months ago

Hello, I'm trying to start the srtrelay server using Docker Compose, but I keep encountering the following error. Where could the issue be? I would appreciate any help.

Listen failed for xxx.xxx.xxx.xxx:1337 : Error in srt_bind: An error occurred when trying to call a system function on an internally used UDP socket

iSchluff commented 10 months ago

Hi, can you please share your compose file?

quantum909 commented 10 months ago

Hello,

Thank you. Yes, that's what she looks like at the moment.

version: '3'

services:
  srtrelay:
     image: ghcr.io/voc/srtrelay/srtrelay:latest
     restart: always
     container_name: srtrelay
     volumes:
       - /home/fab/srt/srtrelay-config.toml:/home/srtrelay/config.toml
     ports:
       - "44560:1337/udp"
iSchluff commented 10 months ago

Ah ok the failure is related to it trying to bind on an ipv6 address when the container doesn't have ipv6 available i think. If you explicitely listen on ipv4 addresses in the config it should work. E.g.:

[app]
# Relay listen address
addresses = ["0.0.0.0:1337"]
quantum909 commented 10 months ago

Thanks, I had already tried that, but then I get the following error message.

2023/11/17 14:11:53 Read config from config.toml
2023/11/17 14:11:53 Note: assuming public address c864efeca9b7:1337
2023/11/17 14:11:53 SRT Listening on 0.0.0.0:1337
2023/11/17 14:11:53 API listening on :8080
2023/11/17 14:11:56 Invalid number of slashes, must be 1 or 2
14:11:56.017449/SRT:RcvQ:w1!W:SRT.cn: @705002645:newConnection: connection rejected due to: INTERNAL REJECTION - ERROR:UNKNOWN
14:11:56.017537/SRT:RcvQ:w1!W:SRT.cn: processConnectRequest: rsp(REJECT): 1000 - Unknown or erroneous
iSchluff commented 10 months ago

You have to set the streamid on your srt client, like mentioned in the readme. e.g.

# start publisher
ffmpeg -i test.mp4 -c copy -f mpegts srt://localhost:1337?streamid=publish/test

# start subscriber
ffplay -fflags nobuffer srt://localhost:1337?streamid=play/test
quantum909 commented 10 months ago

Great thanks. it works now. i still have two quick questions.

Is it possible to customize the streaming id and are there plans to create a version for arm64?

Thank you very much

iSchluff commented 10 months ago

you mean the format of the streamid? no that can't be customized. But you can name the stream how you want, and publish/play multiple different streams at the same time.

Currently there are no plans to publish an arm64 container as the container is just for trying the software out anyway. If you have tested it and want to integrate it into a solution I recommend compiling the software yourself. This also gives you version stability, whereas the container might change.

quantum909 commented 10 months ago

All right, thanks.

If I understand it correctly I could start 2 streams with different ID's and transmit them via the same port?

?streamid=play/stream1 ?streamid=play/stream2

iSchluff commented 10 months ago

yes thats right