Adds echo source
This commit is contained in:
@@ -0,0 +1,29 @@
|
|||||||
|
package echo
|
||||||
|
|
||||||
|
import (
|
||||||
|
"bytes"
|
||||||
|
"github.com/AlexxIT/go2rtc/cmd/app"
|
||||||
|
"github.com/AlexxIT/go2rtc/cmd/streams"
|
||||||
|
"github.com/AlexxIT/go2rtc/pkg/shell"
|
||||||
|
"github.com/AlexxIT/go2rtc/pkg/streamer"
|
||||||
|
"os/exec"
|
||||||
|
)
|
||||||
|
|
||||||
|
func Init() {
|
||||||
|
log := app.GetLogger("echo")
|
||||||
|
|
||||||
|
streams.HandleFunc("echo", func(url string) (streamer.Producer, error) {
|
||||||
|
args := shell.QuoteSplit(url[5:])
|
||||||
|
|
||||||
|
b, err := exec.Command(args[0], args[1:]...).Output()
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
b = bytes.TrimSpace(b)
|
||||||
|
|
||||||
|
log.Debug().Str("url", url).Msgf("[echo] %s", b)
|
||||||
|
|
||||||
|
return streams.GetProducer(string(b))
|
||||||
|
})
|
||||||
|
}
|
||||||
@@ -4,6 +4,7 @@ import (
|
|||||||
"github.com/AlexxIT/go2rtc/cmd/api"
|
"github.com/AlexxIT/go2rtc/cmd/api"
|
||||||
"github.com/AlexxIT/go2rtc/cmd/app"
|
"github.com/AlexxIT/go2rtc/cmd/app"
|
||||||
"github.com/AlexxIT/go2rtc/cmd/debug"
|
"github.com/AlexxIT/go2rtc/cmd/debug"
|
||||||
|
"github.com/AlexxIT/go2rtc/cmd/echo"
|
||||||
"github.com/AlexxIT/go2rtc/cmd/exec"
|
"github.com/AlexxIT/go2rtc/cmd/exec"
|
||||||
"github.com/AlexxIT/go2rtc/cmd/ffmpeg"
|
"github.com/AlexxIT/go2rtc/cmd/ffmpeg"
|
||||||
"github.com/AlexxIT/go2rtc/cmd/hass"
|
"github.com/AlexxIT/go2rtc/cmd/hass"
|
||||||
@@ -25,6 +26,8 @@ func main() {
|
|||||||
app.Init() // init config and logs
|
app.Init() // init config and logs
|
||||||
streams.Init() // load streams list
|
streams.Init() // load streams list
|
||||||
|
|
||||||
|
echo.Init()
|
||||||
|
|
||||||
rtsp.Init() // add support RTSP client and RTSP server
|
rtsp.Init() // add support RTSP client and RTSP server
|
||||||
rtmp.Init() // add support RTMP client
|
rtmp.Init() // add support RTMP client
|
||||||
exec.Init() // add support exec scheme (depends on RTSP server)
|
exec.Init() // add support exec scheme (depends on RTSP server)
|
||||||
|
|||||||
Reference in New Issue
Block a user